@fluidframework/file-driver 2.0.0-dev-rc.5.0.0.263932 → 2.0.0-dev-rc.5.0.0.267932
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/api-report/file-driver.api.md +34 -30
- package/dist/fileDeltaStorageService.d.ts +4 -4
- package/dist/fileDeltaStorageService.d.ts.map +1 -1
- package/dist/fileDeltaStorageService.js.map +1 -1
- package/dist/fileDocumentDeltaConnection.d.ts +2 -2
- package/dist/fileDocumentDeltaConnection.d.ts.map +1 -1
- package/dist/fileDocumentDeltaConnection.js +3 -3
- package/dist/fileDocumentDeltaConnection.js.map +1 -1
- package/dist/fileDocumentService.d.ts +8 -8
- package/dist/fileDocumentService.d.ts.map +1 -1
- package/dist/fileDocumentService.js.map +1 -1
- package/dist/fileDocumentServiceFactory.d.ts +1 -1
- package/dist/fileDocumentServiceFactory.d.ts.map +1 -1
- package/dist/fileDocumentServiceFactory.js.map +1 -1
- package/dist/fileDocumentStorageService.d.ts +19 -19
- package/dist/fileDocumentStorageService.d.ts.map +1 -1
- package/dist/fileDocumentStorageService.js +11 -34
- package/dist/fileDocumentStorageService.js.map +1 -1
- package/lib/fileDeltaStorageService.d.ts +4 -4
- package/lib/fileDeltaStorageService.d.ts.map +1 -1
- package/lib/fileDeltaStorageService.js.map +1 -1
- package/lib/fileDocumentDeltaConnection.d.ts +2 -2
- package/lib/fileDocumentDeltaConnection.d.ts.map +1 -1
- package/lib/fileDocumentDeltaConnection.js +2 -2
- package/lib/fileDocumentDeltaConnection.js.map +1 -1
- package/lib/fileDocumentService.d.ts +8 -8
- package/lib/fileDocumentService.d.ts.map +1 -1
- package/lib/fileDocumentService.js.map +1 -1
- package/lib/fileDocumentServiceFactory.d.ts +1 -1
- package/lib/fileDocumentServiceFactory.d.ts.map +1 -1
- package/lib/fileDocumentServiceFactory.js.map +1 -1
- package/lib/fileDocumentStorageService.d.ts +19 -19
- package/lib/fileDocumentStorageService.d.ts.map +1 -1
- package/lib/fileDocumentStorageService.js +6 -6
- package/lib/fileDocumentStorageService.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +17 -14
- package/src/fileDeltaStorageService.ts +6 -6
- package/src/fileDocumentDeltaConnection.ts +6 -6
- package/src/fileDocumentService.ts +17 -10
- package/src/fileDocumentServiceFactory.ts +1 -1
- package/src/fileDocumentStorageService.ts +23 -17
|
@@ -4,31 +4,35 @@
|
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
7
|
+
import { ConnectionMode } from '@fluidframework/driver-definitions';
|
|
8
|
+
import { IClientConfiguration } from '@fluidframework/driver-definitions/internal';
|
|
9
|
+
import { IConnected } from '@fluidframework/driver-definitions/internal';
|
|
10
|
+
import { ICreateBlobResponse } from '@fluidframework/driver-definitions/internal';
|
|
11
11
|
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
12
12
|
import { IDocumentDeltaConnection } from '@fluidframework/driver-definitions/internal';
|
|
13
13
|
import { IDocumentDeltaConnectionEvents } from '@fluidframework/driver-definitions/internal';
|
|
14
14
|
import { IDocumentDeltaStorageService } from '@fluidframework/driver-definitions/internal';
|
|
15
|
-
import { IDocumentMessage } from '@fluidframework/
|
|
15
|
+
import { IDocumentMessage } from '@fluidframework/driver-definitions/internal';
|
|
16
16
|
import { IDocumentService } from '@fluidframework/driver-definitions/internal';
|
|
17
17
|
import { IDocumentServiceFactory } from '@fluidframework/driver-definitions/internal';
|
|
18
18
|
import { IDocumentStorageService } from '@fluidframework/driver-definitions/internal';
|
|
19
19
|
import { IDocumentStorageServicePolicies } from '@fluidframework/driver-definitions/internal';
|
|
20
20
|
import { IFileSnapshot } from '@fluidframework/replay-driver/internal';
|
|
21
21
|
import { IResolvedUrl } from '@fluidframework/driver-definitions/internal';
|
|
22
|
-
import { ISequencedDocumentMessage } from '@fluidframework/
|
|
23
|
-
import { ISignalClient } from '@fluidframework/
|
|
24
|
-
import { ISignalMessage } from '@fluidframework/
|
|
22
|
+
import { ISequencedDocumentMessage } from '@fluidframework/driver-definitions';
|
|
23
|
+
import { ISignalClient } from '@fluidframework/driver-definitions/internal';
|
|
24
|
+
import { ISignalMessage } from '@fluidframework/driver-definitions';
|
|
25
25
|
import { ISnapshot } from '@fluidframework/driver-definitions/internal';
|
|
26
26
|
import { ISnapshotFetchOptions } from '@fluidframework/driver-definitions/internal';
|
|
27
|
+
import { ISnapshotTree } from '@fluidframework/driver-definitions/internal';
|
|
27
28
|
import { IStream } from '@fluidframework/driver-definitions/internal';
|
|
28
29
|
import { ISummaryContext } from '@fluidframework/driver-definitions/internal';
|
|
29
|
-
import {
|
|
30
|
+
import { ISummaryHandle } from '@fluidframework/driver-definitions';
|
|
31
|
+
import { ISummaryTree } from '@fluidframework/driver-definitions';
|
|
30
32
|
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
31
|
-
import { ITokenClaims } from '@fluidframework/
|
|
33
|
+
import { ITokenClaims } from '@fluidframework/driver-definitions/internal';
|
|
34
|
+
import { ITree } from '@fluidframework/driver-definitions/internal';
|
|
35
|
+
import { IVersion } from '@fluidframework/driver-definitions/internal';
|
|
32
36
|
import { ReadDocumentStorageServiceBase } from '@fluidframework/replay-driver/internal';
|
|
33
37
|
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
34
38
|
|
|
@@ -36,10 +40,10 @@ import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
|
36
40
|
export class FileDeltaStorageService implements IDocumentDeltaStorageService {
|
|
37
41
|
constructor(path: string);
|
|
38
42
|
// (undocumented)
|
|
39
|
-
fetchMessages(from: number, to: number | undefined, abortSignal?: AbortSignal, cachedOnly?: boolean): IStream<
|
|
40
|
-
getFromWebSocket(from: number, to: number):
|
|
43
|
+
fetchMessages(from: number, to: number | undefined, abortSignal?: AbortSignal, cachedOnly?: boolean): IStream<ISequencedDocumentMessage[]>;
|
|
44
|
+
getFromWebSocket(from: number, to: number): ISequencedDocumentMessage[];
|
|
41
45
|
// (undocumented)
|
|
42
|
-
get ops(): readonly Readonly<
|
|
46
|
+
get ops(): readonly Readonly<ISequencedDocumentMessage>[];
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
// @internal
|
|
@@ -54,19 +58,19 @@ export class FileDocumentServiceFactory implements IDocumentServiceFactory {
|
|
|
54
58
|
export const FileSnapshotWriterClassFactory: <TBase extends ReaderConstructor>(Base: TBase) => {
|
|
55
59
|
new (...args: any[]): {
|
|
56
60
|
blobsWriter: Map<string, ArrayBufferLike>;
|
|
57
|
-
latestWriterTree?:
|
|
61
|
+
latestWriterTree?: ISnapshotTree | undefined;
|
|
58
62
|
docId?: string | undefined;
|
|
59
63
|
reset(): void;
|
|
60
64
|
onSnapshotHandler(snapshot: IFileSnapshot): void;
|
|
61
65
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
62
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
63
|
-
getSnapshotTree(version?:
|
|
64
|
-
uploadSummaryWithContext(summary:
|
|
65
|
-
buildTree(snapshotTree:
|
|
66
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
67
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
68
|
+
uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
|
|
69
|
+
buildTree(snapshotTree: ISnapshotTree): Promise<ITree>;
|
|
66
70
|
readonly policies?: IDocumentStorageServicePolicies | undefined;
|
|
67
71
|
getSnapshot?(snapshotFetchOptions?: ISnapshotFetchOptions | undefined): Promise<ISnapshot>;
|
|
68
|
-
createBlob(file: ArrayBufferLike): Promise<
|
|
69
|
-
downloadSummary(handle:
|
|
72
|
+
createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse>;
|
|
73
|
+
downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree>;
|
|
70
74
|
readonly disposed?: boolean | undefined;
|
|
71
75
|
dispose?: ((error?: Error | undefined) => void) | undefined;
|
|
72
76
|
};
|
|
@@ -79,9 +83,9 @@ export const FileStorageDocumentName = "FileStorageDocId";
|
|
|
79
83
|
export class FluidFetchReader extends ReadDocumentStorageServiceBase implements IDocumentStorageService {
|
|
80
84
|
constructor(path: string, versionName?: string | undefined);
|
|
81
85
|
// (undocumented)
|
|
82
|
-
protected docTree:
|
|
83
|
-
getSnapshotTree(version?:
|
|
84
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
86
|
+
protected docTree: ISnapshotTree | null;
|
|
87
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
88
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
85
89
|
// (undocumented)
|
|
86
90
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
87
91
|
}
|
|
@@ -90,19 +94,19 @@ export class FluidFetchReader extends ReadDocumentStorageServiceBase implements
|
|
|
90
94
|
export const FluidFetchReaderFileSnapshotWriter: {
|
|
91
95
|
new (...args: any[]): {
|
|
92
96
|
blobsWriter: Map<string, ArrayBufferLike>;
|
|
93
|
-
latestWriterTree?:
|
|
97
|
+
latestWriterTree?: ISnapshotTree | undefined;
|
|
94
98
|
docId?: string | undefined;
|
|
95
99
|
reset(): void;
|
|
96
100
|
onSnapshotHandler(snapshot: IFileSnapshot): void;
|
|
97
101
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
98
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
99
|
-
getSnapshotTree(version?:
|
|
100
|
-
uploadSummaryWithContext(summary:
|
|
101
|
-
buildTree(snapshotTree:
|
|
102
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
103
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
104
|
+
uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
|
|
105
|
+
buildTree(snapshotTree: ISnapshotTree): Promise<ITree>;
|
|
102
106
|
readonly policies?: IDocumentStorageServicePolicies | undefined;
|
|
103
107
|
getSnapshot?(snapshotFetchOptions?: ISnapshotFetchOptions | undefined): Promise<ISnapshot>;
|
|
104
|
-
createBlob(file: ArrayBufferLike): Promise<
|
|
105
|
-
downloadSummary(handle:
|
|
108
|
+
createBlob(file: ArrayBufferLike): Promise<ICreateBlobResponse>;
|
|
109
|
+
downloadSummary(handle: ISummaryHandle): Promise<ISummaryTree>;
|
|
106
110
|
readonly disposed?: boolean | undefined;
|
|
107
111
|
dispose?: ((error?: Error | undefined) => void) | undefined;
|
|
108
112
|
};
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
+
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
|
|
5
6
|
import { IDocumentDeltaStorageService, IStream } from "@fluidframework/driver-definitions/internal";
|
|
6
|
-
import * as api from "@fluidframework/protocol-definitions";
|
|
7
7
|
/**
|
|
8
8
|
* Provides access to the underlying delta storage on the local file storage for file driver.
|
|
9
9
|
* @internal
|
|
@@ -13,14 +13,14 @@ export declare class FileDeltaStorageService implements IDocumentDeltaStorageSer
|
|
|
13
13
|
private readonly messages;
|
|
14
14
|
private lastOps;
|
|
15
15
|
constructor(path: string);
|
|
16
|
-
fetchMessages(from: number, to: number | undefined, abortSignal?: AbortSignal, cachedOnly?: boolean): IStream<
|
|
17
|
-
get ops(): readonly Readonly<
|
|
16
|
+
fetchMessages(from: number, to: number | undefined, abortSignal?: AbortSignal, cachedOnly?: boolean): IStream<ISequencedDocumentMessage[]>;
|
|
17
|
+
get ops(): readonly Readonly<ISequencedDocumentMessage>[];
|
|
18
18
|
/**
|
|
19
19
|
* Retrieve ops within the exclusive sequence number range.
|
|
20
20
|
*
|
|
21
21
|
* @param from - First op to be fetched.
|
|
22
22
|
* @param to - Last op to be fetched. This is exclusive.
|
|
23
23
|
*/
|
|
24
|
-
getFromWebSocket(from: number, to: number):
|
|
24
|
+
getFromWebSocket(from: number, to: number): ISequencedDocumentMessage[];
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=fileDeltaStorageService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDeltaStorageService.d.ts","sourceRoot":"","sources":["../src/fileDeltaStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fileDeltaStorageService.d.ts","sourceRoot":"","sources":["../src/fileDeltaStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,6CAA6C,CAAC;AAGpG;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,4BAA4B;IAI/D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,OAAO,CAAmC;gBAErB,IAAI,EAAE,MAAM;IAkBlC,aAAa,CACnB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAIvC,IAAW,GAAG,IAAI,SAAS,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAE/D;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,yBAAyB,EAAE;CAmB9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDeltaStorageService.js","sourceRoot":"","sources":["../src/fileDeltaStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,4CAAoB;AAEpB,kEAA6D;
|
|
1
|
+
{"version":3,"file":"fileDeltaStorageService.js","sourceRoot":"","sources":["../src/fileDeltaStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,4CAAoB;AAEpB,kEAA6D;AAG7D,oEAA2E;AAE3E;;;GAGG;AACH,MAAa,uBAAuB;IAInC,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAFjC,YAAO,GAAgC,EAAE,CAAC;QAGjD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,aAAa,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC;YAC9E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,YAAY,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM;YACP,CAAC;YACD,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEM,aAAa,CACnB,IAAY,EACZ,EAAsB,EACtB,WAAyB,EACzB,UAAoB;QAEpB,OAAO,6BAAkB,CAAC;IAC3B,CAAC;IAED,IAAW,GAAG;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACI,gBAAgB,CAAC,IAAY,EAAE,EAAU;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY;QAE/D,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC3E,OAAO,EAAE,CAAC;QACX,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrD,IAAA,iBAAM,EACL,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,QAAQ,GAAG,CAAC,EAC/C,KAAK,CAAC,kEAAkE,CACxE,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD;AA5DD,0DA4DC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport fs from \"fs\";\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions\";\nimport { IDocumentDeltaStorageService, IStream } from \"@fluidframework/driver-definitions/internal\";\nimport { emptyMessageStream } from \"@fluidframework/driver-utils/internal\";\n\n/**\n * Provides access to the underlying delta storage on the local file storage for file driver.\n * @internal\n */\nexport class FileDeltaStorageService implements IDocumentDeltaStorageService {\n\tprivate readonly messages: ISequencedDocumentMessage[];\n\tprivate lastOps: ISequencedDocumentMessage[] = [];\n\n\tconstructor(private readonly path: string) {\n\t\tthis.messages = [];\n\t\tlet counter = 0;\n\t\t// eslint-disable-next-line no-constant-condition\n\t\twhile (true) {\n\t\t\tconst filename = `${this.path}//messages${counter === 0 ? \"\" : counter}.json`;\n\t\t\tif (!fs.existsSync(filename)) {\n\t\t\t\tif (counter === 0) {\n\t\t\t\t\tthrow new Error(`file ${filename} not found`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst data = fs.readFileSync(filename);\n\t\t\tthis.messages = this.messages.concat(JSON.parse(data.toString(\"utf-8\")));\n\t\t\tcounter++;\n\t\t}\n\t}\n\n\tpublic fetchMessages(\n\t\tfrom: number,\n\t\tto: number | undefined,\n\t\tabortSignal?: AbortSignal,\n\t\tcachedOnly?: boolean,\n\t): IStream<ISequencedDocumentMessage[]> {\n\t\treturn emptyMessageStream;\n\t}\n\n\tpublic get ops(): readonly Readonly<ISequencedDocumentMessage>[] {\n\t\treturn this.messages;\n\t}\n\n\t/**\n\t * Retrieve ops within the exclusive sequence number range.\n\t *\n\t * @param from - First op to be fetched.\n\t * @param to - Last op to be fetched. This is exclusive.\n\t */\n\tpublic getFromWebSocket(from: number, to: number): ISequencedDocumentMessage[] {\n\t\tconst readFrom = Math.max(from, 0); // Inclusive\n\t\tconst readTo = Math.min(to, this.messages.length); // Exclusive\n\n\t\tif (readFrom >= this.messages.length || readTo <= 0 || readFrom >= readTo) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// Optimizations for multiple readers (replay tool)\n\t\tif (this.lastOps.length > 0 && this.lastOps[0].sequenceNumber === readFrom + 1) {\n\t\t\treturn this.lastOps;\n\t\t}\n\t\tthis.lastOps = this.messages.slice(readFrom, readTo);\n\t\tassert(\n\t\t\tthis.lastOps[0].sequenceNumber === readFrom + 1,\n\t\t\t0x091 /* \"Retrieved ops' first sequence number has unexpected value!\" */,\n\t\t);\n\t\treturn this.lastOps;\n\t}\n}\n"]}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
6
6
|
import { IDisposable } from "@fluidframework/core-interfaces";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { ConnectionMode, ISequencedDocumentMessage, ISignalMessage } from "@fluidframework/driver-definitions";
|
|
8
|
+
import { IDocumentDeltaConnection, IDocumentDeltaConnectionEvents, IClientConfiguration, IConnected, IDocumentMessage, ISignalClient, ITokenClaims } from "@fluidframework/driver-definitions/internal";
|
|
9
9
|
import { FileDeltaStorageService } from "./fileDeltaStorageService.js";
|
|
10
10
|
/**
|
|
11
11
|
* Replay service used to play ops using the delta connection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentDeltaConnection.d.ts","sourceRoot":"","sources":["../src/fileDocumentDeltaConnection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACN,
|
|
1
|
+
{"version":3,"file":"fileDocumentDeltaConnection.d.ts","sourceRoot":"","sources":["../src/fileDocumentDeltaConnection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EACN,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EAEZ,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAuBvE;;;GAGG;AACH,qBAAa,QAAQ;IAInB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAJxC,OAAO,CAAC,eAAe,CAAK;gBAGV,eAAe,EAAE,yBAAyB,EAC1C,sBAAsB,EAAE,uBAAuB;IAGjE,IAAW,iBAAiB,IAIK,MAAM,CAFtC;IAED,IAAW,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAEtC;IAED,IAAW,GAAG,IAAI,SAAS,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAE/D;IAED;;;OAGG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM;IAwB9B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,IAAI;CAOZ;AAED;;GAEG;AACH,qBAAa,yBACZ,SAAQ,iBAAiB,CAAC,8BAA8B,CACxD,YAAW,wBAAwB,EAAE,WAAW;IAwCxC,OAAO,EAAE,UAAU;IAtC3B;;;;;OAKG;WACiB,MAAM,CACzB,2BAA2B,EAAE,uBAAuB,GAClD,OAAO,CAAC,yBAAyB,CAAC;IA0BrC,SAAgB,cAAc,SAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAG5B,OAAO,EAAE,UAAU,EAC1B,2BAA2B,EAAE,uBAAuB;IAM9C,WAAW;IAIlB,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,cAAc,CAEhC;IAED,IAAW,MAAM,IAAI,YAAY,CAEhC;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,eAAe,IAAI,yBAAyB,EAAE,CAExD;IAED,IAAW,cAAc,IAAI,cAAc,EAAE,CAE5C;IAED,IAAW,cAAc,IAAI,aAAa,EAAE,CAE3C;IAED,IAAW,oBAAoB,IAAI,oBAAoB,CAEtD;IAEM,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAM5C,YAAY,CAAC,OAAO,EAAE,GAAG;IAEtC,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAW,QAAQ,YAElB;IACM,OAAO;CAGd"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.ReplayFileDeltaConnection = exports.Replayer = void 0;
|
|
8
8
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
9
|
-
const
|
|
9
|
+
const internal_1 = require("@fluidframework/driver-definitions/internal");
|
|
10
10
|
const MaxBatchDeltas = 2000;
|
|
11
11
|
// Since the replay service never actually sends messages the size below is arbitrary
|
|
12
12
|
const ReplayMaxMessageSize = 16 * 1024;
|
|
@@ -14,13 +14,13 @@ const fileProtocolVersion = "^0.1.0";
|
|
|
14
14
|
const replayDocumentId = "replayDocId";
|
|
15
15
|
const Claims = {
|
|
16
16
|
documentId: replayDocumentId,
|
|
17
|
-
scopes: [
|
|
17
|
+
scopes: [internal_1.ScopeType.DocRead],
|
|
18
18
|
tenantId: "",
|
|
19
19
|
user: {
|
|
20
20
|
id: "",
|
|
21
21
|
},
|
|
22
22
|
iat: Math.round(new Date().getTime() / 1000),
|
|
23
|
-
exp: Math.round(new Date().getTime() / 1000) + 60 * 60,
|
|
23
|
+
exp: Math.round(new Date().getTime() / 1000) + 60 * 60, // 1 hour expiration
|
|
24
24
|
ver: "1.0",
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentDeltaConnection.js","sourceRoot":"","sources":["../src/fileDocumentDeltaConnection.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;
|
|
1
|
+
{"version":3,"file":"fileDocumentDeltaConnection.js","sourceRoot":"","sources":["../src/fileDocumentDeltaConnection.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 { TypedEventEmitter } from \"@fluid-internal/client-utils\";\nimport { IDisposable } from \"@fluidframework/core-interfaces\";\nimport {\n\tConnectionMode,\n\tISequencedDocumentMessage,\n\tISignalMessage,\n} from \"@fluidframework/driver-definitions\";\nimport {\n\tIDocumentDeltaConnection,\n\tIDocumentDeltaConnectionEvents,\n\tIClientConfiguration,\n\tIConnected,\n\tIDocumentMessage,\n\tISignalClient,\n\tITokenClaims,\n\tScopeType,\n} from \"@fluidframework/driver-definitions/internal\";\n\nimport { FileDeltaStorageService } from \"./fileDeltaStorageService.js\";\n\nconst MaxBatchDeltas = 2000;\n\n// Since the replay service never actually sends messages the size below is arbitrary\nconst ReplayMaxMessageSize = 16 * 1024;\n\nconst fileProtocolVersion = \"^0.1.0\";\n\nconst replayDocumentId = \"replayDocId\";\n\nconst Claims: ITokenClaims = {\n\tdocumentId: replayDocumentId,\n\tscopes: [ScopeType.DocRead],\n\ttenantId: \"\",\n\tuser: {\n\t\tid: \"\",\n\t},\n\tiat: Math.round(new Date().getTime() / 1000),\n\texp: Math.round(new Date().getTime() / 1000) + 60 * 60, // 1 hour expiration\n\tver: \"1.0\",\n};\n\n/**\n * Replay service used to play ops using the delta connection.\n * @internal\n */\nexport class Replayer {\n\tprivate currentReplayOp = 0;\n\n\tconstructor(\n\t\tprivate readonly deltaConnection: ReplayFileDeltaConnection,\n\t\tprivate readonly documentStorageService: FileDeltaStorageService,\n\t) {}\n\n\tpublic get currentReplayedOp() {\n\t\treturn this.currentReplayOp;\n\t}\n\n\tpublic set currentReplayedOp(op: number) {\n\t\tthis.currentReplayOp = op;\n\t}\n\n\tpublic get ops(): readonly Readonly<ISequencedDocumentMessage>[] {\n\t\treturn this.documentStorageService.ops;\n\t}\n\n\t/**\n\t * Replay the ops upto a certain number.\n\t * @param replayTo - The last op number to be replayed.\n\t */\n\tpublic replay(replayTo: number) {\n\t\tlet totalReplayedOps = 0;\n\t\tlet done: boolean;\n\t\tdo {\n\t\t\tconst fetchToBatch = this.currentReplayOp + MaxBatchDeltas;\n\t\t\tconst fetchTo = Math.min(fetchToBatch, replayTo);\n\n\t\t\tconst fetchedOps = this.documentStorageService.getFromWebSocket(\n\t\t\t\tthis.currentReplayOp,\n\t\t\t\tfetchTo,\n\t\t\t);\n\n\t\t\tif (fetchedOps.length <= 0) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tthis.emit(fetchedOps);\n\t\t\t\ttotalReplayedOps += fetchedOps.length;\n\t\t\t\tthis.currentReplayOp += fetchedOps.length;\n\t\t\t\tdone = this.isDoneFetch(replayTo);\n\t\t\t}\n\t\t} while (!done);\n\t\treturn totalReplayedOps;\n\t}\n\n\tprivate isDoneFetch(replayTo: number) {\n\t\tif (replayTo >= 0) {\n\t\t\treturn this.currentReplayOp >= replayTo;\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate emit(ops: ISequencedDocumentMessage[]) {\n\t\t// Note: do not clone messages here!\n\t\t// If Replay Tool fails due to one container patching message in-place,\n\t\t// then same thing can happen in shipping product due to\n\t\t// socket reuse in ODSP between main and summarizer containers.\n\t\tthis.deltaConnection.emit(\"op\", replayDocumentId, ops);\n\t}\n}\n\n/**\n * @internal\n */\nexport class ReplayFileDeltaConnection\n\textends TypedEventEmitter<IDocumentDeltaConnectionEvents>\n\timplements IDocumentDeltaConnection, IDisposable\n{\n\t/**\n\t * Mimic the delta connection to replay ops on it.\n\t *\n\t * @param documentDeltaStorageService - The delta storage service to get ops from.\n\t * @returns Document delta connection.\n\t */\n\tpublic static async create(\n\t\tdocumentDeltaStorageService: FileDeltaStorageService,\n\t): Promise<ReplayFileDeltaConnection> {\n\t\tconst mode: ConnectionMode = \"read\";\n\t\tconst connection = {\n\t\t\tclaims: Claims,\n\t\t\tclientId: \"PseudoClientId\",\n\t\t\texisting: true,\n\t\t\tinitialMessages: [],\n\t\t\tinitialSignals: [],\n\t\t\tinitialClients: [],\n\t\t\tmaxMessageSize: ReplayMaxMessageSize,\n\t\t\tmode,\n\t\t\tserviceConfiguration: {\n\t\t\t\tblockSize: 64436,\n\t\t\t\tmaxMessageSize: ReplayMaxMessageSize,\n\t\t\t},\n\t\t\tsupportedVersions: [fileProtocolVersion],\n\t\t\tuser: null,\n\t\t\tversion: fileProtocolVersion,\n\t\t};\n\t\tconst deltaConnection = new ReplayFileDeltaConnection(\n\t\t\tconnection,\n\t\t\tdocumentDeltaStorageService,\n\t\t);\n\t\treturn deltaConnection;\n\t}\n\n\tpublic readonly maxMessageSize = ReplayMaxMessageSize;\n\tprivate readonly replayer: Replayer;\n\n\tpublic constructor(\n\t\tpublic details: IConnected,\n\t\tdocumentDeltaStorageService: FileDeltaStorageService,\n\t) {\n\t\tsuper();\n\t\tthis.replayer = new Replayer(this, documentDeltaStorageService);\n\t}\n\n\tpublic getReplayer() {\n\t\treturn this.replayer;\n\t}\n\n\tpublic get clientId(): string {\n\t\treturn this.details.clientId;\n\t}\n\n\tpublic get mode(): ConnectionMode {\n\t\treturn this.details.mode;\n\t}\n\n\tpublic get claims(): ITokenClaims {\n\t\treturn this.details.claims;\n\t}\n\n\tpublic get existing(): boolean {\n\t\treturn this.details.existing;\n\t}\n\n\tpublic get version(): string {\n\t\treturn this.details.version;\n\t}\n\n\tpublic get initialMessages(): ISequencedDocumentMessage[] {\n\t\treturn this.details.initialMessages;\n\t}\n\n\tpublic get initialSignals(): ISignalMessage[] {\n\t\treturn this.details.initialSignals;\n\t}\n\n\tpublic get initialClients(): ISignalClient[] {\n\t\treturn this.details.initialClients;\n\t}\n\n\tpublic get serviceConfiguration(): IClientConfiguration {\n\t\treturn this.details.serviceConfiguration;\n\t}\n\n\tpublic submit(documentMessages: IDocumentMessage[]): void {\n\t\t// ReplayFileDeltaConnection.submit() can't be called - client never sees its own join on,\n\t\t// and thus can never move to sending ops.\n\t\tthrow new Error(\"ReplayFileDeltaConnection.submit() can't be called\");\n\t}\n\n\tpublic async submitSignal(message: any) {}\n\n\tprivate _disposed = false;\n\tpublic get disposed() {\n\t\treturn this._disposed;\n\t}\n\tpublic dispose() {\n\t\tthis._disposed = true;\n\t}\n}\n"]}
|
|
@@ -3,22 +3,22 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
6
|
+
import { IClient } from "@fluidframework/driver-definitions";
|
|
7
|
+
import { IDocumentServiceEvents, IDocumentService, IResolvedUrl, IDocumentStorageService, IDocumentDeltaConnection, IDocumentDeltaStorageService } from "@fluidframework/driver-definitions/internal";
|
|
8
8
|
import { FileDeltaStorageService } from "./fileDeltaStorageService.js";
|
|
9
9
|
/**
|
|
10
10
|
* The DocumentService manages the different endpoints for connecting to
|
|
11
11
|
* underlying storage for file document service.
|
|
12
12
|
*/
|
|
13
|
-
export declare class FileDocumentService extends TypedEventEmitter<
|
|
14
|
-
readonly resolvedUrl:
|
|
13
|
+
export declare class FileDocumentService extends TypedEventEmitter<IDocumentServiceEvents> implements IDocumentService {
|
|
14
|
+
readonly resolvedUrl: IResolvedUrl;
|
|
15
15
|
private readonly storage;
|
|
16
16
|
private readonly deltaStorage;
|
|
17
17
|
private readonly deltaConnection;
|
|
18
|
-
constructor(resolvedUrl:
|
|
18
|
+
constructor(resolvedUrl: IResolvedUrl, storage: IDocumentStorageService, deltaStorage: FileDeltaStorageService, deltaConnection: IDocumentDeltaConnection);
|
|
19
19
|
dispose(): void;
|
|
20
|
-
connectToStorage(): Promise<
|
|
21
|
-
connectToDeltaStorage(): Promise<
|
|
20
|
+
connectToStorage(): Promise<IDocumentStorageService>;
|
|
21
|
+
connectToDeltaStorage(): Promise<IDocumentDeltaStorageService>;
|
|
22
22
|
/**
|
|
23
23
|
* Connects to a delta storage endpoint of provided documentService to get ops and then replaying
|
|
24
24
|
* them so as to mimic a delta stream endpoint.
|
|
@@ -26,6 +26,6 @@ export declare class FileDocumentService extends TypedEventEmitter<api.IDocument
|
|
|
26
26
|
* @param client - Client that connects to socket.
|
|
27
27
|
* @returns returns the delta stream service.
|
|
28
28
|
*/
|
|
29
|
-
connectToDeltaStream(client: IClient): Promise<
|
|
29
|
+
connectToDeltaStream(client: IClient): Promise<IDocumentDeltaConnection>;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=fileDocumentService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentService.d.ts","sourceRoot":"","sources":["../src/fileDocumentService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"fileDocumentService.d.ts","sourceRoot":"","sources":["../src/fileDocumentService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EACN,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;GAGG;AACH,qBAAa,mBACZ,SAAQ,iBAAiB,CAAC,sBAAsB,CAEhD,YAAW,gBAAgB;aAGV,WAAW,EAAE,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHhB,WAAW,EAAE,YAAY,EACxB,OAAO,EAAE,uBAAuB,EAChC,YAAY,EAAE,uBAAuB,EACrC,eAAe,EAAE,wBAAwB;IAKpD,OAAO;IAED,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAIpD,qBAAqB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAI3E;;;;;;OAMG;IACU,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAGrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentService.js","sourceRoot":"","sources":["../src/fileDocumentService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;
|
|
1
|
+
{"version":3,"file":"fileDocumentService.js","sourceRoot":"","sources":["../src/fileDocumentService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;AAajE;;;GAGG;AACH,MAAa,mBACZ,SAAQ,gCAAyC;IAIjD,YACiB,WAAyB,EACxB,OAAgC,EAChC,YAAqC,EACrC,eAAyC;QAE1D,KAAK,EAAE,CAAC;QALQ,gBAAW,GAAX,WAAW,CAAc;QACxB,YAAO,GAAP,OAAO,CAAyB;QAChC,iBAAY,GAAZ,YAAY,CAAyB;QACrC,oBAAe,GAAf,eAAe,CAA0B;IAG3D,CAAC;IAEM,OAAO,KAAI,CAAC;IAEZ,KAAK,CAAC,gBAAgB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAAe;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;CACD;AAlCD,kDAkCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TypedEventEmitter } from \"@fluid-internal/client-utils\";\nimport { IClient } from \"@fluidframework/driver-definitions\";\nimport {\n\tIDocumentServiceEvents,\n\tIDocumentService,\n\tIResolvedUrl,\n\tIDocumentStorageService,\n\tIDocumentDeltaConnection,\n\tIDocumentDeltaStorageService,\n} from \"@fluidframework/driver-definitions/internal\";\n\nimport { FileDeltaStorageService } from \"./fileDeltaStorageService.js\";\n\n/**\n * The DocumentService manages the different endpoints for connecting to\n * underlying storage for file document service.\n */\nexport class FileDocumentService\n\textends TypedEventEmitter<IDocumentServiceEvents>\n\t// eslint-disable-next-line import/namespace\n\timplements IDocumentService\n{\n\tconstructor(\n\t\tpublic readonly resolvedUrl: IResolvedUrl,\n\t\tprivate readonly storage: IDocumentStorageService,\n\t\tprivate readonly deltaStorage: FileDeltaStorageService,\n\t\tprivate readonly deltaConnection: IDocumentDeltaConnection,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic dispose() {}\n\n\tpublic async connectToStorage(): Promise<IDocumentStorageService> {\n\t\treturn this.storage;\n\t}\n\n\tpublic async connectToDeltaStorage(): Promise<IDocumentDeltaStorageService> {\n\t\treturn this.deltaStorage;\n\t}\n\n\t/**\n\t * Connects to a delta storage endpoint of provided documentService to get ops and then replaying\n\t * them so as to mimic a delta stream endpoint.\n\t *\n\t * @param client - Client that connects to socket.\n\t * @returns returns the delta stream service.\n\t */\n\tpublic async connectToDeltaStream(client: IClient): Promise<IDocumentDeltaConnection> {\n\t\treturn this.deltaConnection;\n\t}\n}\n"]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
6
|
+
import { ISummaryTree } from "@fluidframework/driver-definitions";
|
|
6
7
|
import { IDocumentDeltaConnection, IDocumentService, IDocumentServiceFactory, IDocumentStorageService, IResolvedUrl } from "@fluidframework/driver-definitions/internal";
|
|
7
|
-
import { ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
8
8
|
import { FileDeltaStorageService } from "./fileDeltaStorageService.js";
|
|
9
9
|
/**
|
|
10
10
|
* Factory for creating the file document service. Use this if you want to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentServiceFactory.d.ts","sourceRoot":"","sources":["../src/fileDocumentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"fileDocumentServiceFactory.d.ts","sourceRoot":"","sources":["../src/fileDocumentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,uBAAuB;IAExE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,OAAO,EAAE,uBAAuB,EAChC,YAAY,EAAE,uBAAuB,EACrC,eAAe,EAAE,wBAAwB;IAG3D;;;;;OAKG;IACU,qBAAqB,CACjC,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAUf,eAAe,CAC3B,gBAAgB,EAAE,YAAY,EAC9B,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;CAG5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentServiceFactory.js","sourceRoot":"","sources":["../src/fileDocumentServiceFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH,qEAA+D;AAE/D;;;;GAIG;AACH,MAAa,0BAA0B;IACtC,YACkB,OAAgC,EAChC,YAAqC,EACrC,eAAyC;QAFzC,YAAO,GAAP,OAAO,CAAyB;QAChC,iBAAY,GAAZ,YAAY,CAAyB;QACrC,oBAAe,GAAf,eAAe,CAA0B;IACxD,CAAC;IAEJ;;;;;OAKG;IACI,KAAK,CAAC,qBAAqB,CACjC,WAAyB,EACzB,MAA6B,EAC7B,kBAA4B;QAE5B,OAAO,IAAI,4CAAmB,CAC7B,WAAW,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,CACpB,CAAC;IACH,CAAC;IAED,8EAA8E;IACvE,KAAK,CAAC,eAAe,CAC3B,gBAA8B,EAC9B,WAAyB,EACzB,MAA6B,EAC7B,kBAA4B;QAE5B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAnCD,gEAmCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport {\n\tIDocumentDeltaConnection,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageService,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions/internal\";\
|
|
1
|
+
{"version":3,"file":"fileDocumentServiceFactory.js","sourceRoot":"","sources":["../src/fileDocumentServiceFactory.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH,qEAA+D;AAE/D;;;;GAIG;AACH,MAAa,0BAA0B;IACtC,YACkB,OAAgC,EAChC,YAAqC,EACrC,eAAyC;QAFzC,YAAO,GAAP,OAAO,CAAyB;QAChC,iBAAY,GAAZ,YAAY,CAAyB;QACrC,oBAAe,GAAf,eAAe,CAA0B;IACxD,CAAC;IAEJ;;;;;OAKG;IACI,KAAK,CAAC,qBAAqB,CACjC,WAAyB,EACzB,MAA6B,EAC7B,kBAA4B;QAE5B,OAAO,IAAI,4CAAmB,CAC7B,WAAW,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,eAAe,CACpB,CAAC;IACH,CAAC;IAED,8EAA8E;IACvE,KAAK,CAAC,eAAe,CAC3B,gBAA8B,EAC9B,WAAyB,EACzB,MAA6B,EAC7B,kBAA4B;QAE5B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAnCD,gEAmCC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport {\n\tIDocumentDeltaConnection,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageService,\n\tIResolvedUrl,\n} from \"@fluidframework/driver-definitions/internal\";\n\nimport { FileDeltaStorageService } from \"./fileDeltaStorageService.js\";\nimport { FileDocumentService } from \"./fileDocumentService.js\";\n\n/**\n * Factory for creating the file document service. Use this if you want to\n * use the local file storage as underlying storage.\n * @internal\n */\nexport class FileDocumentServiceFactory implements IDocumentServiceFactory {\n\tconstructor(\n\t\tprivate readonly storage: IDocumentStorageService,\n\t\tprivate readonly deltaStorage: FileDeltaStorageService,\n\t\tprivate readonly deltaConnection: IDocumentDeltaConnection,\n\t) {}\n\n\t/**\n\t * Creates the file document service if the path exists.\n\t *\n\t * @param fileURL - Path of directory containing ops/snapshots.\n\t * @returns file document service.\n\t */\n\tpublic async createDocumentService(\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\treturn new FileDocumentService(\n\t\t\tresolvedUrl,\n\t\t\tthis.storage,\n\t\t\tthis.deltaStorage,\n\t\t\tthis.deltaConnection,\n\t\t);\n\t}\n\n\t// TODO: Issue-2109 Implement detach container api or put appropriate comment.\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree,\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tthrow new Error(\"Not implemented\");\n\t}\n}\n"]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
5
|
+
import { ISummaryTree } from "@fluidframework/driver-definitions";
|
|
6
|
+
import { IDocumentStorageService, ISummaryContext, ISnapshotTree, IVersion, ITree } from "@fluidframework/driver-definitions/internal";
|
|
7
7
|
import { IFileSnapshot, ReadDocumentStorageServiceBase } from "@fluidframework/replay-driver/internal";
|
|
8
8
|
/**
|
|
9
9
|
* @internal
|
|
@@ -16,19 +16,19 @@ export declare const FileStorageDocumentName = "FileStorageDocId";
|
|
|
16
16
|
export declare class FluidFetchReader extends ReadDocumentStorageServiceBase implements IDocumentStorageService {
|
|
17
17
|
private readonly path;
|
|
18
18
|
private readonly versionName?;
|
|
19
|
-
protected docTree:
|
|
19
|
+
protected docTree: ISnapshotTree | null;
|
|
20
20
|
constructor(path: string, versionName?: string | undefined);
|
|
21
21
|
/**
|
|
22
22
|
* Read the file and returns the snapshot tree.
|
|
23
23
|
* @param version - The version contains the path of the file which contains the snapshot tree.
|
|
24
24
|
*/
|
|
25
|
-
getSnapshotTree(version?:
|
|
25
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
26
26
|
/**
|
|
27
27
|
* Gets the path of the snapshot tree to be read.
|
|
28
28
|
* @param versionId - version ID.
|
|
29
29
|
* @param count - Number of versions to be returned.
|
|
30
30
|
*/
|
|
31
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
31
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
32
32
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
@@ -48,19 +48,19 @@ export type ReaderConstructor = new (...args: any[]) => IDocumentStorageService;
|
|
|
48
48
|
export declare const FileSnapshotWriterClassFactory: <TBase extends ReaderConstructor>(Base: TBase) => {
|
|
49
49
|
new (...args: any[]): {
|
|
50
50
|
blobsWriter: Map<string, ArrayBufferLike>;
|
|
51
|
-
latestWriterTree?:
|
|
51
|
+
latestWriterTree?: ISnapshotTree | undefined;
|
|
52
52
|
docId?: string | undefined;
|
|
53
53
|
reset(): void;
|
|
54
54
|
onSnapshotHandler(snapshot: IFileSnapshot): void;
|
|
55
55
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
56
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
57
|
-
getSnapshotTree(version?:
|
|
58
|
-
uploadSummaryWithContext(summary:
|
|
59
|
-
buildTree(snapshotTree:
|
|
56
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
57
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
58
|
+
uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
|
|
59
|
+
buildTree(snapshotTree: ISnapshotTree): Promise<ITree>;
|
|
60
60
|
readonly policies?: import("@fluidframework/driver-definitions/internal").IDocumentStorageServicePolicies | undefined;
|
|
61
61
|
getSnapshot?(snapshotFetchOptions?: import("@fluidframework/driver-definitions/internal").ISnapshotFetchOptions | undefined): Promise<import("@fluidframework/driver-definitions/internal").ISnapshot>;
|
|
62
|
-
createBlob(file: ArrayBufferLike): Promise<
|
|
63
|
-
downloadSummary(handle:
|
|
62
|
+
createBlob(file: ArrayBufferLike): Promise<import("@fluidframework/driver-definitions/internal").ICreateBlobResponse>;
|
|
63
|
+
downloadSummary(handle: import("@fluidframework/driver-definitions").ISummaryHandle): Promise<ISummaryTree>;
|
|
64
64
|
readonly disposed?: boolean | undefined;
|
|
65
65
|
dispose?: ((error?: Error | undefined) => void) | undefined;
|
|
66
66
|
};
|
|
@@ -71,19 +71,19 @@ export declare const FileSnapshotWriterClassFactory: <TBase extends ReaderConstr
|
|
|
71
71
|
export declare const FluidFetchReaderFileSnapshotWriter: {
|
|
72
72
|
new (...args: any[]): {
|
|
73
73
|
blobsWriter: Map<string, ArrayBufferLike>;
|
|
74
|
-
latestWriterTree?:
|
|
74
|
+
latestWriterTree?: ISnapshotTree | undefined;
|
|
75
75
|
docId?: string | undefined;
|
|
76
76
|
reset(): void;
|
|
77
77
|
onSnapshotHandler(snapshot: IFileSnapshot): void;
|
|
78
78
|
readBlob(sha: string): Promise<ArrayBufferLike>;
|
|
79
|
-
getVersions(versionId: string | null, count: number): Promise<
|
|
80
|
-
getSnapshotTree(version?:
|
|
81
|
-
uploadSummaryWithContext(summary:
|
|
82
|
-
buildTree(snapshotTree:
|
|
79
|
+
getVersions(versionId: string | null, count: number): Promise<IVersion[]>;
|
|
80
|
+
getSnapshotTree(version?: IVersion): Promise<ISnapshotTree | null>;
|
|
81
|
+
uploadSummaryWithContext(summary: ISummaryTree, context: ISummaryContext): Promise<string>;
|
|
82
|
+
buildTree(snapshotTree: ISnapshotTree): Promise<ITree>;
|
|
83
83
|
readonly policies?: import("@fluidframework/driver-definitions/internal").IDocumentStorageServicePolicies | undefined;
|
|
84
84
|
getSnapshot?(snapshotFetchOptions?: import("@fluidframework/driver-definitions/internal").ISnapshotFetchOptions | undefined): Promise<import("@fluidframework/driver-definitions/internal").ISnapshot>;
|
|
85
|
-
createBlob(file: ArrayBufferLike): Promise<
|
|
86
|
-
downloadSummary(handle:
|
|
85
|
+
createBlob(file: ArrayBufferLike): Promise<import("@fluidframework/driver-definitions/internal").ICreateBlobResponse>;
|
|
86
|
+
downloadSummary(handle: import("@fluidframework/driver-definitions").ISummaryHandle): Promise<ISummaryTree>;
|
|
87
87
|
readonly disposed?: boolean | undefined;
|
|
88
88
|
dispose?: ((error?: Error | undefined) => void) | undefined;
|
|
89
89
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/fileDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACN,uBAAuB,EACvB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"fileDocumentStorageService.d.ts","sourceRoot":"","sources":["../src/fileDocumentStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EACN,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,KAAK,EAIL,MAAM,6CAA6C,CAAC;AAKrD,OAAO,EACN,aAAa,EACb,8BAA8B,EAC9B,MAAM,wCAAwC,CAAC;AAIhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAK1D;;;GAGG;AACH,qBAAa,gBACZ,SAAQ,8BACR,YAAW,uBAAuB;IAKjC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAJ9B,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAQ;gBAG7B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,oBAAQ;IAKtC;;;OAGG;IAEU,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkC/E;;;;OAIG;IAEU,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAmBzE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAU5D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACtE,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IACjD,KAAK,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,uBAAuB,CAAC;AAChF;;GAEG;AACH,eAAO,MAAM,8BAA8B,0CAA2C,KAAK;kBAJ7C,GAAG,EAAE;;;;;oCAiBd,aAAa,GAAG,IAAI;sBAI5B,MAAM,GAAG,QAAQ,eAAe,CAAC;+BASxB,MAAM,GAAG,IAAI,SAAS,MAAM,GAAG,QAAQ,QAAQ,EAAE,CAAC;kCAkB/C,QAAQ,GAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;0CAQrE,YAAY,WACZ,eAAe,GACtB,QAAQ,MAAM,CAAC;gCAcmB,aAAa,GAAG,QAAQ,KAAK,CAAC;;;;;;;;SA8BnE,CAAC;AAcH;;GAEG;AACH,eAAO,MAAM,kCAAkC;kBAvHD,GAAG,EAAE;;;;;oCAiBd,aAAa,GAAG,IAAI;sBAI5B,MAAM,GAAG,QAAQ,eAAe,CAAC;+BASxB,MAAM,GAAG,IAAI,SAAS,MAAM,GAAG,QAAQ,QAAQ,EAAE,CAAC;kCAkB/C,QAAQ,GAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;0CAQrE,YAAY,WACZ,eAAe,GACtB,QAAQ,MAAM,CAAC;gCAcmB,aAAa,GAAG,QAAQ,KAAK,CAAC;;;;;;;;2BA+C6B,CAAC"}
|
|
@@ -3,29 +3,6 @@
|
|
|
3
3
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
-
if (mod && mod.__esModule) return mod;
|
|
24
|
-
var result = {};
|
|
25
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
-
__setModuleDefault(result, mod);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
6
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
8
|
};
|
|
@@ -34,9 +11,9 @@ exports.FluidFetchReaderFileSnapshotWriter = exports.FileSnapshotWriterClassFact
|
|
|
34
11
|
const fs_1 = __importDefault(require("fs"));
|
|
35
12
|
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
36
13
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
37
|
-
const internal_2 = require("@fluidframework/driver-
|
|
38
|
-
const
|
|
39
|
-
const
|
|
14
|
+
const internal_2 = require("@fluidframework/driver-definitions/internal");
|
|
15
|
+
const internal_3 = require("@fluidframework/driver-utils/internal");
|
|
16
|
+
const internal_4 = require("@fluidframework/replay-driver/internal");
|
|
40
17
|
// This ID is used by replay tool as Document Id.
|
|
41
18
|
// We leverage it to figure out when container is asking for root document tree.
|
|
42
19
|
/**
|
|
@@ -49,7 +26,7 @@ const FileStorageVersionTreeId = "FileStorageTreeId";
|
|
|
49
26
|
* Document storage service for the file driver.
|
|
50
27
|
* @internal
|
|
51
28
|
*/
|
|
52
|
-
class FluidFetchReader extends
|
|
29
|
+
class FluidFetchReader extends internal_4.ReadDocumentStorageServiceBase {
|
|
53
30
|
constructor(path, versionName) {
|
|
54
31
|
super();
|
|
55
32
|
this.path = path;
|
|
@@ -174,11 +151,11 @@ const FileSnapshotWriterClassFactory = (Base) => class extends Base {
|
|
|
174
151
|
return super.getSnapshotTree(version);
|
|
175
152
|
}
|
|
176
153
|
async uploadSummaryWithContext(summary, context) {
|
|
177
|
-
const tree = (0,
|
|
154
|
+
const tree = (0, internal_3.convertSummaryTreeToSnapshotITree)(summary);
|
|
178
155
|
// Remove tree IDs for easier comparison of snapshots
|
|
179
156
|
delete tree.id;
|
|
180
157
|
removeNullTreeIds(tree);
|
|
181
|
-
this.latestWriterTree = (0,
|
|
158
|
+
this.latestWriterTree = (0, internal_3.buildSnapshotTree)(tree.entries, this.blobsWriter);
|
|
182
159
|
const fileSnapshot = { tree, commits: {} };
|
|
183
160
|
this.onSnapshotHandler(fileSnapshot);
|
|
184
161
|
return "testHandleId";
|
|
@@ -188,9 +165,9 @@ const FileSnapshotWriterClassFactory = (Base) => class extends Base {
|
|
|
188
165
|
for (const subTreeId of Object.keys(snapshotTree.trees)) {
|
|
189
166
|
const subTree = await this.buildTree(snapshotTree.trees[subTreeId]);
|
|
190
167
|
tree.entries.push({
|
|
191
|
-
mode:
|
|
168
|
+
mode: internal_2.FileMode.Directory,
|
|
192
169
|
path: subTreeId,
|
|
193
|
-
type:
|
|
170
|
+
type: internal_2.TreeEntry.Tree,
|
|
194
171
|
value: subTree,
|
|
195
172
|
});
|
|
196
173
|
}
|
|
@@ -202,9 +179,9 @@ const FileSnapshotWriterClassFactory = (Base) => class extends Base {
|
|
|
202
179
|
encoding: "utf-8",
|
|
203
180
|
};
|
|
204
181
|
tree.entries.push({
|
|
205
|
-
mode:
|
|
182
|
+
mode: internal_2.FileMode.File,
|
|
206
183
|
path: blobName,
|
|
207
|
-
type:
|
|
184
|
+
type: internal_2.TreeEntry.Blob,
|
|
208
185
|
value: blob,
|
|
209
186
|
});
|
|
210
187
|
}
|
|
@@ -214,7 +191,7 @@ const FileSnapshotWriterClassFactory = (Base) => class extends Base {
|
|
|
214
191
|
exports.FileSnapshotWriterClassFactory = FileSnapshotWriterClassFactory;
|
|
215
192
|
function removeNullTreeIds(tree) {
|
|
216
193
|
for (const node of tree.entries) {
|
|
217
|
-
if (node.type ===
|
|
194
|
+
if (node.type === internal_2.TreeEntry.Tree) {
|
|
218
195
|
removeNullTreeIds(node.value);
|
|
219
196
|
}
|
|
220
197
|
}
|