@fluidframework/driver-utils 2.0.0-dev-rc.5.0.0.268409 → 2.0.0-dev-rc.5.0.0.270401
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/driver-utils.alpha.api.md +4 -1
- package/api-report/driver-utils.beta.api.md +4 -1
- package/api-report/driver-utils.public.api.md +4 -1
- package/dist/adapters/compression/documentServiceCompressionAdapter.js +1 -0
- package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -0
- package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +44 -43
- package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/dist/blob.js +13 -6
- package/dist/blob.js.map +1 -1
- package/dist/buildSnapshotTree.d.ts.map +1 -1
- package/dist/buildSnapshotTree.js +2 -2
- package/dist/buildSnapshotTree.js.map +1 -1
- package/dist/documentServiceFactoryProxy.js +1 -0
- package/dist/documentServiceFactoryProxy.js.map +1 -1
- package/dist/documentServiceProxy.js +1 -0
- package/dist/documentServiceProxy.js.map +1 -1
- package/dist/documentStorageServiceProxy.js +2 -0
- package/dist/documentStorageServiceProxy.js.map +1 -1
- package/dist/error.js +2 -2
- package/dist/error.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/insecureUrlResolver.js +8 -1
- package/dist/insecureUrlResolver.js.map +1 -1
- package/dist/messageRecognition.d.ts +1 -2
- package/dist/messageRecognition.d.ts.map +1 -1
- package/dist/messageRecognition.js.map +1 -1
- package/dist/network.js +25 -15
- package/dist/network.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/parallelRequests.d.ts +1 -2
- package/dist/parallelRequests.d.ts.map +1 -1
- package/dist/parallelRequests.js +16 -9
- package/dist/parallelRequests.js.map +1 -1
- package/dist/prefetchDocumentStorageService.js +3 -6
- package/dist/prefetchDocumentStorageService.js.map +1 -1
- package/dist/protocol/gitHelper.d.ts +33 -0
- package/dist/protocol/gitHelper.d.ts.map +1 -0
- package/dist/protocol/gitHelper.js +88 -0
- package/dist/protocol/gitHelper.js.map +1 -0
- package/dist/protocol/index.d.ts +6 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +12 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/rateLimiter.js +11 -10
- package/dist/rateLimiter.js.map +1 -1
- package/lib/adapters/compression/documentServiceCompressionAdapter.js +1 -0
- package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -0
- package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +44 -43
- package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
- package/lib/blob.js +13 -6
- package/lib/blob.js.map +1 -1
- package/lib/buildSnapshotTree.d.ts.map +1 -1
- package/lib/buildSnapshotTree.js +1 -1
- package/lib/buildSnapshotTree.js.map +1 -1
- package/lib/documentServiceFactoryProxy.js +1 -0
- package/lib/documentServiceFactoryProxy.js.map +1 -1
- package/lib/documentServiceProxy.js +1 -0
- package/lib/documentServiceProxy.js.map +1 -1
- package/lib/documentStorageServiceProxy.js +2 -0
- package/lib/documentStorageServiceProxy.js.map +1 -1
- package/lib/error.js +2 -2
- package/lib/error.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/insecureUrlResolver.js +8 -1
- package/lib/insecureUrlResolver.js.map +1 -1
- package/lib/messageRecognition.d.ts +1 -2
- package/lib/messageRecognition.d.ts.map +1 -1
- package/lib/messageRecognition.js +1 -1
- package/lib/messageRecognition.js.map +1 -1
- package/lib/network.js +25 -15
- package/lib/network.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/parallelRequests.d.ts +1 -2
- package/lib/parallelRequests.d.ts.map +1 -1
- package/lib/parallelRequests.js +16 -9
- package/lib/parallelRequests.js.map +1 -1
- package/lib/prefetchDocumentStorageService.js +3 -6
- package/lib/prefetchDocumentStorageService.js.map +1 -1
- package/lib/protocol/gitHelper.d.ts +33 -0
- package/lib/protocol/gitHelper.d.ts.map +1 -0
- package/lib/protocol/gitHelper.js +82 -0
- package/lib/protocol/gitHelper.js.map +1 -0
- package/lib/protocol/index.d.ts +6 -0
- package/lib/protocol/index.d.ts.map +1 -0
- package/lib/protocol/index.js +6 -0
- package/lib/protocol/index.js.map +1 -0
- package/lib/rateLimiter.js +11 -10
- package/lib/rateLimiter.js.map +1 -1
- package/package.json +7 -8
- package/src/buildSnapshotTree.ts +4 -2
- package/src/index.ts +1 -0
- package/src/messageRecognition.ts +5 -2
- package/src/packageVersion.ts +1 -1
- package/src/parallelRequests.ts +1 -1
- package/src/protocol/README.md +11 -0
- package/src/protocol/gitHelper.ts +98 -0
- package/src/protocol/index.ts +6 -0
- package/tsconfig.json +2 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { unreachableCase } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import {
|
|
8
|
+
FileMode,
|
|
9
|
+
IGitTree,
|
|
10
|
+
ISnapshotTreeEx,
|
|
11
|
+
SummaryType,
|
|
12
|
+
SummaryObject,
|
|
13
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Take a summary object and returns its git mode.
|
|
17
|
+
*
|
|
18
|
+
* @param value - summary object
|
|
19
|
+
* @returns the git mode of summary object
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function getGitMode(value: SummaryObject): string {
|
|
23
|
+
const type = value.type === SummaryType.Handle ? value.handleType : value.type;
|
|
24
|
+
switch (type) {
|
|
25
|
+
case SummaryType.Blob:
|
|
26
|
+
case SummaryType.Attachment:
|
|
27
|
+
return FileMode.File;
|
|
28
|
+
case SummaryType.Tree:
|
|
29
|
+
return FileMode.Directory;
|
|
30
|
+
default:
|
|
31
|
+
unreachableCase(type, `Unknown type: ${type}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Take a summary object and returns its type.
|
|
37
|
+
*
|
|
38
|
+
* @param value - summary object
|
|
39
|
+
* @returns the type of summary object
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export function getGitType(value: SummaryObject): "blob" | "tree" {
|
|
43
|
+
const type = value.type === SummaryType.Handle ? value.handleType : value.type;
|
|
44
|
+
|
|
45
|
+
switch (type) {
|
|
46
|
+
case SummaryType.Blob:
|
|
47
|
+
case SummaryType.Attachment:
|
|
48
|
+
return "blob";
|
|
49
|
+
case SummaryType.Tree:
|
|
50
|
+
return "tree";
|
|
51
|
+
default:
|
|
52
|
+
unreachableCase(type, `Unknown type: ${type}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* NOTE: Renamed from `buildHierarchy` to `buildGitTreeHierarchy`. There is usage of this function in loader and driver layer.
|
|
58
|
+
* Build a tree hierarchy base on a flat tree
|
|
59
|
+
*
|
|
60
|
+
* @param flatTree - a flat tree
|
|
61
|
+
* @param blobsShaToPathCache - Map with blobs sha as keys and values as path of the blob.
|
|
62
|
+
* @param removeAppTreePrefix - Remove `.app/` from beginning of paths when present
|
|
63
|
+
* @returns the hierarchical tree
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export function buildGitTreeHierarchy(
|
|
67
|
+
flatTree: IGitTree,
|
|
68
|
+
blobsShaToPathCache: Map<string, string> = new Map<string, string>(),
|
|
69
|
+
removeAppTreePrefix = false,
|
|
70
|
+
): ISnapshotTreeEx {
|
|
71
|
+
const lookup: { [path: string]: ISnapshotTreeEx } = {};
|
|
72
|
+
const root: ISnapshotTreeEx = { id: flatTree.sha, blobs: {}, trees: {} };
|
|
73
|
+
lookup[""] = root;
|
|
74
|
+
|
|
75
|
+
for (const entry of flatTree.tree) {
|
|
76
|
+
const entryPath = removeAppTreePrefix ? entry.path.replace(/^\.app\//, "") : entry.path;
|
|
77
|
+
const lastIndex = entryPath.lastIndexOf("/");
|
|
78
|
+
const entryPathDir = entryPath.slice(0, Math.max(0, lastIndex));
|
|
79
|
+
const entryPathBase = entryPath.slice(lastIndex + 1);
|
|
80
|
+
|
|
81
|
+
// The flat output is breadth-first so we can assume we see tree nodes prior to their contents
|
|
82
|
+
const node = lookup[entryPathDir];
|
|
83
|
+
|
|
84
|
+
// Add in either the blob or tree
|
|
85
|
+
if (entry.type === "tree") {
|
|
86
|
+
const newTree = { id: entry.sha, blobs: {}, commits: {}, trees: {} };
|
|
87
|
+
node.trees[decodeURIComponent(entryPathBase)] = newTree;
|
|
88
|
+
lookup[entryPath] = newTree;
|
|
89
|
+
} else if (entry.type === "blob") {
|
|
90
|
+
node.blobs[decodeURIComponent(entryPathBase)] = entry.sha;
|
|
91
|
+
blobsShaToPathCache.set(entry.sha, `/${entryPath}`);
|
|
92
|
+
} else {
|
|
93
|
+
throw new Error("Unknown entry type!!");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return root;
|
|
98
|
+
}
|