@fluidframework/routerlicious-driver 2.0.0-internal.3.0.0 → 2.0.0-internal.3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/.eslintrc.js +10 -12
  2. package/.mocharc.js +2 -2
  3. package/README.md +1 -1
  4. package/api-extractor.json +2 -2
  5. package/dist/cache.d.ts.map +1 -1
  6. package/dist/cache.js +2 -5
  7. package/dist/cache.js.map +1 -1
  8. package/dist/createNewUtils.d.ts.map +1 -1
  9. package/dist/createNewUtils.js +4 -2
  10. package/dist/createNewUtils.js.map +1 -1
  11. package/dist/defaultTokenProvider.d.ts.map +1 -1
  12. package/dist/defaultTokenProvider.js.map +1 -1
  13. package/dist/definitions.d.ts.map +1 -1
  14. package/dist/definitions.js.map +1 -1
  15. package/dist/deltaStorageService.d.ts.map +1 -1
  16. package/dist/deltaStorageService.js +4 -1
  17. package/dist/deltaStorageService.js.map +1 -1
  18. package/dist/documentDeltaConnection.d.ts.map +1 -1
  19. package/dist/documentDeltaConnection.js.map +1 -1
  20. package/dist/documentService.d.ts.map +1 -1
  21. package/dist/documentService.js +13 -5
  22. package/dist/documentService.js.map +1 -1
  23. package/dist/documentServiceFactory.d.ts.map +1 -1
  24. package/dist/documentServiceFactory.js +7 -4
  25. package/dist/documentServiceFactory.js.map +1 -1
  26. package/dist/documentStorageService.d.ts.map +1 -1
  27. package/dist/documentStorageService.js +7 -5
  28. package/dist/documentStorageService.js.map +1 -1
  29. package/dist/errorUtils.d.ts +9 -2
  30. package/dist/errorUtils.d.ts.map +1 -1
  31. package/dist/errorUtils.js +15 -8
  32. package/dist/errorUtils.js.map +1 -1
  33. package/dist/index.d.ts +2 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +4 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/nullBlobStorageService.d.ts.map +1 -1
  38. package/dist/nullBlobStorageService.js.map +1 -1
  39. package/dist/packageVersion.d.ts +1 -1
  40. package/dist/packageVersion.js +1 -1
  41. package/dist/packageVersion.js.map +1 -1
  42. package/dist/policies.d.ts.map +1 -1
  43. package/dist/policies.js.map +1 -1
  44. package/dist/restWrapper.d.ts.map +1 -1
  45. package/dist/restWrapper.js +5 -6
  46. package/dist/restWrapper.js.map +1 -1
  47. package/dist/retriableGitManager.d.ts.map +1 -1
  48. package/dist/retriableGitManager.js.map +1 -1
  49. package/dist/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
  50. package/dist/shreddedSummaryDocumentStorageService.js +8 -4
  51. package/dist/shreddedSummaryDocumentStorageService.js.map +1 -1
  52. package/dist/tokens.d.ts +24 -7
  53. package/dist/tokens.d.ts.map +1 -1
  54. package/dist/tokens.js.map +1 -1
  55. package/dist/urlUtils.d.ts.map +1 -1
  56. package/dist/urlUtils.js.map +1 -1
  57. package/dist/wholeSummaryDocumentStorageService.d.ts.map +1 -1
  58. package/dist/wholeSummaryDocumentStorageService.js +25 -11
  59. package/dist/wholeSummaryDocumentStorageService.js.map +1 -1
  60. package/lib/cache.d.ts.map +1 -1
  61. package/lib/cache.js +2 -5
  62. package/lib/cache.js.map +1 -1
  63. package/lib/createNewUtils.d.ts.map +1 -1
  64. package/lib/createNewUtils.js +4 -2
  65. package/lib/createNewUtils.js.map +1 -1
  66. package/lib/defaultTokenProvider.d.ts.map +1 -1
  67. package/lib/defaultTokenProvider.js.map +1 -1
  68. package/lib/definitions.d.ts.map +1 -1
  69. package/lib/definitions.js.map +1 -1
  70. package/lib/deltaStorageService.d.ts.map +1 -1
  71. package/lib/deltaStorageService.js +4 -1
  72. package/lib/deltaStorageService.js.map +1 -1
  73. package/lib/documentDeltaConnection.d.ts.map +1 -1
  74. package/lib/documentDeltaConnection.js.map +1 -1
  75. package/lib/documentService.d.ts.map +1 -1
  76. package/lib/documentService.js +15 -7
  77. package/lib/documentService.js.map +1 -1
  78. package/lib/documentServiceFactory.d.ts.map +1 -1
  79. package/lib/documentServiceFactory.js +7 -4
  80. package/lib/documentServiceFactory.js.map +1 -1
  81. package/lib/documentStorageService.d.ts.map +1 -1
  82. package/lib/documentStorageService.js +8 -6
  83. package/lib/documentStorageService.js.map +1 -1
  84. package/lib/errorUtils.d.ts +9 -2
  85. package/lib/errorUtils.d.ts.map +1 -1
  86. package/lib/errorUtils.js +14 -7
  87. package/lib/errorUtils.js.map +1 -1
  88. package/lib/index.d.ts +2 -1
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +3 -1
  91. package/lib/index.js.map +1 -1
  92. package/lib/nullBlobStorageService.d.ts.map +1 -1
  93. package/lib/nullBlobStorageService.js.map +1 -1
  94. package/lib/packageVersion.d.ts +1 -1
  95. package/lib/packageVersion.js +1 -1
  96. package/lib/packageVersion.js.map +1 -1
  97. package/lib/policies.d.ts.map +1 -1
  98. package/lib/policies.js.map +1 -1
  99. package/lib/restWrapper.d.ts.map +1 -1
  100. package/lib/restWrapper.js +5 -6
  101. package/lib/restWrapper.js.map +1 -1
  102. package/lib/retriableGitManager.d.ts.map +1 -1
  103. package/lib/retriableGitManager.js.map +1 -1
  104. package/lib/shreddedSummaryDocumentStorageService.d.ts.map +1 -1
  105. package/lib/shreddedSummaryDocumentStorageService.js +9 -5
  106. package/lib/shreddedSummaryDocumentStorageService.js.map +1 -1
  107. package/lib/tokens.d.ts +24 -7
  108. package/lib/tokens.d.ts.map +1 -1
  109. package/lib/tokens.js.map +1 -1
  110. package/lib/urlUtils.d.ts.map +1 -1
  111. package/lib/urlUtils.js.map +1 -1
  112. package/lib/wholeSummaryDocumentStorageService.d.ts.map +1 -1
  113. package/lib/wholeSummaryDocumentStorageService.js +27 -13
  114. package/lib/wholeSummaryDocumentStorageService.js.map +1 -1
  115. package/package.json +115 -114
  116. package/prettier.config.cjs +1 -1
  117. package/src/cache.ts +16 -19
  118. package/src/createNewUtils.ts +24 -22
  119. package/src/defaultTokenProvider.ts +13 -15
  120. package/src/definitions.ts +2 -2
  121. package/src/deltaStorageService.ts +99 -95
  122. package/src/documentDeltaConnection.ts +53 -47
  123. package/src/documentService.ts +260 -239
  124. package/src/documentServiceFactory.ts +263 -250
  125. package/src/documentStorageService.ts +87 -83
  126. package/src/errorUtils.ts +91 -81
  127. package/src/index.ts +7 -1
  128. package/src/nullBlobStorageService.ts +24 -21
  129. package/src/packageVersion.ts +1 -1
  130. package/src/policies.ts +44 -44
  131. package/src/restWrapper.ts +266 -216
  132. package/src/retriableGitManager.ts +152 -151
  133. package/src/shreddedSummaryDocumentStorageService.ts +202 -194
  134. package/src/tokens.ts +69 -44
  135. package/src/urlUtils.ts +26 -23
  136. package/src/wholeSummaryDocumentStorageService.ts +246 -228
  137. package/tsconfig.esnext.json +6 -6
  138. package/tsconfig.json +9 -13
@@ -21,11 +21,12 @@ class DocumentStorageService extends driver_utils_1.DocumentStorageServiceProxy
21
21
  return this._logTailSha;
22
22
  }
