@fluidframework/odsp-driver 0.56.3 → 0.57.0-51086

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 (114) hide show
  1. package/dist/createFile.d.ts.map +1 -1
  2. package/dist/createFile.js +6 -5
  3. package/dist/createFile.js.map +1 -1
  4. package/dist/createOdspUrl.d.ts.map +1 -1
  5. package/dist/createOdspUrl.js.map +1 -1
  6. package/dist/epochTracker.d.ts.map +1 -1
  7. package/dist/epochTracker.js +5 -4
  8. package/dist/epochTracker.js.map +1 -1
  9. package/dist/fetchSnapshot.d.ts.map +1 -1
  10. package/dist/fetchSnapshot.js +2 -1
  11. package/dist/fetchSnapshot.js.map +1 -1
  12. package/dist/getFileLink.d.ts.map +1 -1
  13. package/dist/getFileLink.js +5 -4
  14. package/dist/getFileLink.js.map +1 -1
  15. package/dist/getQueryString.d.ts.map +1 -1
  16. package/dist/getQueryString.js.map +1 -1
  17. package/dist/odspDeltaStorageService.js +1 -1
  18. package/dist/odspDeltaStorageService.js.map +1 -1
  19. package/dist/odspDocumentDeltaConnection.d.ts +6 -6
  20. package/dist/odspDocumentDeltaConnection.d.ts.map +1 -1
  21. package/dist/odspDocumentDeltaConnection.js +1 -0
  22. package/dist/odspDocumentDeltaConnection.js.map +1 -1
  23. package/dist/odspDocumentService.d.ts.map +1 -1
  24. package/dist/odspDocumentService.js +3 -2
  25. package/dist/odspDocumentService.js.map +1 -1
  26. package/dist/odspDocumentStorageManager.d.ts.map +1 -1
  27. package/dist/odspDocumentStorageManager.js +10 -9
  28. package/dist/odspDocumentStorageManager.js.map +1 -1
  29. package/dist/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  30. package/dist/odspDriverUrlResolverForShareLink.js +2 -1
  31. package/dist/odspDriverUrlResolverForShareLink.js.map +1 -1
  32. package/dist/odspSummaryUploadManager.d.ts.map +1 -1
  33. package/dist/odspSummaryUploadManager.js +4 -1
  34. package/dist/odspSummaryUploadManager.js.map +1 -1
  35. package/dist/odspUtils.d.ts +1 -1
  36. package/dist/odspUtils.d.ts.map +1 -1
  37. package/dist/odspUtils.js +13 -13
  38. package/dist/odspUtils.js.map +1 -1
  39. package/dist/packageVersion.d.ts +1 -1
  40. package/dist/packageVersion.d.ts.map +1 -1
  41. package/dist/packageVersion.js +1 -1
  42. package/dist/packageVersion.js.map +1 -1
  43. package/dist/retryUtils.js.map +1 -1
  44. package/dist/vroom.js +1 -1
  45. package/dist/vroom.js.map +1 -1
  46. package/dist/zipItDataRepresentationUtils.d.ts.map +1 -1
  47. package/dist/zipItDataRepresentationUtils.js +2 -0
  48. package/dist/zipItDataRepresentationUtils.js.map +1 -1
  49. package/lib/createFile.d.ts.map +1 -1
  50. package/lib/createFile.js +6 -5
  51. package/lib/createFile.js.map +1 -1
  52. package/lib/createOdspUrl.d.ts.map +1 -1
  53. package/lib/createOdspUrl.js.map +1 -1
  54. package/lib/epochTracker.d.ts.map +1 -1
  55. package/lib/epochTracker.js +5 -4
  56. package/lib/epochTracker.js.map +1 -1
  57. package/lib/fetchSnapshot.d.ts.map +1 -1
  58. package/lib/fetchSnapshot.js +2 -1
  59. package/lib/fetchSnapshot.js.map +1 -1
  60. package/lib/getFileLink.d.ts.map +1 -1
  61. package/lib/getFileLink.js +5 -4
  62. package/lib/getFileLink.js.map +1 -1
  63. package/lib/getQueryString.d.ts.map +1 -1
  64. package/lib/getQueryString.js.map +1 -1
  65. package/lib/odspDeltaStorageService.js +1 -1
  66. package/lib/odspDeltaStorageService.js.map +1 -1
  67. package/lib/odspDocumentDeltaConnection.d.ts +6 -6
  68. package/lib/odspDocumentDeltaConnection.d.ts.map +1 -1
  69. package/lib/odspDocumentDeltaConnection.js +1 -0
  70. package/lib/odspDocumentDeltaConnection.js.map +1 -1
  71. package/lib/odspDocumentService.d.ts.map +1 -1
  72. package/lib/odspDocumentService.js +3 -2
  73. package/lib/odspDocumentService.js.map +1 -1
  74. package/lib/odspDocumentStorageManager.d.ts.map +1 -1
  75. package/lib/odspDocumentStorageManager.js +10 -9
  76. package/lib/odspDocumentStorageManager.js.map +1 -1
  77. package/lib/odspDriverUrlResolverForShareLink.d.ts.map +1 -1
  78. package/lib/odspDriverUrlResolverForShareLink.js +2 -1
  79. package/lib/odspDriverUrlResolverForShareLink.js.map +1 -1
  80. package/lib/odspSummaryUploadManager.d.ts.map +1 -1
  81. package/lib/odspSummaryUploadManager.js +4 -1
  82. package/lib/odspSummaryUploadManager.js.map +1 -1
  83. package/lib/odspUtils.d.ts +1 -1
  84. package/lib/odspUtils.d.ts.map +1 -1
  85. package/lib/odspUtils.js +16 -16
  86. package/lib/odspUtils.js.map +1 -1
  87. package/lib/packageVersion.d.ts +1 -1
  88. package/lib/packageVersion.d.ts.map +1 -1
  89. package/lib/packageVersion.js +1 -1
  90. package/lib/packageVersion.js.map +1 -1
  91. package/lib/retryUtils.js.map +1 -1
  92. package/lib/vroom.js +1 -1
  93. package/lib/vroom.js.map +1 -1
  94. package/lib/zipItDataRepresentationUtils.d.ts.map +1 -1
  95. package/lib/zipItDataRepresentationUtils.js +2 -0
  96. package/lib/zipItDataRepresentationUtils.js.map +1 -1
  97. package/package.json +8 -8
  98. package/src/createFile.ts +8 -5
  99. package/src/createOdspUrl.ts +1 -1
  100. package/src/epochTracker.ts +6 -10
  101. package/src/fetchSnapshot.ts +8 -7
  102. package/src/getFileLink.ts +7 -4
  103. package/src/getQueryString.ts +1 -1
  104. package/src/odspDeltaStorageService.ts +1 -1
  105. package/src/odspDocumentDeltaConnection.ts +9 -8
  106. package/src/odspDocumentService.ts +4 -2
  107. package/src/odspDocumentStorageManager.ts +15 -11
  108. package/src/odspDriverUrlResolverForShareLink.ts +3 -1
  109. package/src/odspSummaryUploadManager.ts +4 -1
  110. package/src/odspUtils.ts +22 -17
  111. package/src/packageVersion.ts +1 -1
  112. package/src/retryUtils.ts +1 -1
  113. package/src/vroom.ts +1 -1
  114. package/src/zipItDataRepresentationUtils.ts +2 -0
