@fluidframework/container-runtime 2.0.0-internal.3.0.1 → 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 (327) hide show
  1. package/.eslintrc.js +19 -19
  2. package/.mocharc.js +2 -2
  3. package/api-extractor.json +2 -2
  4. package/dist/batchTracker.d.ts.map +1 -1
  5. package/dist/batchTracker.js +2 -1
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager.d.ts +9 -2
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +80 -33
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/connectionTelemetry.d.ts.map +1 -1
  12. package/dist/connectionTelemetry.js +11 -9
  13. package/dist/connectionTelemetry.js.map +1 -1
  14. package/dist/containerHandleContext.d.ts.map +1 -1
  15. package/dist/containerHandleContext.js +3 -1
  16. package/dist/containerHandleContext.js.map +1 -1
  17. package/dist/containerRuntime.d.ts +10 -0
  18. package/dist/containerRuntime.d.ts.map +1 -1
  19. package/dist/containerRuntime.js +140 -72
  20. package/dist/containerRuntime.js.map +1 -1
  21. package/dist/dataStore.d.ts.map +1 -1
  22. package/dist/dataStore.js +11 -9
  23. package/dist/dataStore.js.map +1 -1
  24. package/dist/dataStoreContext.d.ts +18 -1
  25. package/dist/dataStoreContext.d.ts.map +1 -1
  26. package/dist/dataStoreContext.js +66 -15
  27. package/dist/dataStoreContext.js.map +1 -1
  28. package/dist/dataStoreContexts.d.ts.map +1 -1
  29. package/dist/dataStoreContexts.js +7 -3
  30. package/dist/dataStoreContexts.js.map +1 -1
  31. package/dist/dataStoreRegistry.d.ts.map +1 -1
  32. package/dist/dataStoreRegistry.js +3 -1
  33. package/dist/dataStoreRegistry.js.map +1 -1
  34. package/dist/dataStores.d.ts +26 -1
  35. package/dist/dataStores.d.ts.map +1 -1
  36. package/dist/dataStores.js +103 -18
  37. package/dist/dataStores.js.map +1 -1
  38. package/dist/deltaScheduler.d.ts.map +1 -1
  39. package/dist/deltaScheduler.js +8 -3
  40. package/dist/deltaScheduler.js.map +1 -1
  41. package/dist/garbageCollection.d.ts +34 -14
  42. package/dist/garbageCollection.d.ts.map +1 -1
  43. package/dist/garbageCollection.js +188 -93
  44. package/dist/garbageCollection.js.map +1 -1
  45. package/dist/garbageCollectionConstants.d.ts +3 -0
  46. package/dist/garbageCollectionConstants.d.ts.map +1 -1
  47. package/dist/garbageCollectionConstants.js +6 -1
  48. package/dist/garbageCollectionConstants.js.map +1 -1
  49. package/dist/garbageCollectionHelpers.d.ts +26 -0
  50. package/dist/garbageCollectionHelpers.d.ts.map +1 -0
  51. package/dist/garbageCollectionHelpers.js +45 -0
  52. package/dist/garbageCollectionHelpers.js.map +1 -0
  53. package/dist/gcSweepReadyUsageDetection.d.ts +5 -5
  54. package/dist/gcSweepReadyUsageDetection.d.ts.map +1 -1
  55. package/dist/gcSweepReadyUsageDetection.js +14 -10
  56. package/dist/gcSweepReadyUsageDetection.js.map +1 -1
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/opLifecycle/batchManager.d.ts +5 -5
  61. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  62. package/dist/opLifecycle/batchManager.js +19 -12
  63. package/dist/opLifecycle/batchManager.js.map +1 -1
  64. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  65. package/dist/opLifecycle/definitions.js.map +1 -1
  66. package/dist/opLifecycle/index.d.ts.map +1 -1
  67. package/dist/opLifecycle/index.js.map +1 -1
  68. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  69. package/dist/opLifecycle/opCompressor.js.map +1 -1
  70. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  71. package/dist/opLifecycle/opDecompressor.js +5 -2
  72. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  73. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  74. package/dist/opLifecycle/opSplitter.js +4 -1
  75. package/dist/opLifecycle/opSplitter.js.map +1 -1
  76. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  77. package/dist/opLifecycle/outbox.js +19 -17
  78. package/dist/opLifecycle/outbox.js.map +1 -1
  79. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  80. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  81. package/dist/opProperties.d.ts.map +1 -1
  82. package/dist/opProperties.js +1 -3
  83. package/dist/opProperties.js.map +1 -1
  84. package/dist/orderedClientElection.d.ts.map +1 -1
  85. package/dist/orderedClientElection.js +10 -4
  86. package/dist/orderedClientElection.js.map +1 -1
  87. package/dist/packageVersion.d.ts +1 -1
  88. package/dist/packageVersion.js +1 -1
  89. package/dist/packageVersion.js.map +1 -1
  90. package/dist/pendingStateManager.d.ts +7 -0
  91. package/dist/pendingStateManager.d.ts.map +1 -1
  92. package/dist/pendingStateManager.js +7 -4
  93. package/dist/pendingStateManager.js.map +1 -1
  94. package/dist/runWhileConnectedCoordinator.d.ts.map +1 -1
  95. package/dist/runWhileConnectedCoordinator.js.map +1 -1
  96. package/dist/runningSummarizer.d.ts.map +1 -1
  97. package/dist/runningSummarizer.js +34 -21
  98. package/dist/runningSummarizer.js.map +1 -1
  99. package/dist/scheduleManager.d.ts.map +1 -1
  100. package/dist/scheduleManager.js +3 -2
  101. package/dist/scheduleManager.js.map +1 -1
  102. package/dist/serializedSnapshotStorage.d.ts +2 -2
  103. package/dist/serializedSnapshotStorage.d.ts.map +1 -1
  104. package/dist/serializedSnapshotStorage.js +5 -3
  105. package/dist/serializedSnapshotStorage.js.map +1 -1
  106. package/dist/summarizer.d.ts +2 -2
  107. package/dist/summarizer.d.ts.map +1 -1
  108. package/dist/summarizer.js +37 -17
  109. package/dist/summarizer.js.map +1 -1
  110. package/dist/summarizerClientElection.d.ts.map +1 -1
  111. package/dist/summarizerClientElection.js.map +1 -1
  112. package/dist/summarizerHandle.d.ts.map +1 -1
  113. package/dist/summarizerHandle.js.map +1 -1
  114. package/dist/summarizerHeuristics.d.ts.map +1 -1
  115. package/dist/summarizerHeuristics.js +6 -9
  116. package/dist/summarizerHeuristics.js.map +1 -1
  117. package/dist/summarizerTypes.d.ts +21 -21
  118. package/dist/summarizerTypes.d.ts.map +1 -1
  119. package/dist/summarizerTypes.js.map +1 -1
  120. package/dist/summaryCollection.d.ts.map +1 -1
  121. package/dist/summaryCollection.js +18 -8
  122. package/dist/summaryCollection.js.map +1 -1
  123. package/dist/summaryFormat.d.ts +22 -0
  124. package/dist/summaryFormat.d.ts.map +1 -1
  125. package/dist/summaryFormat.js +18 -10
  126. package/dist/summaryFormat.js.map +1 -1
  127. package/dist/summaryGenerator.d.ts.map +1 -1
  128. package/dist/summaryGenerator.js +34 -15
  129. package/dist/summaryGenerator.js.map +1 -1
  130. package/dist/summaryManager.d.ts.map +1 -1
  131. package/dist/summaryManager.js +21 -9
  132. package/dist/summaryManager.js.map +1 -1
  133. package/dist/throttler.d.ts +2 -2
  134. package/dist/throttler.d.ts.map +1 -1
  135. package/dist/throttler.js +4 -4
  136. package/dist/throttler.js.map +1 -1
  137. package/garbageCollection.md +15 -2
  138. package/lib/batchTracker.d.ts.map +1 -1
  139. package/lib/batchTracker.js +2 -1
  140. package/lib/batchTracker.js.map +1 -1
  141. package/lib/blobManager.d.ts +9 -2
  142. package/lib/blobManager.d.ts.map +1 -1
  143. package/lib/blobManager.js +82 -35
  144. package/lib/blobManager.js.map +1 -1
  145. package/lib/connectionTelemetry.d.ts.map +1 -1
  146. package/lib/connectionTelemetry.js +11 -9
  147. package/lib/connectionTelemetry.js.map +1 -1
  148. package/lib/containerHandleContext.d.ts.map +1 -1
  149. package/lib/containerHandleContext.js +3 -1
  150. package/lib/containerHandleContext.js.map +1 -1
  151. package/lib/containerRuntime.d.ts +10 -0
  152. package/lib/containerRuntime.d.ts.map +1 -1
  153. package/lib/containerRuntime.js +146 -78
  154. package/lib/containerRuntime.js.map +1 -1
  155. package/lib/dataStore.d.ts.map +1 -1
  156. package/lib/dataStore.js +11 -9
  157. package/lib/dataStore.js.map +1 -1
  158. package/lib/dataStoreContext.d.ts +18 -1
  159. package/lib/dataStoreContext.d.ts.map +1 -1
  160. package/lib/dataStoreContext.js +68 -17
  161. package/lib/dataStoreContext.js.map +1 -1
  162. package/lib/dataStoreContexts.d.ts.map +1 -1
  163. package/lib/dataStoreContexts.js +7 -3
  164. package/lib/dataStoreContexts.js.map +1 -1
  165. package/lib/dataStoreRegistry.d.ts.map +1 -1
  166. package/lib/dataStoreRegistry.js +3 -1
  167. package/lib/dataStoreRegistry.js.map +1 -1
  168. package/lib/dataStores.d.ts +26 -1
  169. package/lib/dataStores.d.ts.map +1 -1
  170. package/lib/dataStores.js +109 -24
  171. package/lib/dataStores.js.map +1 -1
  172. package/lib/deltaScheduler.d.ts.map +1 -1
  173. package/lib/deltaScheduler.js +9 -4
  174. package/lib/deltaScheduler.js.map +1 -1
  175. package/lib/garbageCollection.d.ts +34 -14
  176. package/lib/garbageCollection.d.ts.map +1 -1
  177. package/lib/garbageCollection.js +190 -95
  178. package/lib/garbageCollection.js.map +1 -1
  179. package/lib/garbageCollectionConstants.d.ts +3 -0
  180. package/lib/garbageCollectionConstants.d.ts.map +1 -1
  181. package/lib/garbageCollectionConstants.js +5 -0
  182. package/lib/garbageCollectionConstants.js.map +1 -1
  183. package/lib/garbageCollectionHelpers.d.ts +26 -0
  184. package/lib/garbageCollectionHelpers.d.ts.map +1 -0
  185. package/lib/garbageCollectionHelpers.js +40 -0
  186. package/lib/garbageCollectionHelpers.js.map +1 -0
  187. package/lib/gcSweepReadyUsageDetection.d.ts +5 -5
  188. package/lib/gcSweepReadyUsageDetection.d.ts.map +1 -1
  189. package/lib/gcSweepReadyUsageDetection.js +14 -10
  190. package/lib/gcSweepReadyUsageDetection.js.map +1 -1
  191. package/lib/index.d.ts +2 -2
  192. package/lib/index.d.ts.map +1 -1
  193. package/lib/index.js +1 -1
  194. package/lib/index.js.map +1 -1
  195. package/lib/opLifecycle/batchManager.d.ts +5 -5
  196. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  197. package/lib/opLifecycle/batchManager.js +19 -12
  198. package/lib/opLifecycle/batchManager.js.map +1 -1
  199. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  200. package/lib/opLifecycle/definitions.js.map +1 -1
  201. package/lib/opLifecycle/index.d.ts.map +1 -1
  202. package/lib/opLifecycle/index.js.map +1 -1
  203. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  204. package/lib/opLifecycle/opCompressor.js.map +1 -1
  205. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  206. package/lib/opLifecycle/opDecompressor.js +5 -2
  207. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  208. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  209. package/lib/opLifecycle/opSplitter.js +5 -2
  210. package/lib/opLifecycle/opSplitter.js.map +1 -1
  211. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  212. package/lib/opLifecycle/outbox.js +19 -17
  213. package/lib/opLifecycle/outbox.js.map +1 -1
  214. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  215. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  216. package/lib/opProperties.d.ts.map +1 -1
  217. package/lib/opProperties.js +1 -3
  218. package/lib/opProperties.js.map +1 -1
  219. package/lib/orderedClientElection.d.ts.map +1 -1
  220. package/lib/orderedClientElection.js +10 -4
  221. package/lib/orderedClientElection.js.map +1 -1
  222. package/lib/packageVersion.d.ts +1 -1
  223. package/lib/packageVersion.js +1 -1
  224. package/lib/packageVersion.js.map +1 -1
  225. package/lib/pendingStateManager.d.ts +7 -0
  226. package/lib/pendingStateManager.d.ts.map +1 -1
  227. package/lib/pendingStateManager.js +7 -4
  228. package/lib/pendingStateManager.js.map +1 -1
  229. package/lib/runWhileConnectedCoordinator.d.ts.map +1 -1
  230. package/lib/runWhileConnectedCoordinator.js.map +1 -1
  231. package/lib/runningSummarizer.d.ts.map +1 -1
  232. package/lib/runningSummarizer.js +35 -22
  233. package/lib/runningSummarizer.js.map +1 -1
  234. package/lib/scheduleManager.d.ts.map +1 -1
  235. package/lib/scheduleManager.js +3 -2
  236. package/lib/scheduleManager.js.map +1 -1
  237. package/lib/serializedSnapshotStorage.d.ts +2 -2
  238. package/lib/serializedSnapshotStorage.d.ts.map +1 -1
  239. package/lib/serializedSnapshotStorage.js +5 -3
  240. package/lib/serializedSnapshotStorage.js.map +1 -1
  241. package/lib/summarizer.d.ts +2 -2
  242. package/lib/summarizer.d.ts.map +1 -1
  243. package/lib/summarizer.js +37 -17
  244. package/lib/summarizer.js.map +1 -1
  245. package/lib/summarizerClientElection.d.ts.map +1 -1
  246. package/lib/summarizerClientElection.js.map +1 -1
  247. package/lib/summarizerHandle.d.ts.map +1 -1
  248. package/lib/summarizerHandle.js.map +1 -1
  249. package/lib/summarizerHeuristics.d.ts.map +1 -1
  250. package/lib/summarizerHeuristics.js +6 -9
  251. package/lib/summarizerHeuristics.js.map +1 -1
  252. package/lib/summarizerTypes.d.ts +21 -21
  253. package/lib/summarizerTypes.d.ts.map +1 -1
  254. package/lib/summarizerTypes.js.map +1 -1
  255. package/lib/summaryCollection.d.ts.map +1 -1
  256. package/lib/summaryCollection.js +18 -8
  257. package/lib/summaryCollection.js.map +1 -1
  258. package/lib/summaryFormat.d.ts +22 -0
  259. package/lib/summaryFormat.d.ts.map +1 -1
  260. package/lib/summaryFormat.js +20 -12
  261. package/lib/summaryFormat.js.map +1 -1
  262. package/lib/summaryGenerator.d.ts.map +1 -1
  263. package/lib/summaryGenerator.js +34 -15
  264. package/lib/summaryGenerator.js.map +1 -1
  265. package/lib/summaryManager.d.ts.map +1 -1
  266. package/lib/summaryManager.js +21 -9
  267. package/lib/summaryManager.js.map +1 -1
  268. package/lib/throttler.d.ts +2 -2
  269. package/lib/throttler.d.ts.map +1 -1
  270. package/lib/throttler.js +4 -4
  271. package/lib/throttler.js.map +1 -1
  272. package/package.json +121 -149
  273. package/prettier.config.cjs +1 -1
  274. package/src/batchTracker.ts +54 -49
  275. package/src/blobManager.ts +793 -672
  276. package/src/connectionTelemetry.ts +280 -249
  277. package/src/containerHandleContext.ts +27 -29
  278. package/src/containerRuntime.ts +3168 -2940
  279. package/src/dataStore.ts +172 -159
  280. package/src/dataStoreContext.ts +1098 -996
  281. package/src/dataStoreContexts.ts +178 -161
  282. package/src/dataStoreRegistry.ts +25 -20
  283. package/src/dataStores.ts +884 -728
  284. package/src/deltaScheduler.ts +158 -150
  285. package/src/garbageCollection.ts +1883 -1692
  286. package/src/garbageCollectionConstants.ts +6 -0
  287. package/src/garbageCollectionHelpers.ts +61 -0
  288. package/src/gcSweepReadyUsageDetection.ts +89 -83
  289. package/src/index.ts +67 -66
  290. package/src/opLifecycle/README.md +152 -0
  291. package/src/opLifecycle/batchManager.ts +145 -141
  292. package/src/opLifecycle/definitions.ts +29 -29
  293. package/src/opLifecycle/index.ts +5 -5
  294. package/src/opLifecycle/opCompressor.ts +54 -53
  295. package/src/opLifecycle/opDecompressor.ts +100 -81
  296. package/src/opLifecycle/opSplitter.ts +214 -188
  297. package/src/opLifecycle/outbox.ts +204 -194
  298. package/src/opLifecycle/remoteMessageProcessor.ts +62 -62
  299. package/src/opProperties.ts +11 -9
  300. package/src/orderedClientElection.ts +489 -457
  301. package/src/packageVersion.ts +1 -1
  302. package/src/pendingStateManager.ts +384 -338
  303. package/src/runWhileConnectedCoordinator.ts +78 -71
  304. package/src/runningSummarizer.ts +619 -581
  305. package/src/scheduleManager.ts +299 -269
  306. package/src/serializedSnapshotStorage.ts +126 -112
  307. package/src/summarizer.ts +417 -381
  308. package/src/summarizerClientElection.ts +107 -100
  309. package/src/summarizerHandle.ts +11 -9
  310. package/src/summarizerHeuristics.ts +183 -186
  311. package/src/summarizerTypes.ts +344 -330
  312. package/src/summaryCollection.ts +378 -349
  313. package/src/summaryFormat.ts +170 -126
  314. package/src/summaryGenerator.ts +465 -406
  315. package/src/summaryManager.ts +377 -348
  316. package/src/throttler.ts +131 -122
  317. package/tsconfig.esnext.json +6 -6
  318. package/tsconfig.json +9 -13
  319. package/dist/garbageCollectionTombstoneUtils.d.ts +0 -14
  320. package/dist/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  321. package/dist/garbageCollectionTombstoneUtils.js +0 -23
  322. package/dist/garbageCollectionTombstoneUtils.js.map +0 -1
  323. package/lib/garbageCollectionTombstoneUtils.d.ts +0 -14
  324. package/lib/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  325. package/lib/garbageCollectionTombstoneUtils.js +0 -19
  326. package/lib/garbageCollectionTombstoneUtils.js.map +0 -1
  327. package/src/garbageCollectionTombstoneUtils.ts +0 -28
