@fluidframework/driver-utils 2.0.0-rc.4.0.6 → 2.0.0-rc.5.0.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 (182) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/api-extractor/api-extractor-lint-bundle.json +5 -0
  3. package/api-extractor/api-extractor-lint-legacy.cjs.json +5 -0
  4. package/api-extractor/api-extractor-lint-legacy.esm.json +5 -0
  5. package/api-extractor/api-extractor-lint-public.cjs.json +5 -0
  6. package/api-extractor/api-extractor-lint-public.esm.json +5 -0
  7. package/api-extractor.json +1 -1
  8. package/api-report/driver-utils.alpha.api.md +78 -0
  9. package/api-report/driver-utils.beta.api.md +65 -0
  10. package/api-report/driver-utils.public.api.md +65 -0
  11. package/biome.jsonc +4 -0
  12. package/dist/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  13. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +1 -1
  14. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
  15. package/dist/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  16. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +3 -3
  17. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -1
  18. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +8 -8
  19. package/dist/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  20. package/dist/adapters/predefinedAdapters.js.map +1 -1
  21. package/dist/blob.d.ts +1 -1
  22. package/dist/blob.d.ts.map +1 -1
  23. package/dist/blob.js +7 -7
  24. package/dist/blob.js.map +1 -1
  25. package/dist/buildSnapshotTree.d.ts +1 -1
  26. package/dist/buildSnapshotTree.d.ts.map +1 -1
  27. package/dist/buildSnapshotTree.js +8 -8
  28. package/dist/buildSnapshotTree.js.map +1 -1
  29. package/dist/documentServiceFactoryProxy.d.ts +1 -1
  30. package/dist/documentServiceFactoryProxy.d.ts.map +1 -1
  31. package/dist/documentServiceFactoryProxy.js.map +1 -1
  32. package/dist/documentServiceProxy.d.ts +1 -1
  33. package/dist/documentServiceProxy.d.ts.map +1 -1
  34. package/dist/documentServiceProxy.js.map +1 -1
  35. package/dist/documentStorageServiceProxy.d.ts +2 -2
  36. package/dist/documentStorageServiceProxy.d.ts.map +1 -1
  37. package/dist/documentStorageServiceProxy.js.map +1 -1
  38. package/dist/error.d.ts.map +1 -1
  39. package/dist/error.js.map +1 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +5 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/insecureUrlResolver.d.ts.map +1 -1
  45. package/dist/insecureUrlResolver.js.map +1 -1
  46. package/dist/messageRecognition.d.ts +1 -1
  47. package/dist/messageRecognition.d.ts.map +1 -1
  48. package/dist/messageRecognition.js +3 -3
  49. package/dist/messageRecognition.js.map +1 -1
  50. package/dist/network.d.ts.map +1 -1
  51. package/dist/network.js.map +1 -1
  52. package/dist/networkUtils.js.map +1 -1
  53. package/dist/packageVersion.d.ts +1 -1
  54. package/dist/packageVersion.js +1 -1
  55. package/dist/packageVersion.js.map +1 -1
  56. package/dist/parallelRequests.d.ts +1 -2
  57. package/dist/parallelRequests.d.ts.map +1 -1
  58. package/dist/parallelRequests.js.map +1 -1
  59. package/dist/prefetchDocumentStorageService.d.ts +1 -2
  60. package/dist/prefetchDocumentStorageService.d.ts.map +1 -1
  61. package/dist/prefetchDocumentStorageService.js.map +1 -1
  62. package/dist/protocol/gitHelper.d.ts +33 -0
  63. package/dist/protocol/gitHelper.d.ts.map +1 -0
  64. package/dist/protocol/gitHelper.js +88 -0
  65. package/dist/protocol/gitHelper.js.map +1 -0
  66. package/dist/protocol/index.d.ts +6 -0
  67. package/dist/protocol/index.d.ts.map +1 -0
  68. package/dist/protocol/index.js +12 -0
  69. package/dist/protocol/index.js.map +1 -0
  70. package/dist/rateLimiter.js.map +1 -1
  71. package/dist/runWithRetry.js.map +1 -1
  72. package/dist/storageUtils.d.ts +1 -2
  73. package/dist/storageUtils.d.ts.map +1 -1
  74. package/dist/storageUtils.js.map +1 -1
  75. package/dist/summaryForCreateNew.d.ts +2 -1
  76. package/dist/summaryForCreateNew.d.ts.map +1 -1
  77. package/dist/summaryForCreateNew.js +3 -3
  78. package/dist/summaryForCreateNew.js.map +1 -1
  79. package/dist/treeConversions.d.ts +2 -1
  80. package/dist/treeConversions.d.ts.map +1 -1
  81. package/dist/treeConversions.js +5 -5
  82. package/dist/treeConversions.js.map +1 -1
  83. package/lib/adapters/compression/documentServiceCompressionAdapter.js.map +1 -1
  84. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts +1 -1
  85. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.d.ts.map +1 -1
  86. package/lib/adapters/compression/documentServiceFactoryCompressionAdapter.js.map +1 -1
  87. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts +3 -3
  88. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.d.ts.map +1 -1
  89. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js +2 -2
  90. package/lib/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.js.map +1 -1
  91. package/lib/adapters/predefinedAdapters.js.map +1 -1
  92. package/lib/blob.d.ts +1 -1
  93. package/lib/blob.d.ts.map +1 -1
  94. package/lib/blob.js +1 -1
  95. package/lib/blob.js.map +1 -1
  96. package/lib/buildSnapshotTree.d.ts +1 -1
  97. package/lib/buildSnapshotTree.d.ts.map +1 -1
  98. package/lib/buildSnapshotTree.js +2 -2
  99. package/lib/buildSnapshotTree.js.map +1 -1
  100. package/lib/documentServiceFactoryProxy.d.ts +1 -1
  101. package/lib/documentServiceFactoryProxy.d.ts.map +1 -1
  102. package/lib/documentServiceFactoryProxy.js.map +1 -1
  103. package/lib/documentServiceProxy.d.ts +1 -1
  104. package/lib/documentServiceProxy.d.ts.map +1 -1
  105. package/lib/documentServiceProxy.js.map +1 -1
  106. package/lib/documentStorageServiceProxy.d.ts +2 -2
  107. package/lib/documentStorageServiceProxy.d.ts.map +1 -1
  108. package/lib/documentStorageServiceProxy.js.map +1 -1
  109. package/lib/error.d.ts.map +1 -1
  110. package/lib/error.js +1 -1
  111. package/lib/error.js.map +1 -1
  112. package/lib/index.d.ts +2 -1
  113. package/lib/index.d.ts.map +1 -1
  114. package/lib/index.js +2 -1
  115. package/lib/index.js.map +1 -1
  116. package/lib/insecureUrlResolver.d.ts.map +1 -1
  117. package/lib/insecureUrlResolver.js.map +1 -1
  118. package/lib/messageRecognition.d.ts +1 -1
  119. package/lib/messageRecognition.d.ts.map +1 -1
  120. package/lib/messageRecognition.js +1 -1
  121. package/lib/messageRecognition.js.map +1 -1
  122. package/lib/network.d.ts.map +1 -1
  123. package/lib/network.js.map +1 -1
  124. package/lib/networkUtils.js.map +1 -1
  125. package/lib/packageVersion.d.ts +1 -1
  126. package/lib/packageVersion.js +1 -1
  127. package/lib/packageVersion.js.map +1 -1
  128. package/lib/parallelRequests.d.ts +1 -2
  129. package/lib/parallelRequests.d.ts.map +1 -1
  130. package/lib/parallelRequests.js +2 -2
  131. package/lib/parallelRequests.js.map +1 -1
  132. package/lib/prefetchDocumentStorageService.d.ts +1 -2
  133. package/lib/prefetchDocumentStorageService.d.ts.map +1 -1
  134. package/lib/prefetchDocumentStorageService.js +1 -1
  135. package/lib/prefetchDocumentStorageService.js.map +1 -1
  136. package/lib/protocol/gitHelper.d.ts +33 -0
  137. package/lib/protocol/gitHelper.d.ts.map +1 -0
  138. package/lib/protocol/gitHelper.js +82 -0
  139. package/lib/protocol/gitHelper.js.map +1 -0
  140. package/lib/protocol/index.d.ts +6 -0
  141. package/lib/protocol/index.d.ts.map +1 -0
  142. package/lib/protocol/index.js +6 -0
  143. package/lib/protocol/index.js.map +1 -0
  144. package/lib/rateLimiter.js.map +1 -1
  145. package/lib/runWithRetry.js.map +1 -1
  146. package/lib/storageUtils.d.ts +1 -2
  147. package/lib/storageUtils.d.ts.map +1 -1
  148. package/lib/storageUtils.js.map +1 -1
  149. package/lib/summaryForCreateNew.d.ts +2 -1
  150. package/lib/summaryForCreateNew.d.ts.map +1 -1
  151. package/lib/summaryForCreateNew.js +1 -1
  152. package/lib/summaryForCreateNew.js.map +1 -1
  153. package/lib/treeConversions.d.ts +2 -1
  154. package/lib/treeConversions.d.ts.map +1 -1
  155. package/lib/treeConversions.js +1 -1
  156. package/lib/treeConversions.js.map +1 -1
  157. package/lib/tsdoc-metadata.json +1 -1
  158. package/package.json +25 -19
  159. package/src/adapters/compression/documentServiceFactoryCompressionAdapter.ts +5 -6
  160. package/src/adapters/compression/summaryblob/documentStorageServiceSummaryBlobCompressionAdapter.ts +17 -13
  161. package/src/blob.ts +1 -1
  162. package/src/buildSnapshotTree.ts +10 -8
  163. package/src/documentServiceFactoryProxy.ts +1 -1
  164. package/src/documentServiceProxy.ts +1 -1
  165. package/src/documentStorageServiceProxy.ts +8 -6
  166. package/src/error.ts +4 -1
  167. package/src/index.ts +6 -1
  168. package/src/insecureUrlResolver.ts +4 -1
  169. package/src/messageRecognition.ts +2 -2
  170. package/src/network.ts +12 -3
  171. package/src/packageVersion.ts +1 -1
  172. package/src/parallelRequests.ts +12 -13
  173. package/src/prefetchDocumentStorageService.ts +5 -2
  174. package/src/protocol/README.md +11 -0
  175. package/src/protocol/gitHelper.ts +98 -0
  176. package/src/protocol/index.ts +6 -0
  177. package/src/storageUtils.ts +1 -2
  178. package/src/summaryForCreateNew.ts +2 -4
  179. package/src/treeConversions.ts +3 -2
  180. package/tsconfig.json +2 -0
  181. package/tsdoc.json +4 -0
  182. package/api-report/driver-utils.api.md +0 -408
