@fluidframework/replay-driver 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +5 -7
- package/CHANGELOG.md +144 -0
- package/README.md +38 -0
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/replay-driver.api.md +150 -0
- package/dist/{emptyDeltaStorageService.js → emptyDeltaStorageService.cjs} +1 -1
- package/dist/emptyDeltaStorageService.cjs.map +1 -0
- package/dist/emptyDeltaStorageService.d.ts.map +1 -1
- package/dist/index.cjs +20 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/replay-driver-alpha.d.ts +34 -0
- package/dist/replay-driver-beta.d.ts +44 -0
- package/dist/replay-driver-public.d.ts +44 -0
- package/dist/replay-driver-untrimmed.d.ts +187 -0
- package/dist/{replayController.js → replayController.cjs} +6 -4
- package/dist/replayController.cjs.map +1 -0
- package/dist/replayController.d.ts +4 -2
- package/dist/replayController.d.ts.map +1 -1
- package/dist/{replayDocumentDeltaConnection.js → replayDocumentDeltaConnection.cjs} +25 -27
- package/dist/replayDocumentDeltaConnection.cjs.map +1 -0
- package/dist/replayDocumentDeltaConnection.d.ts +2 -2
- package/dist/replayDocumentDeltaConnection.d.ts.map +1 -1
- package/dist/{replayDocumentService.js → replayDocumentService.cjs} +9 -7
- package/dist/replayDocumentService.cjs.map +1 -0
- package/dist/replayDocumentService.d.ts +1 -0
- package/dist/replayDocumentService.d.ts.map +1 -1
- package/dist/{replayDocumentServiceFactory.js → replayDocumentServiceFactory.cjs} +13 -8
- package/dist/replayDocumentServiceFactory.cjs.map +1 -0
- package/dist/replayDocumentServiceFactory.d.ts +4 -2
- package/dist/replayDocumentServiceFactory.d.ts.map +1 -1
- package/dist/{storageImplementations.js → storageImplementations.cjs} +21 -12
- package/dist/storageImplementations.cjs.map +1 -0
- package/dist/storageImplementations.d.ts +18 -6
- package/dist/storageImplementations.d.ts.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/emptyDeltaStorageService.d.mts.map +1 -0
- package/lib/{emptyDeltaStorageService.js → emptyDeltaStorageService.mjs} +1 -1
- package/lib/emptyDeltaStorageService.mjs.map +1 -0
- package/lib/index.d.mts +9 -0
- package/lib/index.d.mts.map +1 -0
- package/lib/index.mjs +9 -0
- package/lib/index.mjs.map +1 -0
- package/lib/replay-driver-alpha.d.mts +34 -0
- package/lib/replay-driver-beta.d.mts +44 -0
- package/lib/replay-driver-public.d.mts +44 -0
- package/lib/replay-driver-untrimmed.d.mts +187 -0
- package/lib/{replayController.d.ts → replayController.d.mts} +4 -2
- package/lib/replayController.d.mts.map +1 -0
- package/lib/{replayController.js → replayController.mjs} +6 -4
- package/lib/replayController.mjs.map +1 -0
- package/lib/{replayDocumentDeltaConnection.d.ts → replayDocumentDeltaConnection.d.mts} +3 -3
- package/lib/replayDocumentDeltaConnection.d.mts.map +1 -0
- package/lib/{replayDocumentDeltaConnection.js → replayDocumentDeltaConnection.mjs} +23 -25
- package/lib/replayDocumentDeltaConnection.mjs.map +1 -0
- package/lib/{replayDocumentService.d.ts → replayDocumentService.d.mts} +2 -1
- package/lib/replayDocumentService.d.mts.map +1 -0
- package/lib/{replayDocumentService.js → replayDocumentService.mjs} +9 -7
- package/lib/replayDocumentService.mjs.map +1 -0
- package/lib/{replayDocumentServiceFactory.d.ts → replayDocumentServiceFactory.d.mts} +5 -3
- package/lib/replayDocumentServiceFactory.d.mts.map +1 -0
- package/lib/{replayDocumentServiceFactory.js → replayDocumentServiceFactory.mjs} +14 -9
- package/lib/replayDocumentServiceFactory.mjs.map +1 -0
- package/lib/{storageImplementations.d.ts → storageImplementations.d.mts} +19 -7
- package/lib/storageImplementations.d.mts.map +1 -0
- package/lib/{storageImplementations.js → storageImplementations.mjs} +20 -11
- package/lib/storageImplementations.mjs.map +1 -0
- package/lib/test/types/validateReplayDriverPrevious.generated.d.mts +2 -0
- package/lib/test/types/validateReplayDriverPrevious.generated.d.mts.map +1 -0
- package/lib/test/types/{validateReplayDriverPrevious.js → validateReplayDriverPrevious.generated.mjs} +1 -3
- package/lib/test/types/validateReplayDriverPrevious.generated.mjs.map +1 -0
- package/package.json +79 -47
- package/prettier.config.cjs +8 -0
- package/src/emptyDeltaStorageService.ts +14 -13
- package/src/index.ts +10 -4
- package/src/replayController.ts +61 -55
- package/src/replayDocumentDeltaConnection.ts +326 -318
- package/src/replayDocumentService.ts +48 -44
- package/src/replayDocumentServiceFactory.ts +59 -47
- package/src/storageImplementations.ts +168 -153
- package/tsconfig.json +11 -13
- package/dist/emptyDeltaStorageService.js.map +0 -1
- package/dist/index.js +0 -21
- package/dist/index.js.map +0 -1
- package/dist/packageVersion.d.ts +0 -9
- package/dist/packageVersion.d.ts.map +0 -1
- package/dist/packageVersion.js +0 -12
- package/dist/packageVersion.js.map +0 -1
- package/dist/replayController.js.map +0 -1
- package/dist/replayDocumentDeltaConnection.js.map +0 -1
- package/dist/replayDocumentService.js.map +0 -1
- package/dist/replayDocumentServiceFactory.js.map +0 -1
- package/dist/storageImplementations.js.map +0 -1
- package/lib/emptyDeltaStorageService.d.ts.map +0 -1
- package/lib/emptyDeltaStorageService.js.map +0 -1
- package/lib/index.d.ts +0 -9
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -9
- package/lib/index.js.map +0 -1
- package/lib/packageVersion.d.ts +0 -9
- package/lib/packageVersion.d.ts.map +0 -1
- package/lib/packageVersion.js +0 -9
- package/lib/packageVersion.js.map +0 -1
- package/lib/replayController.d.ts.map +0 -1
- package/lib/replayController.js.map +0 -1
- package/lib/replayDocumentDeltaConnection.d.ts.map +0 -1
- package/lib/replayDocumentDeltaConnection.js.map +0 -1
- package/lib/replayDocumentService.d.ts.map +0 -1
- package/lib/replayDocumentService.js.map +0 -1
- package/lib/replayDocumentServiceFactory.d.ts.map +0 -1
- package/lib/replayDocumentServiceFactory.js.map +0 -1
- package/lib/storageImplementations.d.ts.map +0 -1
- package/lib/storageImplementations.js.map +0 -1
- package/lib/test/types/validateReplayDriverPrevious.d.ts +0 -2
- package/lib/test/types/validateReplayDriverPrevious.d.ts.map +0 -1
- package/lib/test/types/validateReplayDriverPrevious.js.map +0 -1
- package/src/packageVersion.ts +0 -9
- package/tsconfig.esnext.json +0 -7
- /package/lib/{emptyDeltaStorageService.d.ts → emptyDeltaStorageService.d.mts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/replay-driver",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.0.0-dev-rc.1.0.0.224419",
|
|
4
4
|
"description": "Document replay version of Socket.IO implementation",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -11,58 +11,90 @@
|
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"author": "Microsoft and contributors",
|
|
13
13
|
"sideEffects": false,
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"ci:build:docs": "api-extractor run --typescript-compiler-folder ../../../node_modules/typescript && copyfiles -u 1 ./_api-extractor-temp/* ../../../_api-extractor-temp/",
|
|
26
|
-
"clean": "rimraf dist lib *.tsbuildinfo *.build.log",
|
|
27
|
-
"eslint": "eslint --format stylish src",
|
|
28
|
-
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
29
|
-
"lint": "npm run eslint",
|
|
30
|
-
"lint:fix": "npm run eslint:fix",
|
|
31
|
-
"tsc": "tsc",
|
|
32
|
-
"typetests:gen": "flub generate typetests --generate --dir . --no-generateInName",
|
|
33
|
-
"typetests:prepare": "flub generate typetests --prepare --dir . --pin"
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": {
|
|
17
|
+
"types": "./lib/index.d.mts",
|
|
18
|
+
"default": "./lib/index.mjs"
|
|
19
|
+
},
|
|
20
|
+
"require": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"default": "./dist/index.cjs"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
34
25
|
},
|
|
26
|
+
"main": "dist/index.cjs",
|
|
27
|
+
"module": "lib/index.mjs",
|
|
28
|
+
"types": "dist/index.d.ts",
|
|
35
29
|
"dependencies": {
|
|
36
|
-
"@
|
|
37
|
-
"@fluidframework/
|
|
38
|
-
"@fluidframework/
|
|
39
|
-
"@fluidframework/driver-
|
|
40
|
-
"@fluidframework/
|
|
41
|
-
"@fluidframework/
|
|
30
|
+
"@fluid-internal/client-utils": "2.0.0-dev-rc.1.0.0.224419",
|
|
31
|
+
"@fluidframework/core-interfaces": "2.0.0-dev-rc.1.0.0.224419",
|
|
32
|
+
"@fluidframework/core-utils": "2.0.0-dev-rc.1.0.0.224419",
|
|
33
|
+
"@fluidframework/driver-definitions": "2.0.0-dev-rc.1.0.0.224419",
|
|
34
|
+
"@fluidframework/driver-utils": "2.0.0-dev-rc.1.0.0.224419",
|
|
35
|
+
"@fluidframework/protocol-definitions": "^3.1.0-223007",
|
|
36
|
+
"@fluidframework/telemetry-utils": "2.0.0-dev-rc.1.0.0.224419"
|
|
42
37
|
},
|
|
43
38
|
"devDependencies": {
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@fluidframework/
|
|
47
|
-
"@fluidframework/
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
50
|
-
"@
|
|
39
|
+
"@arethetypeswrong/cli": "^0.13.3",
|
|
40
|
+
"@fluid-tools/build-cli": "0.29.0-222379",
|
|
41
|
+
"@fluidframework/build-common": "^2.0.3",
|
|
42
|
+
"@fluidframework/build-tools": "0.29.0-222379",
|
|
43
|
+
"@fluidframework/eslint-config-fluid": "^3.1.0",
|
|
44
|
+
"@fluidframework/replay-driver-previous": "npm:@fluidframework/replay-driver@2.0.0-internal.7.2.0",
|
|
45
|
+
"@microsoft/api-extractor": "^7.38.3",
|
|
51
46
|
"@types/nock": "^9.3.0",
|
|
52
|
-
"@types/node": "^
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"rimraf": "^
|
|
59
|
-
"
|
|
60
|
-
"typescript
|
|
47
|
+
"@types/node": "^18.19.0",
|
|
48
|
+
"copyfiles": "^2.4.1",
|
|
49
|
+
"eslint": "~8.50.0",
|
|
50
|
+
"nock": "^13.3.3",
|
|
51
|
+
"prettier": "~3.0.3",
|
|
52
|
+
"renamer": "^4.0.0",
|
|
53
|
+
"rimraf": "^4.4.0",
|
|
54
|
+
"tsc-multi": "^1.1.0",
|
|
55
|
+
"typescript": "~5.1.6"
|
|
56
|
+
},
|
|
57
|
+
"fluidBuild": {
|
|
58
|
+
"tasks": {
|
|
59
|
+
"build:docs": {
|
|
60
|
+
"dependsOn": [
|
|
61
|
+
"...",
|
|
62
|
+
"api-extractor:commonjs",
|
|
63
|
+
"api-extractor:esnext"
|
|
64
|
+
],
|
|
65
|
+
"script": false
|
|
66
|
+
},
|
|
67
|
+
"tsc": [
|
|
68
|
+
"...",
|
|
69
|
+
"typetests:gen"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
61
72
|
},
|
|
62
73
|
"typeValidation": {
|
|
63
|
-
"version": "1.4.0",
|
|
64
|
-
"baselineRange": "~1.3.0",
|
|
65
|
-
"baselineVersion": "1.3.1",
|
|
66
74
|
"broken": {}
|
|
75
|
+
},
|
|
76
|
+
"scripts": {
|
|
77
|
+
"api": "fluid-build . --task api",
|
|
78
|
+
"api-extractor:commonjs": "api-extractor run --local",
|
|
79
|
+
"api-extractor:esnext": "copyfiles -u 1 \"dist/**/*-@(alpha|beta|public|untrimmed).d.ts\" lib",
|
|
80
|
+
"build": "fluid-build . --task build",
|
|
81
|
+
"build:compile": "fluid-build . --task compile",
|
|
82
|
+
"build:docs": "fluid-build . --task api",
|
|
83
|
+
"build:esnext": "tsc-multi --config ../../../common/build/build-common/tsc-multi.esm.json",
|
|
84
|
+
"build:rename-types": "renamer \"lib/**\" -f .d.ts -r .d.mts --force",
|
|
85
|
+
"check:are-the-types-wrong": "attw --pack",
|
|
86
|
+
"check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
|
|
87
|
+
"ci:build:docs": "api-extractor run",
|
|
88
|
+
"clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp",
|
|
89
|
+
"eslint": "eslint --format stylish src",
|
|
90
|
+
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
91
|
+
"format": "npm run prettier:fix",
|
|
92
|
+
"lint": "npm run prettier && npm run check:release-tags && npm run eslint",
|
|
93
|
+
"lint:fix": "npm run prettier:fix && npm run eslint:fix",
|
|
94
|
+
"prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
95
|
+
"prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
96
|
+
"tsc": "tsc-multi --config ../../../common/build/build-common/tsc-multi.cjs.json",
|
|
97
|
+
"typetests:gen": "fluid-type-test-generator",
|
|
98
|
+
"typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
|
|
67
99
|
}
|
|
68
|
-
}
|
|
100
|
+
}
|
|
@@ -8,17 +8,18 @@ import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions"
|
|
|
8
8
|
import { emptyMessageStream } from "@fluidframework/driver-utils";
|
|
9
9
|
|
|
10
10
|
export class EmptyDeltaStorageService implements IDocumentDeltaStorageService {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Returns ops from the list of ops generated till now.
|
|
13
|
+
* @param from - Ops are returned from + 1.
|
|
14
|
+
* @param to - Op are returned from to - 1.
|
|
15
|
+
* @returns Array of ops requested by the user.
|
|
16
|
+
*/
|
|
17
|
+
public fetchMessages(
|
|
18
|
+
from: number,
|
|
19
|
+
to: number | undefined,
|
|
20
|
+
abortSignal?: AbortSignal,
|
|
21
|
+
cachedOnly?: boolean,
|
|
22
|
+
): IStream<ISequencedDocumentMessage[]> {
|
|
23
|
+
return emptyMessageStream;
|
|
24
|
+
}
|
|
24
25
|
}
|
package/src/index.ts
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
6
|
+
export { ReadDocumentStorageServiceBase, ReplayController } from "./replayController";
|
|
7
|
+
export { ReplayDocumentService } from "./replayDocumentService";
|
|
8
|
+
export { ReplayDocumentServiceFactory } from "./replayDocumentServiceFactory";
|
|
9
|
+
export {
|
|
10
|
+
FileSnapshotReader,
|
|
11
|
+
IFileSnapshot,
|
|
12
|
+
OpStorage,
|
|
13
|
+
SnapshotStorage,
|
|
14
|
+
StaticStorageDocumentServiceFactory,
|
|
15
|
+
} from "./storageImplementations";
|
package/src/replayController.ts
CHANGED
|
@@ -4,82 +4,88 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
IDocumentService,
|
|
8
|
+
IDocumentStorageService,
|
|
9
|
+
ISummaryContext,
|
|
10
10
|
} from "@fluidframework/driver-definitions";
|
|
11
11
|
import * as api from "@fluidframework/protocol-definitions";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Partial implementation of IDocumentStorageService
|
|
15
|
+
* @internal
|
|
15
16
|
*/
|
|
16
17
|
export abstract class ReadDocumentStorageServiceBase implements IDocumentStorageService {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
public abstract getVersions(versionId: string | null, count: number): Promise<api.IVersion[]>;
|
|
19
|
+
public abstract getSnapshotTree(version?: api.IVersion): Promise<api.ISnapshotTree | null>;
|
|
20
|
+
public abstract readBlob(blobId: string): Promise<ArrayBufferLike>;
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
public async uploadSummaryWithContext(
|
|
23
|
+
summary: api.ISummaryTree,
|
|
24
|
+
context: ISummaryContext,
|
|
25
|
+
): Promise<string> {
|
|
26
|
+
throw new Error("Invalid operation");
|
|
27
|
+
}
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
public async createBlob(file: ArrayBufferLike): Promise<api.ICreateBlobResponse> {
|
|
30
|
+
throw new Error("Invalid operation");
|
|
31
|
+
}
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
public async downloadSummary(handle: api.ISummaryHandle): Promise<api.ISummaryTree> {
|
|
34
|
+
throw new Error("Invalid operation");
|
|
35
|
+
}
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
public get repositoryUrl(): string {
|
|
38
|
+
throw new Error("Invalid operation");
|
|
39
|
+
}
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
/**
|
|
39
43
|
* Replay controller object
|
|
40
44
|
* It controls where we start (snapshot, local file, no snapshots)
|
|
41
45
|
* As well as dispatch of ops
|
|
46
|
+
* @internal
|
|
42
47
|
*/
|
|
43
48
|
export abstract class ReplayController extends ReadDocumentStorageServiceBase {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Initialize reply controller
|
|
51
|
+
* @param documentService - the real document service
|
|
52
|
+
* @returns Whether or not the controller should be used.
|
|
53
|
+
* If `false` is returned, caller should fallback to original storage.
|
|
54
|
+
*/
|
|
55
|
+
public abstract initStorage(documentService: IDocumentService): Promise<boolean>;
|
|
51
56
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Returns sequence number to start processing ops
|
|
59
|
+
* Should be zero if not using snapshot, and snapshot seq# otherwise
|
|
60
|
+
*/
|
|
61
|
+
public abstract getStartingOpSequence(): Promise<number>;
|
|
57
62
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Returns last op number to fetch from current op
|
|
65
|
+
* Note: this API is called while replay() is in progress - next batch of ops is downloaded in parallel
|
|
66
|
+
* @param currentOp - current op
|
|
67
|
+
*/
|
|
68
|
+
public abstract fetchTo(currentOp: number): number | undefined;
|
|
64
69
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Returns true if no more ops should be processed (or downloaded for future processing).
|
|
72
|
+
* It's called at end of each batch with latest op timestamp.
|
|
73
|
+
* Also it's called when there are no more ops available (lastTimeStamp === undefined).
|
|
74
|
+
* If false is returned and there are no more ops, request for more ops is made every 2 seconds.
|
|
75
|
+
* Note: this API is called while replay() is in progress - next batch of ops is downloaded in parallel
|
|
76
|
+
* @param currentOp - current op
|
|
77
|
+
* @param lastTimeStamp - timestamp of last op (if more ops are available). Undefined otherwise.
|
|
78
|
+
*/
|
|
79
|
+
public abstract isDoneFetch(currentOp: number, lastTimeStamp?: number): boolean;
|
|
75
80
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Replay batch of ops
|
|
83
|
+
* NOTE: new batch of ops is fetched (fetchTo() & isDoneFetch() APIs are called) while this call is in flights
|
|
84
|
+
* @param emitter - callback to emit ops
|
|
85
|
+
* @param fetchedOps - ops to process
|
|
86
|
+
*/
|
|
87
|
+
public abstract replay(
|
|
88
|
+
emitter: (op: api.ISequencedDocumentMessage[]) => void,
|
|
89
|
+
fetchedOps: api.ISequencedDocumentMessage[],
|
|
90
|
+
): Promise<void>;
|
|
85
91
|
}
|