package/package.json CHANGED
@@ -1,151 +1,123 @@
1
1
  {
2
- "name": "@fluidframework/container-runtime",
3
- "version": "2.0.0-internal.3.0.1",
4
- "description": "Fluid container runtime",
5
- "homepage": "https://fluidframework.com",
6
- "repository": {
7
- "type": "git",
8
- "url": "https://github.com/microsoft/FluidFramework.git",
9
- "directory": "packages/runtime/container-runtime"
10
- },
11
- "license": "MIT",
12
- "author": "Microsoft and contributors",
13
- "sideEffects": false,
14
- "main": "dist/index.js",
15
- "module": "lib/index.js",
16
- "types": "dist/index.d.ts",
17
- "scripts": {
18
- "build": "npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs",
19
- "build:commonjs": "npm run tsc && npm run typetests:gen && npm run build:test",
20
- "build:compile": "concurrently npm:build:commonjs npm:build:esnext",
21
- "build:docs": "api-extractor run --local --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
22
- "build:esnext": "tsc --project ./tsconfig.esnext.json",
23
- "build:full": "npm run build",
24
- "build:full:compile": "npm run build:compile",
25
- "build:genver": "gen-version",
26
- "build:test": "tsc --project ./src/test/tsconfig.json",
27
- "ci:build:docs": "api-extractor run --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
28
- "clean": "rimraf dist lib *.tsbuildinfo *.build.log",
29
- "eslint": "eslint --format stylish src",
30
- "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
31
- "format": "npm run prettier:fix",
32
- "lint": "npm run eslint",
33
- "lint:fix": "npm run eslint:fix",
34
- "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
35
- "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
36
- "test": "npm run test:mocha",
37
- "test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
38
- "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
39
- "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
40
- "tsc": "tsc",
41
- "tsc:watch": "tsc --watch",
42
- "typetests:gen": "flub generate typetests --generate --dir .",
43
- "typetests:prepare": "flub generate typetests --prepare --dir . --pin"
44
- },
45
- "nyc": {
46
- "all": true,
47
- "cache-dir": "nyc/.cache",
48
- "exclude": [
49
- "src/test/**/*.ts",
50
- "dist/test/**/*.js"
51
- ],
52
- "exclude-after-remap": false,
53
- "include": [
54
- "src/**/*.ts",
55
- "dist/**/*.js"
56
- ],
57
- "report-dir": "nyc/report",
58
- "reporter": [
59
- "cobertura",
60
- "html",
61
- "text"
62
- ],
63
- "temp-directory": "nyc/.nyc_output"
64
- },
65
- "dependencies": {
66
- "@fluidframework/common-definitions": "^0.20.1",
67
- "@fluidframework/common-utils": "^1.0.0",
68
- "@fluidframework/container-definitions": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
69
- "@fluidframework/container-runtime-definitions": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
70
- "@fluidframework/container-utils": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
71
- "@fluidframework/core-interfaces": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
72
- "@fluidframework/datastore": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
73
- "@fluidframework/driver-definitions": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
74
- "@fluidframework/driver-utils": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
75
- "@fluidframework/garbage-collector": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
76
- "@fluidframework/protocol-base": "^0.1038.2000",
77
- "@fluidframework/protocol-definitions": "^1.1.0",
78
- "@fluidframework/runtime-definitions": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
79
- "@fluidframework/runtime-utils": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
80
- "@fluidframework/telemetry-utils": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
81
- "double-ended-queue": "^2.1.0-0",
82
- "events": "^3.1.0",
83
- "lz4js": "^0.2.0",
84
- "uuid": "^8.3.1"
85
- },
86
- "devDependencies": {
87
- "@fluid-tools/build-cli": "^0.8.0",
88
- "@fluidframework/build-common": "^1.1.0",
89
- "@fluidframework/build-tools": "^0.8.0",
90
- "@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.2.2.0",
91
- "@fluidframework/eslint-config-fluid": "^2.0.0",
92
- "@fluidframework/mocha-test-setup": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
93
- "@fluidframework/test-runtime-utils": ">=2.0.0-internal.3.0.1 <2.0.0-internal.4.0.0",
94
- "@microsoft/api-extractor": "^7.22.2",
95
- "@rushstack/eslint-config": "^2.5.1",
96
- "@types/double-ended-queue": "^2.1.0",
97
- "@types/events": "^3.0.0",
98
- "@types/mocha": "^9.1.1",
99
- "@types/sinon": "^7.0.13",
100
- "@types/uuid": "^8.3.0",
101
- "concurrently": "^6.2.0",
102
- "copyfiles": "^2.4.1",
103
- "cross-env": "^7.0.2",
104
- "eslint": "~8.6.0",
105
- "mocha": "^10.0.0",
106
- "nyc": "^15.0.0",
107
- "rimraf": "^2.6.2",
108
- "sinon": "^7.4.2",
109
- "typescript": "~4.5.5"
110
- },
111
- "typeValidation": {
112
- "version": "2.0.0-internal.3.0.0",
113
- "baselineRange": ">=2.0.0-internal.2.0.0 <2.0.0-internal.3.0.0",
114
- "baselineVersion": "2.0.0-internal.2.2.0",
115
- "broken": {
116
- "RemovedVariableDeclaration_gcBlobPrefix": {
117
- "forwardCompat": false,
118
- "backCompat": false
119
- },
120
- "RemovedVariableDeclaration_gcTombstoneBlobKey": {
121
- "forwardCompat": false,
122
- "backCompat": false
123
- },
124
- "RemovedVariableDeclaration_gcTreeKey": {
125
- "forwardCompat": false,
126
- "backCompat": false
127
- },
128
- "VariableDeclaration_DefaultSummaryConfiguration": {
129
- "backCompat": false
130
- },
131
- "InterfaceDeclaration_ISummaryBaseConfiguration": {
132
- "backCompat": false
133
- },
134
- "TypeAliasDeclaration_ISummaryConfiguration": {
135
- "backCompat": false
136
- },
137
- "InterfaceDeclaration_ISummaryConfigurationDisableHeuristics": {
138
- "backCompat": false
139
- },
140
- "InterfaceDeclaration_ISummaryConfigurationHeuristics": {
141
- "backCompat": false
142
- },
143
- "ClassDeclaration_ContainerRuntime": {
144
- "forwardCompat": false
145
- },
146
- "InterfaceDeclaration_ISummarizerRuntime": {
147
- "backCompat": false
148
- }
149
- }
150
- }
2
+ "name": "@fluidframework/container-runtime",
3
+ "version": "2.0.0-internal.3.1.0",
4
+ "description": "Fluid container runtime",
5
+ "homepage": "https://fluidframework.com",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/microsoft/FluidFramework.git",
9
+ "directory": "packages/runtime/container-runtime"
10
+ },
11
+ "license": "MIT",
12
+ "author": "Microsoft and contributors",
13
+ "sideEffects": false,
14
+ "main": "dist/index.js",
15
+ "module": "lib/index.js",
16
+ "types": "dist/index.d.ts",
17
+ "scripts": {
18
+ "build": "npm run build:genver && concurrently npm:build:compile npm:lint && npm run build:docs",
19
+ "build:commonjs": "npm run tsc && npm run typetests:gen && npm run build:test",
20
+ "build:compile": "concurrently npm:build:commonjs npm:build:esnext",
21
+ "build:docs": "api-extractor run --local --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
22
+ "build:esnext": "tsc --project ./tsconfig.esnext.json",
23
+ "build:full": "npm run build",
24
+ "build:full:compile": "npm run build:compile",
25
+ "build:genver": "gen-version",
26
+ "build:test": "tsc --project ./src/test/tsconfig.json",
27
+ "ci:build:docs": "api-extractor run --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/doc-models/* ../../../_api-extractor-temp/",
28
+ "clean": "rimraf dist lib *.tsbuildinfo *.build.log",
29
+ "eslint": "eslint --format stylish src",
30
+ "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
31
+ "format": "npm run prettier:fix",
32
+ "lint": "npm run prettier && npm run eslint",
33
+ "lint:fix": "npm run prettier:fix &&npm run eslint:fix",
34
+ "prettier": "prettier --check . --ignore-path ../../../.prettierignore",
35
+ "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore",
36
+ "test": "npm run test:mocha",
37
+ "test:coverage": "nyc npm test -- --reporter xunit --reporter-option output=nyc/junit-report.xml",
38
+ "test:mocha": "mocha --ignore 'dist/test/types/*' --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup --unhandled-rejections=strict",
39
+ "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
40
+ "tsc": "tsc",
41
+ "tsc:watch": "tsc --watch",
42
+ "typetests:gen": "flub generate typetests --generate --dir .",
43
+ "typetests:prepare": "flub generate typetests --prepare --dir . --pin"
44
+ },
45
+ "nyc": {
46
+ "all": true,
47
+ "cache-dir": "nyc/.cache",
48
+ "exclude": [
49
+ "src/test/**/*.ts",
50
+ "dist/test/**/*.js"
51
+ ],
52
+ "exclude-after-remap": false,
53
+ "include": [
54
+ "src/**/*.ts",
55
+ "dist/**/*.js"
56
+ ],
57
+ "report-dir": "nyc/report",
58
+ "reporter": [
59
+ "cobertura",
60
+ "html",
61
+ "text"
62
+ ],
63
+ "temp-directory": "nyc/.nyc_output"
64
+ },
65
+ "dependencies": {
66
+ "@fluidframework/common-definitions": "^0.20.1",
67
+ "@fluidframework/common-utils": "^1.0.0",
68
+ "@fluidframework/container-definitions": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
69
+ "@fluidframework/container-runtime-definitions": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
70
+ "@fluidframework/container-utils": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
71
+ "@fluidframework/core-interfaces": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
72
+ "@fluidframework/datastore": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
73
+ "@fluidframework/driver-definitions": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
74
+ "@fluidframework/driver-utils": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
75
+ "@fluidframework/garbage-collector": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
76
+ "@fluidframework/protocol-base": "^0.1038.2000",
77
+ "@fluidframework/protocol-definitions": "^1.1.0",
78
+ "@fluidframework/runtime-definitions": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
79
+ "@fluidframework/runtime-utils": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
80
+ "@fluidframework/telemetry-utils": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
81
+ "double-ended-queue": "^2.1.0-0",
82
+ "events": "^3.1.0",
83
+ "lz4js": "^0.2.0",
84
+ "uuid": "^8.3.1"
85
+ },
86
+ "devDependencies": {
87
+ "@fluid-tools/build-cli": "^0.9.0",
88
+ "@fluidframework/build-common": "^1.1.0",
89
+ "@fluidframework/build-tools": "^0.9.0",
90
+ "@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.3.0.0",
91
+ "@fluidframework/eslint-config-fluid": "^2.0.0",
92
+ "@fluidframework/mocha-test-setup": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
93
+ "@fluidframework/test-runtime-utils": ">=2.0.0-internal.3.1.0 <2.0.0-internal.4.0.0",
94
+ "@microsoft/api-extractor": "^7.22.2",
95
+ "@rushstack/eslint-config": "^2.5.1",
96
+ "@types/double-ended-queue": "^2.1.0",
97
+ "@types/events": "^3.0.0",
98
+ "@types/mocha": "^9.1.1",
99
+ "@types/sinon": "^7.0.13",
100
+ "@types/uuid": "^8.3.0",
101
+ "concurrently": "^6.2.0",
102
+ "copyfiles": "^2.4.1",
103
+ "cross-env": "^7.0.2",
104
+ "eslint": "~8.6.0",
105
+ "mocha": "^10.0.0",
106
+ "nyc": "^15.0.0",
107
+ "prettier": "~2.6.2",
108
+ "rimraf": "^2.6.2",
109
+ "sinon": "^7.4.2",
110
+ "typescript": "~4.5.5"
111
+ },
112
+ "typeValidation": {
113
+ "version": "2.0.0-internal.3.1.0",
114
+ "previousVersionStyle": "~previousMinor",
115
+ "baselineRange": ">=2.0.0-internal.3.0.0 <2.0.0-internal.3.1.0",
116
+ "baselineVersion": "2.0.0-internal.3.0.0",
117
+ "broken": {
118
+ "ClassDeclaration_ContainerRuntime": {
119
+ "forwardCompat": false
120
+ }
121
+ }
122
+ }
151
123
  }
