@fluidframework/container-loader 2.118.0 → 3.0.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 (213) hide show
  1. package/CHANGELOG.md +74 -4
  2. package/README.md +53 -50
  3. package/{api-extractor.json → api-extractor/api-extractor-model.json} +1 -1
  4. package/api-report/container-loader.legacy.alpha.api.md +4 -3
  5. package/dist/attachment.d.ts.map +1 -1
  6. package/dist/audience.js +3 -2
  7. package/dist/audience.js.map +1 -1
  8. package/dist/captureReferencedContents.js +9 -9
  9. package/dist/captureReferencedContents.js.map +1 -1
  10. package/dist/catchUpMonitor.js +11 -8
  11. package/dist/catchUpMonitor.js.map +1 -1
  12. package/dist/connectionManager.d.ts.map +1 -1
  13. package/dist/connectionManager.js +86 -51
  14. package/dist/connectionManager.js.map +1 -1
  15. package/dist/connectionStateHandler.js +40 -14
  16. package/dist/connectionStateHandler.js.map +1 -1
  17. package/dist/container.d.ts +1 -1
  18. package/dist/container.d.ts.map +1 -1
  19. package/dist/container.js +193 -143
  20. package/dist/container.js.map +1 -1
  21. package/dist/containerContext.js +48 -11
  22. package/dist/containerContext.js.map +1 -1
  23. package/dist/containerStorageAdapter.js +25 -17
  24. package/dist/containerStorageAdapter.js.map +1 -1
  25. package/dist/contracts.d.ts.map +1 -1
  26. package/dist/createAndLoadContainerUtils.d.ts +34 -13
  27. package/dist/createAndLoadContainerUtils.d.ts.map +1 -1
  28. package/dist/createAndLoadContainerUtils.js +97 -37
  29. package/dist/createAndLoadContainerUtils.js.map +1 -1
  30. package/dist/debugLogger.d.ts +7 -22
  31. package/dist/debugLogger.d.ts.map +1 -1
  32. package/dist/debugLogger.js +34 -34
  33. package/dist/debugLogger.js.map +1 -1
  34. package/dist/deltaManager.d.ts +16 -4
  35. package/dist/deltaManager.d.ts.map +1 -1
  36. package/dist/deltaManager.js +73 -48
  37. package/dist/deltaManager.js.map +1 -1
  38. package/dist/deltaManagerFactory.d.ts +23 -0
  39. package/dist/deltaManagerFactory.d.ts.map +1 -0
  40. package/dist/deltaManagerFactory.js +17 -0
  41. package/dist/deltaManagerFactory.js.map +1 -0
  42. package/dist/deltaQueue.js +14 -7
  43. package/dist/deltaQueue.js.map +1 -1
  44. package/dist/disposal.js +1 -2
  45. package/dist/disposal.js.map +1 -1
  46. package/dist/error.js +5 -4
  47. package/dist/error.js.map +1 -1
  48. package/dist/frozenServices.d.ts +2 -2
  49. package/dist/frozenServices.d.ts.map +1 -1
  50. package/dist/frozenServices.js +52 -34
  51. package/dist/frozenServices.js.map +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/loadContainerToSequenceNumber.js +1 -2
  57. package/dist/loadContainerToSequenceNumber.js.map +1 -1
  58. package/dist/loadPaused.js +1 -2
  59. package/dist/loadPaused.js.map +1 -1
  60. package/dist/loader.js +5 -1
  61. package/dist/loader.js.map +1 -1
  62. package/dist/loaderLayerCompatState.d.ts +25 -1
  63. package/dist/loaderLayerCompatState.d.ts.map +1 -1
  64. package/dist/loaderLayerCompatState.js +79 -11
  65. package/dist/loaderLayerCompatState.js.map +1 -1
  66. package/dist/location-redirection-utilities/resolveWithLocationRedirection.js +2 -3
  67. package/dist/location-redirection-utilities/resolveWithLocationRedirection.js.map +1 -1
  68. package/dist/memoryBlobStorage.js +2 -3
  69. package/dist/memoryBlobStorage.js.map +1 -1
  70. package/dist/noopHeuristic.js +3 -1
  71. package/dist/noopHeuristic.js.map +1 -1
  72. package/dist/packageVersion.d.ts +1 -1
  73. package/dist/packageVersion.d.ts.map +1 -1
  74. package/dist/packageVersion.js +1 -1
  75. package/dist/packageVersion.js.map +1 -1
  76. package/dist/pendingLocalStateStore.d.ts +4 -3
  77. package/dist/pendingLocalStateStore.d.ts.map +1 -1
  78. package/dist/pendingLocalStateStore.js +26 -37
  79. package/dist/pendingLocalStateStore.js.map +1 -1
  80. package/dist/pointInTimeServices.js +4 -2
  81. package/dist/pointInTimeServices.js.map +1 -1
  82. package/dist/protocol/protocol.js +3 -0
  83. package/dist/protocol/protocol.js.map +1 -1
  84. package/dist/protocol/quorum.js +26 -5
  85. package/dist/protocol/quorum.js.map +1 -1
  86. package/dist/protocol.js +5 -3
  87. package/dist/protocol.js.map +1 -1
  88. package/dist/protocolTreeDocumentStorageService.js +10 -0
  89. package/dist/protocolTreeDocumentStorageService.js.map +1 -1
  90. package/dist/quorum.js +1 -2
  91. package/dist/quorum.js.map +1 -1
  92. package/dist/retriableDocumentStorageService.d.ts.map +1 -1
  93. package/dist/retriableDocumentStorageService.js +5 -1
  94. package/dist/retriableDocumentStorageService.js.map +1 -1
  95. package/dist/serializedStateManager.d.ts +6 -0
  96. package/dist/serializedStateManager.d.ts.map +1 -1
  97. package/dist/serializedStateManager.js +19 -24
  98. package/dist/serializedStateManager.js.map +1 -1
  99. package/dist/snapshotRefresher.js +31 -36
  100. package/dist/snapshotRefresher.js.map +1 -1
  101. package/dist/utils.d.ts +1 -1
  102. package/dist/utils.d.ts.map +1 -1
  103. package/dist/utils.js +13 -13
  104. package/dist/utils.js.map +1 -1
  105. package/lib/attachment.d.ts.map +1 -1
  106. package/lib/audience.js +3 -2
  107. package/lib/audience.js.map +1 -1
  108. package/lib/catchUpMonitor.js +11 -8
  109. package/lib/catchUpMonitor.js.map +1 -1
  110. package/lib/connectionManager.d.ts.map +1 -1
  111. package/lib/connectionManager.js +86 -51
  112. package/lib/connectionManager.js.map +1 -1
  113. package/lib/connectionStateHandler.js +37 -11
  114. package/lib/connectionStateHandler.js.map +1 -1
  115. package/lib/container.d.ts +1 -1
  116. package/lib/container.d.ts.map +1 -1
  117. package/lib/container.js +191 -141
  118. package/lib/container.js.map +1 -1
  119. package/lib/containerContext.js +48 -11
  120. package/lib/containerContext.js.map +1 -1
  121. package/lib/containerStorageAdapter.js +22 -14
  122. package/lib/containerStorageAdapter.js.map +1 -1
  123. package/lib/contracts.d.ts.map +1 -1
  124. package/lib/createAndLoadContainerUtils.d.ts +34 -13
  125. package/lib/createAndLoadContainerUtils.d.ts.map +1 -1
  126. package/lib/createAndLoadContainerUtils.js +93 -32
  127. package/lib/createAndLoadContainerUtils.js.map +1 -1
  128. package/lib/debugLogger.d.ts +7 -22
  129. package/lib/debugLogger.d.ts.map +1 -1
  130. package/lib/debugLogger.js +34 -33
  131. package/lib/debugLogger.js.map +1 -1
  132. package/lib/deltaManager.d.ts +16 -4
  133. package/lib/deltaManager.d.ts.map +1 -1
  134. package/lib/deltaManager.js +73 -48
  135. package/lib/deltaManager.js.map +1 -1
  136. package/lib/deltaManagerFactory.d.ts +23 -0
  137. package/lib/deltaManagerFactory.d.ts.map +1 -0
  138. package/lib/deltaManagerFactory.js +14 -0
  139. package/lib/deltaManagerFactory.js.map +1 -0
  140. package/lib/deltaQueue.js +14 -7
  141. package/lib/deltaQueue.js.map +1 -1
  142. package/lib/error.js +5 -4
  143. package/lib/error.js.map +1 -1
  144. package/lib/frozenServices.d.ts +2 -2
  145. package/lib/frozenServices.d.ts.map +1 -1
  146. package/lib/frozenServices.js +48 -30
  147. package/lib/frozenServices.js.map +1 -1
  148. package/lib/index.d.ts +1 -1
  149. package/lib/index.d.ts.map +1 -1
  150. package/lib/index.js +1 -1
  151. package/lib/index.js.map +1 -1
  152. package/lib/legacy.d.ts +1 -1
  153. package/lib/legacyAlpha.d.ts +1 -1
  154. package/lib/loader.js +6 -2
  155. package/lib/loader.js.map +1 -1
  156. package/lib/loaderLayerCompatState.d.ts +25 -1
  157. package/lib/loaderLayerCompatState.d.ts.map +1 -1
  158. package/lib/loaderLayerCompatState.js +76 -9
  159. package/lib/loaderLayerCompatState.js.map +1 -1
  160. package/lib/noopHeuristic.js +3 -1
  161. package/lib/noopHeuristic.js.map +1 -1
  162. package/lib/packageVersion.d.ts +1 -1
  163. package/lib/packageVersion.d.ts.map +1 -1
  164. package/lib/packageVersion.js +1 -1
  165. package/lib/packageVersion.js.map +1 -1
  166. package/lib/pendingLocalStateStore.d.ts +4 -3
  167. package/lib/pendingLocalStateStore.d.ts.map +1 -1
  168. package/lib/pendingLocalStateStore.js +26 -37
  169. package/lib/pendingLocalStateStore.js.map +1 -1
  170. package/lib/pointInTimeServices.js +2 -0
  171. package/lib/pointInTimeServices.js.map +1 -1
  172. package/lib/protocol/protocol.js +3 -0
  173. package/lib/protocol/protocol.js.map +1 -1
  174. package/lib/protocol/quorum.js +26 -5
  175. package/lib/protocol/quorum.js.map +1 -1
  176. package/lib/protocol.js +2 -0
  177. package/lib/protocol.js.map +1 -1
  178. package/lib/protocolTreeDocumentStorageService.js +10 -0
  179. package/lib/protocolTreeDocumentStorageService.js.map +1 -1
  180. package/lib/public.d.ts +1 -1
  181. package/lib/retriableDocumentStorageService.d.ts.map +1 -1
  182. package/lib/retriableDocumentStorageService.js +5 -1
  183. package/lib/retriableDocumentStorageService.js.map +1 -1
  184. package/lib/serializedStateManager.d.ts +6 -0
  185. package/lib/serializedStateManager.d.ts.map +1 -1
  186. package/lib/serializedStateManager.js +15 -20
  187. package/lib/serializedStateManager.js.map +1 -1
  188. package/lib/snapshotRefresher.js +31 -36
  189. package/lib/snapshotRefresher.js.map +1 -1
  190. package/lib/utils.d.ts +1 -1
  191. package/lib/utils.d.ts.map +1 -1
  192. package/lib/utils.js +3 -3
  193. package/lib/utils.js.map +1 -1
  194. package/package.json +44 -106
  195. package/src/container.ts +35 -22
  196. package/src/createAndLoadContainerUtils.ts +131 -46
  197. package/src/debugLogger.ts +39 -40
  198. package/src/deltaManager.ts +16 -4
  199. package/src/deltaManagerFactory.ts +53 -0
  200. package/src/frozenServices.ts +6 -7
  201. package/src/index.ts +1 -0
  202. package/src/loader.ts +2 -2
  203. package/src/loaderLayerCompatState.ts +85 -20
  204. package/src/packageVersion.ts +1 -1
  205. package/src/pendingLocalStateStore.ts +7 -3
  206. package/src/serializedStateManager.ts +6 -0
  207. package/src/utils.ts +3 -3
  208. package/tsconfig.json +1 -1
  209. package/internal.d.ts +0 -11
  210. package/legacy/alpha.d.ts +0 -11
  211. package/legacy.d.ts +0 -11
  212. /package/api-extractor/{api-extractor.current.json → api-extractor-report.current.json} +0 -0
  213. /package/api-extractor/{api-extractor.legacy.json → api-extractor-report.legacy.json} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"debugLogger.js","sourceRoot":"","sources":["../src/debugLogger.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 { performanceNow } from \"@fluid-internal/client-utils\";\nimport type {\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n\tITelemetryBaseProperties,\n} from \"@fluidframework/core-interfaces\";\nimport {\n\tcreateMultiSinkLogger,\n\teventNamespaceSeparator,\n\tformatTick,\n\ttype ITelemetryLoggerPropertyBags,\n\ttype TelemetryLoggerExt,\n} from \"@fluidframework/telemetry-utils/internal\";\n// This import style is necessary to ensure the emitted JS code works in both CJS and ESM.\nimport debugPkg from \"debug\";\nimport type { IDebugger } from \"debug\";\n\nconst { debug: registerDebug } = debugPkg;\n\n/**\n * Implementation of debug logger\n */\nexport class DebugLogger implements ITelemetryBaseLogger {\n\t/**\n\t * Mix in debug logger with another logger.\n\t * Returned logger will output events to both newly created debug logger, as well as base logger\n\t * @param namespace - Telemetry event name prefix to add to all events\n\t * @param properties - Base properties to add to all events\n\t * @param propertyGetters - Getters to add additional properties to all events\n\t * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.\n\t */\n\tpublic static mixinDebugLogger(\n\t\tnamespace: string,\n\t\tbaseLogger?: ITelemetryBaseLogger,\n\t\tproperties?: ITelemetryLoggerPropertyBags,\n\t): TelemetryLoggerExt {\n\t\t// Setup base logger upfront, such that host can disable it (if needed)\n\t\tconst debug = registerDebug(namespace);\n\n\t\t// Create one for errors that is always enabled\n\t\t// It can be silenced by replacing console.error if the debug namespace is not enabled.\n\t\tconst debugErr = registerDebug(namespace);\n\t\tdebugErr.log = function (...args: unknown[]): void {\n\t\t\tif (debug.enabled === true) {\n\t\t\t\t// if the namespace is enabled, just use the default logger\n\t\t\t\tregisterDebug.log(...args);\n\t\t\t} else {\n\t\t\t\t// other wise, use the console logger (which could be replaced and silenced)\n\t\t\t\tconsole.error(...args);\n\t\t\t}\n\t\t};\n\t\tdebugErr.enabled = true;\n\n\t\treturn createMultiSinkLogger({\n\t\t\tnamespace,\n\t\t\tloggers: [baseLogger, new DebugLogger(debug, debugErr)],\n\t\t\tproperties,\n\t\t\ttryInheritProperties: true,\n\t\t});\n\t}\n\n\tprivate constructor(\n\t\tprivate readonly debug: IDebugger,\n\t\tprivate readonly debugErr: IDebugger,\n\t) {}\n\n\t/**\n\t * Send an event to debug loggers\n\t *\n\t * @param event - the event to send\n\t */\n\tpublic send(event: ITelemetryBaseEvent): void {\n\t\tconst newEvent: ITelemetryBaseProperties = { ...event };\n\t\tconst isError = newEvent.category === \"error\";\n\t\tlet logger = isError ? this.debugErr : this.debug;\n\n\t\t// Use debug's coloring schema for base of the event\n\t\tconst index = event.eventName.lastIndexOf(eventNamespaceSeparator);\n\t\tconst name = event.eventName.slice(Math.max(0, index + 1));\n\t\tif (index > 0) {\n\t\t\tlogger = logger.extend(event.eventName.slice(0, index));\n\t\t}\n\t\tnewEvent.eventName = undefined;\n\n\t\tlet tick = \"\";\n\t\ttick = `tick=${formatTick(performanceNow())}`;\n\n\t\t// Extract stack to put it last, but also to avoid escaping '\\n' in it by JSON.stringify below\n\t\tconst stack = newEvent.stack ?? \"\";\n\t\tnewEvent.stack = undefined;\n\n\t\t// Watch out for circular references - they can come from two sources\n\t\t// 1) error object - we do not control it and should remove it and retry\n\t\t// 2) properties supplied by telemetry caller - that's a bug that should be addressed!\n\t\tlet payload: string;\n\t\ttry {\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t} catch {\n\t\t\tnewEvent.error = undefined;\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t}\n\n\t\tif (payload === \"{}\") {\n\t\t\tpayload = \"\";\n\t\t}\n\n\t\t// Force errors out, to help with diagnostics\n\t\tif (isError) {\n\t\t\tlogger.enabled = true;\n\t\t}\n\n\t\t// Print multi-line.\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\tlogger(`${name} ${payload} ${tick} ${stack}`);\n\t}\n}\n"]}
