@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.
Files changed (112) hide show
  1. package/api-report/driver-utils.alpha.api.md +4 -1
  2. package/api-report/driver-utils.beta.api.md +4 -1
  3. package/api-report/driver-utils.public.api.md +4 -1
  4. package/dist/adapters/compression/documentServiceCompressionAdapter.js +1 -0
  5. package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  6. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -0
  7. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  8. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +44 -43
  9. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  10. package/dist/blob.js +13 -6
  11. package/dist/blob.js.map +1 -1
  12. package/dist/buildSnapshotTree.d.ts.map +1 -1
  13. package/dist/buildSnapshotTree.js +2 -2
  14. package/dist/buildSnapshotTree.js.map +1 -1
  15. package/dist/documentServiceFactoryProxy.js +1 -0
  16. package/dist/documentServiceFactoryProxy.js.map +1 -1
  17. package/dist/documentServiceProxy.js +1 -0
  18. package/dist/documentServiceProxy.js.map +1 -1
  19. package/dist/documentStorageServiceProxy.js +2 -0
  20. package/dist/documentStorageServiceProxy.js.map +1 -1
  21. package/dist/error.js +2 -2
  22. package/dist/error.js.map +1 -1
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +5 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/insecureUrlResolver.js +8 -1
  28. package/dist/insecureUrlResolver.js.map +1 -1
  29. package/dist/messageRecognition.d.ts +1 -2
  30. package/dist/messageRecognition.d.ts.map +1 -1
  31. package/dist/messageRecognition.js.map +1 -1
  32. package/dist/network.js +25 -15
  33. package/dist/network.js.map +1 -1
  34. package/dist/packageVersion.d.ts +1 -1
  35. package/dist/packageVersion.js +1 -1
  36. package/dist/packageVersion.js.map +1 -1
  37. package/dist/parallelRequests.d.ts +1 -2
  38. package/dist/parallelRequests.d.ts.map +1 -1
  39. package/dist/parallelRequests.js +16 -9
  40. package/dist/parallelRequests.js.map +1 -1
  41. package/dist/prefetchDocumentStorageService.js +3 -6
  42. package/dist/prefetchDocumentStorageService.js.map +1 -1
  43. package/dist/protocol/gitHelper.d.ts +33 -0
  44. package/dist/protocol/gitHelper.d.ts.map +1 -0
  45. package/dist/protocol/gitHelper.js +88 -0
  46. package/dist/protocol/gitHelper.js.map +1 -0
  47. package/dist/protocol/index.d.ts +6 -0
  48. package/dist/protocol/index.d.ts.map +1 -0
  49. package/dist/protocol/index.js +12 -0
  50. package/dist/protocol/index.js.map +1 -0
  51. package/dist/rateLimiter.js +11 -10
  52. package/dist/rateLimiter.js.map +1 -1
  53. package/lib/adapters/compression/documentServiceCompressionAdapter.js +1 -0
  54. package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  55. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js +1 -0
  56. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  57. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +44 -43
  58. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  59. package/lib/blob.js +13 -6
  60. package/lib/blob.js.map +1 -1
  61. package/lib/buildSnapshotTree.d.ts.map +1 -1
  62. package/lib/buildSnapshotTree.js +1 -1
  63. package/lib/buildSnapshotTree.js.map +1 -1
  64. package/lib/documentServiceFactoryProxy.js +1 -0
  65. package/lib/documentServiceFactoryProxy.js.map +1 -1
  66. package/lib/documentServiceProxy.js +1 -0
  67. package/lib/documentServiceProxy.js.map +1 -1
  68. package/lib/documentStorageServiceProxy.js +2 -0
  69. package/lib/documentStorageServiceProxy.js.map +1 -1
  70. package/lib/error.js +2 -2
  71. package/lib/error.js.map +1 -1
  72. package/lib/index.d.ts +1 -0
  73. package/lib/index.d.ts.map +1 -1
  74. package/lib/index.js +1 -0
  75. package/lib/index.js.map +1 -1
  76. package/lib/insecureUrlResolver.js +8 -1
  77. package/lib/insecureUrlResolver.js.map +1 -1
  78. package/lib/messageRecognition.d.ts +1 -2
  79. package/lib/messageRecognition.d.ts.map +1 -1
  80. package/lib/messageRecognition.js +1 -1
  81. package/lib/messageRecognition.js.map +1 -1
  82. package/lib/network.js +25 -15
  83. package/lib/network.js.map +1 -1
  84. package/lib/packageVersion.d.ts +1 -1
  85. package/lib/packageVersion.js +1 -1
  86. package/lib/packageVersion.js.map +1 -1
  87. package/lib/parallelRequests.d.ts +1 -2
  88. package/lib/parallelRequests.d.ts.map +1 -1
  89. package/lib/parallelRequests.js +16 -9
  90. package/lib/parallelRequests.js.map +1 -1
  91. package/lib/prefetchDocumentStorageService.js +3 -6
  92. package/lib/prefetchDocumentStorageService.js.map +1 -1
  93. package/lib/protocol/gitHelper.d.ts +33 -0
  94. package/lib/protocol/gitHelper.d.ts.map +1 -0
  95. package/lib/protocol/gitHelper.js +82 -0
  96. package/lib/protocol/gitHelper.js.map +1 -0
  97. package/lib/protocol/index.d.ts +6 -0
  98. package/lib/protocol/index.d.ts.map +1 -0
  99. package/lib/protocol/index.js +6 -0
  100. package/lib/protocol/index.js.map +1 -0
  101. package/lib/rateLimiter.js +11 -10
  102. package/lib/rateLimiter.js.map +1 -1
  103. package/package.json +7 -8
  104. package/src/buildSnapshotTree.ts +4 -2
  105. package/src/index.ts +1 -0
  106. package/src/messageRecognition.ts +5 -2
  107. package/src/packageVersion.ts +1 -1
  108. package/src/parallelRequests.ts +1 -1
  109. package/src/protocol/README.md +11 -0
  110. package/src/protocol/gitHelper.ts +98 -0
  111. package/src/protocol/index.ts +6 -0
  112. 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
+ }
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ export { buildGitTreeHierarchy, getGitMode, getGitType } from "./gitHelper.js";
package/tsconfig.json CHANGED
@@ -5,5 +5,7 @@
5
5
  "compilerOptions": {
6
6
  "rootDir": "./src",
7
7
  "outDir": "./lib",
8
+ "exactOptionalPropertyTypes": false,
9
+ "noUncheckedIndexedAccess": false,
8
10
  },
9
11
  }