@@ -4,5 +4,5 @@
4
4
  */
5
5
 
6
6
  module.exports = {
7
- ...require("@fluidframework/build-common/prettier.config.cjs"),
7
+ ...require("@fluidframework/build-common/prettier.config.cjs"),
8
8
  };
@@ -10,57 +10,62 @@ import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions"
10
10
  import { ChildLogger } from "@fluidframework/telemetry-utils";
11
11
 
12
12
  export class BatchTracker {
13
- private readonly logger: ITelemetryLogger;
14
- private startBatchSequenceNumber: number | undefined;
15
- private trackedBatchCount: number = 0;
16
- private batchProcessingStartTimeStamp: number | undefined;
13
+ private readonly logger: ITelemetryLogger;
14
+ private startBatchSequenceNumber: number | undefined;
15
+ private trackedBatchCount: number = 0;
16
+ private batchProcessingStartTimeStamp: number | undefined;
17
17
 
18
- constructor(
19
- private readonly batchEventEmitter: EventEmitter,
20
- logger: ITelemetryLogger,
21
- batchLengthThreshold: number,
22
- batchCountSamplingRate: number,
23
- dateTimeProvider: () => number = () => performance.now(),
24
- ) {
25
- this.logger = ChildLogger.create(logger, "Batching");
18
+ constructor(
19
+ private readonly batchEventEmitter: EventEmitter,
20
+ logger: ITelemetryLogger,
21
+ batchLengthThreshold: number,
22
+ batchCountSamplingRate: number,
23
+ dateTimeProvider: () => number = () => performance.now(),
24
+ ) {
25
+ this.logger = ChildLogger.create(logger, "Batching");
26
26
 
27
- this.batchEventEmitter.on("batchBegin", (message: ISequencedDocumentMessage) => {
28
- this.startBatchSequenceNumber = message.sequenceNumber;
29
- this.batchProcessingStartTimeStamp = dateTimeProvider();
30
- this.trackedBatchCount++;
31
- });
27
+ this.batchEventEmitter.on("batchBegin", (message: ISequencedDocumentMessage) => {
28
+ this.startBatchSequenceNumber = message.sequenceNumber;
29
+ this.batchProcessingStartTimeStamp = dateTimeProvider();
30
+ this.trackedBatchCount++;
31
+ });
32
32
 
33
- this.batchEventEmitter.on("batchEnd", (error: any | undefined, message: ISequencedDocumentMessage) => {
34
- assert(
35
- this.startBatchSequenceNumber !== undefined && this.batchProcessingStartTimeStamp !== undefined,
36
- 0x2ba /* "batchBegin must fire before batchEnd" */);
33
+ this.batchEventEmitter.on(
34
+ "batchEnd",
35
+ (error: any | undefined, message: ISequencedDocumentMessage) => {
36
+ assert(
37
+ this.startBatchSequenceNumber !== undefined &&
38
+ this.batchProcessingStartTimeStamp !== undefined,
39
+ 0x2ba /* "batchBegin must fire before batchEnd" */,
40
+ );
37
41
 
38
- const length = message.sequenceNumber - this.startBatchSequenceNumber + 1;
39
- if (length >= batchLengthThreshold) {
40
- this.logger.sendPerformanceEvent({
41
- eventName: "LengthTooBig",
42
- length,
43
- threshold: batchLengthThreshold,
44
- batchEndSequenceNumber: message.sequenceNumber,
45
- duration: dateTimeProvider() - this.batchProcessingStartTimeStamp,
46
- batchError: error !== undefined,
47
- });
48
- }
42
+ const length = message.sequenceNumber - this.startBatchSequenceNumber + 1;
43
+ if (length >= batchLengthThreshold) {
44
+ this.logger.sendPerformanceEvent({
45
+ eventName: "LengthTooBig",
46
+ length,
47
+ threshold: batchLengthThreshold,
48
+ batchEndSequenceNumber: message.sequenceNumber,
49
+ duration: dateTimeProvider() - this.batchProcessingStartTimeStamp,
50
+ batchError: error !== undefined,
51
+ });
52
+ }
49
53
 
50
- if (this.trackedBatchCount % batchCountSamplingRate === 0) {
51
- this.logger.sendPerformanceEvent({
52
- eventName: "Length",
53
- length,
54
- samplingRate: batchCountSamplingRate,
55
- batchEndSequenceNumber: message.sequenceNumber,
56
- duration: dateTimeProvider() - this.batchProcessingStartTimeStamp,
57
- });
58
- }
54
+ if (this.trackedBatchCount % batchCountSamplingRate === 0) {
55
+ this.logger.sendPerformanceEvent({
56
+ eventName: "Length",
57
+ length,
58
+ samplingRate: batchCountSamplingRate,
59
+ batchEndSequenceNumber: message.sequenceNumber,
60
+ duration: dateTimeProvider() - this.batchProcessingStartTimeStamp,
61
+ });
62
+ }
59
63
 
60
- this.startBatchSequenceNumber = undefined;
61
- this.batchProcessingStartTimeStamp = undefined;
62
- });
63
- }
64
+ this.startBatchSequenceNumber = undefined;
65
+ this.batchProcessingStartTimeStamp = undefined;
66
+ },
67
+ );
68
+ }
64
69
  }
65
70
 
66
71
  /**
@@ -72,8 +77,8 @@ export class BatchTracker {
72
77
  * @param batchCountSamplingRate - rate for batches for which to send an event with its characteristics
73
78
  */
74
79
  export const BindBatchTracker = (
75
- batchEventEmitter: EventEmitter,
76
- logger: ITelemetryLogger,
77
- batchLengthThreshold: number = 1000,
78
- batchCountSamplingRate: number = 1000,
80
+ batchEventEmitter: EventEmitter,
81
+ logger: ITelemetryLogger,
82
+ batchLengthThreshold: number = 1000,
83
+ batchCountSamplingRate: number = 1000,
79
84
  ) => new BatchTracker(batchEventEmitter, logger, batchLengthThreshold, batchCountSamplingRate);