23
23
  static loadInternalDocumentStorageService(id, manager, logger, policies, driverPolicies, blobCache, snapshotTreeCache, noCacheGitManager, getStorageManager) {
24
- const storageService = (driverPolicies === null || driverPolicies === void 0 ? void 0 : driverPolicies.enableWholeSummaryUpload) ?
25
- new wholeSummaryDocumentStorageService_1.WholeSummaryDocumentStorageService(id, manager, logger, policies, driverPolicies, blobCache, snapshotTreeCache, noCacheGitManager, getStorageManager) :
26
- new shreddedSummaryDocumentStorageService_1.ShreddedSummaryDocumentStorageService(id, manager, logger, policies, driverPolicies, blobCache, snapshotTreeCache, getStorageManager);
24
+ const storageService = (driverPolicies === null || driverPolicies === void 0 ? void 0 : driverPolicies.enableWholeSummaryUpload)
25
+ ? new wholeSummaryDocumentStorageService_1.WholeSummaryDocumentStorageService(id, manager, logger, policies, driverPolicies, blobCache, snapshotTreeCache, noCacheGitManager, getStorageManager)
26
+ : new shreddedSummaryDocumentStorageService_1.ShreddedSummaryDocumentStorageService(id, manager, logger, policies, driverPolicies, blobCache, snapshotTreeCache, getStorageManager);
27
27
  // TODO: worth prefetching latest summary making version + snapshot call with WholeSummary storage?
28
- if (!(driverPolicies === null || driverPolicies === void 0 ? void 0 : driverPolicies.enableWholeSummaryUpload) && policies.caching === driver_definitions_1.LoaderCachingPolicy.Prefetch) {
28
+ if (!(driverPolicies === null || driverPolicies === void 0 ? void 0 : driverPolicies.enableWholeSummaryUpload) &&
29
+ policies.caching === driver_definitions_1.LoaderCachingPolicy.Prefetch) {
29
30
  return new driver_utils_1.PrefetchDocumentStorageService(storageService);
30
31
  }
31
32
  return storageService;
@@ -33,7 +34,8 @@ class DocumentStorageService extends driver_utils_1.DocumentStorageServiceProxy
33
34
  async getSnapshotTree(version) {
34
35
  const tree = await this.internalStorageService.getSnapshotTree(version);
35
36
  if (tree !== null) {
36
- this._logTailSha = ".logTail" in tree.trees ? tree.trees[".logTail"].blobs.logTail : undefined;
37
+ this._logTailSha =
38
+ ".logTail" in tree.trees ? tree.trees[".logTail"].blobs.logTail : undefined;
37
39
  }
38
40
  return tree;
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentStorageService.js","sourceRoot":"","sources":["../src/documentStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,2EAI4C;AAQ5C,+DAA2G;AAG3G,6FAA0F;AAC1F,mGAAgG;AAGhG,MAAa,sBAAuB,SAAQ,0CAA2B;IA+CnE,YACoB,EAAU,EACnB,OAAmB,EAC1B,MAAwB,EACxB,QAAyC,EACzC,cAA6C,EAC7C,SAAmC,EACnC,iBAAgD,EACzC,iBAA8B,EACrC,iBAAmE;QAEnE,KAAK,CAAC,sBAAsB,CAAC,kCAAkC,CAC3D,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CACpB,CAAC,CAAC;QApBa,OAAE,GAAF,EAAE,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAY;QAMnB,sBAAiB,GAAjB,iBAAiB,CAAa;QAtDjC,gBAAW,GAAuB,SAAS,CAAC;IAoEpD,CAAC;IAlED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,kCAAkC,CAC7C,EAAU,EACV,OAAmB,EACnB,MAAwB,EACxB,QAAyC,EACzC,cAA6C,EAC7C,SAAmC,EACnC,iBAAgD,EAChD,iBAA8B,EAC9B,iBAAmE;QAEnE,MAAM,cAAc,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,wBAAwB,EAAC,CAAC;YAC7D,IAAI,uEAAkC,CAClC,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CACpB,CAAC,CAAC;YACH,IAAI,6EAAqC,CACrC,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,CACpB,CAAC;QACN,mGAAmG;QACnG,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,wBAAwB,CAAA,IAAI,QAAQ,CAAC,OAAO,KAAK,wCAAmB,CAAC,QAAQ,EAAE;YAChG,OAAO,IAAI,6CAA8B,CAAC,cAAc,CAAC,CAAC;SAC7D;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC;IA0BM,KAAK,CAAC,eAAe,CAAC,OAAkB;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SAClG;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA9ED,wDA8EC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport {\n IDocumentStorageService,\n IDocumentStorageServicePolicies,\n LoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions\";\nimport {\n ISnapshotTree,\n IVersion,\n} from \"@fluidframework/protocol-definitions\";\nimport {\n GitManager,\n} from \"@fluidframework/server-services-client\";\nimport { DocumentStorageServiceProxy, PrefetchDocumentStorageService } from \"@fluidframework/driver-utils\";\nimport { IRouterliciousDriverPolicies } from \"./policies\";\nimport { ICache } from \"./cache\";\nimport { WholeSummaryDocumentStorageService } from \"./wholeSummaryDocumentStorageService\";\nimport { ShreddedSummaryDocumentStorageService } from \"./shreddedSummaryDocumentStorageService\";\nimport { ISnapshotTreeVersion } from \"./definitions\";\n\nexport class DocumentStorageService extends DocumentStorageServiceProxy {\n private _logTailSha: string | undefined = undefined;\n\n public get logTailSha(): string | undefined {\n return this._logTailSha;\n }\n\n private static loadInternalDocumentStorageService(\n id: string,\n manager: GitManager,\n logger: ITelemetryLogger,\n policies: IDocumentStorageServicePolicies,\n driverPolicies?: IRouterliciousDriverPolicies,\n blobCache?: ICache<ArrayBufferLike>,\n snapshotTreeCache?: ICache<ISnapshotTreeVersion>,\n noCacheGitManager?: GitManager,\n getStorageManager?: (disableCache?: boolean) => Promise<GitManager>,\n ): IDocumentStorageService {\n const storageService = driverPolicies?.enableWholeSummaryUpload ?\n new WholeSummaryDocumentStorageService(\n id,\n manager,\n logger,\n policies,\n driverPolicies,\n blobCache,\n snapshotTreeCache,\n noCacheGitManager,\n getStorageManager,\n ) :\n new ShreddedSummaryDocumentStorageService(\n id,\n manager,\n logger,\n policies,\n driverPolicies,\n blobCache,\n snapshotTreeCache,\n getStorageManager,\n );\n // TODO: worth prefetching latest summary making version + snapshot call with WholeSummary storage?\n if (!driverPolicies?.enableWholeSummaryUpload && policies.caching === LoaderCachingPolicy.Prefetch) {\n return new PrefetchDocumentStorageService(storageService);\n }\n return storageService;\n }\n\n constructor(\n public readonly id: string,\n public manager: GitManager,\n logger: ITelemetryLogger,\n policies: IDocumentStorageServicePolicies,\n driverPolicies?: IRouterliciousDriverPolicies,\n blobCache?: ICache<ArrayBufferLike>,\n snapshotTreeCache?: ICache<ISnapshotTreeVersion>,\n public noCacheGitManager?: GitManager,\n getStorageManager?: (disableCache?: boolean) => Promise<GitManager>,\n ) {\n super(DocumentStorageService.loadInternalDocumentStorageService(\n id,\n manager,\n logger,\n policies,\n driverPolicies,\n blobCache,\n snapshotTreeCache,\n noCacheGitManager,\n getStorageManager,\n ));\n }\n\n public async getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null> {\n const tree = await this.internalStorageService.getSnapshotTree(version);\n if (tree !== null) {\n this._logTailSha = \".logTail\" in tree.trees ? tree.trees[\".logTail\"].blobs.logTail : undefined;\n }\n return tree;\n }\n}\n"]}
1
+ {"version":3,"file":"documentStorageService.js","sourceRoot":"","sources":["../src/documentStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,2EAI4C;AAG5C,+DAGsC;AAGtC,6FAA0F;AAC1F,mGAAgG;AAGhG,MAAa,sBAAuB,SAAQ,0CAA2B;IAkDtE,YACiB,EAAU,EACnB,OAAmB,EAC1B,MAAwB,EACxB,QAAyC,EACzC,cAA6C,EAC7C,SAAmC,EACnC,iBAAgD,EACzC,iBAA8B,EACrC,iBAAmE;QAEnE,KAAK,CACJ,sBAAsB,CAAC,kCAAkC,CACxD,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CACjB,CACD,CAAC;QAtBc,OAAE,GAAF,EAAE,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAY;QAMnB,sBAAiB,GAAjB,iBAAiB,CAAa;QAzD9B,gBAAW,GAAuB,SAAS,CAAC;IAyEpD,CAAC;IAvED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAEO,MAAM,CAAC,kCAAkC,CAChD,EAAU,EACV,OAAmB,EACnB,MAAwB,EACxB,QAAyC,EACzC,cAA6C,EAC7C,SAAmC,EACnC,iBAAgD,EAChD,iBAA8B,EAC9B,iBAAmE;QAEnE,MAAM,cAAc,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,wBAAwB;YAC9D,CAAC,CAAC,IAAI,uEAAkC,CACtC,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CAChB;YACH,CAAC,CAAC,IAAI,6EAAqC,CACzC,EAAE,EACF,OAAO,EACP,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,iBAAiB,CAChB,CAAC;QACL,mGAAmG;QACnG,IACC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,wBAAwB,CAAA;YACzC,QAAQ,CAAC,OAAO,KAAK,wCAAmB,CAAC,QAAQ,EAChD;YACD,OAAO,IAAI,6CAA8B,CAAC,cAAc,CAAC,CAAC;SAC1D;QACD,OAAO,cAAc,CAAC;IACvB,CAAC;IA4BM,KAAK,CAAC,eAAe,CAAC,OAAkB;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,WAAW;gBACf,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7E;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AApFD,wDAoFC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport {\n\tIDocumentStorageService,\n\tIDocumentStorageServicePolicies,\n\tLoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions\";\nimport { ISnapshotTree, IVersion } from \"@fluidframework/protocol-definitions\";\nimport { GitManager } from \"@fluidframework/server-services-client\";\nimport {\n\tDocumentStorageServiceProxy,\n\tPrefetchDocumentStorageService,\n} from \"@fluidframework/driver-utils\";\nimport { IRouterliciousDriverPolicies } from \"./policies\";\nimport { ICache } from \"./cache\";\nimport { WholeSummaryDocumentStorageService } from \"./wholeSummaryDocumentStorageService\";\nimport { ShreddedSummaryDocumentStorageService } from \"./shreddedSummaryDocumentStorageService\";\nimport { ISnapshotTreeVersion } from \"./definitions\";\n\nexport class DocumentStorageService extends DocumentStorageServiceProxy {\n\tprivate _logTailSha: string | undefined = undefined;\n\n\tpublic get logTailSha(): string | undefined {\n\t\treturn this._logTailSha;\n\t}\n\n\tprivate static loadInternalDocumentStorageService(\n\t\tid: string,\n\t\tmanager: GitManager,\n\t\tlogger: ITelemetryLogger,\n\t\tpolicies: IDocumentStorageServicePolicies,\n\t\tdriverPolicies?: IRouterliciousDriverPolicies,\n\t\tblobCache?: ICache<ArrayBufferLike>,\n\t\tsnapshotTreeCache?: ICache<ISnapshotTreeVersion>,\n\t\tnoCacheGitManager?: GitManager,\n\t\tgetStorageManager?: (disableCache?: boolean) => Promise<GitManager>,\n\t): IDocumentStorageService {\n\t\tconst storageService = driverPolicies?.enableWholeSummaryUpload\n\t\t\t? new WholeSummaryDocumentStorageService(\n\t\t\t\t\tid,\n\t\t\t\t\tmanager,\n\t\t\t\t\tlogger,\n\t\t\t\t\tpolicies,\n\t\t\t\t\tdriverPolicies,\n\t\t\t\t\tblobCache,\n\t\t\t\t\tsnapshotTreeCache,\n\t\t\t\t\tnoCacheGitManager,\n\t\t\t\t\tgetStorageManager,\n\t\t\t )\n\t\t\t: new ShreddedSummaryDocumentStorageService(\n\t\t\t\t\tid,\n\t\t\t\t\tmanager,\n\t\t\t\t\tlogger,\n\t\t\t\t\tpolicies,\n\t\t\t\t\tdriverPolicies,\n\t\t\t\t\tblobCache,\n\t\t\t\t\tsnapshotTreeCache,\n\t\t\t\t\tgetStorageManager,\n\t\t\t );\n\t\t// TODO: worth prefetching latest summary making version + snapshot call with WholeSummary storage?\n\t\tif (\n\t\t\t!driverPolicies?.enableWholeSummaryUpload &&\n\t\t\tpolicies.caching === LoaderCachingPolicy.Prefetch\n\t\t) {\n\t\t\treturn new PrefetchDocumentStorageService(storageService);\n\t\t}\n\t\treturn storageService;\n\t}\n\n\tconstructor(\n\t\tpublic readonly id: string,\n\t\tpublic manager: GitManager,\n\t\tlogger: ITelemetryLogger,\n\t\tpolicies: IDocumentStorageServicePolicies,\n\t\tdriverPolicies?: IRouterliciousDriverPolicies,\n\t\tblobCache?: ICache<ArrayBufferLike>,\n\t\tsnapshotTreeCache?: ICache<ISnapshotTreeVersion>,\n\t\tpublic noCacheGitManager?: GitManager,\n\t\tgetStorageManager?: (disableCache?: boolean) => Promise<GitManager>,\n\t) {\n\t\tsuper(\n\t\t\tDocumentStorageService.loadInternalDocumentStorageService(\n\t\t\t\tid,\n\t\t\t\tmanager,\n\t\t\t\tlogger,\n\t\t\t\tpolicies,\n\t\t\t\tdriverPolicies,\n\t\t\t\tblobCache,\n\t\t\t\tsnapshotTreeCache,\n\t\t\t\tnoCacheGitManager,\n\t\t\t\tgetStorageManager,\n\t\t\t),\n\t\t);\n\t}\n\n\tpublic async getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null> {\n\t\tconst tree = await this.internalStorageService.getSnapshotTree(version);\n\t\tif (tree !== null) {\n\t\t\tthis._logTailSha =\n\t\t\t\t\".logTail\" in tree.trees ? tree.trees[\".logTail\"].blobs.logTail : undefined;\n\t\t}\n\t\treturn tree;\n\t}\n}\n"]}
@@ -3,7 +3,14 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { DriverError } from "@fluidframework/driver-definitions";
6
- export declare enum R11sErrorType {
6
+ /**
7
+ * Routerlicious Error types
8
+ * Different error types that may be thrown by the routerlicious driver
9
+ */
10
+ export declare enum RouterliciousErrorType {
11
+ /**
12
+ * File not found, or file deleted during session
13
+ */
7
14
  fileNotFoundOrAccessDeniedError = "fileNotFoundOrAccessDeniedError",
8
15
  sslCertError = "sslCertError"
9
16
  }
@@ -34,7 +41,7 @@ export interface IR11sSocketError {
34
41
  retryAfterMs?: number;
35
42
  }
36
43
  export interface IR11sError {
37
- readonly errorType: R11sErrorType;
44
+ readonly errorType: RouterliciousErrorType;
38
45
  readonly message: string;
39
46
  canRetry: boolean;
40
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AASjE,oBAAY,aAAa;IACrB,+BAA+B,oCAAoC;IACnE,YAAY,iBAAiB;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,oBAAY,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjD,wBAAgB,sBAAsB,CAClC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACtB,SAAS,CAgCX;AAED,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACtB,KAAK,CAQP;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAQpG"}
1
+ {"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AASjE;;;GAGG;AACH,oBAAY,sBAAsB;IACjC;;OAEG;IACH,+BAA+B,oCAAoC;IAEnE,YAAY,iBAAiB;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,oBAAY,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjD,wBAAgB,sBAAsB,CACrC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACnB,SAAS,CAsCX;AAED,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACnB,KAAK,CAKP;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,GACb,SAAS,CAIX"}
@@ -4,14 +4,21 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.errorObjectFromSocketError = exports.throwR11sNetworkError = exports.createR11sNetworkError = exports.R11sErrorType = void 0;
7
+ exports.errorObjectFromSocketError = exports.throwR11sNetworkError = exports.createR11sNetworkError = exports.RouterliciousErrorType = void 0;
8
8
  const driver_utils_1 = require("@fluidframework/driver-utils");
9
9
  const packageVersion_1 = require("./packageVersion");
10
- var R11sErrorType;
11
- (function (R11sErrorType) {
12
- R11sErrorType["fileNotFoundOrAccessDeniedError"] = "fileNotFoundOrAccessDeniedError";
13
- R11sErrorType["sslCertError"] = "sslCertError";
14
- })(R11sErrorType = exports.R11sErrorType || (exports.R11sErrorType = {}));
10
+ /**
11
+ * Routerlicious Error types
12
+ * Different error types that may be thrown by the routerlicious driver
13
+ */
14
+ var RouterliciousErrorType;
15
+ (function (RouterliciousErrorType) {
16
+ /**
17
+ * File not found, or file deleted during session
18
+ */
19
+ RouterliciousErrorType["fileNotFoundOrAccessDeniedError"] = "fileNotFoundOrAccessDeniedError";
20
+ RouterliciousErrorType["sslCertError"] = "sslCertError";
21
+ })(RouterliciousErrorType = exports.RouterliciousErrorType || (exports.RouterliciousErrorType = {}));
15
22
  function createR11sNetworkError(errorMessage, statusCode, retryAfterMs) {
16
23
  const props = { statusCode, driverVersion: packageVersion_1.pkgVersion };
17
24
  switch (statusCode) {
@@ -22,7 +29,7 @@ function createR11sNetworkError(errorMessage, statusCode, retryAfterMs) {
22
29
  // If there exists a self-signed SSL certificates error, throw a NonRetryableError
23
30
  // TODO: instead of relying on string matching, filter error based on the error code like we do for websocket connections
24
31
  if (errorMessage.includes("failed, reason: self signed certificate")) {
25
- return new driver_utils_1.NonRetryableError(errorMessage, R11sErrorType.sslCertError, props);
32
+ return new driver_utils_1.NonRetryableError(errorMessage, RouterliciousErrorType.sslCertError, props);
26
33
  }
27
34
  return new driver_utils_1.GenericNetworkError(errorMessage, errorMessage.startsWith("NetworkError"), props);
28
35
  case 401:
@@ -31,7 +38,7 @@ function createR11sNetworkError(errorMessage, statusCode, retryAfterMs) {
31
38
  case 403:
32
39
  return new driver_utils_1.AuthorizationError(errorMessage, undefined, undefined, props);
33
40
  case 404:
34
- const errorType = R11sErrorType.fileNotFoundOrAccessDeniedError;
41
+ const errorType = RouterliciousErrorType.fileNotFoundOrAccessDeniedError;
35
42
  return new driver_utils_1.NonRetryableError(errorMessage, errorType, props);
36
43
  case 429:
37
44
  return (0, driver_utils_1.createGenericNetworkError)(errorMessage, { canRetry: true, retryAfterMs }, props);
@@ -1 +1 @@
1
- {"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+DAKsC;AACtC,qDAA+D;AAE/D,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,oFAAmE,CAAA;IACnE,8CAA6B,CAAA;AACjC,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAwCD,SAAgB,sBAAsB,CAClC,YAAoB,EACpB,UAAmB,EACnB,YAAqB;IAErB,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,aAAa,EAAb,2BAAa,EAAE,CAAC;IAC5C,QAAQ,UAAU,EAAE;QAChB,KAAK,SAAS;YACV,kGAAkG;YAClG,wFAAwF;YACxF,8EAA8E;YAC9E,kFAAkF;YAClF,yHAAyH;YACzH,IAAI,YAAY,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE;gBAClE,OAAO,IAAI,gCAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aACjF;YACD,OAAO,IAAI,kCAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;QACjG,KAAK,GAAG,CAAC;QACL,wFAAwF;QACxF,2CAA2C;QAC/C,KAAK,GAAG;YACJ,OAAO,IAAI,iCAAkB,CACzB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,GAAG;YACJ,MAAM,SAAS,GAAG,aAAa,CAAC,+BAA+B,CAAC;YAChE,OAAO,IAAI,gCAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACjE,KAAK,GAAG;YACJ,OAAO,IAAA,wCAAyB,EAC5B,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/D,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACJ,OAAO,IAAI,kCAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9D;YACI,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,YAAY,KAAK,SAAS,EAAE,YAAY,EAAE,CAAC;YACzE,OAAO,IAAA,wCAAyB,EAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KACxE;AACL,CAAC;AApCD,wDAoCC;AAED,SAAgB,qBAAqB,CACjC,YAAoB,EACpB,UAAmB,EACnB,YAAqB;IAErB,MAAM,YAAY,GAAG,sBAAsB,CACvC,YAAY,EACZ,UAAU,EACV,YAAY,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,YAAY,CAAC;AACvB,CAAC;AAZD,sDAYC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CAAC,WAA6B,EAAE,OAAe;IACrF,iDAAiD;IACjD,MAAM,OAAO,GAAG,sBAAsB,OAAO,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IACzE,OAAO,sBAAsB,CACzB,OAAO,EACP,WAAW,CAAC,IAAI,EAChB,WAAW,CAAC,YAAY,CAC3B,CAAC;AACN,CAAC;AARD,gEAQC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DriverError } from \"@fluidframework/driver-definitions\";\nimport {\n NonRetryableError,\n GenericNetworkError,\n createGenericNetworkError,\n AuthorizationError,\n} from \"@fluidframework/driver-utils\";\nimport { pkgVersion as driverVersion } from \"./packageVersion\";\n\nexport enum R11sErrorType {\n fileNotFoundOrAccessDeniedError = \"fileNotFoundOrAccessDeniedError\",\n sslCertError = \"sslCertError\",\n}\n\n/**\n * Interface for error responses for the WebSocket connection\n * Intended to be compatible with output from {@link NetworkError.toJSON}\n */\nexport interface IR11sSocketError {\n /**\n * An error code number for the error that occurred.\n * It will be a valid HTTP status code.\n */\n code: number;\n\n /**\n * A message about the error that occurred for debugging / logging purposes.\n * This should not be displayed to the user directly.\n */\n message: string;\n\n /**\n * Optional Retry-After time in seconds.\n * The client should wait this many seconds before retrying its request.\n */\n retryAfter?: number;\n\n /**\n * Optional Retry-After time in milliseconds.\n * The client should wait this many milliseconds before retrying its request.\n */\n retryAfterMs?: number;\n}\n\nexport interface IR11sError {\n readonly errorType: R11sErrorType;\n readonly message: string;\n canRetry: boolean;\n}\n\nexport type R11sError = DriverError | IR11sError;\n\nexport function createR11sNetworkError(\n errorMessage: string,\n statusCode?: number,\n retryAfterMs?: number,\n): R11sError {\n const props = { statusCode, driverVersion };\n switch (statusCode) {\n case undefined:\n // If a service is temporarily down or a browser resource limit is reached, RestWrapper will throw\n // a network error with no status code (e.g. err:ERR_CONN_REFUSED or err:ERR_FAILED) and\n // the error message will start with NetworkError as defined in restWrapper.ts\n // If there exists a self-signed SSL certificates error, throw a NonRetryableError\n // TODO: instead of relying on string matching, filter error based on the error code like we do for websocket connections\n if (errorMessage.includes(\"failed, reason: self signed certificate\")) {\n return new NonRetryableError(errorMessage, R11sErrorType.sslCertError, props);\n }\n return new GenericNetworkError(errorMessage, errorMessage.startsWith(\"NetworkError\"), props);\n case 401:\n // The first 401 is manually retried in RouterliciousRestWrapper with a refreshed token,\n // so we treat repeat 401s the same as 403.\n case 403:\n return new AuthorizationError(\n errorMessage, undefined, undefined, props);\n case 404:\n const errorType = R11sErrorType.fileNotFoundOrAccessDeniedError;\n return new NonRetryableError(errorMessage, errorType, props);\n case 429:\n return createGenericNetworkError(\n errorMessage, { canRetry: true, retryAfterMs }, props);\n case 500:\n case 502:\n return new GenericNetworkError(errorMessage, true, props);\n default:\n const retryInfo = { canRetry: retryAfterMs !== undefined, retryAfterMs };\n return createGenericNetworkError(errorMessage, retryInfo, props);\n }\n}\n\nexport function throwR11sNetworkError(\n errorMessage: string,\n statusCode?: number,\n retryAfterMs?: number,\n): never {\n const networkError = createR11sNetworkError(\n errorMessage,\n statusCode,\n retryAfterMs);\n\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw networkError;\n}\n\n/**\n * Returns network error based on error object from R11s socket (IR11sSocketError)\n */\nexport function errorObjectFromSocketError(socketError: IR11sSocketError, handler: string): R11sError {\n // pre-0.58 error message prefix: R11sSocketError\n const message = `R11s socket error (${handler}): ${socketError.message}`;\n return createR11sNetworkError(\n message,\n socketError.code,\n socketError.retryAfterMs,\n );\n}\n"]}
1
+ {"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+DAKsC;AACtC,qDAA+D;AAE/D;;;GAGG;AACH,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IACjC;;OAEG;IACH,6FAAmE,CAAA;IAEnE,uDAA6B,CAAA;AAC9B,CAAC,EAPW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QAOjC;AAwCD,SAAgB,sBAAsB,CACrC,YAAoB,EACpB,UAAmB,EACnB,YAAqB;IAErB,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,aAAa,EAAb,2BAAa,EAAE,CAAC;IAC5C,QAAQ,UAAU,EAAE;QACnB,KAAK,SAAS;YACb,kGAAkG;YAClG,wFAAwF;YACxF,8EAA8E;YAC9E,kFAAkF;YAClF,yHAAyH;YACzH,IAAI,YAAY,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE;gBACrE,OAAO,IAAI,gCAAiB,CAC3B,YAAY,EACZ,sBAAsB,CAAC,YAAY,EACnC,KAAK,CACL,CAAC;aACF;YACD,OAAO,IAAI,kCAAmB,CAC7B,YAAY,EACZ,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,EACvC,KAAK,CACL,CAAC;QACH,KAAK,GAAG,CAAC;QACT,wFAAwF;QACxF,2CAA2C;QAC3C,KAAK,GAAG;YACP,OAAO,IAAI,iCAAkB,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1E,KAAK,GAAG;YACP,MAAM,SAAS,GAAG,sBAAsB,CAAC,+BAA+B,CAAC;YACzE,OAAO,IAAI,gCAAiB,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC9D,KAAK,GAAG;YACP,OAAO,IAAA,wCAAyB,EAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,CAAC;QACzF,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACP,OAAO,IAAI,kCAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3D;YACC,MAAM,SAAS,GAAG,EAAE,QAAQ,EAAE,YAAY,KAAK,SAAS,EAAE,YAAY,EAAE,CAAC;YACzE,OAAO,IAAA,wCAAyB,EAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KAClE;AACF,CAAC;AA1CD,wDA0CC;AAED,SAAgB,qBAAqB,CACpC,YAAoB,EACpB,UAAmB,EACnB,YAAqB;IAErB,MAAM,YAAY,GAAG,sBAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAEpF,+DAA+D;IAC/D,MAAM,YAAY,CAAC;AACpB,CAAC;AATD,sDASC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACzC,WAA6B,EAC7B,OAAe;IAEf,iDAAiD;IACjD,MAAM,OAAO,GAAG,sBAAsB,OAAO,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;IACzE,OAAO,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;AACpF,CAAC;AAPD,gEAOC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { DriverError } from \"@fluidframework/driver-definitions\";\nimport {\n\tNonRetryableError,\n\tGenericNetworkError,\n\tcreateGenericNetworkError,\n\tAuthorizationError,\n} from \"@fluidframework/driver-utils\";\nimport { pkgVersion as driverVersion } from \"./packageVersion\";\n\n/**\n * Routerlicious Error types\n * Different error types that may be thrown by the routerlicious driver\n */\nexport enum RouterliciousErrorType {\n\t/**\n\t * File not found, or file deleted during session\n\t */\n\tfileNotFoundOrAccessDeniedError = \"fileNotFoundOrAccessDeniedError\",\n\n\tsslCertError = \"sslCertError\",\n}\n\n/**\n * Interface for error responses for the WebSocket connection\n * Intended to be compatible with output from {@link NetworkError.toJSON}\n */\nexport interface IR11sSocketError {\n\t/**\n\t * An error code number for the error that occurred.\n\t * It will be a valid HTTP status code.\n\t */\n\tcode: number;\n\n\t/**\n\t * A message about the error that occurred for debugging / logging purposes.\n\t * This should not be displayed to the user directly.\n\t */\n\tmessage: string;\n\n\t/**\n\t * Optional Retry-After time in seconds.\n\t * The client should wait this many seconds before retrying its request.\n\t */\n\tretryAfter?: number;\n\n\t/**\n\t * Optional Retry-After time in milliseconds.\n\t * The client should wait this many milliseconds before retrying its request.\n\t */\n\tretryAfterMs?: number;\n}\n\nexport interface IR11sError {\n\treadonly errorType: RouterliciousErrorType;\n\treadonly message: string;\n\tcanRetry: boolean;\n}\n\nexport type R11sError = DriverError | IR11sError;\n\nexport function createR11sNetworkError(\n\terrorMessage: string,\n\tstatusCode?: number,\n\tretryAfterMs?: number,\n): R11sError {\n\tconst props = { statusCode, driverVersion };\n\tswitch (statusCode) {\n\t\tcase undefined:\n\t\t\t// If a service is temporarily down or a browser resource limit is reached, RestWrapper will throw\n\t\t\t// a network error with no status code (e.g. err:ERR_CONN_REFUSED or err:ERR_FAILED) and\n\t\t\t// the error message will start with NetworkError as defined in restWrapper.ts\n\t\t\t// If there exists a self-signed SSL certificates error, throw a NonRetryableError\n\t\t\t// TODO: instead of relying on string matching, filter error based on the error code like we do for websocket connections\n\t\t\tif (errorMessage.includes(\"failed, reason: self signed certificate\")) {\n\t\t\t\treturn new NonRetryableError(\n\t\t\t\t\terrorMessage,\n\t\t\t\t\tRouterliciousErrorType.sslCertError,\n\t\t\t\t\tprops,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn new GenericNetworkError(\n\t\t\t\terrorMessage,\n\t\t\t\terrorMessage.startsWith(\"NetworkError\"),\n\t\t\t\tprops,\n\t\t\t);\n\t\tcase 401:\n\t\t// The first 401 is manually retried in RouterliciousRestWrapper with a refreshed token,\n\t\t// so we treat repeat 401s the same as 403.\n\t\tcase 403:\n\t\t\treturn new AuthorizationError(errorMessage, undefined, undefined, props);\n\t\tcase 404:\n\t\t\tconst errorType = RouterliciousErrorType.fileNotFoundOrAccessDeniedError;\n\t\t\treturn new NonRetryableError(errorMessage, errorType, props);\n\t\tcase 429:\n\t\t\treturn createGenericNetworkError(errorMessage, { canRetry: true, retryAfterMs }, props);\n\t\tcase 500:\n\t\tcase 502:\n\t\t\treturn new GenericNetworkError(errorMessage, true, props);\n\t\tdefault:\n\t\t\tconst retryInfo = { canRetry: retryAfterMs !== undefined, retryAfterMs };\n\t\t\treturn createGenericNetworkError(errorMessage, retryInfo, props);\n\t}\n}\n\nexport function throwR11sNetworkError(\n\terrorMessage: string,\n\tstatusCode?: number,\n\tretryAfterMs?: number,\n): never {\n\tconst networkError = createR11sNetworkError(errorMessage, statusCode, retryAfterMs);\n\n\t// eslint-disable-next-line @typescript-eslint/no-throw-literal\n\tthrow networkError;\n}\n\n/**\n * Returns network error based on error object from R11s socket (IR11sSocketError)\n */\nexport function errorObjectFromSocketError(\n\tsocketError: IR11sSocketError,\n\thandler: string,\n): R11sError {\n\t// pre-0.58 error message prefix: R11sSocketError\n\tconst message = `R11s socket error (${handler}): ${socketError.message}`;\n\treturn createR11sNetworkError(message, socketError.code, socketError.retryAfterMs);\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
  export { DefaultTokenProvider } from "./defaultTokenProvider";
6
6
  export { ITokenProvider, ITokenResponse, ITokenService } from "./tokens";
7
- export { DocumentPostCreateError, RouterliciousDocumentServiceFactory } from "./documentServiceFactory";
7
+ export { RouterliciousErrorType } from "./errorUtils";
8
+ export { DocumentPostCreateError, RouterliciousDocumentServiceFactory, } from "./documentServiceFactory";
8
9
  export { IRouterliciousDriverPolicies } from "./policies";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAC;AAGxG,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EACN,uBAAuB,EACvB,mCAAmC,GACnC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -4,10 +4,13 @@
4
4
  * Licensed under the MIT License.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.RouterliciousDocumentServiceFactory = exports.DocumentPostCreateError = exports.DefaultTokenProvider = void 0;
7
+ exports.RouterliciousDocumentServiceFactory = exports.DocumentPostCreateError = exports.RouterliciousErrorType = exports.DefaultTokenProvider = void 0;
8
8
  // Tokens
9
9
  var defaultTokenProvider_1 = require("./defaultTokenProvider");
10
10
  Object.defineProperty(exports, "DefaultTokenProvider", { enumerable: true, get: function () { return defaultTokenProvider_1.DefaultTokenProvider; } });
11
+ // Errors
12
+ var errorUtils_1 = require("./errorUtils");
13
+ Object.defineProperty(exports, "RouterliciousErrorType", { enumerable: true, get: function () { return errorUtils_1.RouterliciousErrorType; } });
11
14
  // Factory
12
15
  var documentServiceFactory_1 = require("./documentServiceFactory");
13
16
  Object.defineProperty(exports, "DocumentPostCreateError", { enumerable: true, get: function () { return documentServiceFactory_1.DocumentPostCreateError; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,SAAS;AACT,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAG7B,UAAU;AACV,mEAAwG;AAA/F,iIAAA,uBAAuB,OAAA;AAAE,6IAAA,mCAAmC,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Tokens\nexport { DefaultTokenProvider } from \"./defaultTokenProvider\";\nexport { ITokenProvider, ITokenResponse, ITokenService } from \"./tokens\";\n\n// Factory\nexport { DocumentPostCreateError, RouterliciousDocumentServiceFactory } from \"./documentServiceFactory\";\n\n// Configuration\nexport { IRouterliciousDriverPolicies } from \"./policies\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,SAAS;AACT,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAG7B,SAAS;AACT,2CAAsD;AAA7C,oHAAA,sBAAsB,OAAA;AAE/B,UAAU;AACV,mEAGkC;AAFjC,iIAAA,uBAAuB,OAAA;AACvB,6IAAA,mCAAmC,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Tokens\nexport { DefaultTokenProvider } from \"./defaultTokenProvider\";\nexport { ITokenProvider, ITokenResponse, ITokenService } from \"./tokens\";\n\n// Errors\nexport { RouterliciousErrorType } from \"./errorUtils\";\n\n// Factory\nexport {\n\tDocumentPostCreateError,\n\tRouterliciousDocumentServiceFactory,\n} from \"./documentServiceFactory\";\n\n// Configuration\nexport { IRouterliciousDriverPolicies } from \"./policies\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nullBlobStorageService.d.ts","sourceRoot":"","sources":["../src/nullBlobStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,GAAG,MAAM,sCAAsC,CAAC;AAE5D;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IAClE,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAI1E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAI7E,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9F,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAItE,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAGnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAGlE"}
1
+ {"version":3,"file":"nullBlobStorageService.d.ts","sourceRoot":"","sources":["../src/nullBlobStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,KAAK,GAAG,MAAM,sCAAsC,CAAC;AAE5D;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,uBAAuB;IACrE,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IAI1E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAI7E,wBAAwB,CACpC,OAAO,EAAE,GAAG,CAAC,YAAY,EACzB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC;IAIL,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAItE,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAGnE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAG/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"nullBlobStorageService.js","sourceRoot":"","sources":["../src/nullBlobStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH;;;GAGG;AACH,MAAa,sBAAsB;IAC/B,IAAW,aAAa;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAsB;QAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,SAAwB,EAAE,KAAa;QAC5D,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,wBAAwB,CAAC,OAAyB,EAAE,OAAwB;QACrF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAA0B;QACnD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAqB;QACzC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC9E,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,MAAc;QAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ;AA3BD,wDA2BC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentStorageService, ISummaryContext } from \"@fluidframework/driver-definitions\";\nimport * as api from \"@fluidframework/protocol-definitions\";\n\n/**\n * Document access to underlying storage. It is default implementation of a storage service.\n * Does not read/write anything.\n */\nexport class NullBlobStorageService implements IDocumentStorageService {\n public get repositoryUrl(): string {\n throw new Error(\"Invalid operation\");\n }\n\n public async getSnapshotTree(version?: api.IVersion): Promise<api.ISnapshotTree | null> {\n return version ? Promise.reject(new Error(\"Invalid operation\")) : null;\n }\n\n public async getVersions(versionId: string | null, count: number): Promise<api.IVersion[]> {\n return [];\n }\n\n public async uploadSummaryWithContext(summary: api.ISummaryTree, context: ISummaryContext): Promise<string> {\n return Promise.reject(new Error(\"Invalid operation\"));\n }\n\n public async downloadSummary(handle: api.ISummaryHandle): Promise<api.ISummaryTree> {\n return Promise.reject(new Error(\"Invalid operation\"));\n }\n\n public async createBlob(file: ArrayBufferLike): Promise<api.ICreateBlobResponse> {\n return Promise.reject(new Error(\"Null blob storage can not create blob\"));\n }\n public async readBlob(blobId: string): Promise<ArrayBufferLike> {\n return Promise.reject(new Error(\"Null blob storage can not read blob\"));\n }\n}\n"]}
1
+ {"version":3,"file":"nullBlobStorageService.js","sourceRoot":"","sources":["../src/nullBlobStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH;;;GAGG;AACH,MAAa,sBAAsB;IAClC,IAAW,aAAa;QACvB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAsB;QAClD,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,SAAwB,EAAE,KAAa;QAC/D,OAAO,EAAE,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACpC,OAAyB,EACzB,OAAwB;QAExB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,MAA0B;QACtD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,IAAqB;QAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAC3E,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,MAAc;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACzE,CAAC;CACD;AA9BD,wDA8BC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentStorageService, ISummaryContext } from \"@fluidframework/driver-definitions\";\nimport * as api from \"@fluidframework/protocol-definitions\";\n\n/**\n * Document access to underlying storage. It is default implementation of a storage service.\n * Does not read/write anything.\n */\nexport class NullBlobStorageService implements IDocumentStorageService {\n\tpublic get repositoryUrl(): string {\n\t\tthrow new Error(\"Invalid operation\");\n\t}\n\n\tpublic async getSnapshotTree(version?: api.IVersion): Promise<api.ISnapshotTree | null> {\n\t\treturn version ? Promise.reject(new Error(\"Invalid operation\")) : null;\n\t}\n\n\tpublic async getVersions(versionId: string | null, count: number): Promise<api.IVersion[]> {\n\t\treturn [];\n\t}\n\n\tpublic async uploadSummaryWithContext(\n\t\tsummary: api.ISummaryTree,\n\t\tcontext: ISummaryContext,\n\t): Promise<string> {\n\t\treturn Promise.reject(new Error(\"Invalid operation\"));\n\t}\n\n\tpublic async downloadSummary(handle: api.ISummaryHandle): Promise<api.ISummaryTree> {\n\t\treturn Promise.reject(new Error(\"Invalid operation\"));\n\t}\n\n\tpublic async createBlob(file: ArrayBufferLike): Promise<api.ICreateBlobResponse> {\n\t\treturn Promise.reject(new Error(\"Null blob storage can not create blob\"));\n\t}\n\tpublic async readBlob(blobId: string): Promise<ArrayBufferLike> {\n\t\treturn Promise.reject(new Error(\"Null blob storage can not read blob\"));\n\t}\n}\n"]}
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/routerlicious-driver";
8
- export declare const pkgVersion = "2.0.0-internal.3.0.0";
8
+ export declare const pkgVersion = "2.0.0-internal.3.1.0";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -8,5 +8,5 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.pkgVersion = exports.pkgName = void 0;
10
10
  exports.pkgName = "@fluidframework/routerlicious-driver";
11
- exports.pkgVersion = "2.0.0-internal.3.0.0";
11
+ exports.pkgVersion = "2.0.0-internal.3.1.0";
12
12
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,sCAAsC,CAAC;AACjD,QAAA,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/routerlicious-driver\";\nexport const pkgVersion = \"2.0.0-internal.3.0.0\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,sCAAsC,CAAC;AACjD,QAAA,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/routerlicious-driver\";\nexport const pkgVersion = \"2.0.0-internal.3.1.0\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,4BAA4B;IACzC;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;;;;OAMG;IACH,8BAA8B,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,4BAA4B,EAAE,OAAO,CAAC;CACzC"}
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,4BAA4B;IAC5C;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IACrC;;;;;;OAMG;IACH,8BAA8B,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,4BAA4B,EAAE,OAAO,CAAC;CACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport interface IRouterliciousDriverPolicies {\n /**\n * Enable prefetching entire snapshot tree into memory before it is loaded by the runtime.\n * Default: true\n */\n enablePrefetch: boolean;\n /**\n * Rate limit concurrent storage requests.\n * Default: 100\n */\n maxConcurrentStorageRequests: number;\n /**\n * Rate limit concurrent orderer requests.\n * Default: 100\n */\n maxConcurrentOrdererRequests: number;\n /**\n * Give hosts the option to change blob aggregation behavior to suit their needs.\n * Larger number means fewer blob individual requests, but less blob-deduping.\n * Smaller number means more blob individual requests, but more blob-deduping.\n * Setting to `undefined` disables blob aggregration.\n * Default: undefined\n */\n aggregateBlobsSmallerThanBytes: number | undefined;\n /**\n * Enable uploading entire summary tree as a IWholeSummaryPayload to storage.\n * Default: false\n */\n enableWholeSummaryUpload: boolean;\n /**\n * Enable service endpoint discovery when creating or joining a session.\n * Default: false\n */\n enableDiscovery?: boolean;\n /**\n * Enable using RestLess which avoids CORS preflight requests.\n * Default: true\n */\n enableRestLess: boolean;\n /**\n * Enable internal cache of summaries/snapshots.\n * Reduces Summarizer boot time and reduces server load in E2E tests.\n * Default: true\n */\n enableInternalSummaryCaching: boolean;\n}\n"]}
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport interface IRouterliciousDriverPolicies {\n\t/**\n\t * Enable prefetching entire snapshot tree into memory before it is loaded by the runtime.\n\t * Default: true\n\t */\n\tenablePrefetch: boolean;\n\t/**\n\t * Rate limit concurrent storage requests.\n\t * Default: 100\n\t */\n\tmaxConcurrentStorageRequests: number;\n\t/**\n\t * Rate limit concurrent orderer requests.\n\t * Default: 100\n\t */\n\tmaxConcurrentOrdererRequests: number;\n\t/**\n\t * Give hosts the option to change blob aggregation behavior to suit their needs.\n\t * Larger number means fewer blob individual requests, but less blob-deduping.\n\t * Smaller number means more blob individual requests, but more blob-deduping.\n\t * Setting to `undefined` disables blob aggregration.\n\t * Default: undefined\n\t */\n\taggregateBlobsSmallerThanBytes: number | undefined;\n\t/**\n\t * Enable uploading entire summary tree as a IWholeSummaryPayload to storage.\n\t * Default: false\n\t */\n\tenableWholeSummaryUpload: boolean;\n\t/**\n\t * Enable service endpoint discovery when creating or joining a session.\n\t * Default: false\n\t */\n\tenableDiscovery?: boolean;\n\t/**\n\t * Enable using RestLess which avoids CORS preflight requests.\n\t * Default: true\n\t */\n\tenableRestLess: boolean;\n\t/**\n\t * Enable internal cache of summaries/snapshots.\n\t * Reduces Summarizer boot time and reduces server load in E2E tests.\n\t * Default: true\n\t */\n\tenableInternalSummaryCaching: boolean;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"restWrapper.d.ts","sourceRoot":"","sources":["../src/restWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGH,WAAW,EACd,MAAM,wCAAwC,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,OAAO,CAAC;AAIrE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1D,aAAK,yBAAyB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC;AACnE,aAAK,YAAY,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAgBnE,qBAAa,wBAAyB,SAAQ,WAAW;IAKjD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IARhC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;gBAG7C,MAAM,EAAE,gBAAgB,EACP,WAAW,EAAE,WAAW,EACjC,KAAK,EAAE,cAAc,EACZ,mBAAmB,EAAE,YAAY,EACjC,sBAAsB,EAAE,yBAAyB,EACjD,WAAW,EAAE,OAAO,EACrC,OAAO,CAAC,EAAE,MAAM,EAChB,kBAAkB,GAAE,mBAAwB;cAKhC,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAmD9G,OAAO,CAAC,eAAe;IAchB,QAAQ,IAAI,cAAc;IAI1B,QAAQ,CAAC,KAAK,EAAE,cAAc;CAGxC;AAED,qBAAa,+BAAgC,SAAQ,wBAAwB;IACzE,OAAO;WAaa,IAAI,CACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,+BAA+B,CAAC;CAyC9C;AAED,qBAAa,+BAAgC,SAAQ,wBAAwB;IACzE,OAAO;WAaa,IAAI,CACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,+BAA+B,CAAC;CA+B9C"}
1
+ {"version":3,"file":"restWrapper.d.ts","sourceRoot":"","sources":["../src/restWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAGN,WAAW,EACX,MAAM,wCAAwC,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,OAAO,CAAC;AAIrE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1D,aAAK,yBAAyB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC;AACnE,aAAK,YAAY,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAmBnE,qBAAa,wBAAyB,SAAQ,WAAW;IAKvD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;gBAGhD,MAAM,EAAE,gBAAgB,EACP,WAAW,EAAE,WAAW,EACjC,KAAK,EAAE,cAAc,EACZ,mBAAmB,EAAE,YAAY,EACjC,sBAAsB,EAAE,yBAAyB,EACjD,WAAW,EAAE,OAAO,EACrC,OAAO,CAAC,EAAE,MAAM,EAChB,kBAAkB,GAAE,mBAAwB;cAK7B,OAAO,CAAC,CAAC,EACxB,aAAa,EAAE,kBAAkB,EACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,UAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAwDb,OAAO,CAAC,eAAe;IAgBhB,QAAQ,IAAI,cAAc;IAI1B,QAAQ,CAAC,KAAK,EAAE,cAAc;CAGrC;AAED,qBAAa,+BAAgC,SAAQ,wBAAwB;IAC5E,OAAO;WAsBa,IAAI,CACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,+BAA+B,CAAC;CAkD3C;AAED,qBAAa,+BAAgC,SAAQ,wBAAwB;IAC5E,OAAO;WAsBa,IAAI,CACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,cAAc,EAC7B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,OAAO,EACpB,OAAO,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,+BAA+B,CAAC;CAwC3C"}
@@ -45,8 +45,7 @@ class RouterliciousRestWrapper extends server_services_client_1.RestWrapper {
45
45
  const config = Object.assign(Object.assign({}, requestConfig), { headers: this.generateHeaders(requestConfig.headers) });
46
46
  const translatedConfig = this.useRestLess ? this.restLess.translate(config) : config;
47
47
  const fetchRequestConfig = axiosRequestConfigToFetchRequestConfig(translatedConfig);
48
- const response = await this.rateLimiter.schedule(async () => (0, cross_fetch_1.default)(...fetchRequestConfig)
49
- .catch(async (error) => {
48
+ const response = await this.rateLimiter.schedule(async () => (0, cross_fetch_1.default)(...fetchRequestConfig).catch(async (error) => {
50
49
  // Browser Fetch throws a TypeError on network error, `node-fetch` throws a FetchError
51
50
  const isNetworkError = ["TypeError", "FetchError"].includes(error === null || error === void 0 ? void 0 : error.name);
52
51
  (0, errorUtils_1.throwR11sNetworkError)(isNetworkError ? `NetworkError: ${error.message}` : (0, json_stringify_safe_1.default)(error));
@@ -68,13 +67,13 @@ class RouterliciousRestWrapper extends server_services_client_1.RestWrapper {
68
67
  if (response.status === 429 && (responseBody === null || responseBody === void 0 ? void 0 : responseBody.retryAfter) > 0) {
69
68
  // Retry based on retryAfter[Seconds]
70
69
  return new Promise((resolve, reject) => setTimeout(() => {
71
- this.request(config, statusCode)
72
- .then(resolve)
73
- .catch(reject);
70
+ this.request(config, statusCode).then(resolve).catch(reject);
74
71
  }, responseBody.retryAfter * 1000));
75
72
  }
76
73
  const responseSummary = responseBody !== undefined
77
- ? typeof responseBody === "string" ? responseBody : (0, json_stringify_safe_1.default)(responseBody)
74
+ ? typeof responseBody === "string"
75
+ ? responseBody
76
+ : (0, json_stringify_safe_1.default)(responseBody)
78
77
  : response.statusText;
79
78
  (0, errorUtils_1.throwR11sNetworkError)(`R11s fetch error: ${responseSummary}`, response.status, responseBody === null || responseBody === void 0 ? void 0 : responseBody.retryAfter);
80
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restWrapper.js","sourceRoot":"","sources":["../src/restWrapper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAOH,+DAAgE;AAEhE,mFAIgD;AAChD,qEAAmE;AACnE,8DAAgC;AAEhC,8EAAgD;AAChD,+BAAkC;AAClC,6CAAqD;AAErD,qDAA+D;AAK/D,MAAM,sCAAsC,GAAG,CAAC,aAAiC,EAA8B,EAAE;;IAC7G,MAAM,WAAW,GAAW,aAAa,CAAC,OAAO,KAAK,SAAS;QAC3D,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,MAAA,aAAa,CAAC,GAAG,mCAAI,EAAE,EAAE;QACtD,CAAC,CAAC,MAAA,aAAa,CAAC,GAAG,mCAAI,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAgB;QAC7B,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,oGAAoG;QACpG,qEAAqE;QACrE,OAAO,EAAE,aAAa,CAAC,OAAiC;QACxD,IAAI,EAAE,aAAa,CAAC,IAAI;KAC3B,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAa,wBAAyB,SAAQ,oCAAW;IAGrD,YACI,MAAwB,EACP,WAAwB,EACjC,KAAqB,EACZ,mBAAiC,EACjC,sBAAiD,EACjD,WAAoB,EACrC,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QARlB,gBAAW,GAAX,WAAW,CAAa;QACjC,UAAK,GAAL,KAAK,CAAgB;QACZ,wBAAmB,GAAnB,mBAAmB,CAAc;QACjC,2BAAsB,GAAtB,sBAAsB,CAA2B;QACjD,gBAAW,GAAX,WAAW,CAAS;QARxB,aAAQ,GAAG,IAAI,uCAAc,EAAE,CAAC;IAajD,CAAC;IAES,KAAK,CAAC,OAAO,CAAI,aAAiC,EAAE,UAAkB,EAAE,QAAQ,GAAG,IAAI;;QAC7F,MAAM,MAAM,mCACL,aAAa,KAChB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,GACvD,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrF,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,IAAA,qBAAK,EAAC,GAAG,kBAAkB,CAAC;aAC9F,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnB,sFAAsF;YACtF,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAC;YACzE,IAAA,kCAAqB,EACjB,cAAc,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,YAAY,GAAQ,CAAA,MAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,QAAQ,CAAC,kBAAkB,CAAC;YACxF,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE5B,UAAU;QACV,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;YAC/C,MAAM,MAAM,GAAM,YAAY,CAAC;YAC/B,OAAO,MAAM,CAAC;SACjB;QACD,UAAU;QACV,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE;YACrC,8CAA8C;YAC9C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SACrD;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,IAAG,CAAC,EAAE;YACzD,qCAAqC;YACrC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE;gBACvD,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,UAAU,CAAC;qBAC9B,IAAI,CAAC,OAAO,CAAC;qBACb,KAAK,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;SACvC;QAED,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS;YAC9C,CAAC,CAAC,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,YAAY,CAAC;YAC/E,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC1B,IAAA,kCAAqB,EACjB,qBAAqB,eAAe,EAAE,EACtC,QAAQ,CAAC,MAAM,EACf,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,CAC3B,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,cAAgD;;QACpE,MAAM,aAAa,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,kBAAkB,CAAC,mCAAI,IAAA,SAAI,GAAE,CAAC;QAErE,uCACO,cAAc;YACjB,2GAA2G;YAC3G,qDAAqD;YACrD,kBAAkB,EAAE,aAAuB,EAC3C,kBAAkB,EAAE,2BAAa;YACjC,8FAA8F;YAC9F,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IAC1D;IACN,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,KAAqB;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAxFD,4DAwFC;AAED,MAAa,+BAAgC,SAAQ,wBAAwB;IACzE,YACI,MAAwB,EACxB,WAAwB,EACxB,KAAqB,EACrB,UAAwB,EACxB,sBAAiD,EACjD,WAAoB,EACpB,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACpH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACpB,QAAgB,EAChB,UAAkB,EAClB,aAA6B,EAC7B,MAAwB,EACxB,WAAwB,EACxB,WAAoB,EACpB,OAAgB;QAEhB,MAAM,kBAAkB,GAAG;YACvB,KAAK,EAAE,GAAG,IAAA,+BAAgB,EAAC,QAAQ,CAAC,EAAE;SACzC,CAAC;QAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,YAAsB,EAA2B,EAAE;YAChF,OAAO,kCAAgB,CAAC,cAAc,CAClC,MAAM,EACN;gBACI,SAAS,EAAE,mBAAmB;gBAC9B,KAAK,EAAE,UAAU;aACpB,EACD,KAAK,IAAI,EAAE;gBACP,8CAA8C;gBAC9C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACtD,QAAQ,EACR,UAAU,EACV,YAAY,CACf,CAAC;gBAEF,OAAO,YAAY,CAAC;YACxB,CAAC,CACJ,CAAC;QACN,CAAC,CAAC;QAEF,MAAM,sBAAsB,GAA8B,CAAC,KAAqB,EAAU,EAAE;YACxF,MAAM,WAAW,GAAG;gBAChB,QAAQ,EAAE,KAAK,CAAC,GAAG;gBACnB,IAAI,EAAE,QAAQ;aACjB,CAAC;YACF,OAAO,IAAA,6DAAoC,EAAC,WAAW,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE/C,MAAM,WAAW,GAAG,IAAI,+BAA+B,CACnD,MAAM,EAAE,WAAW,EAAE,YAAY,EAC7B,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAE7F,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AA/DD,0EA+DC;AAED,MAAa,+BAAgC,SAAQ,wBAAwB;IACzE,YACI,MAAwB,EACxB,WAAwB,EACxB,KAAqB,EACrB,UAAwB,EACxB,sBAAiD,EACjD,WAAoB,EACpB,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACpH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACpB,QAAgB,EAChB,UAA8B,EAC9B,aAA6B,EAC7B,MAAwB,EACxB,WAAwB,EACxB,WAAoB,EACpB,OAAgB;QAEhB,MAAM,sBAAsB,GAA8B,CAAC,KAAqB,EAAU,EAAE;YACxF,OAAO,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,YAAsB,EAA2B,EAAE;YAChF,OAAO,kCAAgB,CAAC,cAAc,CAClC,MAAM,EACN;gBACI,SAAS,EAAE,mBAAmB;gBAC9B,KAAK,EAAE,UAAU;aACpB,EACD,KAAK,IAAI,EAAE;gBACP,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACtD,QAAQ,EACR,UAAU,EACV,YAAY,CACf,CAAC;gBAEF,OAAO,YAAY,CAAC;YACxB,CAAC,CACJ,CAAC;QACN,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,+BAA+B,CACnD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAEpG,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AArDD,0EAqDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Just using the type from a node.js module does not introduce a runtime dependency.\n// eslint-disable-next-line import/no-nodejs-modules\nimport type { ParsedUrlQueryInput } from \"querystring\";\n\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { fromUtf8ToBase64 } from \"@fluidframework/common-utils\";\nimport { RateLimiter } from \"@fluidframework/driver-utils\";\nimport {\n getAuthorizationTokenFromCredentials,\n RestLessClient,\n RestWrapper,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent } from \"@fluidframework/telemetry-utils\";\nimport fetch from \"cross-fetch\";\nimport type { AxiosRequestConfig, AxiosRequestHeaders } from \"axios\";\nimport safeStringify from \"json-stringify-safe\";\nimport { v4 as uuid } from \"uuid\";\nimport { throwR11sNetworkError } from \"./errorUtils\";\nimport { ITokenProvider, ITokenResponse } from \"./tokens\";\nimport { pkgVersion as driverVersion } from \"./packageVersion\";\n\ntype AuthorizationHeaderGetter = (token: ITokenResponse) => string;\ntype TokenFetcher = (refresh?: boolean) => Promise<ITokenResponse>;\n\nconst axiosRequestConfigToFetchRequestConfig = (requestConfig: AxiosRequestConfig): [RequestInfo, RequestInit] => {\n const requestInfo: string = requestConfig.baseURL !== undefined\n ? `${requestConfig.baseURL}${requestConfig.url ?? \"\"}`\n : requestConfig.url ?? \"\";\n const requestInit: RequestInit = {\n method: requestConfig.method,\n // NOTE: I believe that although the Axios type permits non-string values in the header, here we are\n // guaranteed the requestConfig only has string values in its header.\n headers: requestConfig.headers as Record<string, string>,\n body: requestConfig.data,\n };\n return [requestInfo, requestInit];\n};\n\nexport class RouterliciousRestWrapper extends RestWrapper {\n private readonly restLess = new RestLessClient();\n\n constructor(\n logger: ITelemetryLogger,\n private readonly rateLimiter: RateLimiter,\n private token: ITokenResponse,\n private readonly fetchRefreshedToken: TokenFetcher,\n private readonly getAuthorizationHeader: AuthorizationHeaderGetter,\n private readonly useRestLess: boolean,\n baseurl?: string,\n defaultQueryString: ParsedUrlQueryInput = {},\n ) {\n super(baseurl, defaultQueryString);\n }\n\n protected async request<T>(requestConfig: AxiosRequestConfig, statusCode: number, canRetry = true): Promise<T> {\n const config = {\n ...requestConfig,\n headers: this.generateHeaders(requestConfig.headers),\n };\n\n const translatedConfig = this.useRestLess ? this.restLess.translate(config) : config;\n const fetchRequestConfig = axiosRequestConfigToFetchRequestConfig(translatedConfig);\n\n const response: Response = await this.rateLimiter.schedule(async () => fetch(...fetchRequestConfig)\n .catch(async (error) => {\n // Browser Fetch throws a TypeError on network error, `node-fetch` throws a FetchError\n const isNetworkError = [\"TypeError\", \"FetchError\"].includes(error?.name);\n throwR11sNetworkError(\n isNetworkError ? `NetworkError: ${error.message}` : safeStringify(error));\n }));\n\n const responseBody: any = response.headers.get(\"content-type\")?.includes(\"application/json\")\n ? await response.json()\n : await response.text();\n\n // Success\n if (response.ok || response.status === statusCode) {\n const result: T = responseBody;\n return result;\n }\n // Failure\n if (response.status === 401 && canRetry) {\n // Refresh Authorization header and retry once\n this.token = await this.fetchRefreshedToken(true /* refreshToken */);\n return this.request<T>(config, statusCode, false);\n }\n if (response.status === 429 && responseBody?.retryAfter > 0) {\n // Retry based on retryAfter[Seconds]\n return new Promise<T>((resolve, reject) => setTimeout(() => {\n this.request<T>(config, statusCode)\n .then(resolve)\n .catch(reject);\n }, responseBody.retryAfter * 1000));\n }\n\n const responseSummary = responseBody !== undefined\n ? typeof responseBody === \"string\" ? responseBody : safeStringify(responseBody)\n : response.statusText;\n throwR11sNetworkError(\n `R11s fetch error: ${responseSummary}`,\n response.status,\n responseBody?.retryAfter,\n );\n }\n\n private generateHeaders(requestHeaders?: AxiosRequestHeaders | undefined): Record<string, string> {\n const correlationId = requestHeaders?.[\"x-correlation-id\"] ?? uuid();\n\n return {\n ...requestHeaders,\n // TODO: replace header names with CorrelationIdHeaderName and DriverVersionHeaderName from services-client\n // NOTE: Can correlationId actually be number | true?\n \"x-correlation-id\": correlationId as string,\n \"x-driver-version\": driverVersion,\n // NOTE: If this.authorizationHeader is undefined, should \"Authorization\" be removed entirely?\n \"Authorization\": this.getAuthorizationHeader(this.token),\n };\n }\n\n public getToken(): ITokenResponse {\n return this.token;\n }\n\n public setToken(token: ITokenResponse) {\n this.token = token;\n }\n}\n\nexport class RouterliciousStorageRestWrapper extends RouterliciousRestWrapper {\n private constructor(\n logger: ITelemetryLogger,\n rateLimiter: RateLimiter,\n token: ITokenResponse,\n fetchToken: TokenFetcher,\n getAuthorizationHeader: AuthorizationHeaderGetter,\n useRestLess: boolean,\n baseurl?: string,\n defaultQueryString: ParsedUrlQueryInput = {},\n ) {\n super(logger, rateLimiter, token, fetchToken, getAuthorizationHeader, useRestLess, baseurl, defaultQueryString);\n }\n\n public static async load(\n tenantId: string,\n documentId: string,\n tokenProvider: ITokenProvider,\n logger: ITelemetryLogger,\n rateLimiter: RateLimiter,\n useRestLess: boolean,\n baseurl?: string,\n ): Promise<RouterliciousStorageRestWrapper> {\n const defaultQueryString = {\n token: `${fromUtf8ToBase64(tenantId)}`,\n };\n\n const fetchStorageToken = async (refreshToken?: boolean): Promise<ITokenResponse> => {\n return PerformanceEvent.timedExecAsync(\n logger,\n {\n eventName: \"FetchStorageToken\",\n docId: documentId,\n },\n async () => {\n // Craft credentials using tenant id and token\n const storageToken = await tokenProvider.fetchStorageToken(\n tenantId,\n documentId,\n refreshToken\n );\n\n return storageToken;\n }\n );\n };\n\n const getAuthorizationHeader: AuthorizationHeaderGetter = (token: ITokenResponse): string => {\n const credentials = {\n password: token.jwt,\n user: tenantId,\n };\n return getAuthorizationTokenFromCredentials(credentials);\n };\n\n const storagetoken = await fetchStorageToken();\n\n const restWrapper = new RouterliciousStorageRestWrapper(\n logger, rateLimiter, storagetoken, \n fetchStorageToken, getAuthorizationHeader, useRestLess, baseurl, defaultQueryString);\n\n return restWrapper;\n }\n}\n\nexport class RouterliciousOrdererRestWrapper extends RouterliciousRestWrapper {\n private constructor(\n logger: ITelemetryLogger,\n rateLimiter: RateLimiter,\n token: ITokenResponse,\n fetchToken: TokenFetcher,\n getAuthorizationHeader: AuthorizationHeaderGetter,\n useRestLess: boolean,\n baseurl?: string,\n defaultQueryString: ParsedUrlQueryInput = {},\n ) {\n super(logger, rateLimiter, token, fetchToken, getAuthorizationHeader, useRestLess, baseurl, defaultQueryString);\n }\n\n public static async load(\n tenantId: string,\n documentId: string | undefined,\n tokenProvider: ITokenProvider,\n logger: ITelemetryLogger,\n rateLimiter: RateLimiter,\n useRestLess: boolean,\n baseurl?: string,\n ): Promise<RouterliciousOrdererRestWrapper> {\n const getAuthorizationHeader: AuthorizationHeaderGetter = (token: ITokenResponse): string => {\n return `Basic ${token.jwt}`;\n };\n\n const fetchOrdererToken = async (refreshToken?: boolean): Promise<ITokenResponse> => {\n return PerformanceEvent.timedExecAsync(\n logger,\n {\n eventName: \"FetchOrdererToken\",\n docId: documentId,\n },\n async () => {\n const ordererToken = await tokenProvider.fetchOrdererToken(\n tenantId,\n documentId,\n refreshToken,\n );\n\n return ordererToken;\n }\n );\n };\n\n const newtoken = await fetchOrdererToken();\n\n const restWrapper = new RouterliciousOrdererRestWrapper(\n logger, rateLimiter, newtoken, fetchOrdererToken, getAuthorizationHeader, useRestLess, baseurl);\n\n return restWrapper;\n }\n}\n"]}
1
+ {"version":3,"file":"restWrapper.js","sourceRoot":"","sources":["../src/restWrapper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAOH,+DAAgE;AAEhE,mFAIgD;AAChD,qEAAmE;AACnE,8DAAgC;AAEhC,8EAAgD;AAChD,+BAAkC;AAClC,6CAAqD;AAErD,qDAA+D;AAK/D,MAAM,sCAAsC,GAAG,CAC9C,aAAiC,EACJ,EAAE;;IAC/B,MAAM,WAAW,GAChB,aAAa,CAAC,OAAO,KAAK,SAAS;QAClC,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,MAAA,aAAa,CAAC,GAAG,mCAAI,EAAE,EAAE;QACtD,CAAC,CAAC,MAAA,aAAa,CAAC,GAAG,mCAAI,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAgB;QAChC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,oGAAoG;QACpG,qEAAqE;QACrE,OAAO,EAAE,aAAa,CAAC,OAAiC;QACxD,IAAI,EAAE,aAAa,CAAC,IAAI;KACxB,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAa,wBAAyB,SAAQ,oCAAW;IAGxD,YACC,MAAwB,EACP,WAAwB,EACjC,KAAqB,EACZ,mBAAiC,EACjC,sBAAiD,EACjD,WAAoB,EACrC,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QARlB,gBAAW,GAAX,WAAW,CAAa;QACjC,UAAK,GAAL,KAAK,CAAgB;QACZ,wBAAmB,GAAnB,mBAAmB,CAAc;QACjC,2BAAsB,GAAtB,sBAAsB,CAA2B;QACjD,gBAAW,GAAX,WAAW,CAAS;QARrB,aAAQ,GAAG,IAAI,uCAAc,EAAE,CAAC;IAajD,CAAC;IAES,KAAK,CAAC,OAAO,CACtB,aAAiC,EACjC,UAAkB,EAClB,QAAQ,GAAG,IAAI;;QAEf,MAAM,MAAM,mCACR,aAAa,KAChB,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,GACpD,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACrF,MAAM,kBAAkB,GAAG,sCAAsC,CAAC,gBAAgB,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CACrE,IAAA,qBAAK,EAAC,GAAG,kBAAkB,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClD,sFAAsF;YACtF,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAC;YACzE,IAAA,kCAAqB,EACpB,cAAc,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,KAAK,CAAC,CACxE,CAAC;QACH,CAAC,CAAC,CACF,CAAC;QAEF,MAAM,YAAY,GAAQ,CAAA,MAAA,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,QAAQ,CAAC,kBAAkB,CAAC;YAC3F,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEzB,UAAU;QACV,IAAI,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;YAClD,MAAM,MAAM,GAAM,YAAY,CAAC;YAC/B,OAAO,MAAM,CAAC;SACd;QACD,UAAU;QACV,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE;YACxC,8CAA8C;YAC9C,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SAClD;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,IAAG,CAAC,EAAE;YAC5D,qCAAqC;YACrC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACzC,UAAU,CAAC,GAAG,EAAE;gBACf,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACjE,CAAC,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,CAClC,CAAC;SACF;QAED,MAAM,eAAe,GACpB,YAAY,KAAK,SAAS;YACzB,CAAC,CAAC,OAAO,YAAY,KAAK,QAAQ;gBACjC,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAA,6BAAa,EAAC,YAAY,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QACxB,IAAA,kCAAqB,EACpB,qBAAqB,eAAe,EAAE,EACtC,QAAQ,CAAC,MAAM,EACf,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,CACxB,CAAC;IACH,CAAC;IAEO,eAAe,CACtB,cAAgD;;QAEhD,MAAM,aAAa,GAAG,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,kBAAkB,CAAC,mCAAI,IAAA,SAAI,GAAE,CAAC;QAErE,uCACI,cAAc;YACjB,2GAA2G;YAC3G,qDAAqD;YACrD,kBAAkB,EAAE,aAAuB,EAC3C,kBAAkB,EAAE,2BAAa;YACjC,8FAA8F;YAC9F,eAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,IACvD;IACH,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEM,QAAQ,CAAC,KAAqB;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD;AAnGD,4DAmGC;AAED,MAAa,+BAAgC,SAAQ,wBAAwB;IAC5E,YACC,MAAwB,EACxB,WAAwB,EACxB,KAAqB,EACrB,UAAwB,EACxB,sBAAiD,EACjD,WAAoB,EACpB,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CACJ,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,OAAO,EACP,kBAAkB,CAClB,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACvB,QAAgB,EAChB,UAAkB,EAClB,aAA6B,EAC7B,MAAwB,EACxB,WAAwB,EACxB,WAAoB,EACpB,OAAgB;QAEhB,MAAM,kBAAkB,GAAG;YAC1B,KAAK,EAAE,GAAG,IAAA,+BAAgB,EAAC,QAAQ,CAAC,EAAE;SACtC,CAAC;QAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,YAAsB,EAA2B,EAAE;YACnF,OAAO,kCAAgB,CAAC,cAAc,CACrC,MAAM,EACN;gBACC,SAAS,EAAE,mBAAmB;gBAC9B,KAAK,EAAE,UAAU;aACjB,EACD,KAAK,IAAI,EAAE;gBACV,8CAA8C;gBAC9C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACzD,QAAQ,EACR,UAAU,EACV,YAAY,CACZ,CAAC;gBAEF,OAAO,YAAY,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,sBAAsB,GAA8B,CACzD,KAAqB,EACZ,EAAE;YACX,MAAM,WAAW,GAAG;gBACnB,QAAQ,EAAE,KAAK,CAAC,GAAG;gBACnB,IAAI,EAAE,QAAQ;aACd,CAAC;YACF,OAAO,IAAA,6DAAoC,EAAC,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE/C,MAAM,WAAW,GAAG,IAAI,+BAA+B,CACtD,MAAM,EACN,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,OAAO,EACP,kBAAkB,CAClB,CAAC;QAEF,OAAO,WAAW,CAAC;IACpB,CAAC;CACD;AAjFD,0EAiFC;AAED,MAAa,+BAAgC,SAAQ,wBAAwB;IAC5E,YACC,MAAwB,EACxB,WAAwB,EACxB,KAAqB,EACrB,UAAwB,EACxB,sBAAiD,EACjD,WAAoB,EACpB,OAAgB,EAChB,qBAA0C,EAAE;QAE5C,KAAK,CACJ,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,OAAO,EACP,kBAAkB,CAClB,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CACvB,QAAgB,EAChB,UAA8B,EAC9B,aAA6B,EAC7B,MAAwB,EACxB,WAAwB,EACxB,WAAoB,EACpB,OAAgB;QAEhB,MAAM,sBAAsB,GAA8B,CACzD,KAAqB,EACZ,EAAE;YACX,OAAO,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,YAAsB,EAA2B,EAAE;YACnF,OAAO,kCAAgB,CAAC,cAAc,CACrC,MAAM,EACN;gBACC,SAAS,EAAE,mBAAmB;gBAC9B,KAAK,EAAE,UAAU;aACjB,EACD,KAAK,IAAI,EAAE;gBACV,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACzD,QAAQ,EACR,UAAU,EACV,YAAY,CACZ,CAAC;gBAEF,OAAO,YAAY,CAAC;YACrB,CAAC,CACD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,+BAA+B,CACtD,MAAM,EACN,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EACX,OAAO,CACP,CAAC;QAEF,OAAO,WAAW,CAAC;IACpB,CAAC;CACD;AAvED,0EAuEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n// Just using the type from a node.js module does not introduce a runtime dependency.\n// eslint-disable-next-line import/no-nodejs-modules\nimport type { ParsedUrlQueryInput } from \"querystring\";\n\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { fromUtf8ToBase64 } from \"@fluidframework/common-utils\";\nimport { RateLimiter } from \"@fluidframework/driver-utils\";\nimport {\n\tgetAuthorizationTokenFromCredentials,\n\tRestLessClient,\n\tRestWrapper,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent } from \"@fluidframework/telemetry-utils\";\nimport fetch from \"cross-fetch\";\nimport type { AxiosRequestConfig, AxiosRequestHeaders } from \"axios\";\nimport safeStringify from \"json-stringify-safe\";\nimport { v4 as uuid } from \"uuid\";\nimport { throwR11sNetworkError } from \"./errorUtils\";\nimport { ITokenProvider, ITokenResponse } from \"./tokens\";\nimport { pkgVersion as driverVersion } from \"./packageVersion\";\n\ntype AuthorizationHeaderGetter = (token: ITokenResponse) => string;\ntype TokenFetcher = (refresh?: boolean) => Promise<ITokenResponse>;\n\nconst axiosRequestConfigToFetchRequestConfig = (\n\trequestConfig: AxiosRequestConfig,\n): [RequestInfo, RequestInit] => {\n\tconst requestInfo: string =\n\t\trequestConfig.baseURL !== undefined\n\t\t\t? `${requestConfig.baseURL}${requestConfig.url ?? \"\"}`\n\t\t\t: requestConfig.url ?? \"\";\n\tconst requestInit: RequestInit = {\n\t\tmethod: requestConfig.method,\n\t\t// NOTE: I believe that although the Axios type permits non-string values in the header, here we are\n\t\t// guaranteed the requestConfig only has string values in its header.\n\t\theaders: requestConfig.headers as Record<string, string>,\n\t\tbody: requestConfig.data,\n\t};\n\treturn [requestInfo, requestInit];\n};\n\nexport class RouterliciousRestWrapper extends RestWrapper {\n\tprivate readonly restLess = new RestLessClient();\n\n\tconstructor(\n\t\tlogger: ITelemetryLogger,\n\t\tprivate readonly rateLimiter: RateLimiter,\n\t\tprivate token: ITokenResponse,\n\t\tprivate readonly fetchRefreshedToken: TokenFetcher,\n\t\tprivate readonly getAuthorizationHeader: AuthorizationHeaderGetter,\n\t\tprivate readonly useRestLess: boolean,\n\t\tbaseurl?: string,\n\t\tdefaultQueryString: ParsedUrlQueryInput = {},\n\t) {\n\t\tsuper(baseurl, defaultQueryString);\n\t}\n\n\tprotected async request<T>(\n\t\trequestConfig: AxiosRequestConfig,\n\t\tstatusCode: number,\n\t\tcanRetry = true,\n\t): Promise<T> {\n\t\tconst config = {\n\t\t\t...requestConfig,\n\t\t\theaders: this.generateHeaders(requestConfig.headers),\n\t\t};\n\n\t\tconst translatedConfig = this.useRestLess ? this.restLess.translate(config) : config;\n\t\tconst fetchRequestConfig = axiosRequestConfigToFetchRequestConfig(translatedConfig);\n\n\t\tconst response: Response = await this.rateLimiter.schedule(async () =>\n\t\t\tfetch(...fetchRequestConfig).catch(async (error) => {\n\t\t\t\t// Browser Fetch throws a TypeError on network error, `node-fetch` throws a FetchError\n\t\t\t\tconst isNetworkError = [\"TypeError\", \"FetchError\"].includes(error?.name);\n\t\t\t\tthrowR11sNetworkError(\n\t\t\t\t\tisNetworkError ? `NetworkError: ${error.message}` : safeStringify(error),\n\t\t\t\t);\n\t\t\t}),\n\t\t);\n\n\t\tconst responseBody: any = response.headers.get(\"content-type\")?.includes(\"application/json\")\n\t\t\t? await response.json()\n\t\t\t: await response.text();\n\n\t\t// Success\n\t\tif (response.ok || response.status === statusCode) {\n\t\t\tconst result: T = responseBody;\n\t\t\treturn result;\n\t\t}\n\t\t// Failure\n\t\tif (response.status === 401 && canRetry) {\n\t\t\t// Refresh Authorization header and retry once\n\t\t\tthis.token = await this.fetchRefreshedToken(true /* refreshToken */);\n\t\t\treturn this.request<T>(config, statusCode, false);\n\t\t}\n\t\tif (response.status === 429 && responseBody?.retryAfter > 0) {\n\t\t\t// Retry based on retryAfter[Seconds]\n\t\t\treturn new Promise<T>((resolve, reject) =>\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.request<T>(config, statusCode).then(resolve).catch(reject);\n\t\t\t\t}, responseBody.retryAfter * 1000),\n\t\t\t);\n\t\t}\n\n\t\tconst responseSummary =\n\t\t\tresponseBody !== undefined\n\t\t\t\t? typeof responseBody === \"string\"\n\t\t\t\t\t? responseBody\n\t\t\t\t\t: safeStringify(responseBody)\n\t\t\t\t: response.statusText;\n\t\tthrowR11sNetworkError(\n\t\t\t`R11s fetch error: ${responseSummary}`,\n\t\t\tresponse.status,\n\t\t\tresponseBody?.retryAfter,\n\t\t);\n\t}\n\n\tprivate generateHeaders(\n\t\trequestHeaders?: AxiosRequestHeaders | undefined,\n\t): Record<string, string> {\n\t\tconst correlationId = requestHeaders?.[\"x-correlation-id\"] ?? uuid();\n\n\t\treturn {\n\t\t\t...requestHeaders,\n\t\t\t// TODO: replace header names with CorrelationIdHeaderName and DriverVersionHeaderName from services-client\n\t\t\t// NOTE: Can correlationId actually be number | true?\n\t\t\t\"x-correlation-id\": correlationId as string,\n\t\t\t\"x-driver-version\": driverVersion,\n\t\t\t// NOTE: If this.authorizationHeader is undefined, should \"Authorization\" be removed entirely?\n\t\t\t\"Authorization\": this.getAuthorizationHeader(this.token),\n\t\t};\n\t}\n\n\tpublic getToken(): ITokenResponse {\n\t\treturn this.token;\n\t}\n\n\tpublic setToken(token: ITokenResponse) {\n\t\tthis.token = token;\n\t}\n}\n\nexport class RouterliciousStorageRestWrapper extends RouterliciousRestWrapper {\n\tprivate constructor(\n\t\tlogger: ITelemetryLogger,\n\t\trateLimiter: RateLimiter,\n\t\ttoken: ITokenResponse,\n\t\tfetchToken: TokenFetcher,\n\t\tgetAuthorizationHeader: AuthorizationHeaderGetter,\n\t\tuseRestLess: boolean,\n\t\tbaseurl?: string,\n\t\tdefaultQueryString: ParsedUrlQueryInput = {},\n\t) {\n\t\tsuper(\n\t\t\tlogger,\n\t\t\trateLimiter,\n\t\t\ttoken,\n\t\t\tfetchToken,\n\t\t\tgetAuthorizationHeader,\n\t\t\tuseRestLess,\n\t\t\tbaseurl,\n\t\t\tdefaultQueryString,\n\t\t);\n\t}\n\n\tpublic static async load(\n\t\ttenantId: string,\n\t\tdocumentId: string,\n\t\ttokenProvider: ITokenProvider,\n\t\tlogger: ITelemetryLogger,\n\t\trateLimiter: RateLimiter,\n\t\tuseRestLess: boolean,\n\t\tbaseurl?: string,\n\t): Promise<RouterliciousStorageRestWrapper> {\n\t\tconst defaultQueryString = {\n\t\t\ttoken: `${fromUtf8ToBase64(tenantId)}`,\n\t\t};\n\n\t\tconst fetchStorageToken = async (refreshToken?: boolean): Promise<ITokenResponse> => {\n\t\t\treturn PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger,\n\t\t\t\t{\n\t\t\t\t\teventName: \"FetchStorageToken\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\t// Craft credentials using tenant id and token\n\t\t\t\t\tconst storageToken = await tokenProvider.fetchStorageToken(\n\t\t\t\t\t\ttenantId,\n\t\t\t\t\t\tdocumentId,\n\t\t\t\t\t\trefreshToken,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn storageToken;\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\tconst getAuthorizationHeader: AuthorizationHeaderGetter = (\n\t\t\ttoken: ITokenResponse,\n\t\t): string => {\n\t\t\tconst credentials = {\n\t\t\t\tpassword: token.jwt,\n\t\t\t\tuser: tenantId,\n\t\t\t};\n\t\t\treturn getAuthorizationTokenFromCredentials(credentials);\n\t\t};\n\n\t\tconst storagetoken = await fetchStorageToken();\n\n\t\tconst restWrapper = new RouterliciousStorageRestWrapper(\n\t\t\tlogger,\n\t\t\trateLimiter,\n\t\t\tstoragetoken,\n\t\t\tfetchStorageToken,\n\t\t\tgetAuthorizationHeader,\n\t\t\tuseRestLess,\n\t\t\tbaseurl,\n\t\t\tdefaultQueryString,\n\t\t);\n\n\t\treturn restWrapper;\n\t}\n}\n\nexport class RouterliciousOrdererRestWrapper extends RouterliciousRestWrapper {\n\tprivate constructor(\n\t\tlogger: ITelemetryLogger,\n\t\trateLimiter: RateLimiter,\n\t\ttoken: ITokenResponse,\n\t\tfetchToken: TokenFetcher,\n\t\tgetAuthorizationHeader: AuthorizationHeaderGetter,\n\t\tuseRestLess: boolean,\n\t\tbaseurl?: string,\n\t\tdefaultQueryString: ParsedUrlQueryInput = {},\n\t) {\n\t\tsuper(\n\t\t\tlogger,\n\t\t\trateLimiter,\n\t\t\ttoken,\n\t\t\tfetchToken,\n\t\t\tgetAuthorizationHeader,\n\t\t\tuseRestLess,\n\t\t\tbaseurl,\n\t\t\tdefaultQueryString,\n\t\t);\n\t}\n\n\tpublic static async load(\n\t\ttenantId: string,\n\t\tdocumentId: string | undefined,\n\t\ttokenProvider: ITokenProvider,\n\t\tlogger: ITelemetryLogger,\n\t\trateLimiter: RateLimiter,\n\t\tuseRestLess: boolean,\n\t\tbaseurl?: string,\n\t): Promise<RouterliciousOrdererRestWrapper> {\n\t\tconst getAuthorizationHeader: AuthorizationHeaderGetter = (\n\t\t\ttoken: ITokenResponse,\n\t\t): string => {\n\t\t\treturn `Basic ${token.jwt}`;\n\t\t};\n\n\t\tconst fetchOrdererToken = async (refreshToken?: boolean): Promise<ITokenResponse> => {\n\t\t\treturn PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger,\n\t\t\t\t{\n\t\t\t\t\teventName: \"FetchOrdererToken\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\tconst ordererToken = await tokenProvider.fetchOrdererToken(\n\t\t\t\t\t\ttenantId,\n\t\t\t\t\t\tdocumentId,\n\t\t\t\t\t\trefreshToken,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn ordererToken;\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\tconst newtoken = await fetchOrdererToken();\n\n\t\tconst restWrapper = new RouterliciousOrdererRestWrapper(\n\t\t\tlogger,\n\t\t\trateLimiter,\n\t\t\tnewtoken,\n\t\t\tfetchOrdererToken,\n\t\t\tgetAuthorizationHeader,\n\t\t\tuseRestLess,\n\t\t\tbaseurl,\n\t\t);\n\n\t\treturn restWrapper;\n\t}\n}\n"]}
@@ -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,KAAK,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACtE,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,qBAAa,mBAAoB,YAAW,WAAW;IAErD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,kBAAkB,EAAE,WAAW,EAC/B,MAAM,EAAE,gBAAgB;IAG7B,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,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,CAAC,KAAK,EACzB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAOV,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;CAQ1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"retriableGitManager.js","sourceRoot":"","sources":["../src/retriableGitManager.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 type * as git from \"@fluidframework/gitresources\";\nimport type * as protocol from \"@fluidframework/protocol-definitions\";\nimport {\n IGitManager,\n IWholeFlatSummary,\n IWholeSummaryPayload,\n IWriteSummaryResponse,\n} from \"@fluidframework/server-services-client\";\nimport { runWithRetry } from \"@fluidframework/driver-utils\";\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\n\nexport class RetriableGitManager implements IGitManager {\n constructor(\n private readonly internalGitManager: IGitManager,\n private readonly logger: ITelemetryLogger,\n ) {\n }\n\n public async getHeader(id: string, sha: string): Promise<protocol.ISnapshotTree> {\n return this.runWithRetry(\n async () => this.internalGitManager.getHeader(id, sha),\n \"gitManager_getHeader\",\n );\n }\n\n public async getFullTree(sha: string): Promise<any> {\n return this.runWithRetry(\n async () => this.internalGitManager.getFullTree(sha),\n \"gitManager_getFullTree\",\n );\n }\n\n public async getCommit(sha: string): Promise<git.ICommit> {\n return this.runWithRetry(\n async () => this.internalGitManager.getCommit(sha),\n \"gitManager_getCommit\",\n );\n }\n\n public async getCommits(sha: string, count: number): Promise<git.ICommitDetails[]> {\n return this.runWithRetry(\n async () => this.internalGitManager.getCommits(sha, count),\n \"gitManager_getCommits\",\n );\n }\n\n public async getTree(root: string, recursive: boolean): Promise<git.ITree> {\n return this.runWithRetry(\n async () => this.internalGitManager.getTree(root, recursive),\n \"gitManager_getTree\",\n );\n }\n\n public async getBlob(sha: string): Promise<git.IBlob> {\n return this.runWithRetry(\n async () => this.internalGitManager.getBlob(sha),\n \"gitManager_getBlob\",\n );\n }\n\n public getRawUrl(sha: string): string {\n return this.internalGitManager.getRawUrl(sha);\n }\n\n public async getContent(commit: string, path: string): Promise<git.IBlob> {\n return this.runWithRetry(\n async () => this.internalGitManager.getContent(commit, path),\n \"gitManager_getContent\",\n );\n }\n\n public async createBlob(content: string, encoding: string): Promise<git.ICreateBlobResponse> {\n return this.runWithRetry(\n async () => this.internalGitManager.createBlob(content, encoding),\n \"gitManager_createBlob\",\n );\n }\n\n public async createGitTree(params: git.ICreateTreeParams): Promise<git.ITree> {\n return this.runWithRetry(\n async () => this.internalGitManager.createGitTree(params),\n \"gitManager_createGitTree\",\n );\n }\n\n public async createTree(files: protocol.ITree): Promise<git.ITree> {\n return this.runWithRetry(\n async () => this.internalGitManager.createTree(files),\n \"gitManager_createTree\",\n );\n }\n\n public async createCommit(commit: git.ICreateCommitParams): Promise<git.ICommit> {\n return this.runWithRetry(\n async () => this.internalGitManager.createCommit(commit),\n \"gitManager_createCommit\",\n );\n }\n\n public async getRef(ref: string): Promise<git.IRef> {\n return this.runWithRetry(\n async () => this.internalGitManager.getRef(ref),\n \"gitManager_getRef\",\n );\n }\n\n public async createRef(branch: string, sha: string): Promise<git.IRef> {\n return this.runWithRetry(\n async () => this.internalGitManager.createRef(branch, sha),\n \"gitManager_createRef\",\n );\n }\n\n public async upsertRef(branch: string, commitSha: string): Promise<git.IRef> {\n return this.runWithRetry(\n async () => this.internalGitManager.upsertRef(branch, commitSha),\n \"gitManager_upsertRef\",\n );\n }\n\n public async write(branch: string,\n inputTree: protocol.ITree,\n parents: string[],\n message: string): Promise<git.ICommit> {\n return this.runWithRetry(\n async () => this.internalGitManager.write(branch, inputTree, parents, message),\n \"gitManager_write\",\n );\n }\n\n public async createSummary(summary: IWholeSummaryPayload): Promise<IWriteSummaryResponse> {\n return this.runWithRetry(\n async () => this.internalGitManager.createSummary(summary),\n \"gitManager_createSummary\",\n );\n }\n\n public async deleteSummary(softDelete: boolean): Promise<void> {\n return this.runWithRetry(\n async () => this.internalGitManager.deleteSummary(softDelete),\n \"gitManager_deleteSummary\",\n );\n }\n\n public async getSummary(sha: string): Promise<IWholeFlatSummary> {\n return this.runWithRetry(\n async () => this.internalGitManager.getSummary(sha),\n \"gitManager_getSummary\",\n );\n }\n\n private async runWithRetry<T>(api: () => Promise<T>, callName: string): Promise<T> {\n return runWithRetry(\n api,\n callName,\n this.logger,\n {}, // progress\n );\n }\n}\n"]}
1
+ {"version":3,"file":"retriableGitManager.js","sourceRoot":"","sources":["../src/retriableGitManager.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 type * as git from \"@fluidframework/gitresources\";\nimport type * as protocol from \"@fluidframework/protocol-definitions\";\nimport {\n\tIGitManager,\n\tIWholeFlatSummary,\n\tIWholeSummaryPayload,\n\tIWriteSummaryResponse,\n} from \"@fluidframework/server-services-client\";\nimport { runWithRetry } from \"@fluidframework/driver-utils\";\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\n\nexport class RetriableGitManager implements IGitManager {\n\tconstructor(\n\t\tprivate readonly internalGitManager: IGitManager,\n\t\tprivate readonly logger: ITelemetryLogger,\n\t) {}\n\n\tpublic async getHeader(id: string, sha: string): Promise<protocol.ISnapshotTree> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getHeader(id, sha),\n\t\t\t\"gitManager_getHeader\",\n\t\t);\n\t}\n\n\tpublic async getFullTree(sha: string): Promise<any> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getFullTree(sha),\n\t\t\t\"gitManager_getFullTree\",\n\t\t);\n\t}\n\n\tpublic async getCommit(sha: string): Promise<git.ICommit> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getCommit(sha),\n\t\t\t\"gitManager_getCommit\",\n\t\t);\n\t}\n\n\tpublic async getCommits(sha: string, count: number): Promise<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<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<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 getRawUrl(sha: string): string {\n\t\treturn this.internalGitManager.getRawUrl(sha);\n\t}\n\n\tpublic async getContent(commit: string, path: string): Promise<git.IBlob> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getContent(commit, path),\n\t\t\t\"gitManager_getContent\",\n\t\t);\n\t}\n\n\tpublic async createBlob(content: string, encoding: string): Promise<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<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 createTree(files: protocol.ITree): Promise<git.ITree> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createTree(files),\n\t\t\t\"gitManager_createTree\",\n\t\t);\n\t}\n\n\tpublic async createCommit(commit: git.ICreateCommitParams): Promise<git.ICommit> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createCommit(commit),\n\t\t\t\"gitManager_createCommit\",\n\t\t);\n\t}\n\n\tpublic async getRef(ref: string): Promise<git.IRef> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getRef(ref),\n\t\t\t\"gitManager_getRef\",\n\t\t);\n\t}\n\n\tpublic async createRef(branch: string, sha: string): Promise<git.IRef> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.createRef(branch, sha),\n\t\t\t\"gitManager_createRef\",\n\t\t);\n\t}\n\n\tpublic async upsertRef(branch: string, commitSha: string): Promise<git.IRef> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.upsertRef(branch, commitSha),\n\t\t\t\"gitManager_upsertRef\",\n\t\t);\n\t}\n\n\tpublic async write(\n\t\tbranch: string,\n\t\tinputTree: protocol.ITree,\n\t\tparents: string[],\n\t\tmessage: string,\n\t): Promise<git.ICommit> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.write(branch, inputTree, parents, message),\n\t\t\t\"gitManager_write\",\n\t\t);\n\t}\n\n\tpublic async createSummary(summary: IWholeSummaryPayload): Promise<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 deleteSummary(softDelete: boolean): Promise<void> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.deleteSummary(softDelete),\n\t\t\t\"gitManager_deleteSummary\",\n\t\t);\n\t}\n\n\tpublic async getSummary(sha: string): Promise<IWholeFlatSummary> {\n\t\treturn this.runWithRetry(\n\t\t\tasync () => this.internalGitManager.getSummary(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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"shreddedSummaryDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/shreddedSummaryDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAK3E,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,+BAA+B,EAClC,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACH,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,UAAU,EAGb,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD;;;;GAIG;AACH,qBAAa,qCAAsC,YAAW,uBAAuB;IAqB7E,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM;IAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;aAC3B,QAAQ,EAAE,+BAA+B;IAIzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAzBtC,SAAS,CAAC,QAAQ,CAAC,aAAa,sBAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2C;IAE7E,IAAW,aAAa,IAAI,MAAM,CAEjC;YAEa,uBAAuB;gBAUd,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,+BAA+B,EACzD,cAAc,CAAC,EAAE,4BAA4B,EAC7C,SAAS,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC/B,iBAAiB,GAAE,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAA4B;IAQrG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqBzE,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAuCpE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2BlD,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1F,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAsB9D,uBAAuB;IAWrC,OAAO,CAAC,WAAW;CAGtB"}
1
+ {"version":3,"file":"shreddedSummaryDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/shreddedSummaryDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EACN,uBAAuB,EACvB,eAAe,EACf,+BAA+B,EAC/B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACN,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,UAAU,EAGV,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAEhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD;;;;GAIG;AACH,qBAAa,qCAAsC,YAAW,uBAAuB;IAqBnF,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM;IAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;aAC3B,QAAQ,EAAE,+BAA+B;IAIzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAzBnC,SAAS,CAAC,QAAQ,CAAC,aAAa,sBAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2C;IAE7E,IAAW,aAAa,IAAI,MAAM,CAEjC;YAEa,uBAAuB;gBAUjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,+BAA+B,EACzD,cAAc,CAAC,EAAE,4BAA4B,EAC7C,SAAS,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAC/B,iBAAiB,GAAE,CACnC,YAAY,CAAC,EAAE,OAAO,KAClB,OAAO,CAAC,UAAU,CAA4B;IAQvC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqBzE,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAyCpE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2BlD,wBAAwB,CACpC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC;IAqBL,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAqB9D,uBAAuB;IAYrC,OAAO,CAAC,WAAW;CAGnB"}
@@ -81,7 +81,10 @@ class ShreddedSummaryDocumentStorageService {
81
81
  return response;
82
82
  });
83
83
  const tree = (0, protocol_base_1.buildHierarchy)(rawTree, this.blobsShaCache, true);
84
- await ((_b = this.snapshotTreeCache) === null || _b === void 0 ? void 0 : _b.put(this.getCacheKey(tree.id), { id: requestVersion.id, snapshotTree: tree }));
84
+ await ((_b = this.snapshotTreeCache) === null || _b === void 0 ? void 0 : _b.put(this.getCacheKey(tree.id), {
85
+ id: requestVersion.id,
86
+ snapshotTree: tree,
87
+ }));
85
88
  return tree;
86
89
  }
87
90
  async readBlob(blobId) {
@@ -129,7 +132,9 @@ class ShreddedSummaryDocumentStorageService {
129
132
  size: uint8ArrayFile.length,
130
133
  }, async (event) => {
131
134
  const manager = await this.getStorageManager();
132
- const response = await manager.createBlob((0, common_utils_1.Uint8ArrayToString)(uint8ArrayFile, "base64"), "base64").then((r) => ({ id: r.sha, url: r.url }));
135
+ const response = await manager
136
+ .createBlob((0, common_utils_1.Uint8ArrayToString)(uint8ArrayFile, "base64"), "base64")
137
+ .then((r) => ({ id: r.sha, url: r.url }));
133
138
  event.end({
134
139
  blobId: response.id,
135
140
  });
@@ -138,8 +143,7 @@ class ShreddedSummaryDocumentStorageService {
138
143
  }
139
144
  async getPreviousFullSnapshot(parentHandle) {
140
145
  return parentHandle
141
- ? this.getVersions(parentHandle, 1)
142
- .then(async (versions) => {
146
+ ? this.getVersions(parentHandle, 1).then(async (versions) => {
143
147
  // Clear the cache as the getSnapshotTree call will fill the cache.
144
148
  this.blobsShaCache.clear();
145
149
  return this.getSnapshotTree(versions[0]);