@azure/storage-blob-changefeed 12.0.0-alpha.20230206.1 → 12.0.0-alpha.20230216.2

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 (67) hide show
  1. package/dist/index.js +32 -152
  2. package/dist/index.js.map +1 -1
  3. package/dist-esm/storage-blob-changefeed/src/BlobChangeFeedClient.js.map +1 -1
  4. package/dist-esm/storage-blob-changefeed/src/ChangeFeed.js +5 -28
  5. package/dist-esm/storage-blob-changefeed/src/ChangeFeed.js.map +1 -1
  6. package/dist-esm/storage-blob-changefeed/src/ChangeFeedFactory.js +3 -15
  7. package/dist-esm/storage-blob-changefeed/src/ChangeFeedFactory.js.map +1 -1
  8. package/dist-esm/storage-blob-changefeed/src/Chunk.js.map +1 -1
  9. package/dist-esm/storage-blob-changefeed/src/ChunkFactory.js.map +1 -1
  10. package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStream.js +7 -29
  11. package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStream.js.map +1 -1
  12. package/dist-esm/storage-blob-changefeed/src/Segment.js +3 -15
  13. package/dist-esm/storage-blob-changefeed/src/Segment.js.map +1 -1
  14. package/dist-esm/storage-blob-changefeed/src/SegmentFactory.js +3 -15
  15. package/dist-esm/storage-blob-changefeed/src/SegmentFactory.js.map +1 -1
  16. package/dist-esm/storage-blob-changefeed/src/Shard.js +3 -15
  17. package/dist-esm/storage-blob-changefeed/src/Shard.js.map +1 -1
  18. package/dist-esm/storage-blob-changefeed/src/ShardFactory.js +4 -16
  19. package/dist-esm/storage-blob-changefeed/src/ShardFactory.js.map +1 -1
  20. package/dist-esm/storage-blob-changefeed/src/models/models.js.map +1 -1
  21. package/dist-esm/storage-blob-changefeed/src/utils/tracing.js +5 -3
  22. package/dist-esm/storage-blob-changefeed/src/utils/tracing.js.map +1 -1
  23. package/dist-esm/storage-blob-changefeed/src/utils/utils.common.js +9 -51
  24. package/dist-esm/storage-blob-changefeed/src/utils/utils.common.js.map +1 -1
  25. package/package.json +5 -3
  26. package/types/3.1/storage-blob-changefeed/src/BlobChangeFeedClient.d.ts +1 -1
  27. package/types/3.1/storage-blob-changefeed/src/ChangeFeed.d.ts +1 -1
  28. package/types/3.1/storage-blob-changefeed/src/Chunk.d.ts +1 -1
  29. package/types/3.1/storage-blob-changefeed/src/ChunkFactory.d.ts +1 -1
  30. package/types/3.1/storage-blob-changefeed/src/LazyLoadingBlobStream.d.ts +1 -1
  31. package/types/3.1/storage-blob-changefeed/src/Segment.d.ts +1 -1
  32. package/types/3.1/storage-blob-changefeed/src/SegmentFactory.d.ts +1 -1
  33. package/types/3.1/storage-blob-changefeed/src/Shard.d.ts +1 -1
  34. package/types/3.1/storage-blob-changefeed/src/ShardFactory.d.ts +1 -1
  35. package/types/3.1/storage-blob-changefeed/src/models/models.d.ts +1 -1
  36. package/types/3.1/storage-blob-changefeed/src/utils/tracing.d.ts +1 -6
  37. package/types/3.1/storage-blob-changefeed/src/utils/utils.common.d.ts +1 -8
  38. package/types/3.1/storage-blob-changefeed/test/utils/index.d.ts +1 -1
  39. package/types/3.1/storage-blob-changefeed/test/utils/testutils.common.d.ts +1 -1
  40. package/types/3.1/storage-blob-changefeed.d.ts +2 -2
  41. package/types/latest/storage-blob-changefeed/src/BlobChangeFeedClient.d.ts +1 -1
  42. package/types/latest/storage-blob-changefeed/src/ChangeFeed.d.ts +1 -1
  43. package/types/latest/storage-blob-changefeed/src/ChangeFeed.d.ts.map +1 -1
  44. package/types/latest/storage-blob-changefeed/src/ChangeFeedFactory.d.ts.map +1 -1
  45. package/types/latest/storage-blob-changefeed/src/Chunk.d.ts +1 -1
  46. package/types/latest/storage-blob-changefeed/src/Chunk.d.ts.map +1 -1
  47. package/types/latest/storage-blob-changefeed/src/ChunkFactory.d.ts +1 -1
  48. package/types/latest/storage-blob-changefeed/src/ChunkFactory.d.ts.map +1 -1
  49. package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStream.d.ts +1 -1
  50. package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStream.d.ts.map +1 -1
  51. package/types/latest/storage-blob-changefeed/src/Segment.d.ts +1 -1
  52. package/types/latest/storage-blob-changefeed/src/Segment.d.ts.map +1 -1
  53. package/types/latest/storage-blob-changefeed/src/SegmentFactory.d.ts +1 -1
  54. package/types/latest/storage-blob-changefeed/src/SegmentFactory.d.ts.map +1 -1
  55. package/types/latest/storage-blob-changefeed/src/Shard.d.ts +1 -1
  56. package/types/latest/storage-blob-changefeed/src/Shard.d.ts.map +1 -1
  57. package/types/latest/storage-blob-changefeed/src/ShardFactory.d.ts +1 -1
  58. package/types/latest/storage-blob-changefeed/src/ShardFactory.d.ts.map +1 -1
  59. package/types/latest/storage-blob-changefeed/src/models/models.d.ts +1 -1
  60. package/types/latest/storage-blob-changefeed/src/models/models.d.ts.map +1 -1
  61. package/types/latest/storage-blob-changefeed/src/utils/tracing.d.ts +1 -6
  62. package/types/latest/storage-blob-changefeed/src/utils/tracing.d.ts.map +1 -1
  63. package/types/latest/storage-blob-changefeed/src/utils/utils.common.d.ts +1 -8
  64. package/types/latest/storage-blob-changefeed/src/utils/utils.common.d.ts.map +1 -1
  65. package/types/latest/storage-blob-changefeed/test/utils/index.d.ts +1 -1
  66. package/types/latest/storage-blob-changefeed/test/utils/testutils.common.d.ts +1 -1
  67. package/types/latest/storage-blob-changefeed.d.ts +2 -2
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var storageBlob = require('@azure/storage-blob');
7
- var coreHttp = require('@azure/core-http');
8
7
  var coreTracing = require('@azure/core-tracing');