1
+ {"version":3,"file":"debugLogger.js","sourceRoot":"","sources":["../src/debugLogger.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAwFH,4CA4BC;AAlHD,+DAA8D;AAM9D,uEAMkD;AAClD,0FAA0F;AAC1F,kDAA6B;AAG7B,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,eAAQ,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW;IAEE;IACA;IAFlB,YACkB,KAAgB,EAChB,QAAmB;QADnB,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAAW;IAClC,CAAC;IAEJ;;;;OAIG;IACI,IAAI,CAAC,KAA0B;QACrC,MAAM,QAAQ,GAA6B,EAAE,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC;QAC9C,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAElD,oDAAoD;QACpD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,kCAAuB,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAE/B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,QAAQ,IAAA,qBAAU,EAAC,IAAA,6BAAc,GAAE,CAAC,EAAE,CAAC;QAE9C,8FAA8F;QAC9F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;QACnC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;QAE3B,qEAAqE;QACrE,wEAAwE;QACxE,sFAAsF;QACtF,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACJ,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,GAAG,EAAE,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,oBAAoB;QACpB,gEAAgE;QAChE,MAAM,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/C,CAAC;CACD;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC/B,SAAiB,EACjB,UAAiC,EACjC,UAAyC;IAEzC,uEAAuE;IACvE,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEvC,+CAA+C;IAC/C,uFAAuF;IACvF,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,QAAQ,CAAC,GAAG,GAAG,UAAU,GAAG,IAAe;QAC1C,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,2DAA2D;YAC3D,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,CAAC;IACF,CAAC,CAAC;IACF,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAExB,OAAO,IAAA,gCAAqB,EAAC;QAC5B,SAAS;QACT,OAAO,EAAE,CAAC,UAAU,EAAE,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvD,UAAU;QACV,oBAAoB,EAAE,IAAI;KAC1B,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { performanceNow } from \"@fluid-internal/client-utils\";\nimport type {\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n\tITelemetryBaseProperties,\n} from \"@fluidframework/core-interfaces\";\nimport {\n\tcreateMultiSinkLogger,\n\teventNamespaceSeparator,\n\tformatTick,\n\ttype ITelemetryLoggerPropertyBags,\n\ttype TelemetryLoggerExt,\n} from \"@fluidframework/telemetry-utils/internal\";\n// This import style is necessary to ensure the emitted JS code works in both CJS and ESM.\nimport debugPkg from \"debug\";\nimport type { IDebugger } from \"debug\";\n\nconst { debug: registerDebug } = debugPkg;\n\n/**\n * Implementation of debug logger\n */\nclass DebugLogger implements ITelemetryBaseLogger {\n\tpublic constructor(\n\t\tprivate readonly debug: IDebugger,\n\t\tprivate readonly debugErr: IDebugger,\n\t) {}\n\n\t/**\n\t * Send an event to debug loggers\n\t *\n\t * @param event - the event to send\n\t */\n\tpublic send(event: ITelemetryBaseEvent): void {\n\t\tconst newEvent: ITelemetryBaseProperties = { ...event };\n\t\tconst isError = newEvent.category === \"error\";\n\t\tlet logger = isError ? this.debugErr : this.debug;\n\n\t\t// Use debug's coloring schema for base of the event\n\t\tconst index = event.eventName.lastIndexOf(eventNamespaceSeparator);\n\t\tconst name = event.eventName.slice(Math.max(0, index + 1));\n\t\tif (index > 0) {\n\t\t\tlogger = logger.extend(event.eventName.slice(0, index));\n\t\t}\n\t\tnewEvent.eventName = undefined;\n\n\t\tlet tick = \"\";\n\t\ttick = `tick=${formatTick(performanceNow())}`;\n\n\t\t// Extract stack to put it last, but also to avoid escaping '\\n' in it by JSON.stringify below\n\t\tconst stack = newEvent.stack ?? \"\";\n\t\tnewEvent.stack = undefined;\n\n\t\t// Watch out for circular references - they can come from two sources\n\t\t// 1) error object - we do not control it and should remove it and retry\n\t\t// 2) properties supplied by telemetry caller - that's a bug that should be addressed!\n\t\tlet payload: string;\n\t\ttry {\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t} catch {\n\t\t\tnewEvent.error = undefined;\n\t\t\tpayload = JSON.stringify(newEvent);\n\t\t}\n\n\t\tif (payload === \"{}\") {\n\t\t\tpayload = \"\";\n\t\t}\n\n\t\t// Force errors out, to help with diagnostics\n\t\tif (isError) {\n\t\t\tlogger.enabled = true;\n\t\t}\n\n\t\t// Print multi-line.\n\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\tlogger(`${name} ${payload} ${tick} ${stack}`);\n\t}\n}\n\n/**\n * Mix in debug logger with another logger.\n * Returned logger will output events to both newly created debug logger, as well as base logger\n * @param namespace - Telemetry event name prefix to add to all events\n * @param baseLogger - Base logger to output events (in addition to debug logger being created). Can be undefined.\n * @param properties - Base properties to add to all events\n */\nexport function mixinDebugLogger(\n\tnamespace: string,\n\tbaseLogger?: ITelemetryBaseLogger,\n\tproperties?: ITelemetryLoggerPropertyBags,\n): TelemetryLoggerExt {\n\t// Setup base logger upfront, such that host can disable it (if needed)\n\tconst debug = registerDebug(namespace);\n\n\t// Create one for errors that is always enabled\n\t// It can be silenced by replacing console.error if the debug namespace is not enabled.\n\tconst debugErr = registerDebug(namespace);\n\tdebugErr.log = function (...args: unknown[]): void {\n\t\tif (debug.enabled === true) {\n\t\t\t// if the namespace is enabled, just use the default logger\n\t\t\tregisterDebug.log(...args);\n\t\t} else {\n\t\t\t// other wise, use the console logger (which could be replaced and silenced)\n\t\t\tconsole.error(...args);\n\t\t}\n\t};\n\tdebugErr.enabled = true;\n\n\treturn createMultiSinkLogger({\n\t\tnamespace,\n\t\tloggers: [baseLogger, new DebugLogger(debug, debugErr)],\n\t\tproperties,\n\t\ttryInheritProperties: true,\n\t});\n}\n"]}
@@ -126,10 +126,22 @@ export declare class DeltaManager<TConnectionManager extends IConnectionManager>
126
126
  private establishingConnection;