@@ -3,6 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { ISummaryHandle, ISummaryTree } from "@fluidframework/driver-definitions";
6
7
  import {
7
8
  FetchSource,
8
9
  IDocumentStorageService,
@@ -10,14 +11,10 @@ import {
10
11
  ISnapshot,
11
12
  ISnapshotFetchOptions,
12
13
  ISummaryContext,
13
- } from "@fluidframework/driver-definitions/internal";
14
- import {
15
14
  ICreateBlobResponse,
16
15
  ISnapshotTree,
17
- ISummaryHandle,
18
- ISummaryTree,
19
16
  IVersion,
20
- } from "@fluidframework/protocol-definitions";
17
+ } from "@fluidframework/driver-definitions/internal";
21
18
  import { UsageError } from "@fluidframework/telemetry-utils/internal";
22
19
 
23
20
  /**
@@ -58,7 +55,12 @@ export class DocumentStorageServiceProxy implements IDocumentStorageService {
58
55
  scenarioName?: string,
59
56
  fetchSource?: FetchSource,
60
57
  ): Promise<IVersion[]> {
61
- return this.internalStorageService.getVersions(versionId, count, scenarioName, fetchSource);
58
+ return this.internalStorageService.getVersions(
59
+ versionId,
60
+ count,
61
+ scenarioName,
62
+ fetchSource,
63
+ );
62
64
  }
63
65
 
64
66
  public async uploadSummaryWithContext(
package/src/error.ts CHANGED
@@ -3,7 +3,10 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { DriverErrorTypes, IDriverErrorBase } from "@fluidframework/driver-definitions/internal";
6
+ import {
7
+ DriverErrorTypes,
8
+ IDriverErrorBase,
9
+ } from "@fluidframework/driver-definitions/internal";
7
10
  import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils/internal";
8
11
 
9
12
  /**
package/src/index.ts CHANGED
@@ -8,7 +8,11 @@ export { BlobTreeEntry, TreeTreeEntry, AttachmentTreeEntry } from "./blob.js";
8
8
  export { DocumentStorageServiceProxy } from "./documentStorageServiceProxy.js";
9
9
  export { UsageError } from "./error.js";
10
10
  export { InsecureUrlResolver } from "./insecureUrlResolver.js";
11
- export { canBeCoalescedByService, isRuntimeMessage, MessageType2 } from "./messageRecognition.js";
11
+ export {
12
+ canBeCoalescedByService,
13
+ isRuntimeMessage,
14
+ MessageType2,
15
+ } from "./messageRecognition.js";
12
16
  export {
13
17
  AuthorizationError,
14
18
  canRetryOnError,
@@ -55,3 +59,4 @@ export {
55
59
  blobHeadersBlobName,
56
60
  } from "./adapters/index.js";
57
61
  export { getSnapshotTree, isInstanceOfISnapshot } from "./storageUtils.js";
62
+ export { buildGitTreeHierarchy, getGitMode, getGitType } from "./protocol/index.js";
@@ -138,7 +138,10 @@ export class InsecureUrlResolver implements IUrlResolver {
138
138
  return response;
139
139
  }
140
140
 
141
- public async getAbsoluteUrl(resolvedUrl: IResolvedUrl, relativeUrl: string): Promise<string> {
141
+ public async getAbsoluteUrl(
142
+ resolvedUrl: IResolvedUrl,
143
+ relativeUrl: string,
144
+ ): Promise<string> {
142
145
  const parsedUrl = new URL(resolvedUrl.url);
143
146
  const [, , documentId] = parsedUrl.pathname?.split("/") ?? [];
144
147
  // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
@@ -4,10 +4,10 @@
4
4
  */