9
8
  var abortController = require('@azure/abort-controller');
10
9
  require('@azure/core-paging');
@@ -25,8 +24,9 @@ const CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE = 16 * 1024 * 1024;
25
24
  * Creates a span using the global tracer.
26
25
  * @internal
27
26
  */
28
- const createSpan = coreTracing.createSpanFunction({
29
- packagePrefix: "Azure.Storage.Blob.Changefeed",
27
+ const tracingClient = coreTracing.createTracingClient({
28
+ packageName: "@azure/storage-blob-changefeed",
29
+ packageVersion: SDK_VERSION,
30
30
  namespace: "Microsoft.Storage",
31
31
  });
32
32
 
@@ -50,13 +50,12 @@ function floorToNearestHour(date) {
50
50
  * @param url - Source URL string
51
51
  */
52
52
  function getHost(url) {
53
- const urlParsed = coreHttp.URLBuilder.parse(url);
54
- return urlParsed.getHost();
53
+ const urlParsed = new URL(url);
54
+ return urlParsed.hostname;
55
55
  }
56
56
  async function getYearsPaths(containerClient, options = {}) {
57
- var e_1, _a;
58
- const { span, updatedOptions } = createSpan("getYearsPaths", options);
59
- try {
57
+ return tracingClient.withSpan("getYearsPaths", options, async (updatedOptions) => {
58
+ var e_1, _a;
60
59
  const years = [];
61
60
  try {
62
61
  for (var _b = tslib.__asyncValues(containerClient.listBlobsByHierarchy("/", {
@@ -79,22 +78,11 @@ async function getYearsPaths(containerClient, options = {}) {
79
78
  finally { if (e_1) throw e_1.error; }
80
79
  }
81
80
  return years.sort((a, b) => a - b);
82
- }
83
- catch (e) {
84
- span.setStatus({
85
- code: coreTracing.SpanStatusCode.ERROR,
86
- message: e.message,
87
- });
88
- throw e;
89
- }
90
- finally {
91
- span.end();
92
- }
81
+ });
93
82
  }
94
83
  async function getSegmentsInYear(containerClient, year, startTime, endTime, options = {}) {
95
- var e_2, _a;
96
- const { span, updatedOptions } = createSpan("getSegmentsInYear", options);
97
- try {
84
+ return tracingClient.withSpan("getSegmentsInYear", options, async (updatedOptions) => {
85
+ var e_2, _a;
98
86
  const segments = [];
99
87
  const yearBeginTime = new Date(Date.UTC(year, 0));
100
88
  if (endTime && yearBeginTime >= endTime) {
@@ -123,17 +111,7 @@ async function getSegmentsInYear(containerClient, year, startTime, endTime, opti
123
111
  finally { if (e_2) throw e_2.error; }
124
112
  }
125
113
  return segments;
126
- }
127
- catch (e) {
128
- span.setStatus({
129
- code: coreTracing.SpanStatusCode.ERROR,
130
- message: e.message,
131
- });
132
- throw e;
133
- }
134
- finally {
135
- span.end();
136
- }
114
+ });
137
115
  }
138
116
  function parseDateFromSegmentPath(segmentPath) {
139
117
  const splitPath = segmentPath.split("/");
@@ -257,8 +235,7 @@ class ChangeFeed {
257
235
  }
258
236
  }
259
237
  async advanceSegmentIfNecessary(options = {}) {
260
- const { span, updatedOptions } = createSpan("ChangeFeed-advanceSegmentIfNecessary", options);
261
- try {
238
+ return tracingClient.withSpan("ChangeFeed-advanceSegmentIfNecessary", options, async (updatedOptions) => {
262
239
  if (!this.currentSegment) {
263
240
  throw new Error("Empty Change Feed shouldn't call this function.");
264
241
  }
@@ -290,17 +267,7 @@ class ChangeFeed {
290
267
  this.currentSegment = undefined;
291
268
  }
292
269
  }
293
- }
294
- catch (e) {
295
- span.setStatus({
296
- code: coreTracing.SpanStatusCode.ERROR,
297
- message: e.message,
298
- });
299
- throw e;
300
- }
301
- finally {
302
- span.end();
303
- }
270
+ });
304
271
  }
305
272
  hasNext() {
306
273
  // Empty ChangeFeed, using currentSegment as the indicator.
@@ -313,8 +280,7 @@ class ChangeFeed {
313
280
  return this.currentSegment.dateTime < this.end;
314
281
  }
315
282
  async getChange(options = {}) {
316
- const { span, updatedOptions } = createSpan("ChangeFeed-getChange", options);
317
- try {
283
+ return tracingClient.withSpan("ChangeFeed-getChange", options, async (updatedOptions) => {
318
284
  let event = undefined;
319
285
  while (event === undefined && this.hasNext()) {
320
286
  event = await this.currentSegment.getChange({
@@ -327,17 +293,7 @@ class ChangeFeed {
327
293
  });
328
294
  }
329
295
  return event;
330
- }
331
- catch (e) {
332
- span.setStatus({
333
- code: coreTracing.SpanStatusCode.ERROR,
334
- message: e.message,
335
- });
336
- throw e;
337
- }
338
- finally {
339
- span.end();
340
- }
296
+ });
341
297
  }
342
298
  getCursor() {
343
299
  var _a;
@@ -917,8 +873,7 @@ class Segment {
917
873
  return this.shards.length > this.shardDoneCount;
918
874
  }
919
875
  async getChange(options = {}) {
920
- const { span, updatedOptions } = createSpan("Segment-getChange", options);
921
- try {
876
+ return tracingClient.withSpan("Segment-getChange", options, async (updatedOptions) => {
922
877
  if (this.shardIndex >= this.shards.length || this.shardIndex < 0) {
923
878
  throw new Error("shardIndex invalid.");
924
879
  }
@@ -941,17 +896,7 @@ class Segment {
941
896
  this.shardIndex = (this.shardIndex + 1) % this.shards.length;
942
897
  }
943
898
  return event;
944
- }
945
- catch (e) {
946
- span.setStatus({
947
- code: coreTracing.SpanStatusCode.ERROR,
948
- message: e.message,
949
- });
950
- throw e;
951
- }
952
- finally {
953
- span.end();
954
- }
899
+ });
955
900
  }
956
901
  getCursor() {
957
902
  const shardCursors = [];
@@ -975,8 +920,7 @@ class SegmentFactory {
975
920
  this.shardFactory = shardFactory;
976
921
  }
977
922
  async create(containerClient, manifestPath, cursor, options = {}) {
978
- const { span, updatedOptions } = createSpan("SegmentFactory-create", options);
979
- try {
923
+ return tracingClient.withSpan("SegmentFactory-create", options, async (updatedOptions) => {
980
924
  const shards = [];
981
925
  const dateTime = parseDateFromSegmentPath(manifestPath);
982
926
  const blobClient = containerClient.getBlobClient(manifestPath);
@@ -1006,17 +950,7 @@ class SegmentFactory {
1006
950
  }
1007
951
  }
1008
952
  return new Segment(shards, shardIndex, dateTime, manifestPath);
1009
- }
1010
- catch (e) {
1011
- span.setStatus({
1012
- code: coreTracing.SpanStatusCode.ERROR,
1013
- message: e.message,
1014
- });
1015
- throw e;
1016
- }
1017
- finally {
1018
- span.end();
1019
- }
953
+ });
1020
954
  }
1021
955
  }
1022
956
 
@@ -1033,8 +967,7 @@ class Shard {
1033
967
  return (this.chunks.length > 0 || (this.currentChunk !== undefined && this.currentChunk.hasNext()));
1034
968
  }
1035
969
  async getChange(options = {}) {
1036
- const { span, updatedOptions } = createSpan("Shard-getChange", options);
1037
- try {
970
+ return tracingClient.withSpan("Shard-getChange", options, async (updatedOptions) => {
1038
971
  let event = undefined;
1039
972
  while (event === undefined && this.hasNext()) {
1040
973
  event = await this.currentChunk.getChange();
@@ -1047,17 +980,7 @@ class Shard {
1047
980
  }
1048
981
  }
1049
982
  return event;
1050
- }
1051
- catch (e) {
1052
- span.setStatus({
1053
- code: coreTracing.SpanStatusCode.ERROR,
1054
- message: e.message,
1055
- });
1056
- throw e;
1057
- }
1058
- finally {
1059
- span.end();
1060
- }
983
+ });
1061
984
  }
1062
985
  getCursor() {
1063
986
  return this.currentChunk === undefined
@@ -1076,9 +999,8 @@ class ShardFactory {
1076
999
  this.chunkFactory = chunkFactory;
1077
1000
  }
1078
1001
  async create(containerClient, shardPath, shardCursor, options = {}) {
1079
- var e_1, _a;
1080
- const { span, updatedOptions } = createSpan("ShardFactory-create", options);
1081
- try {
1002
+ return tracingClient.withSpan("ShardFactory-create", options, async (updatedOptions) => {
1003
+ var e_1, _a;
1082
1004
  const chunks = [];
1083
1005
  const blockOffset = (shardCursor === null || shardCursor === void 0 ? void 0 : shardCursor.BlockOffset) || 0;
1084
1006
  const eventIndex = (shardCursor === null || shardCursor === void 0 ? void 0 : shardCursor.EventIndex) || 0;
@@ -1129,17 +1051,7 @@ class ShardFactory {
1129
1051
  });
1130
1052
  }
1131
1053
  return new Shard(containerClient, this.chunkFactory, chunks, currentChunk, shardPath);
1132
- }
1133
- catch (e) {
1134
- span.setStatus({
1135
- code: coreTracing.SpanStatusCode.ERROR,
1136
- message: e.message,
1137
- });
1138
- throw e;
1139
- }
1140
- finally {
1141
- span.end();
1142
- }
1054
+ });
1143
1055
  }
1144
1056
  }
1145
1057
 
@@ -1242,8 +1154,7 @@ class LazyLoadingBlobStream extends stream.Readable {
1242
1154
  this.options = options;
1243
1155
  }
1244
1156
  async downloadBlock(options = {}) {
1245
- const { span, updatedOptions } = createSpan("LazyLoadingBlobStream-downloadBlock", options);
1246
- try {
1157
+ return tracingClient.withSpan("LazyLoadingBlobStream-downloadBlock", options, async (updatedOptions) => {
1247
1158
  const properties = await this.blobClient.getProperties({
1248
1159
  abortSignal: options.abortSignal,
1249
1160
  tracingOptions: updatedOptions.tracingOptions,
@@ -1259,17 +1170,7 @@ class LazyLoadingBlobStream extends stream.Readable {
1259
1170
  tracingOptions: updatedOptions.tracingOptions,
1260
1171
  });
1261
1172
  this.offset += this.lastDownloadBytes;
1262
- }
1263
- catch (e) {
1264
- span.setStatus({
1265
- code: coreTracing.SpanStatusCode.ERROR,
1266
- message: e.message,
1267
- });
1268
- throw e;
1269
- }
1270
- finally {
1271
- span.end();
1272
- }
1173
+ });
1273
1174
  }
1274
1175
  /**
1275
1176
  * Internal _read() that will be called when the stream wants to pull more data in.
@@ -1277,9 +1178,9 @@ class LazyLoadingBlobStream extends stream.Readable {
1277
1178
  * @param size - Optional. The size of data to be read
1278
1179
  */
1279
1180
  async _read(size) {
1280
- var _a, _b, _c, _d;
1281
- const { span, updatedOptions } = createSpan("LazyLoadingBlobStream-read", this.options);
1282
- try {
1181
+ var _a;
1182
+ return tracingClient.withSpan("LazyLoadingBlobStream-read", (_a = this.options) !== null && _a !== void 0 ? _a : {}, async (updatedOptions) => {
1183
+ var _a, _b, _c, _d;
1283
1184
  if (!size) {
1284
1185
  size = this.readableHighWaterMark;
1285
1186
  }
@@ -1307,17 +1208,7 @@ class LazyLoadingBlobStream extends stream.Readable {
1307
1208
  if (count < size) {
1308
1209
  this.push(null);
1309
1210
  }
1310
- }
1311
- catch (e) {
1312
- span.setStatus({
1313
- code: coreTracing.SpanStatusCode.ERROR,
1314
- message: e.message,
1315
- });
1316
- this.emit("error", e);
1317
- }
1318
- finally {
1319
- span.end();
1320
- }
1211
+ });
1321
1212
  }
1322
1213
  }
1323
1214
 
@@ -1356,8 +1247,7 @@ class ChangeFeedFactory {
1356
1247
  }
1357
1248
  }
1358
1249
  async create(blobServiceClient, continuationToken, options = {}) {
1359
- const { span, updatedOptions } = createSpan("ChangeFeedFactory-create", options);
1360
- try {
1250
+ return tracingClient.withSpan("ChangeFeedFactory-create", options, async (updatedOptions) => {
1361
1251
  const containerClient = blobServiceClient.getContainerClient(CHANGE_FEED_CONTAINER_NAME);
1362
1252
  let cursor = undefined;
1363
1253
  // Create cursor.
@@ -1431,17 +1321,7 @@ class ChangeFeedFactory {
1431
1321
  tracingOptions: updatedOptions.tracingOptions,
1432
1322
  });
1433
1323
  return new ChangeFeed(containerClient, this.segmentFactory, years, segments, currentSegment, lastConsumable, options.start, options.end);
1434
- }
1435
- catch (e) {
1436
- span.setStatus({
1437
- code: coreTracing.SpanStatusCode.ERROR,
1438
- message: e.message,
1439
- });
1440
- throw e;
1441
- }
1442
- finally {
1443
- span.end();
1444
- }
1324
+ });
1445
1325
  }
1446
1326
  }
1447
1327