127
127
  private connectHandler;
128
128
  /**
129
- * Sets the sequence number from which inbound messages should be returned
130
- * @param snapshotSequenceNumber - The sequence number of the snapshot at which the document loaded from.
131
- * @param lastProcessedSequenceNumber - The last processed sequence number, for offline, it should be greater than the sequence number.
132
- * Setting lastProcessedSequenceNumber allows the DeltaManager to skip downloading and processing ops that have already been processed.
129
+ * Initializes sequence number tracking, attaches the handler for inbound ops and signals, and
130
+ * resumes the inbound queues.
131
+ *
132
+ * @param minSequenceNumber - The document's current minimum sequence number. This is used for client-side
133
+ * protocol validation.
134
+ * @param snapshotSequenceNumber - The sequence number of the snapshot from which the document
135
+ * was loaded.
136
+ * @param handler - The op/signal handler to attach.
137
+ * @param prefetchType - Controls how missing ops are fetched before the returned promise resolves:
138
+ * `"none"` does not initiate a fetch; `"all"` waits for all available missing ops from storage;
139
+ * and `"cached"` waits only for cached ops before continuing the remaining storage fetch in the
140
+ * background.
141
+ * @param lastProcessedSequenceNumber - The latest sequence number already reflected in the
142
+ * loaded state. It defaults to `snapshotSequenceNumber`. Offline loads may provide a later
143
+ * sequence number so the DeltaManager skips downloading and processing ops already included in
144
+ * that state.
133
145
  */