@@ -46,7 +46,9 @@ export class OdspSummaryUploadManager {
46
46
  public async writeSummaryTree(tree: api.ISummaryTree, context: ISummaryContext) {
47
47
  // If the last proposed handle is not the proposed handle of the acked summary(could happen when the last summary get nacked),
48
48
  // then re-initialize the caches with the previous ones else just update the previous caches with the caches from acked summary.
49
- if (context.proposalHandle !== this.lastSummaryProposalHandle) {
49
+ // Don't bother logging if lastSummaryProposalHandle hasn't been set before; only log on a positive mismatch.
50
+ if (this.lastSummaryProposalHandle !== undefined &&
51
+ this.lastSummaryProposalHandle !== context.proposalHandle) {
50
52
  this.mc.logger.sendTelemetryEvent({
51
53
  eventName: "LastSummaryProposedHandleMismatch",
52
54
  ackedSummaryProposedHandle: context.proposalHandle,
@@ -106,6 +108,7 @@ export class OdspSummaryUploadManager {
106
108
  headers: Object.keys(headers).length !== 0 ? true : undefined,
107
109
  blobs,
108
110
  size: postBody.length,
111
+ referenceSequenceNumber,
109
112
  },
110
113
  async () => {
111
114
  const response = await this.epochTracker.fetchAndParseAsJSON<IWriteSummaryResponse>(
package/src/odspUtils.ts CHANGED
@@ -34,7 +34,7 @@ import {
34
34
  InstrumentedStorageTokenFetcher,
35
35
  } from "@fluidframework/odsp-driver-definitions";
36
36
  import { fetch } from "./fetch";
37
- import { pkgVersion } from "./packageVersion";
37
+ import { pkgVersion as driverVersion } from "./packageVersion";
38
38
  import { IOdspSnapshot } from "./contracts";
39
39
 
40
40
  export const getWithRetryForTokenRefreshRepeat = "getWithRetryForTokenRefreshRepeat";
@@ -52,7 +52,7 @@ export interface ISnapshotContents {
52
52
  export interface IOdspResponse<T> {
53
53
  content: T;
54
54
  headers: Map<string, string>;
55
- commonSpoHeaders: ITelemetryProperties;
55
+ propsToLog: ITelemetryProperties;
56
56
  duration: number,
57
57
  }
58
58
 
@@ -111,7 +111,8 @@ export async function fetchHelper(
111
111
  throw new NonRetryableError(
112
112
  "odspFetchErrorNoResponse",
113
113
  "No response from fetch call",
114
- DriverErrorType.incorrectServerResponse);
114
+ DriverErrorType.incorrectServerResponse,
115
+ { driverVersion });
115
116
  }
116
117
  if (!response.ok || response.status < 200 || response.status >= 300) {
117
118
  throwOdspNetworkError(
@@ -122,7 +123,7 @@ export async function fetchHelper(
122
123
  return {
123
124
  content: response,
124
125
  headers,
125
- commonSpoHeaders: getSPOAndGraphRequestIdsFromResponse(headers),
126
+ propsToLog: getSPOAndGraphRequestIdsFromResponse(headers),
126
127
  duration: performance.now() - start,
127
128
  };
128
129
  }, (error) => {
@@ -136,11 +137,13 @@ export async function fetchHelper(
136
137
  }
137
138
  // This error is thrown by fetch() when AbortSignal is provided and it gets cancelled
138
139
  if (error.name === "AbortError") {
139
- throw new RetryableError("fetchAbort", "Fetch Timeout (AbortError)", OdspErrorType.fetchTimeout);
140
+ throw new RetryableError(
141
+ "fetchAbort", "Fetch Timeout (AbortError)", OdspErrorType.fetchTimeout, { driverVersion });
140
142
  }
141
143
  // TCP/IP timeout
142
144
  if (errorText.indexOf("ETIMEDOUT") !== -1) {
143
- throw new RetryableError("fetchETimedout", "Fetch Timeout (ETIMEDOUT)", OdspErrorType.fetchTimeout);
145
+ throw new RetryableError(
146
+ "fetchETimedout", "Fetch Timeout (ETIMEDOUT)", OdspErrorType.fetchTimeout, { driverVersion });
144
147
  }
145
148
 
146
149
  //
@@ -149,9 +152,11 @@ export async function fetchHelper(
149
152
  // It is also non-serializable object due to circular references.
150
153
  //
151
154
  if (online === OnlineStatus.Offline) {
152
- throw new RetryableError("OdspFetchOffline", `Offline: ${errorText}`, DriverErrorType.offlineError);
155
+ throw new RetryableError(
156
+ "OdspFetchOffline", `Offline: ${errorText}`, DriverErrorType.offlineError, { driverVersion });
153
157
  } else {
154
- throw new RetryableError("OdspFetchError", `Fetch error: ${errorText}`, DriverErrorType.fetchFailure);
158
+ throw new RetryableError(
159
+ "OdspFetchError", `Fetch error: ${errorText}`, DriverErrorType.fetchFailure, { driverVersion });
155
160
  }
156
161
  });
157
162
  }
@@ -165,14 +170,14 @@ export async function fetchArray(
165
170
  requestInfo: RequestInfo,
166
171
  requestInit: RequestInit | undefined,
167
172
  ): Promise<IOdspResponse<ArrayBuffer>> {
168
- const { content, headers, commonSpoHeaders, duration } = await fetchHelper(requestInfo, requestInit);
173
+ const { content, headers, propsToLog, duration } = await fetchHelper(requestInfo, requestInit);
169
174
 
170
175
  const arrayBuffer = await content.arrayBuffer();
171
- commonSpoHeaders.bodySize = arrayBuffer.byteLength;
176
+ propsToLog.bodySize = arrayBuffer.byteLength;
172
177
  return {
173
178
  headers,
174
179
  content: arrayBuffer,
175
- commonSpoHeaders,
180
+ propsToLog,
176
181
  duration,
177
182
  };
178
183
  }
@@ -186,7 +191,7 @@ export async function fetchAndParseAsJSONHelper<T>(
186
191
  requestInfo: RequestInfo,
187
192
  requestInit: RequestInit | undefined,
188
193
  ): Promise<IOdspResponse<T>> {
189
- const { content, headers, commonSpoHeaders, duration } = await fetchHelper(requestInfo, requestInit);
194
+ const { content, headers, propsToLog, duration } = await fetchHelper(requestInfo, requestInit);
190
195
  let text: string | undefined;
191
196
  try {
192
197
  text = await content.text();
@@ -204,11 +209,11 @@ export async function fetchAndParseAsJSONHelper<T>(
204
209
  );
205
210
  }
206
211
 
207
- commonSpoHeaders.bodySize = text.length;
212
+ propsToLog.bodySize = text.length;
208
213
  const res = {
209
214
  headers,
210
215
  content: JSON.parse(text),
211
- commonSpoHeaders,
216
+ propsToLog,
212
217
  duration,
213
218
  };
214
219
  return res;
@@ -238,7 +243,7 @@ export const createOdspLogger = (logger?: ITelemetryBaseLogger) =>
238
243
  "OdspDriver",
239
244
  { all :
240
245
  {
241
- driverVersion: pkgVersion,
246
+ driverVersion,
242
247
  },
243
248
  });
244
249
 
@@ -304,7 +309,7 @@ export function toInstrumentedOdspTokenFetcher(
304
309
  "storageTokenIsNull",
305
310
  `Token is null for ${name} call`,
306
311
  OdspErrorType.fetchTokenError,
307
- { method: name });
312
+ { method: name, driverVersion });
308
313
  }
309
314
  return token;
310
315
  }, (error) => {
@@ -318,7 +323,7 @@ export function toInstrumentedOdspTokenFetcher(
318
323
  errorMessage,
319
324
  OdspErrorType.fetchTokenError,
320
325
  typeof rawCanRetry === "boolean" ? rawCanRetry : false /* canRetry */,
321
- { method: name, driverVersion: pkgVersion }));
326
+ { method: name, driverVersion }));
322
327
  throw tokenError;
323
328
  }),
324
329
  { cancel: "generic" });
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/odsp-driver";
9
- export const pkgVersion = "0.56.3";
9
+ export const pkgVersion = "0.57.0-51086";
package/src/retryUtils.ts CHANGED
@@ -68,7 +68,7 @@ export async function runWithRetry<T>(
68
68
 
69
69
  assert(canRetry, 0x24d /* "can retry" */);
70
70
  await delay(Math.floor(retryAfter));
71
- retryAfter += retryAfter / 4 * (1 + Math.random());
71
+ retryAfter += retryAfter / 4 * (1 + Math.random());
72
72
  lastError = error;
73
73
  }
74
74
  }