5
5
 
6
6
  import {
7
- IDocumentMessage,
8
7
  ISequencedDocumentMessage,
8
+ IDocumentMessage,
9
9
  MessageType,
10
- } from "@fluidframework/protocol-definitions";
10
+ } from "@fluidframework/driver-definitions/internal";
11
11
 
12
12
  /**
13
13
  * Tells if message was sent by container runtime
package/src/network.ts CHANGED
@@ -52,7 +52,10 @@ export type DriverErrorTelemetryProps = ITelemetryBaseProperties & {
52
52
  * Generic network error class.
53
53
  * @internal
54
54
  */
55
- export class GenericNetworkError extends LoggingError implements IDriverErrorBase, IFluidErrorBase {
55
+ export class GenericNetworkError
56
+ extends LoggingError
57
+ implements IDriverErrorBase, IFluidErrorBase
58
+ {
56
59
  /**
57
60
  * {@inheritDoc @fluidframework/telemetry-utils#IFluidErrorBase.errorType}
58
61
  */
@@ -145,7 +148,10 @@ export class LocationRedirectionError
145
148
  /**
146
149
  * @internal
147
150
  */
148
- export class NetworkErrorBasic<T extends string> extends LoggingError implements IFluidErrorBase {
151
+ export class NetworkErrorBasic<T extends string>
152
+ extends LoggingError
153
+ implements IFluidErrorBase
154
+ {
149
155
  constructor(
150
156
  message: string,
151
157
  readonly errorType: T,
@@ -186,7 +192,10 @@ export class RetryableError<T extends string> extends NetworkErrorBasic<T> {
186
192
  * Throttling error class - used to communicate all throttling errors
187
193
  * @internal
188
194
  */
189
- export class ThrottlingError extends LoggingError implements IThrottlingWarning, IFluidErrorBase {
195
+ export class ThrottlingError
196
+ extends LoggingError
197
+ implements IThrottlingWarning, IFluidErrorBase
198
+ {
190
199
  readonly errorType = DriverErrorTypes.throttlingError;
191
200
  readonly canRetry = true;
192
201
 
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/driver-utils";
9
- export const pkgVersion = "2.0.0-rc.4.0.6";
9
+ export const pkgVersion = "2.0.0-rc.5.0.0";
@@ -10,11 +10,18 @@ import {
10
10
  IDeltasFetchResult,
11
11
  IStream,
12
12
  IStreamResult,
13
+ ISequencedDocumentMessage,
13
14
  } from "@fluidframework/driver-definitions/internal";
14
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
15
- import { ITelemetryLoggerExt, PerformanceEvent } from "@fluidframework/telemetry-utils/internal";
15
+ import {
16
+ ITelemetryLoggerExt,
17
+ PerformanceEvent,
18
+ } from "@fluidframework/telemetry-utils/internal";
16
19
 
17
- import { canRetryOnError, createGenericNetworkError, getRetryDelayFromError } from "./network.js";
20
+ import {
21
+ canRetryOnError,
22
+ createGenericNetworkError,
23
+ getRetryDelayFromError,
24
+ } from "./network.js";
18
25
  import { logNetworkFailure } from "./networkUtils.js";
19
26
  // For now, this package is versioned and released in unison with the specific drivers
20
27
  import { pkgVersion as driverVersion } from "./packageVersion.js";
@@ -204,13 +211,7 @@ export class ParallelRequests<T> {
204
211
 
205
212
  this.requests++;
206
213
 
207
- const promise = this.requestCallback(
208
- this.requests,
209
- from,
210
- to,
211
- this.to !== undefined,
212
- {},
213
- );
214
+ const promise = this.requestCallback(this.requests, from, to, this.to !== undefined, {});
214
215
 
215
216
  // dispatch any prior received data
216
217
  this.dispatch();
@@ -439,9 +440,7 @@ async function getSingleOpBatch(
439
440
 
440
441
  try {
441
442
  // Issue async request for deltas
442
- const { messages, partialResult } = await get(
443
- { ...props, retry } /* telemetry props */,
444
- );
443
+ const { messages, partialResult } = await get({ ...props, retry } /* telemetry props */);
445
444
 
446
445
  // If we got messages back, return them. Return regardless of whether we got messages back if we didn't
447
446
  // specify a "to", since we don't have an expectation of how many to receive.
@@ -3,8 +3,11 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { LoaderCachingPolicy } from "@fluidframework/driver-definitions/internal";
7
- import { ISnapshotTree, IVersion } from "@fluidframework/protocol-definitions";
6
+ import {
7
+ LoaderCachingPolicy,
8
+ ISnapshotTree,
9
+ IVersion,
10
+ } from "@fluidframework/driver-definitions/internal";
8
11
 
9
12
  import { DocumentStorageServiceProxy } from "./documentStorageServiceProxy.js";
10
13
  import { canRetryOnError } from "./network.js";
@@ -0,0 +1,11 @@
1
+ # @fluidframework/driver-utils/src/protocol
2
+
3
+ These files should not be changed unless the Fluid service itself is changed, and
4
+ should be aligned with the service side definitions contained here:
5
+
6
+ server/routerlicious/packages/protocol-base
7
+
8
+ ## Notes
9
+
10
+ The file names in this directory align with those in server/protocol-base to facilitate
11
+ copying/synchronization in the future, if desireable.
@@ -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";
@@ -3,8 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { ISnapshot } from "@fluidframework/driver-definitions/internal";
7
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
6
+ import { ISnapshot, ISnapshotTree } from "@fluidframework/driver-definitions/internal";
8
7
 
9
8
  /**
10
9
  * Utility API to check if the type of snapshot contents is `ISnapshot`.
@@ -3,13 +3,11 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { ISummaryBlob, ISummaryTree, SummaryType } from "@fluidframework/driver-definitions";
6
7
  import {
7
8
  ICommittedProposal,
8
9
  IDocumentAttributes,
9
- ISummaryBlob,
10
- ISummaryTree,
11
- SummaryType,
12
- } from "@fluidframework/protocol-definitions";
10
+ } from "@fluidframework/driver-definitions/internal";
13
11
 
14
12
  /**
15
13
  * Defines the current layout of an .app + .protocol summary tree
@@ -5,7 +5,8 @@
5
5
 
6
6
  import { Uint8ArrayToString } from "@fluid-internal/client-utils";
7
7
  import { unreachableCase } from "@fluidframework/core-utils/internal";
8
- import { ISummaryTree, ITree, ITreeEntry, SummaryType } from "@fluidframework/protocol-definitions";
8
+ import { ISummaryTree, SummaryType } from "@fluidframework/driver-definitions";
9
+ import { ITree, ITreeEntry } from "@fluidframework/driver-definitions/internal";
9
10
 
10
11
  import { AttachmentTreeEntry, BlobTreeEntry, TreeTreeEntry } from "./blob.js";
11
12
  import { isCombinedAppAndProtocolSummary } from "./summaryForCreateNew.js";
@@ -22,7 +23,7 @@ export function convertSummaryTreeToSnapshotITree(summaryTree: ISummaryTree): IT
22
23
  ? [
23
24
  ...Object.entries(summaryTree.tree[".protocol"].tree),
24
25
  ...Object.entries(summaryTree.tree[".app"].tree),
25
- ]
26
+ ]
26
27
  : Object.entries(summaryTree.tree);
27
28
 
28
29
  for (const [key, value] of allSummaryEntries) {
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
  }
package/tsdoc.json ADDED
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
3
+ "extends": ["../../../common/build/build-common/tsdoc-base.json"]
4
+ }