134
146
  attachOpHandler(minSequenceNumber: number, snapshotSequenceNumber: number, handler: IDeltaHandlerStrategy, prefetchType?: "cached" | "all" | "none", lastProcessedSequenceNumber?: number): Promise<void>;
135
147
  connect(args: IConnectionArgs): void;
@@ -1 +1 @@
1
- {"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deltaManager.d.ts","sourceRoot":"","sources":["../src/deltaManager.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,10 @@ function logIfFalse(condition, logger, event) {
56
56
  * messages in order regardless of possible network conditions or timings causing out of order delivery.
57
57
  */
58
58
  class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
59
+ serviceProvider;
60
+ logger;
61
+ _active;
62
+ connectionManager;
59
63
  get active() {
60
64
  return this._active();
61
65
  }
@@ -65,6 +69,59 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
65
69
  get IDeltaSender() {
66
70
  return this;
67
71
  }
72
+ pending = [];
73
+ fetchReason;
74
+ // A boolean used to assert that ops are not being sent while processing another op.
75
+ currentlyProcessingOps = false;
76
+ // The minimum sequence number and last sequence number received from the server
77
+ minSequenceNumber = 0;
78
+ // There are three numbers we track
79
+ // * lastQueuedSequenceNumber is the last queued sequence number. If there are gaps in seq numbers, then this number
80
+ // is not updated until we cover that gap, so it increases each time by 1.
81
+ // * lastObservedSeqNumber is an estimation of last known sequence number for container in storage. It's initially
82
+ // populated at web socket connection time (if storage provides that info) and is updated once ops shows up.
83
+ // It's never less than lastQueuedSequenceNumber
84
+ // * lastProcessedSequenceNumber - last processed sequence number
85
+ lastQueuedSequenceNumber = 0;
86
+ lastObservedSeqNumber = 0;
87
+ lastProcessedSequenceNumber = 0;
88
+ lastProcessedMessage;
89
+ /**
90
+ * Map of clientId to the last observed message from that client. This is used to validate
91
+ * that clientSequenceNumbers are always increasing for a given clientId.
92
+ */
93
+ lastObservedMessageByClient = new Map();
94
+ /**
95
+ * Count the number of noops sent by the client which may not be acked
96
+ */
97
+ noOpCount = 0;
98
+ /**
99
+ * Track clientSequenceNumber of the last op
100
+ */
101
+ lastClientSequenceNumber = 0;
102
+ /**
103
+ * Track down the ops size.
104
+ */
105
+ opsSize = 0;
106
+ prevEnqueueMessagesReason;
107
+ previouslyProcessedMessage;
108
+ // The sequence number we initially loaded from
109
+ // In case of reading from a snapshot or pending state, its value will be equal to
110
+ // the last message that got serialized.
111
+ initSequenceNumber = 0;
112
+ _inbound;
113
+ _inboundSignal;
114
+ _closed = false;
115
+ _disposed = false;
116
+ handler;
117
+ deltaStorage;
118
+ throttlingIdSet = new Set();
119
+ timeTillThrottling = 0;
120
+ closeAbortController = new AbortController();
121
+ deltaStorageDelayId = (0, uuid_1.v4)();
122
+ deltaStreamDelayId = (0, uuid_1.v4)();
123
+ messageBuffer = [];
124
+ _checkpointSequenceNumber;
68
125
  get inbound() {
69
126
  return this._inbound;
70
127
  }
@@ -212,50 +269,6 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
212
269
  this.serviceProvider = serviceProvider;
213
270
  this.logger = logger;
214
271
  this._active = _active;
215
- this.pending = [];
216
- // A boolean used to assert that ops are not being sent while processing another op.
217
- this.currentlyProcessingOps = false;
218
- // The minimum sequence number and last sequence number received from the server
219
- this.minSequenceNumber = 0;
220
- // There are three numbers we track
221
- // * lastQueuedSequenceNumber is the last queued sequence number. If there are gaps in seq numbers, then this number
222
- // is not updated until we cover that gap, so it increases each time by 1.
223
- // * lastObservedSeqNumber is an estimation of last known sequence number for container in storage. It's initially
224
- // populated at web socket connection time (if storage provides that info) and is updated once ops shows up.
225
- // It's never less than lastQueuedSequenceNumber
226
- // * lastProcessedSequenceNumber - last processed sequence number
227
- this.lastQueuedSequenceNumber = 0;
228
- this.lastObservedSeqNumber = 0;
229
- this.lastProcessedSequenceNumber = 0;
230
- /**
231
- * Map of clientId to the last observed message from that client. This is used to validate
232
- * that clientSequenceNumbers are always increasing for a given clientId.
233
- */
234
- this.lastObservedMessageByClient = new Map();
235
- /**
236
- * Count the number of noops sent by the client which may not be acked
237
- */
238
- this.noOpCount = 0;
239
- /**
240
- * Track clientSequenceNumber of the last op
241
- */
242
- this.lastClientSequenceNumber = 0;
243
- /**
244
- * Track down the ops size.
245
- */
246
- this.opsSize = 0;
247
- // The sequence number we initially loaded from
248
- // In case of reading from a snapshot or pending state, its value will be equal to
249
- // the last message that got serialized.
250
- this.initSequenceNumber = 0;
251
- this._closed = false;
252
- this._disposed = false;
253
- this.throttlingIdSet = new Set();
254
- this.timeTillThrottling = 0;
255
- this.closeAbortController = new AbortController();
256
- this.deltaStorageDelayId = (0, uuid_1.v4)();
257
- this.deltaStreamDelayId = (0, uuid_1.v4)();
258
- this.messageBuffer = [];
259
272
  const props = {
260
273
  incomingOpHandler: (messages, reason) => {
261
274
  try {
@@ -349,10 +362,22 @@ class DeltaManager extends internal_5.EventEmitterWithErrorHandling {
349
362
  }
350
363
  }
351
364
  /**
352
- * Sets the sequence number from which inbound messages should be returned
353
- * @param snapshotSequenceNumber - The sequence number of the snapshot at which the document loaded from.
354
- * @param lastProcessedSequenceNumber - The last processed sequence number, for offline, it should be greater than the sequence number.
355
- * Setting lastProcessedSequenceNumber allows the DeltaManager to skip downloading and processing ops that have already been processed.
365
+ * Initializes sequence number tracking, attaches the handler for inbound ops and signals, and
366
+ * resumes the inbound queues.
367
+ *
368
+ * @param minSequenceNumber - The document's current minimum sequence number. This is used for client-side
369
+ * protocol validation.
370
+ * @param snapshotSequenceNumber - The sequence number of the snapshot from which the document
371
+ * was loaded.
372
+ * @param handler - The op/signal handler to attach.
373
+ * @param prefetchType - Controls how missing ops are fetched before the returned promise resolves:
374
+ * `"none"` does not initiate a fetch; `"all"` waits for all available missing ops from storage;
375
+ * and `"cached"` waits only for cached ops before continuing the remaining storage fetch in the
376
+ * background.
377
+ * @param lastProcessedSequenceNumber - The latest sequence number already reflected in the
378
+ * loaded state. It defaults to `snapshotSequenceNumber`. Offline loads may provide a later
379
+ * sequence number so the DeltaManager skips downloading and processing ops already included in
380
+ * that state.
356
381
  */
357
382
  async attachOpHandler(minSequenceNumber, snapshotSequenceNumber, handler, prefetchType = "none", lastProcessedSequenceNumber = snapshotSequenceNumber) {
358
383
  this.initSequenceNumber = snapshotSequenceNumber;