package/src/vroom.ts CHANGED
@@ -94,7 +94,7 @@ export async function fetchJoinSession(
94
94
 
95
95
  // TODO SPO-specific telemetry
96
96
  event.end({
97
- ...response.commonSpoHeaders,
97
+ ...response.propsToLog,
98
98
  // pushV2 websocket urls will contain pushf
99
99
  pushv2: socketUrl.includes("pushf"),
100
100
  webSocketHostName,
@@ -12,6 +12,7 @@ import { assert, IsoBuffer, Uint8ArrayToArrayBuffer, Uint8ArrayToString } from "
12
12
  import { NonRetryableError } from "@fluidframework/driver-utils";
13
13
  import { DriverErrorType } from "@fluidframework/driver-definitions";
14
14
  import { ReadBuffer } from "./ReadBufferUtils";
15
+ import { pkgVersion as driverVersion } from "./packageVersion";
15
16
 
16
17
  // eslint-disable-next-line max-len
17
18
  // https://onedrive.visualstudio.com/SharePoint%20Online/_git/SPO?path=/cobalt/Base/Property/BinaryEncodedPropertyReader.cs&version=GBmaster&_a=contents
@@ -485,6 +486,7 @@ function throwBufferParseException(
485
486
  {
486
487
  nodeType: getNodeType(node),
487
488
  expectedNodeType,
489
+ driverVersion,
488
490
  });
489
491
  }
490
492