@azure/storage-blob-changefeed 12.0.0-preview.4 → 12.0.0-preview.5

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 (501) hide show
  1. package/LICENSE +3 -3
  2. package/README.md +87 -47
  3. package/{types/3.1/storage-blob-changefeed/src → dist/browser}/AvroReaderFactory.d.ts +10 -9
  4. package/dist/browser/AvroReaderFactory.d.ts.map +1 -0
  5. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/AvroReaderFactory.js +2 -2
  6. package/dist/browser/AvroReaderFactory.js.map +1 -0
  7. package/{types/3.1/storage-blob-changefeed/src → dist/browser}/BlobChangeFeedClient.d.ts +201 -182
  8. package/dist/browser/BlobChangeFeedClient.d.ts.map +1 -0
  9. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/BlobChangeFeedClient.js +117 -100
  10. package/dist/browser/BlobChangeFeedClient.js.map +1 -0
  11. package/{types/latest/storage-blob-changefeed/src → dist/browser}/ChangeFeed.d.ts +6 -6
  12. package/dist/browser/ChangeFeed.d.ts.map +1 -0
  13. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChangeFeed.js +20 -32
  14. package/dist/browser/ChangeFeed.js.map +1 -0
  15. package/{types/3.1/storage-blob-changefeed/src → dist/browser}/ChangeFeedFactory.d.ts +13 -13
  16. package/dist/browser/ChangeFeedFactory.d.ts.map +1 -0
  17. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChangeFeedFactory.js +20 -27
  18. package/dist/browser/ChangeFeedFactory.js.map +1 -0
  19. package/{types/latest/storage-blob-changefeed/src → dist/browser}/Chunk.d.ts +4 -5
  20. package/dist/browser/Chunk.d.ts.map +1 -0
  21. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Chunk.js +13 -8
  22. package/dist/browser/Chunk.js.map +1 -0
  23. package/{types/latest/storage-blob-changefeed/src → dist/browser}/ChunkFactory.d.ts +5 -5
  24. package/dist/browser/ChunkFactory.d.ts.map +1 -0
  25. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChunkFactory.js +7 -4
  26. package/dist/browser/ChunkFactory.js.map +1 -0
  27. package/{types/latest/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStream.d.ts +4 -4
  28. package/dist/browser/LazyLoadingBlobStream.d.ts.map +1 -0
  29. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStream.js +25 -36
  30. package/dist/browser/LazyLoadingBlobStream.js.map +1 -0
  31. package/dist/browser/LazyLoadingBlobStreamFactory.d.ts +7 -0
  32. package/dist/browser/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
  33. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStreamFactory.js +2 -2
  34. package/dist/browser/LazyLoadingBlobStreamFactory.js.map +1 -0
  35. package/{types/latest/storage-blob-changefeed/src → dist/browser}/Segment.d.ts +5 -5
  36. package/dist/browser/Segment.d.ts.map +1 -0
  37. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Segment.js +16 -19
  38. package/dist/browser/Segment.js.map +1 -0
  39. package/{types/3.1/storage-blob-changefeed/src → dist/browser}/SegmentFactory.d.ts +29 -29
  40. package/dist/browser/SegmentFactory.d.ts.map +1 -0
  41. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/SegmentFactory.js +12 -23
  42. package/dist/browser/SegmentFactory.js.map +1 -0
  43. package/{types/3.1/storage-blob-changefeed/src → dist/browser}/Shard.d.ts +28 -28
  44. package/dist/browser/Shard.d.ts.map +1 -0
  45. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Shard.js +9 -16
  46. package/dist/browser/Shard.js.map +1 -0
  47. package/{types/latest/storage-blob-changefeed/src → dist/browser}/ShardFactory.d.ts +5 -5
  48. package/dist/browser/ShardFactory.d.ts.map +1 -0
  49. package/dist/browser/ShardFactory.js +55 -0
  50. package/dist/browser/ShardFactory.js.map +1 -0
  51. package/dist/browser/index.d.ts +4 -0
  52. package/dist/browser/index.d.ts.map +1 -0
  53. package/dist/browser/index.js +6 -0
  54. package/dist/browser/index.js.map +1 -0
  55. package/dist/browser/log.d.ts.map +1 -0
  56. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/log.js +1 -1
  57. package/dist/browser/log.js.map +1 -0
  58. package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/BlobChangeFeedEvent.d.ts +5 -5
  59. package/dist/browser/models/BlobChangeFeedEvent.d.ts.map +1 -0
  60. package/dist/browser/models/BlobChangeFeedEvent.js +4 -0
  61. package/dist/browser/models/BlobChangeFeedEvent.js.map +1 -0
  62. package/dist/browser/models/ChangeFeedCursor.d.ts.map +1 -0
  63. package/dist/browser/models/ChangeFeedCursor.js +4 -0
  64. package/dist/browser/models/ChangeFeedCursor.js.map +1 -0
  65. package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/models.d.ts +2 -2
  66. package/dist/browser/models/models.d.ts.map +1 -0
  67. package/dist/browser/models/models.js +4 -0
  68. package/dist/browser/models/models.js.map +1 -0
  69. package/dist/browser/package.json +3 -0
  70. package/dist/browser/utils/constants.d.ts.map +1 -0
  71. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/constants.js +2 -2
  72. package/dist/browser/utils/constants.js.map +1 -0
  73. package/dist/browser/utils/tracing.d.ts +6 -0
  74. package/dist/browser/utils/tracing.d.ts.map +1 -0
  75. package/dist/browser/utils/tracing.js +14 -0
  76. package/dist/browser/utils/tracing.js.map +1 -0
  77. package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.browser.d.ts +0 -1
  78. package/dist/browser/utils/utils.browser.d.ts.map +1 -0
  79. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.browser.js +1 -1
  80. package/dist/browser/utils/utils.browser.js.map +1 -0
  81. package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.common.d.ts +3 -10
  82. package/dist/browser/utils/utils.common.d.ts.map +1 -0
  83. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.common.js +26 -91
  84. package/dist/browser/utils/utils.common.js.map +1 -0
  85. package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.node.d.ts +1 -2
  86. package/dist/browser/utils/utils.node.d.ts.map +1 -0
  87. package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.node.js +2 -2
  88. package/dist/browser/utils/utils.node.js.map +1 -0
  89. package/{types/latest/storage-blob-changefeed/src → dist/commonjs}/AvroReaderFactory.d.ts +2 -1
  90. package/dist/commonjs/AvroReaderFactory.d.ts.map +1 -0
  91. package/dist/commonjs/AvroReaderFactory.js +21 -0
  92. package/dist/commonjs/AvroReaderFactory.js.map +1 -0
  93. package/{types/latest/storage-blob-changefeed/src → dist/commonjs}/BlobChangeFeedClient.d.ts +79 -60
  94. package/dist/commonjs/BlobChangeFeedClient.d.ts.map +1 -0
  95. package/dist/commonjs/BlobChangeFeedClient.js +248 -0
  96. package/dist/commonjs/BlobChangeFeedClient.js.map +1 -0
  97. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/ChangeFeed.d.ts +37 -37
  98. package/dist/commonjs/ChangeFeed.d.ts.map +1 -0
  99. package/dist/commonjs/ChangeFeed.js +108 -0
  100. package/dist/commonjs/ChangeFeed.js.map +1 -0
  101. package/{types/latest/storage-blob-changefeed/src → dist/commonjs}/ChangeFeedFactory.d.ts +4 -4
  102. package/dist/commonjs/ChangeFeedFactory.d.ts.map +1 -0
  103. package/dist/commonjs/ChangeFeedFactory.js +126 -0
  104. package/dist/commonjs/ChangeFeedFactory.js.map +1 -0
  105. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/Chunk.d.ts +27 -28
  106. package/dist/commonjs/Chunk.d.ts.map +1 -0
  107. package/dist/commonjs/Chunk.js +49 -0
  108. package/dist/commonjs/Chunk.js.map +1 -0
  109. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/ChunkFactory.d.ts +23 -23
  110. package/dist/commonjs/ChunkFactory.d.ts.map +1 -0
  111. package/dist/commonjs/ChunkFactory.js +37 -0
  112. package/dist/commonjs/ChunkFactory.js.map +1 -0
  113. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/LazyLoadingBlobStream.d.ts +46 -46
  114. package/dist/commonjs/LazyLoadingBlobStream.d.ts.map +1 -0
  115. package/dist/commonjs/LazyLoadingBlobStream.js +96 -0
  116. package/dist/commonjs/LazyLoadingBlobStream.js.map +1 -0
  117. package/dist/commonjs/LazyLoadingBlobStreamFactory.d.ts +7 -0
  118. package/dist/commonjs/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
  119. package/dist/commonjs/LazyLoadingBlobStreamFactory.js +13 -0
  120. package/dist/commonjs/LazyLoadingBlobStreamFactory.js.map +1 -0
  121. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/Segment.d.ts +29 -29
  122. package/dist/commonjs/Segment.d.ts.map +1 -0
  123. package/dist/commonjs/Segment.js +73 -0
  124. package/dist/commonjs/Segment.js.map +1 -0
  125. package/{types/latest/storage-blob-changefeed/src → dist/commonjs}/SegmentFactory.d.ts +5 -5
  126. package/dist/commonjs/SegmentFactory.d.ts.map +1 -0
  127. package/dist/commonjs/SegmentFactory.js +51 -0
  128. package/dist/commonjs/SegmentFactory.js.map +1 -0
  129. package/{types/latest/storage-blob-changefeed/src → dist/commonjs}/Shard.d.ts +6 -6
  130. package/dist/commonjs/Shard.d.ts.map +1 -0
  131. package/dist/commonjs/Shard.js +50 -0
  132. package/dist/commonjs/Shard.js.map +1 -0
  133. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/ShardFactory.d.ts +21 -21
  134. package/dist/commonjs/ShardFactory.d.ts.map +1 -0
  135. package/dist/commonjs/ShardFactory.js +59 -0
  136. package/dist/commonjs/ShardFactory.js.map +1 -0
  137. package/dist/commonjs/index.d.ts +4 -0
  138. package/dist/commonjs/index.d.ts.map +1 -0
  139. package/dist/commonjs/index.js +9 -0
  140. package/dist/commonjs/index.js.map +1 -0
  141. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/log.d.ts +5 -5
  142. package/dist/commonjs/log.d.ts.map +1 -0
  143. package/dist/commonjs/log.js +11 -0
  144. package/dist/commonjs/log.js.map +1 -0
  145. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/models/BlobChangeFeedEvent.d.ts +233 -233
  146. package/dist/commonjs/models/BlobChangeFeedEvent.d.ts.map +1 -0
  147. package/dist/commonjs/models/BlobChangeFeedEvent.js +5 -0
  148. package/dist/commonjs/models/BlobChangeFeedEvent.js.map +1 -0
  149. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/models/ChangeFeedCursor.d.ts +17 -17
  150. package/dist/commonjs/models/ChangeFeedCursor.d.ts.map +1 -0
  151. package/dist/commonjs/models/ChangeFeedCursor.js +5 -0
  152. package/dist/commonjs/models/ChangeFeedCursor.js.map +1 -0
  153. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/models/models.d.ts +23 -23
  154. package/dist/commonjs/models/models.d.ts.map +1 -0
  155. package/dist/commonjs/models/models.js +5 -0
  156. package/dist/commonjs/models/models.js.map +1 -0
  157. package/dist/commonjs/package.json +3 -0
  158. package/{types/latest → dist/commonjs}/tsdoc-metadata.json +11 -11
  159. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/utils/constants.d.ts +9 -9
  160. package/dist/commonjs/utils/constants.d.ts.map +1 -0
  161. package/dist/commonjs/utils/constants.js +14 -0
  162. package/dist/commonjs/utils/constants.js.map +1 -0
  163. package/dist/commonjs/utils/tracing.d.ts +6 -0
  164. package/dist/commonjs/utils/tracing.d.ts.map +1 -0
  165. package/dist/commonjs/utils/tracing.js +17 -0
  166. package/dist/commonjs/utils/tracing.js.map +1 -0
  167. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/utils/utils.browser.d.ts +14 -15
  168. package/dist/commonjs/utils/utils.browser.d.ts.map +1 -0
  169. package/dist/commonjs/utils/utils.browser.js +34 -0
  170. package/dist/commonjs/utils/utils.browser.js.map +1 -0
  171. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/utils/utils.common.d.ts +37 -44
  172. package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
  173. package/dist/commonjs/utils/utils.common.js +180 -0
  174. package/dist/commonjs/utils/utils.common.js.map +1 -0
  175. package/{types/3.1/storage-blob-changefeed/src → dist/commonjs}/utils/utils.node.d.ts +14 -15
  176. package/dist/commonjs/utils/utils.node.d.ts.map +1 -0
  177. package/dist/commonjs/utils/utils.node.js +32 -0
  178. package/dist/commonjs/utils/utils.node.js.map +1 -0
  179. package/dist/esm/AvroReaderFactory.d.ts +10 -0
  180. package/dist/esm/AvroReaderFactory.d.ts.map +1 -0
  181. package/dist/esm/AvroReaderFactory.js +17 -0
  182. package/dist/esm/AvroReaderFactory.js.map +1 -0
  183. package/dist/esm/BlobChangeFeedClient.d.ts +201 -0
  184. package/dist/esm/BlobChangeFeedClient.d.ts.map +1 -0
  185. package/dist/esm/BlobChangeFeedClient.js +242 -0
  186. package/dist/esm/BlobChangeFeedClient.js.map +1 -0
  187. package/dist/esm/ChangeFeed.d.ts +37 -0
  188. package/dist/esm/ChangeFeed.d.ts.map +1 -0
  189. package/dist/esm/ChangeFeed.js +104 -0
  190. package/dist/esm/ChangeFeed.js.map +1 -0
  191. package/dist/esm/ChangeFeedFactory.d.ts +13 -0
  192. package/dist/esm/ChangeFeedFactory.d.ts.map +1 -0
  193. package/dist/esm/ChangeFeedFactory.js +122 -0
  194. package/dist/esm/ChangeFeedFactory.js.map +1 -0
  195. package/dist/esm/Chunk.d.ts +27 -0
  196. package/dist/esm/Chunk.d.ts.map +1 -0
  197. package/dist/esm/Chunk.js +45 -0
  198. package/dist/esm/Chunk.js.map +1 -0
  199. package/dist/esm/ChunkFactory.d.ts +23 -0
  200. package/dist/esm/ChunkFactory.d.ts.map +1 -0
  201. package/dist/esm/ChunkFactory.js +33 -0
  202. package/dist/esm/ChunkFactory.js.map +1 -0
  203. package/dist/esm/LazyLoadingBlobStream.d.ts +46 -0
  204. package/dist/esm/LazyLoadingBlobStream.d.ts.map +1 -0
  205. package/dist/esm/LazyLoadingBlobStream.js +92 -0
  206. package/dist/esm/LazyLoadingBlobStream.js.map +1 -0
  207. package/dist/esm/LazyLoadingBlobStreamFactory.d.ts +7 -0
  208. package/dist/esm/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
  209. package/dist/esm/LazyLoadingBlobStreamFactory.js +9 -0
  210. package/dist/esm/LazyLoadingBlobStreamFactory.js.map +1 -0
  211. package/dist/esm/Segment.d.ts +29 -0
  212. package/dist/esm/Segment.d.ts.map +1 -0
  213. package/dist/esm/Segment.js +69 -0
  214. package/dist/esm/Segment.js.map +1 -0
  215. package/dist/esm/SegmentFactory.d.ts +29 -0
  216. package/dist/esm/SegmentFactory.d.ts.map +1 -0
  217. package/dist/esm/SegmentFactory.js +47 -0
  218. package/dist/esm/SegmentFactory.js.map +1 -0
  219. package/dist/esm/Shard.d.ts +28 -0
  220. package/dist/esm/Shard.d.ts.map +1 -0
  221. package/dist/esm/Shard.js +46 -0
  222. package/dist/esm/Shard.js.map +1 -0
  223. package/dist/esm/ShardFactory.d.ts +21 -0
  224. package/dist/esm/ShardFactory.d.ts.map +1 -0
  225. package/dist/esm/ShardFactory.js +55 -0
  226. package/dist/esm/ShardFactory.js.map +1 -0
  227. package/dist/esm/index.d.ts +4 -0
  228. package/dist/esm/index.d.ts.map +1 -0
  229. package/dist/esm/index.js +6 -0
  230. package/dist/esm/index.js.map +1 -0
  231. package/dist/esm/log.d.ts +5 -0
  232. package/dist/esm/log.d.ts.map +1 -0
  233. package/dist/esm/log.js +8 -0
  234. package/dist/esm/log.js.map +1 -0
  235. package/dist/esm/models/BlobChangeFeedEvent.d.ts +233 -0
  236. package/dist/esm/models/BlobChangeFeedEvent.d.ts.map +1 -0
  237. package/dist/esm/models/BlobChangeFeedEvent.js +4 -0
  238. package/dist/esm/models/BlobChangeFeedEvent.js.map +1 -0
  239. package/dist/esm/models/ChangeFeedCursor.d.ts +17 -0
  240. package/dist/esm/models/ChangeFeedCursor.d.ts.map +1 -0
  241. package/dist/esm/models/ChangeFeedCursor.js +4 -0
  242. package/dist/esm/models/ChangeFeedCursor.js.map +1 -0
  243. package/dist/esm/models/models.d.ts +23 -0
  244. package/dist/esm/models/models.d.ts.map +1 -0
  245. package/dist/esm/models/models.js +4 -0
  246. package/dist/esm/models/models.js.map +1 -0
  247. package/dist/esm/package.json +3 -0
  248. package/dist/esm/utils/constants.d.ts +9 -0
  249. package/dist/esm/utils/constants.d.ts.map +1 -0
  250. package/dist/esm/utils/constants.js +11 -0
  251. package/dist/esm/utils/constants.js.map +1 -0
  252. package/dist/esm/utils/tracing.d.ts +6 -0
  253. package/dist/esm/utils/tracing.d.ts.map +1 -0
  254. package/dist/esm/utils/tracing.js +14 -0
  255. package/dist/esm/utils/tracing.js.map +1 -0
  256. package/dist/esm/utils/utils.browser.d.ts +14 -0
  257. package/dist/esm/utils/utils.browser.d.ts.map +1 -0
  258. package/dist/esm/utils/utils.browser.js +29 -0
  259. package/dist/esm/utils/utils.browser.js.map +1 -0
  260. package/dist/esm/utils/utils.common.d.ts +37 -0
  261. package/dist/esm/utils/utils.common.d.ts.map +1 -0
  262. package/dist/esm/utils/utils.common.js +170 -0
  263. package/dist/esm/utils/utils.common.js.map +1 -0
  264. package/dist/esm/utils/utils.node.d.ts +14 -0
  265. package/dist/esm/utils/utils.node.d.ts.map +1 -0
  266. package/dist/esm/utils/utils.node.js +28 -0
  267. package/dist/esm/utils/utils.node.js.map +1 -0
  268. package/dist/react-native/AvroReaderFactory.d.ts +10 -0
  269. package/dist/react-native/AvroReaderFactory.d.ts.map +1 -0
  270. package/dist/react-native/AvroReaderFactory.js +17 -0
  271. package/dist/react-native/AvroReaderFactory.js.map +1 -0
  272. package/dist/react-native/BlobChangeFeedClient.d.ts +201 -0
  273. package/dist/react-native/BlobChangeFeedClient.d.ts.map +1 -0
  274. package/dist/react-native/BlobChangeFeedClient.js +242 -0
  275. package/dist/react-native/BlobChangeFeedClient.js.map +1 -0
  276. package/dist/react-native/ChangeFeed.d.ts +37 -0
  277. package/dist/react-native/ChangeFeed.d.ts.map +1 -0
  278. package/dist/react-native/ChangeFeed.js +104 -0
  279. package/dist/react-native/ChangeFeed.js.map +1 -0
  280. package/dist/react-native/ChangeFeedFactory.d.ts +13 -0
  281. package/dist/react-native/ChangeFeedFactory.d.ts.map +1 -0
  282. package/dist/react-native/ChangeFeedFactory.js +122 -0
  283. package/dist/react-native/ChangeFeedFactory.js.map +1 -0
  284. package/dist/react-native/Chunk.d.ts +27 -0
  285. package/dist/react-native/Chunk.d.ts.map +1 -0
  286. package/dist/react-native/Chunk.js +45 -0
  287. package/dist/react-native/Chunk.js.map +1 -0
  288. package/dist/react-native/ChunkFactory.d.ts +23 -0
  289. package/dist/react-native/ChunkFactory.d.ts.map +1 -0
  290. package/dist/react-native/ChunkFactory.js +33 -0
  291. package/dist/react-native/ChunkFactory.js.map +1 -0
  292. package/dist/react-native/LazyLoadingBlobStream.d.ts +46 -0
  293. package/dist/react-native/LazyLoadingBlobStream.d.ts.map +1 -0
  294. package/dist/react-native/LazyLoadingBlobStream.js +92 -0
  295. package/dist/react-native/LazyLoadingBlobStream.js.map +1 -0
  296. package/dist/react-native/LazyLoadingBlobStreamFactory.d.ts +7 -0
  297. package/dist/react-native/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
  298. package/dist/react-native/LazyLoadingBlobStreamFactory.js +9 -0
  299. package/dist/react-native/LazyLoadingBlobStreamFactory.js.map +1 -0
  300. package/dist/react-native/Segment.d.ts +29 -0
  301. package/dist/react-native/Segment.d.ts.map +1 -0
  302. package/dist/react-native/Segment.js +69 -0
  303. package/dist/react-native/Segment.js.map +1 -0
  304. package/dist/react-native/SegmentFactory.d.ts +29 -0
  305. package/dist/react-native/SegmentFactory.d.ts.map +1 -0
  306. package/dist/react-native/SegmentFactory.js +47 -0
  307. package/dist/react-native/SegmentFactory.js.map +1 -0
  308. package/dist/react-native/Shard.d.ts +28 -0
  309. package/dist/react-native/Shard.d.ts.map +1 -0
  310. package/dist/react-native/Shard.js +46 -0
  311. package/dist/react-native/Shard.js.map +1 -0
  312. package/dist/react-native/ShardFactory.d.ts +21 -0
  313. package/dist/react-native/ShardFactory.d.ts.map +1 -0
  314. package/dist/react-native/ShardFactory.js +55 -0
  315. package/dist/react-native/ShardFactory.js.map +1 -0
  316. package/dist/react-native/index.d.ts +4 -0
  317. package/dist/react-native/index.d.ts.map +1 -0
  318. package/dist/react-native/index.js +6 -0
  319. package/dist/react-native/index.js.map +1 -0
  320. package/dist/react-native/log.d.ts +5 -0
  321. package/dist/react-native/log.d.ts.map +1 -0
  322. package/dist/react-native/log.js +8 -0
  323. package/dist/react-native/log.js.map +1 -0
  324. package/dist/react-native/models/BlobChangeFeedEvent.d.ts +233 -0
  325. package/dist/react-native/models/BlobChangeFeedEvent.d.ts.map +1 -0
  326. package/dist/react-native/models/BlobChangeFeedEvent.js +4 -0
  327. package/dist/react-native/models/BlobChangeFeedEvent.js.map +1 -0
  328. package/dist/react-native/models/ChangeFeedCursor.d.ts +17 -0
  329. package/dist/react-native/models/ChangeFeedCursor.d.ts.map +1 -0
  330. package/dist/react-native/models/ChangeFeedCursor.js +4 -0
  331. package/dist/react-native/models/ChangeFeedCursor.js.map +1 -0
  332. package/dist/react-native/models/models.d.ts +23 -0
  333. package/dist/react-native/models/models.d.ts.map +1 -0
  334. package/dist/react-native/models/models.js +4 -0
  335. package/dist/react-native/models/models.js.map +1 -0
  336. package/dist/react-native/package.json +3 -0
  337. package/dist/react-native/utils/constants.d.ts +9 -0
  338. package/dist/react-native/utils/constants.d.ts.map +1 -0
  339. package/dist/react-native/utils/constants.js +11 -0
  340. package/dist/react-native/utils/constants.js.map +1 -0
  341. package/dist/react-native/utils/tracing.d.ts +6 -0
  342. package/dist/react-native/utils/tracing.d.ts.map +1 -0
  343. package/dist/react-native/utils/tracing.js +14 -0
  344. package/dist/react-native/utils/tracing.js.map +1 -0
  345. package/dist/react-native/utils/utils.browser.d.ts +14 -0
  346. package/dist/react-native/utils/utils.browser.d.ts.map +1 -0
  347. package/dist/react-native/utils/utils.browser.js +29 -0
  348. package/dist/react-native/utils/utils.browser.js.map +1 -0
  349. package/dist/react-native/utils/utils.common.d.ts +37 -0
  350. package/dist/react-native/utils/utils.common.d.ts.map +1 -0
  351. package/dist/react-native/utils/utils.common.js +170 -0
  352. package/dist/react-native/utils/utils.common.js.map +1 -0
  353. package/dist/react-native/utils/utils.node.d.ts +14 -0
  354. package/dist/react-native/utils/utils.node.d.ts.map +1 -0
  355. package/dist/react-native/utils/utils.node.js +28 -0
  356. package/dist/react-native/utils/utils.node.js.map +1 -0
  357. package/package.json +89 -104
  358. package/dist/index.js +0 -1670
  359. package/dist/index.js.map +0 -1
  360. package/dist-esm/storage-blob-changefeed/src/AvroReaderFactory.js.map +0 -1
  361. package/dist-esm/storage-blob-changefeed/src/BlobChangeFeedClient.js.map +0 -1
  362. package/dist-esm/storage-blob-changefeed/src/ChangeFeed.js.map +0 -1
  363. package/dist-esm/storage-blob-changefeed/src/ChangeFeedFactory.js.map +0 -1
  364. package/dist-esm/storage-blob-changefeed/src/Chunk.js.map +0 -1
  365. package/dist-esm/storage-blob-changefeed/src/ChunkFactory.js.map +0 -1
  366. package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStream.js.map +0 -1
  367. package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.js.map +0 -1
  368. package/dist-esm/storage-blob-changefeed/src/Segment.js.map +0 -1
  369. package/dist-esm/storage-blob-changefeed/src/SegmentFactory.js.map +0 -1
  370. package/dist-esm/storage-blob-changefeed/src/Shard.js.map +0 -1
  371. package/dist-esm/storage-blob-changefeed/src/ShardFactory.js +0 -78
  372. package/dist-esm/storage-blob-changefeed/src/ShardFactory.js.map +0 -1
  373. package/dist-esm/storage-blob-changefeed/src/index.js +0 -6
  374. package/dist-esm/storage-blob-changefeed/src/index.js.map +0 -1
  375. package/dist-esm/storage-blob-changefeed/src/log.js.map +0 -1
  376. package/dist-esm/storage-blob-changefeed/src/models/BlobChangeFeedEvent.js +0 -4
  377. package/dist-esm/storage-blob-changefeed/src/models/BlobChangeFeedEvent.js.map +0 -1
  378. package/dist-esm/storage-blob-changefeed/src/models/ChangeFeedCursor.js +0 -4
  379. package/dist-esm/storage-blob-changefeed/src/models/ChangeFeedCursor.js.map +0 -1
  380. package/dist-esm/storage-blob-changefeed/src/models/models.js +0 -4
  381. package/dist-esm/storage-blob-changefeed/src/models/models.js.map +0 -1
  382. package/dist-esm/storage-blob-changefeed/src/utils/constants.js.map +0 -1
  383. package/dist-esm/storage-blob-changefeed/src/utils/tracing.js +0 -12
  384. package/dist-esm/storage-blob-changefeed/src/utils/tracing.js.map +0 -1
  385. package/dist-esm/storage-blob-changefeed/src/utils/utils.browser.js.map +0 -1
  386. package/dist-esm/storage-blob-changefeed/src/utils/utils.common.js.map +0 -1
  387. package/dist-esm/storage-blob-changefeed/src/utils/utils.node.js.map +0 -1
  388. package/dist-esm/storage-internal-avro/src/AvroConstants.js +0 -7
  389. package/dist-esm/storage-internal-avro/src/AvroConstants.js.map +0 -1
  390. package/dist-esm/storage-internal-avro/src/AvroParser.js +0 -311
  391. package/dist-esm/storage-internal-avro/src/AvroParser.js.map +0 -1
  392. package/dist-esm/storage-internal-avro/src/AvroReadable.js +0 -5
  393. package/dist-esm/storage-internal-avro/src/AvroReadable.js.map +0 -1
  394. package/dist-esm/storage-internal-avro/src/AvroReadableFromBlob.js +0 -47
  395. package/dist-esm/storage-internal-avro/src/AvroReadableFromBlob.js.map +0 -1
  396. package/dist-esm/storage-internal-avro/src/AvroReadableFromStream.js +0 -84
  397. package/dist-esm/storage-internal-avro/src/AvroReadableFromStream.js.map +0 -1
  398. package/dist-esm/storage-internal-avro/src/AvroReader.js +0 -107
  399. package/dist-esm/storage-internal-avro/src/AvroReader.js.map +0 -1
  400. package/dist-esm/storage-internal-avro/src/index.browser.js +0 -6
  401. package/dist-esm/storage-internal-avro/src/index.browser.js.map +0 -1
  402. package/dist-esm/storage-internal-avro/src/index.js +0 -6
  403. package/dist-esm/storage-internal-avro/src/index.js.map +0 -1
  404. package/dist-esm/storage-internal-avro/src/utils/utils.common.js +0 -17
  405. package/dist-esm/storage-internal-avro/src/utils/utils.common.js.map +0 -1
  406. package/types/3.1/storage-blob-changefeed/samples-dev/blobChangeFeedClient.d.ts +0 -2
  407. package/types/3.1/storage-blob-changefeed/samples-dev/resumeListChanges.d.ts +0 -2
  408. package/types/3.1/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.d.ts +0 -6
  409. package/types/3.1/storage-blob-changefeed/src/index.d.ts +0 -4
  410. package/types/3.1/storage-blob-changefeed/src/utils/tracing.d.ts +0 -11
  411. package/types/3.1/storage-blob-changefeed/test/blobchangefeedclient.spec.d.ts +0 -2
  412. package/types/3.1/storage-blob-changefeed/test/changefeed.spec.d.ts +0 -2
  413. package/types/3.1/storage-blob-changefeed/test/chunk.spec.d.ts +0 -2
  414. package/types/3.1/storage-blob-changefeed/test/segment.spec.d.ts +0 -2
  415. package/types/3.1/storage-blob-changefeed/test/shard.spec.d.ts +0 -2
  416. package/types/3.1/storage-blob-changefeed/test/utils/index.d.ts +0 -13
  417. package/types/3.1/storage-blob-changefeed/test/utils/testutils.common.d.ts +0 -64
  418. package/types/3.1/storage-blob-changefeed.d.ts +0 -437
  419. package/types/3.1/storage-internal-avro/src/AvroConstants.d.ts +0 -5
  420. package/types/3.1/storage-internal-avro/src/AvroParser.d.ts +0 -57
  421. package/types/3.1/storage-internal-avro/src/AvroReadable.d.ts +0 -16
  422. package/types/3.1/storage-internal-avro/src/AvroReadableFromBlob.d.ts +0 -9
  423. package/types/3.1/storage-internal-avro/src/AvroReadableFromStream.d.ts +0 -11
  424. package/types/3.1/storage-internal-avro/src/AvroReader.d.ts +0 -33
  425. package/types/3.1/storage-internal-avro/src/index.browser.d.ts +0 -4
  426. package/types/3.1/storage-internal-avro/src/index.d.ts +0 -4
  427. package/types/3.1/storage-internal-avro/src/utils/utils.common.d.ts +0 -6
  428. package/types/3.1/storage-internal-avro/test/browser/avroreadable.spec.d.ts +0 -2
  429. package/types/3.1/storage-internal-avro/test/node/avroreadable.spec.d.ts +0 -2
  430. package/types/3.1/storage-internal-avro/test/node/avroreader.spec.d.ts +0 -2
  431. package/types/latest/storage-blob-changefeed/samples-dev/blobChangeFeedClient.d.ts +0 -2
  432. package/types/latest/storage-blob-changefeed/samples-dev/blobChangeFeedClient.d.ts.map +0 -1
  433. package/types/latest/storage-blob-changefeed/samples-dev/resumeListChanges.d.ts +0 -2
  434. package/types/latest/storage-blob-changefeed/samples-dev/resumeListChanges.d.ts.map +0 -1
  435. package/types/latest/storage-blob-changefeed/src/AvroReaderFactory.d.ts.map +0 -1
  436. package/types/latest/storage-blob-changefeed/src/BlobChangeFeedClient.d.ts.map +0 -1
  437. package/types/latest/storage-blob-changefeed/src/ChangeFeed.d.ts.map +0 -1
  438. package/types/latest/storage-blob-changefeed/src/ChangeFeedFactory.d.ts.map +0 -1
  439. package/types/latest/storage-blob-changefeed/src/Chunk.d.ts.map +0 -1
  440. package/types/latest/storage-blob-changefeed/src/ChunkFactory.d.ts.map +0 -1
  441. package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStream.d.ts.map +0 -1
  442. package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.d.ts +0 -6
  443. package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.d.ts.map +0 -1
  444. package/types/latest/storage-blob-changefeed/src/Segment.d.ts.map +0 -1
  445. package/types/latest/storage-blob-changefeed/src/SegmentFactory.d.ts.map +0 -1
  446. package/types/latest/storage-blob-changefeed/src/Shard.d.ts.map +0 -1
  447. package/types/latest/storage-blob-changefeed/src/ShardFactory.d.ts.map +0 -1
  448. package/types/latest/storage-blob-changefeed/src/index.d.ts +0 -4
  449. package/types/latest/storage-blob-changefeed/src/index.d.ts.map +0 -1
  450. package/types/latest/storage-blob-changefeed/src/log.d.ts.map +0 -1
  451. package/types/latest/storage-blob-changefeed/src/models/BlobChangeFeedEvent.d.ts.map +0 -1
  452. package/types/latest/storage-blob-changefeed/src/models/ChangeFeedCursor.d.ts.map +0 -1
  453. package/types/latest/storage-blob-changefeed/src/models/models.d.ts.map +0 -1
  454. package/types/latest/storage-blob-changefeed/src/utils/constants.d.ts.map +0 -1
  455. package/types/latest/storage-blob-changefeed/src/utils/tracing.d.ts +0 -11
  456. package/types/latest/storage-blob-changefeed/src/utils/tracing.d.ts.map +0 -1
  457. package/types/latest/storage-blob-changefeed/src/utils/utils.browser.d.ts.map +0 -1
  458. package/types/latest/storage-blob-changefeed/src/utils/utils.common.d.ts.map +0 -1
  459. package/types/latest/storage-blob-changefeed/src/utils/utils.node.d.ts.map +0 -1
  460. package/types/latest/storage-blob-changefeed/test/blobchangefeedclient.spec.d.ts +0 -2
  461. package/types/latest/storage-blob-changefeed/test/blobchangefeedclient.spec.d.ts.map +0 -1
  462. package/types/latest/storage-blob-changefeed/test/changefeed.spec.d.ts +0 -2
  463. package/types/latest/storage-blob-changefeed/test/changefeed.spec.d.ts.map +0 -1
  464. package/types/latest/storage-blob-changefeed/test/chunk.spec.d.ts +0 -2
  465. package/types/latest/storage-blob-changefeed/test/chunk.spec.d.ts.map +0 -1
  466. package/types/latest/storage-blob-changefeed/test/segment.spec.d.ts +0 -2
  467. package/types/latest/storage-blob-changefeed/test/segment.spec.d.ts.map +0 -1
  468. package/types/latest/storage-blob-changefeed/test/shard.spec.d.ts +0 -2
  469. package/types/latest/storage-blob-changefeed/test/shard.spec.d.ts.map +0 -1
  470. package/types/latest/storage-blob-changefeed/test/utils/index.d.ts +0 -13
  471. package/types/latest/storage-blob-changefeed/test/utils/index.d.ts.map +0 -1
  472. package/types/latest/storage-blob-changefeed/test/utils/testutils.common.d.ts +0 -64
  473. package/types/latest/storage-blob-changefeed/test/utils/testutils.common.d.ts.map +0 -1
  474. package/types/latest/storage-blob-changefeed.d.ts +0 -453
  475. package/types/latest/storage-internal-avro/src/AvroConstants.d.ts +0 -5
  476. package/types/latest/storage-internal-avro/src/AvroConstants.d.ts.map +0 -1
  477. package/types/latest/storage-internal-avro/src/AvroParser.d.ts +0 -57
  478. package/types/latest/storage-internal-avro/src/AvroParser.d.ts.map +0 -1
  479. package/types/latest/storage-internal-avro/src/AvroReadable.d.ts +0 -16
  480. package/types/latest/storage-internal-avro/src/AvroReadable.d.ts.map +0 -1
  481. package/types/latest/storage-internal-avro/src/AvroReadableFromBlob.d.ts +0 -9
  482. package/types/latest/storage-internal-avro/src/AvroReadableFromBlob.d.ts.map +0 -1
  483. package/types/latest/storage-internal-avro/src/AvroReadableFromStream.d.ts +0 -11
  484. package/types/latest/storage-internal-avro/src/AvroReadableFromStream.d.ts.map +0 -1
  485. package/types/latest/storage-internal-avro/src/AvroReader.d.ts +0 -33
  486. package/types/latest/storage-internal-avro/src/AvroReader.d.ts.map +0 -1
  487. package/types/latest/storage-internal-avro/src/index.browser.d.ts +0 -4
  488. package/types/latest/storage-internal-avro/src/index.browser.d.ts.map +0 -1
  489. package/types/latest/storage-internal-avro/src/index.d.ts +0 -4
  490. package/types/latest/storage-internal-avro/src/index.d.ts.map +0 -1
  491. package/types/latest/storage-internal-avro/src/utils/utils.common.d.ts +0 -6
  492. package/types/latest/storage-internal-avro/src/utils/utils.common.d.ts.map +0 -1
  493. package/types/latest/storage-internal-avro/test/browser/avroreadable.spec.d.ts +0 -2
  494. package/types/latest/storage-internal-avro/test/browser/avroreadable.spec.d.ts.map +0 -1
  495. package/types/latest/storage-internal-avro/test/node/avroreadable.spec.d.ts +0 -2
  496. package/types/latest/storage-internal-avro/test/node/avroreadable.spec.d.ts.map +0 -1
  497. package/types/latest/storage-internal-avro/test/node/avroreader.spec.d.ts +0 -2
  498. package/types/latest/storage-internal-avro/test/node/avroreader.spec.d.ts.map +0 -1
  499. /package/{types/latest/storage-blob-changefeed/src → dist/browser}/log.d.ts +0 -0
  500. /package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/ChangeFeedCursor.d.ts +0 -0
  501. /package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/constants.d.ts +0 -0
@@ -1,7 +1,18 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { rawEventToBlobChangeFeedEvent } from "./utils/utils.common";
2
+ // Licensed under the MIT License.
3
+ import { rawEventToBlobChangeFeedEvent } from "./utils/utils.common.js";
4
4
  export class Chunk {
5
+ chunkPath;
6
+ avroReader;
7
+ iter;
8
+ _blockOffset;
9
+ get blockOffset() {
10
+ return this._blockOffset;
11
+ }
12
+ _eventIndex;
13
+ get eventIndex() {
14
+ return this._eventIndex;
15
+ }
5
16
  constructor(avroReader, blockOffset, eventIndex, chunkPath, avroOptions = {}) {
6
17
  this.chunkPath = chunkPath;
7
18
  this.avroReader = avroReader;
@@ -9,12 +20,6 @@ export class Chunk {
9
20
  this._eventIndex = eventIndex;
10
21
  this.iter = this.avroReader.parseObjects(avroOptions);
11
22
  }
12
- get blockOffset() {
13
- return this._blockOffset;
14
- }
15
- get eventIndex() {
16
- return this._eventIndex;
17
- }
18
23
  hasNext() {
19
24
  return this.avroReader.hasNext();
20
25
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chunk.js","sourceRoot":"","sources":["../../src/Chunk.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAMlC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAaxE,MAAM,OAAO,KAAK;IAkBE;IAjBD,UAAU,CAAa;IACvB,IAAI,CAAoD;IAEjE,YAAY,CAAS;IAC7B,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAS;IAC5B,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YACE,UAAsB,EACtB,WAAmB,EACnB,UAAkB,EACF,SAAiB,EACjC,cAAgC,EAAE;QADlB,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,SAAS;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AvroReader, AvroParseOptions } from \"@azure/storage-internal-avro\";\nimport type { BlobChangeFeedEvent } from \"./models/BlobChangeFeedEvent.js\";\nimport type { CommonOptions } from \"@azure/storage-blob\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { rawEventToBlobChangeFeedEvent } from \"./utils/utils.common.js\";\n\n/**\n * Options to configure {@link Chunk.getChange} operation.\n */\nexport interface ChunkGetChangeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport class Chunk {\n private readonly avroReader: AvroReader;\n private readonly iter: AsyncIterableIterator<Record<string, any> | null>;\n\n private _blockOffset: number;\n public get blockOffset(): number {\n return this._blockOffset;\n }\n\n private _eventIndex: number;\n public get eventIndex(): number {\n return this._eventIndex;\n }\n\n constructor(\n avroReader: AvroReader,\n blockOffset: number,\n eventIndex: number,\n public readonly chunkPath: string,\n avroOptions: AvroParseOptions = {},\n ) {\n this.avroReader = avroReader;\n this._blockOffset = blockOffset;\n this._eventIndex = eventIndex;\n\n this.iter = this.avroReader.parseObjects(avroOptions);\n }\n\n public hasNext(): boolean {\n return this.avroReader.hasNext();\n }\n\n public async getChange(): Promise<BlobChangeFeedEvent | undefined> {\n if (!this.hasNext()) {\n return undefined;\n }\n\n const next = await this.iter.next();\n this._eventIndex = this.avroReader.objectIndex;\n this._blockOffset = this.avroReader.blockOffset;\n if (next.done) {\n return undefined;\n } else {\n const eventRaw = next.value;\n if (eventRaw === null) {\n return undefined;\n }\n\n return rawEventToBlobChangeFeedEvent(eventRaw);\n }\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
- import { AvroReaderFactory } from "./AvroReaderFactory";
2
- import { ContainerClient, CommonOptions } from "@azure/storage-blob";
3
- import { Chunk } from "./Chunk";
4
- import { AbortSignalLike } from "@azure/core-http";
5
- import { LazyLoadingBlobStreamFactory } from "./LazyLoadingBlobStreamFactory";
1
+ import type { AvroReaderFactory } from "./AvroReaderFactory.js";
2
+ import type { ContainerClient, CommonOptions } from "@azure/storage-blob";
3
+ import { Chunk } from "./Chunk.js";
4
+ import type { AbortSignalLike } from "@azure/abort-controller";
5
+ import type { LazyLoadingBlobStreamFactory } from "./LazyLoadingBlobStreamFactory.js";
6
6
  /**
7
7
  * Options to configure {@link ChunkFactory.create} operation.
8
8
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkFactory.d.ts","sourceRoot":"","sources":["../../src/ChunkFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAItF;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAA+B;IAC5E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;gBAGxC,iBAAiB,EAAE,iBAAiB,EACpC,4BAA4B,EAAE,4BAA4B,EAC1D,eAAe,CAAC,EAAE,MAAM;IAOb,MAAM,CACjB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,KAAK,CAAC;CAiClB"}
@@ -1,9 +1,12 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { Chunk } from "./Chunk";
4
- import { streamToAvroReadable } from "./utils/utils.node";
5
- import { CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE } from "./utils/constants";
2
+ // Licensed under the MIT License.
3
+ import { Chunk } from "./Chunk.js";
4
+ import { streamToAvroReadable } from "./utils/utils.node.js";
5
+ import { CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE } from "./utils/constants.js";
6
6
  export class ChunkFactory {
7
+ avroReaderFactory;
8
+ lazyLoadingBlobStreamFactory;
9
+ maxTransferSize;
7
10
  constructor(avroReaderFactory, lazyLoadingBlobStreamFactory, maxTransferSize) {
8
11
  this.avroReaderFactory = avroReaderFactory;
9
12
  this.lazyLoadingBlobStreamFactory = lazyLoadingBlobStreamFactory;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkFactory.js","sourceRoot":"","sources":["../../src/ChunkFactory.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,qCAAqC,EAAE,MAAM,sBAAsB,CAAC;AAc7E,MAAM,OAAO,YAAY;IACN,iBAAiB,CAAoB;IACrC,4BAA4B,CAA+B;IAC3D,eAAe,CAAU;IAE1C,YACE,iBAAoC,EACpC,4BAA0D,EAC1D,eAAwB;QAExB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,4BAA4B,GAAG,4BAA4B,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,eAAgC,EAChC,SAAiB,EACjB,WAAoB,EACpB,UAAmB,EACnB,UAA8B,EAAE;QAEhC,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5D,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC;QAC/B,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC;QAE7B,MAAM,UAAU,GAAG,oBAAoB,CACrC,IAAI,CAAC,4BAA4B,CAAC,MAAM,CACtC,UAAU,EACV,WAAW,EACX,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,qCAAqC,EACnF,OAAO,CACR,CACF,CAAC;QAEF,IAAI,UAAsB,CAAC;QAC3B,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,oBAAoB,CACvC,IAAI,CAAC,4BAA4B,CAAC,MAAM,CACtC,UAAU,EACV,CAAC,EACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,qCAAqC,EACnF,OAAO,CACR,CACF,CAAC;YACF,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE;YAC/D,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AvroReaderFactory } from \"./AvroReaderFactory.js\";\nimport type { ContainerClient, CommonOptions } from \"@azure/storage-blob\";\nimport { Chunk } from \"./Chunk.js\";\nimport { streamToAvroReadable } from \"./utils/utils.node.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { LazyLoadingBlobStreamFactory } from \"./LazyLoadingBlobStreamFactory.js\";\nimport { CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE } from \"./utils/constants.js\";\nimport type { AvroReader } from \"@azure/storage-internal-avro\";\n\n/**\n * Options to configure {@link ChunkFactory.create} operation.\n */\nexport interface CreateChunkOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport class ChunkFactory {\n private readonly avroReaderFactory: AvroReaderFactory;\n private readonly lazyLoadingBlobStreamFactory: LazyLoadingBlobStreamFactory;\n private readonly maxTransferSize?: number;\n\n constructor(\n avroReaderFactory: AvroReaderFactory,\n lazyLoadingBlobStreamFactory: LazyLoadingBlobStreamFactory,\n maxTransferSize?: number,\n ) {\n this.avroReaderFactory = avroReaderFactory;\n this.lazyLoadingBlobStreamFactory = lazyLoadingBlobStreamFactory;\n this.maxTransferSize = maxTransferSize;\n }\n\n public async create(\n containerClient: ContainerClient,\n chunkPath: string,\n blockOffset?: number,\n eventIndex?: number,\n options: CreateChunkOptions = {},\n ): Promise<Chunk> {\n const blobClient = containerClient.getBlobClient(chunkPath);\n blockOffset = blockOffset || 0;\n eventIndex = eventIndex || 0;\n\n const dataStream = streamToAvroReadable(\n this.lazyLoadingBlobStreamFactory.create(\n blobClient,\n blockOffset,\n this.maxTransferSize ? this.maxTransferSize : CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE,\n options,\n ),\n );\n\n let avroReader: AvroReader;\n if (blockOffset !== 0) {\n const headerStream = streamToAvroReadable(\n this.lazyLoadingBlobStreamFactory.create(\n blobClient,\n 0,\n this.maxTransferSize ? this.maxTransferSize : CHANGE_FEED_CHUNK_BLOCK_DOWNLOAD_SIZE,\n options,\n ),\n );\n avroReader = this.avroReaderFactory.create(dataStream, headerStream, blockOffset, eventIndex);\n } else {\n avroReader = this.avroReaderFactory.create(dataStream);\n }\n\n return new Chunk(avroReader, blockOffset, eventIndex, chunkPath, {\n abortSignal: options.abortSignal,\n });\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
2
- import { Readable, ReadableOptions } from "stream";
3
- import { BlobClient, CommonOptions } from "@azure/storage-blob";
4
- import { AbortSignalLike } from "@azure/core-http";
1
+ import type { ReadableOptions } from "node:stream";
2
+ import { Readable } from "node:stream";
3
+ import type { BlobClient, CommonOptions } from "@azure/storage-blob";
4
+ import type { AbortSignalLike } from "@azure/abort-controller";
5
5
  /**
6
6
  * Options to configure the LazyLoadingBlobStream.
7
7
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingBlobStream.d.ts","sourceRoot":"","sources":["../../src/LazyLoadingBlobStream.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,eAAe,EAAE,aAAa;IAClF;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAUD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAElC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,OAAO,CAAC,CAA+B;IAE/C;;;;OAIG;gBAED,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,4BAA4B;YAW1B,aAAa;IA8B3B;;;;OAIG;IACU,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAoCjD"}
@@ -1,12 +1,24 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { Readable } from "stream";
4
- import { createSpan } from "./utils/tracing";
5
- import { SpanStatusCode } from "@azure/core-tracing";
2
+ // Licensed under the MIT License.
3
+ import { Readable } from "node:stream";
4
+ import { tracingClient } from "./utils/tracing.js";
6
5
  /**
7
6
  * This class generates a readable stream from a blobClient's data.
8
7
  */
9
8
  export class LazyLoadingBlobStream extends Readable {
9
+ /**
10
+ * BlobClient to make download calls with.
11
+ */
12
+ blobClient;
13
+ /**
14
+ * The offset within the blob of the next block we will download.
15
+ */
16
+ offset;
17
+ blockSize;
18
+ lastDownloadBytes;
19
+ lastDownloadData;
20
+ blobLength;
21
+ options;
10
22
  /**
11
23
  * Creates an instance of LazyLoadingBlobStream.
12
24
  *
@@ -22,8 +34,7 @@ export class LazyLoadingBlobStream extends Readable {
22
34
  this.options = options;
23
35
  }
24
36
  async downloadBlock(options = {}) {
25
- const { span, updatedOptions } = createSpan("LazyLoadingBlobStream-downloadBlock", options);
26
- try {
37
+ return tracingClient.withSpan("LazyLoadingBlobStream-downloadBlock", options, async (updatedOptions) => {
27
38
  const properties = await this.blobClient.getProperties({
28
39
  abortSignal: options.abortSignal,
29
40
  tracingOptions: updatedOptions.tracingOptions,
@@ -39,17 +50,7 @@ export class LazyLoadingBlobStream extends Readable {
39
50
  tracingOptions: updatedOptions.tracingOptions,
40
51
  });
41
52
  this.offset += this.lastDownloadBytes;
42
- }
43
- catch (e) {
44
- span.setStatus({
45
- code: SpanStatusCode.ERROR,
46
- message: e.message,
47
- });
48
- throw e;
49
- }
50
- finally {
51
- span.end();
52
- }
53
+ });
53
54
  }
54
55
  /**
55
56
  * Internal _read() that will be called when the stream wants to pull more data in.
@@ -57,9 +58,7 @@ export class LazyLoadingBlobStream extends Readable {
57
58
  * @param size - Optional. The size of data to be read
58
59
  */
59
60
  async _read(size) {
60
- var _a, _b, _c, _d;
61
- const { span, updatedOptions } = createSpan("LazyLoadingBlobStream-read", this.options);
62
- try {
61
+ return tracingClient.withSpan("LazyLoadingBlobStream-read", this.options ?? {}, async (updatedOptions) => {
63
62
  if (!size) {
64
63
  size = this.readableHighWaterMark;
65
64
  }
@@ -67,14 +66,14 @@ export class LazyLoadingBlobStream extends Readable {
67
66
  let chunkSize = 0;
68
67
  const chunksToPush = [];
69
68
  do {
70
- if (this.lastDownloadData === undefined || ((_a = this.lastDownloadData) === null || _a === void 0 ? void 0 : _a.byteLength) === 0) {
69
+ if (this.lastDownloadData === undefined || this.lastDownloadData?.byteLength === 0) {
71
70
  await this.downloadBlock({
72
- abortSignal: (_b = this.options) === null || _b === void 0 ? void 0 : _b.abortSignal,
73
- tracingOptions: updatedOptions === null || updatedOptions === void 0 ? void 0 : updatedOptions.tracingOptions,
71
+ abortSignal: this.options?.abortSignal,
72
+ tracingOptions: updatedOptions?.tracingOptions,
74
73
  });
75
74
  }
76
- if ((_c = this.lastDownloadData) === null || _c === void 0 ? void 0 : _c.byteLength) {
77
- chunkSize = Math.min(size - count, (_d = this.lastDownloadData) === null || _d === void 0 ? void 0 : _d.byteLength);
75
+ if (this.lastDownloadData?.byteLength) {
76
+ chunkSize = Math.min(size - count, this.lastDownloadData?.byteLength);
78
77
  chunksToPush.push(this.lastDownloadData.slice(0, chunkSize));
79
78
  this.lastDownloadData = this.lastDownloadData.slice(chunkSize);
80
79
  count += chunkSize;
@@ -87,17 +86,7 @@ export class LazyLoadingBlobStream extends Readable {
87
86
  if (count < size) {
88
87
  this.push(null);
89
88
  }
90
- }
91
- catch (e) {
92
- span.setStatus({
93
- code: SpanStatusCode.ERROR,
94
- message: e.message,
95
- });
96
- this.emit("error", e);
97
- }
98
- finally {
99
- span.end();
100
- }
89
+ });
101
90
  }
102
91
  }
103
92
  //# sourceMappingURL=LazyLoadingBlobStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingBlobStream.js","sourceRoot":"","sources":["../../src/LazyLoadingBlobStream.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ReadableOptions } from \"node:stream\";\nimport { Readable } from \"node:stream\";\nimport type { BlobClient, CommonOptions } from \"@azure/storage-blob\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\n/**\n * Options to configure the LazyLoadingBlobStream.\n */\nexport interface LazyLoadingBlobStreamOptions extends ReadableOptions, CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\ninterface LazyLoadingBlobStreamDownloadBlockOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\n/**\n * This class generates a readable stream from a blobClient's data.\n */\nexport class LazyLoadingBlobStream extends Readable {\n /**\n * BlobClient to make download calls with.\n */\n private readonly blobClient: BlobClient;\n\n /**\n * The offset within the blob of the next block we will download.\n */\n private offset: number;\n\n private readonly blockSize: number;\n\n private lastDownloadBytes: number;\n\n private lastDownloadData?: Buffer;\n\n private blobLength: number;\n\n private options?: LazyLoadingBlobStreamOptions;\n\n /**\n * Creates an instance of LazyLoadingBlobStream.\n *\n * @param byteLength - The total length of data contained in the buffers\n */\n constructor(\n blobClient: BlobClient,\n offset: number,\n blockSize: number,\n options?: LazyLoadingBlobStreamOptions,\n ) {\n super(options);\n this.blobClient = blobClient;\n this.offset = offset;\n this.blockSize = blockSize;\n this.lastDownloadBytes = -1;\n this.blobLength = -1;\n this.options = options;\n }\n\n private async downloadBlock(options: LazyLoadingBlobStreamDownloadBlockOptions = {}) {\n return tracingClient.withSpan(\n \"LazyLoadingBlobStream-downloadBlock\",\n options,\n async (updatedOptions) => {\n const properties = await this.blobClient.getProperties({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n });\n this.blobLength = properties.contentLength!;\n\n this.lastDownloadBytes = Math.min(this.blockSize, this.blobLength - this.offset);\n if (this.lastDownloadBytes === 0) {\n this.lastDownloadData = undefined;\n return;\n }\n\n this.lastDownloadData = await this.blobClient.downloadToBuffer(\n this.offset,\n this.lastDownloadBytes,\n {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n },\n );\n this.offset += this.lastDownloadBytes;\n },\n );\n }\n\n /**\n * Internal _read() that will be called when the stream wants to pull more data in.\n *\n * @param size - Optional. The size of data to be read\n */\n public async _read(size?: number): Promise<void> {\n return tracingClient.withSpan(\n \"LazyLoadingBlobStream-read\",\n this.options ?? {},\n async (updatedOptions) => {\n if (!size) {\n size = this.readableHighWaterMark;\n }\n let count = 0;\n let chunkSize = 0;\n const chunksToPush = [];\n do {\n if (this.lastDownloadData === undefined || this.lastDownloadData?.byteLength === 0) {\n await this.downloadBlock({\n abortSignal: this.options?.abortSignal,\n tracingOptions: updatedOptions?.tracingOptions,\n });\n }\n if (this.lastDownloadData?.byteLength) {\n chunkSize = Math.min(size - count, this.lastDownloadData?.byteLength);\n chunksToPush.push(this.lastDownloadData.slice(0, chunkSize));\n this.lastDownloadData = this.lastDownloadData.slice(chunkSize);\n count += chunkSize;\n } else {\n chunkSize = 0;\n }\n } while (chunkSize > 0 && count < size);\n\n this.push(Buffer.concat(chunksToPush));\n\n if (count < size) {\n this.push(null);\n }\n },\n );\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import type { BlobClient } from "@azure/storage-blob";
2
+ import type { LazyLoadingBlobStreamOptions } from "./LazyLoadingBlobStream.js";
3
+ import { LazyLoadingBlobStream } from "./LazyLoadingBlobStream.js";
4
+ export declare class LazyLoadingBlobStreamFactory {
5
+ create(blobClient: BlobClient, offset: number, blockSize: number, options?: LazyLoadingBlobStreamOptions): LazyLoadingBlobStream;
6
+ }
7
+ //# sourceMappingURL=LazyLoadingBlobStreamFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingBlobStreamFactory.d.ts","sourceRoot":"","sources":["../../src/LazyLoadingBlobStreamFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,qBAAa,4BAA4B;IAChC,MAAM,CACX,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB;CAGzB"}
@@ -1,6 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { LazyLoadingBlobStream } from "./LazyLoadingBlobStream";
2
+ // Licensed under the MIT License.
3
+ import { LazyLoadingBlobStream } from "./LazyLoadingBlobStream.js";
4
4
  export class LazyLoadingBlobStreamFactory {
5
5
  create(blobClient, offset, blockSize, options) {
6
6
  return new LazyLoadingBlobStream(blobClient, offset, blockSize, options);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyLoadingBlobStreamFactory.js","sourceRoot":"","sources":["../../src/LazyLoadingBlobStreamFactory.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,4BAA4B;IAChC,MAAM,CACX,UAAsB,EACtB,MAAc,EACd,SAAiB,EACjB,OAAsC;QAEtC,OAAO,IAAI,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BlobClient } from \"@azure/storage-blob\";\nimport type { LazyLoadingBlobStreamOptions } from \"./LazyLoadingBlobStream.js\";\nimport { LazyLoadingBlobStream } from \"./LazyLoadingBlobStream.js\";\n\nexport class LazyLoadingBlobStreamFactory {\n public create(\n blobClient: BlobClient,\n offset: number,\n blockSize: number,\n options?: LazyLoadingBlobStreamOptions,\n ): LazyLoadingBlobStream {\n return new LazyLoadingBlobStream(blobClient, offset, blockSize, options);\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
- import { BlobChangeFeedEvent } from "./models/BlobChangeFeedEvent";
2
- import { Shard } from "./Shard";
3
- import { SegmentCursor } from "./models/ChangeFeedCursor";
4
- import { CommonOptions } from "@azure/storage-blob";
5
- import { AbortSignalLike } from "@azure/core-http";
1
+ import type { BlobChangeFeedEvent } from "./models/BlobChangeFeedEvent.js";
2
+ import type { Shard } from "./Shard.js";
3
+ import type { SegmentCursor } from "./models/ChangeFeedCursor.js";
4
+ import type { CommonOptions } from "@azure/storage-blob";
5
+ import type { AbortSignalLike } from "@azure/abort-controller";
6
6
  /**
7
7
  * Options to configure {@link Segment.getChange} operation.
8
8
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Segment.d.ts","sourceRoot":"","sources":["../../src/Segment.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,OAAO;IAoBhB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAnB/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,UAAU,CAAS;IAI3B,OAAO,CAAC,SAAS,CAAO;IACxB,IAAW,QAAQ,IAAI,IAAI,CAE1B;gBAGC,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,IAAI,EACG,YAAY,EAAE,MAAM;IAUhC,OAAO,IAAI,OAAO;IAIZ,SAAS,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA8BpC,SAAS,IAAI,aAAa;CAelC"}
@@ -1,8 +1,19 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { createSpan } from "./utils/tracing";
4
- import { SpanStatusCode } from "@azure/core-tracing";
2
+ // Licensed under the MIT License.
3
+ import { tracingClient } from "./utils/tracing.js";
5
4
  export class Segment {
5
+ manifestPath;
6
+ shards;
7
+ // Track shards that we have finished reading from.
8
+ shardDone;
9
+ shardDoneCount;
10
+ shardIndex;
11
+ // Assuming the dateTime of segments is rounded to hour. If not, our logic for fetching
12
+ // change events between a time range would be incorrect.
13
+ _dateTime;
14
+ get dateTime() {
15
+ return this._dateTime;
16
+ }
6
17
  constructor(shards, shardIndex, dateTime, manifestPath) {
7
18
  this.manifestPath = manifestPath;
8
19
  this.shards = shards;
@@ -11,15 +22,11 @@ export class Segment {
11
22
  this.shardDone = Array(shards.length).fill(false);
12
23
  this.shardDoneCount = 0;
13
24
  }
14
- get dateTime() {
15
- return this._dateTime;
16
- }
17
25
  hasNext() {
18
26
  return this.shards.length > this.shardDoneCount;
19
27
  }
20
28
  async getChange(options = {}) {
21
- const { span, updatedOptions } = createSpan("Segment-getChange", options);
22
- try {
29
+ return tracingClient.withSpan("Segment-getChange", options, async (updatedOptions) => {
23
30
  if (this.shardIndex >= this.shards.length || this.shardIndex < 0) {
24
31
  throw new Error("shardIndex invalid.");
25
32
  }
@@ -42,17 +49,7 @@ export class Segment {
42
49
  this.shardIndex = (this.shardIndex + 1) % this.shards.length;
43
50
  }
44
51
  return event;
45
- }
46
- catch (e) {
47
- span.setStatus({
48
- code: SpanStatusCode.ERROR,
49
- message: e.message,
50
- });
51
- throw e;
52
- }
53
- finally {
54
- span.end();
55
- }
52
+ });
56
53
  }
57
54
  getCursor() {
58
55
  const shardCursors = [];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Segment.js","sourceRoot":"","sources":["../../src/Segment.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BlobChangeFeedEvent } from \"./models/BlobChangeFeedEvent.js\";\nimport type { Shard } from \"./Shard.js\";\nimport type { SegmentCursor, ShardCursor } from \"./models/ChangeFeedCursor.js\";\nimport type { CommonOptions } from \"@azure/storage-blob\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\n/**\n * Options to configure {@link Segment.getChange} operation.\n */\nexport interface SegmentGetChangeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport class Segment {\n private readonly shards: Shard[];\n\n // Track shards that we have finished reading from.\n private shardDone: boolean[];\n private shardDoneCount: number;\n\n private shardIndex: number;\n\n // Assuming the dateTime of segments is rounded to hour. If not, our logic for fetching\n // change events between a time range would be incorrect.\n private _dateTime: Date;\n public get dateTime(): Date {\n return this._dateTime;\n }\n\n constructor(\n shards: Shard[],\n shardIndex: number,\n dateTime: Date,\n private readonly manifestPath: string,\n ) {\n this.shards = shards;\n this.shardIndex = shardIndex;\n this._dateTime = dateTime;\n\n this.shardDone = Array(shards.length).fill(false);\n this.shardDoneCount = 0;\n }\n\n public hasNext(): boolean {\n return this.shards.length > this.shardDoneCount;\n }\n\n public async getChange(\n options: SegmentGetChangeOptions = {},\n ): Promise<BlobChangeFeedEvent | undefined> {\n return tracingClient.withSpan(\"Segment-getChange\", options, async (updatedOptions) => {\n if (this.shardIndex >= this.shards.length || this.shardIndex < 0) {\n throw new Error(\"shardIndex invalid.\");\n }\n\n let event: BlobChangeFeedEvent | undefined = undefined;\n while (event === undefined && this.hasNext()) {\n if (this.shardDone[this.shardIndex]) {\n this.shardIndex = (this.shardIndex + 1) % this.shards.length; // find next available shard\n continue;\n }\n\n const currentShard = this.shards[this.shardIndex];\n event = await currentShard.getChange({\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n });\n\n if (!currentShard.hasNext()) {\n this.shardDone[this.shardIndex] = true;\n this.shardDoneCount++;\n }\n // Round robin with shards\n this.shardIndex = (this.shardIndex + 1) % this.shards.length;\n }\n return event;\n });\n }\n\n public getCursor(): SegmentCursor {\n const shardCursors: ShardCursor[] = [];\n for (const shard of this.shards) {\n const shardCursor = shard.getCursor();\n if (shardCursor) {\n shardCursors.push(shardCursor);\n }\n }\n\n return {\n SegmentPath: this.manifestPath,\n ShardCursors: shardCursors,\n CurrentShardPath: this.shards[this.shardIndex].shardPath,\n };\n }\n}\n"]}
@@ -1,29 +1,29 @@
1
- import { ShardFactory } from "./ShardFactory";
2
- import { ContainerClient, CommonOptions } from "@azure/storage-blob";
3
- import { Segment } from "./Segment";
4
- import { SegmentCursor } from "./models/ChangeFeedCursor";
5
- import { AbortSignalLike } from "@azure/core-http";
6
- export interface SegmentManifest {
7
- version?: number;
8
- begin?: Date;
9
- intervalSecs?: number;
10
- status: string;
11
- config?: any;
12
- chunkFilePaths: string[];
13
- }
14
- /**
15
- * Options to configure {@link SegmentFactory.create} operation.
16
- */
17
- export interface CreateSegmentOptions extends CommonOptions {
18
- /**
19
- * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
20
- * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
21
- */
22
- abortSignal?: AbortSignalLike;
23
- }
24
- export declare class SegmentFactory {
25
- private readonly shardFactory;
26
- constructor(shardFactory: ShardFactory);
27
- create(containerClient: ContainerClient, manifestPath: string, cursor?: SegmentCursor, options?: CreateSegmentOptions): Promise<Segment>;
28
- }
29
- //# sourceMappingURL=SegmentFactory.d.ts.map
1
+ import type { ShardFactory } from "./ShardFactory.js";
2
+ import type { ContainerClient, CommonOptions } from "@azure/storage-blob";
3
+ import { Segment } from "./Segment.js";
4
+ import type { SegmentCursor } from "./models/ChangeFeedCursor.js";
5
+ import type { AbortSignalLike } from "@azure/abort-controller";
6
+ export interface SegmentManifest {
7
+ version?: number;
8
+ begin?: Date;
9
+ intervalSecs?: number;
10
+ status: string;
11
+ config?: any;
12
+ chunkFilePaths: string[];
13
+ }
14
+ /**
15
+ * Options to configure {@link SegmentFactory.create} operation.
16
+ */
17
+ export interface CreateSegmentOptions extends CommonOptions {
18
+ /**
19
+ * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
20
+ * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
21
+ */
22
+ abortSignal?: AbortSignalLike;
23
+ }
24
+ export declare class SegmentFactory {
25
+ private readonly shardFactory;
26
+ constructor(shardFactory: ShardFactory);
27
+ create(containerClient: ContainerClient, manifestPath: string, cursor?: SegmentCursor, options?: CreateSegmentOptions): Promise<Segment>;
28
+ }
29
+ //# sourceMappingURL=SegmentFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentFactory.d.ts","sourceRoot":"","sources":["../../src/SegmentFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAEhC,YAAY,EAAE,YAAY;IAIzB,MAAM,CACjB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,OAAO,CAAC;CA4CpB"}
@@ -1,18 +1,17 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { CHANGE_FEED_CONTAINER_NAME } from "./utils/constants";
4
- import { Segment } from "./Segment";
5
- import { bodyToString } from "./utils/utils.node";
6
- import { parseDateFromSegmentPath } from "./utils/utils.common";
7
- import { createSpan } from "./utils/tracing";
8
- import { SpanStatusCode } from "@azure/core-tracing";
2
+ // Licensed under the MIT License.
3
+ import { CHANGE_FEED_CONTAINER_NAME } from "./utils/constants.js";
4
+ import { Segment } from "./Segment.js";
5
+ import { bodyToString } from "./utils/utils.node.js";
6
+ import { parseDateFromSegmentPath } from "./utils/utils.common.js";
7
+ import { tracingClient } from "./utils/tracing.js";
9
8
  export class SegmentFactory {
9
+ shardFactory;
10
10
  constructor(shardFactory) {
11
11
  this.shardFactory = shardFactory;
12
12
  }
13
13
  async create(containerClient, manifestPath, cursor, options = {}) {
14
- const { span, updatedOptions } = createSpan("SegmentFactory-create", options);
15
- try {
14
+ return tracingClient.withSpan("SegmentFactory-create", options, async (updatedOptions) => {
16
15
  const shards = [];
17
16
  const dateTime = parseDateFromSegmentPath(manifestPath);
18
17
  const blobClient = containerClient.getBlobClient(manifestPath);
@@ -25,7 +24,7 @@ export class SegmentFactory {
25
24
  const containerPrefixLength = CHANGE_FEED_CONTAINER_NAME.length + 1; // "$blobchangefeed/"
26
25
  for (const shardPath of segmentManifest.chunkFilePaths) {
27
26
  const shardPathSubStr = shardPath.substring(containerPrefixLength);
28
- const shardCursor = cursor === null || cursor === void 0 ? void 0 : cursor.ShardCursors.find((x) => x.CurrentChunkPath.startsWith(shardPathSubStr));
27
+ const shardCursor = cursor?.ShardCursors.find((x) => x.CurrentChunkPath.startsWith(shardPathSubStr));
29
28
  const shard = await this.shardFactory.create(containerClient, shardPathSubStr, shardCursor, {
30
29
  abortSignal: options.abortSignal,
31
30
  tracingOptions: updatedOptions.tracingOptions,
@@ -35,24 +34,14 @@ export class SegmentFactory {
35
34
  }
36
35
  }
37
36
  let shardIndex = 0;
38
- if (cursor === null || cursor === void 0 ? void 0 : cursor.CurrentShardPath) {
39
- shardIndex = shards.findIndex((s) => s.shardPath === (cursor === null || cursor === void 0 ? void 0 : cursor.CurrentShardPath));
37
+ if (cursor?.CurrentShardPath) {
38
+ shardIndex = shards.findIndex((s) => s.shardPath === cursor?.CurrentShardPath);
40
39
  if (shardIndex === -1) {
41
40
  shardIndex = 0;
42
41
  }
43
42
  }
44
43
  return new Segment(shards, shardIndex, dateTime, manifestPath);
45
- }
46
- catch (e) {
47
- span.setStatus({
48
- code: SpanStatusCode.ERROR,
49
- message: e.message,
50
- });
51
- throw e;
52
- }
53
- finally {
54
- span.end();
55
- }
44
+ });
56
45
  }
57
46
  }
58
47
  //# sourceMappingURL=SegmentFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentFactory.js","sourceRoot":"","sources":["../../src/SegmentFactory.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAsBnD,MAAM,OAAO,cAAc;IACR,YAAY,CAAe;IAE5C,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,eAAgC,EAChC,YAAoB,EACpB,MAAsB,EACtB,UAAgC,EAAE;QAElC,OAAO,aAAa,CAAC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACvF,MAAM,MAAM,GAAY,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAS,wBAAwB,CAAC,YAAY,CAAC,CAAC;YAE9D,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE;gBACtE,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;aAC9C,CAAC,CAAC;YACH,MAAM,WAAW,GAAW,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;YAEhE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAoB,CAAC;YAEnE,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,qBAAqB;YAC1F,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,cAAc,EAAE,CAAC;gBACvD,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;gBACnE,MAAM,WAAW,GAAG,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClD,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,eAAe,CAAC,CAC/C,CAAC;gBACF,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CACjD,eAAe,EACf,eAAe,EACf,WAAW,EACX;oBACE,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;iBAC9C,CACF,CAAC;gBACF,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBAC7B,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,EAAE,gBAAgB,CAAC,CAAC;gBAC/E,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;oBACtB,UAAU,GAAG,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ShardFactory } from \"./ShardFactory.js\";\nimport type { ContainerClient, CommonOptions } from \"@azure/storage-blob\";\nimport { CHANGE_FEED_CONTAINER_NAME } from \"./utils/constants.js\";\nimport type { Shard } from \"./Shard.js\";\nimport { Segment } from \"./Segment.js\";\nimport type { SegmentCursor } from \"./models/ChangeFeedCursor.js\";\nimport { bodyToString } from \"./utils/utils.node.js\";\nimport { parseDateFromSegmentPath } from \"./utils/utils.common.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\nexport interface SegmentManifest {\n version?: number;\n begin?: Date;\n intervalSecs?: number;\n status: string;\n config?: any;\n chunkFilePaths: string[];\n}\n\n/**\n * Options to configure {@link SegmentFactory.create} operation.\n */\nexport interface CreateSegmentOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport class SegmentFactory {\n private readonly shardFactory: ShardFactory;\n\n constructor(shardFactory: ShardFactory) {\n this.shardFactory = shardFactory;\n }\n\n public async create(\n containerClient: ContainerClient,\n manifestPath: string,\n cursor?: SegmentCursor,\n options: CreateSegmentOptions = {},\n ): Promise<Segment> {\n return tracingClient.withSpan(\"SegmentFactory-create\", options, async (updatedOptions) => {\n const shards: Shard[] = [];\n const dateTime: Date = parseDateFromSegmentPath(manifestPath);\n\n const blobClient = containerClient.getBlobClient(manifestPath);\n const blobDownloadRes = await blobClient.download(undefined, undefined, {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n });\n const blobContent: string = await bodyToString(blobDownloadRes);\n\n const segmentManifest = JSON.parse(blobContent) as SegmentManifest;\n\n const containerPrefixLength = CHANGE_FEED_CONTAINER_NAME.length + 1; // \"$blobchangefeed/\"\n for (const shardPath of segmentManifest.chunkFilePaths) {\n const shardPathSubStr = shardPath.substring(containerPrefixLength);\n const shardCursor = cursor?.ShardCursors.find((x) =>\n x.CurrentChunkPath.startsWith(shardPathSubStr),\n );\n const shard: Shard = await this.shardFactory.create(\n containerClient,\n shardPathSubStr,\n shardCursor,\n {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n },\n );\n if (shard.hasNext()) {\n shards.push(shard);\n }\n }\n\n let shardIndex = 0;\n if (cursor?.CurrentShardPath) {\n shardIndex = shards.findIndex((s) => s.shardPath === cursor?.CurrentShardPath);\n if (shardIndex === -1) {\n shardIndex = 0;\n }\n }\n return new Segment(shards, shardIndex, dateTime, manifestPath);\n });\n }\n}\n"]}
@@ -1,28 +1,28 @@
1
- import { ContainerClient, CommonOptions } from "@azure/storage-blob";
2
- import { ChunkFactory } from "./ChunkFactory";
3
- import { Chunk } from "./Chunk";
4
- import { BlobChangeFeedEvent } from "./models/BlobChangeFeedEvent";
5
- import { ShardCursor } from "./models/ChangeFeedCursor";
6
- import { AbortSignalLike } from "@azure/core-http";
7
- /**
8
- * Options to configure {@link Shard.getChange} operation.
9
- */
10
- export interface ShardGetChangeOptions extends CommonOptions {
11
- /**
12
- * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
13
- * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
14
- */
15
- abortSignal?: AbortSignalLike;
16
- }
17
- export declare class Shard {
18
- readonly shardPath: string;
19
- private readonly containerClient;
20
- private readonly chunkFactory;
21
- private readonly chunks;
22
- private currentChunk;
23
- constructor(containerClient: ContainerClient, chunkFactory: ChunkFactory, chunks: string[], currentChunk: Chunk | undefined, shardPath: string);
24
- hasNext(): boolean;
25
- getChange(options?: ShardGetChangeOptions): Promise<BlobChangeFeedEvent | undefined>;
26
- getCursor(): ShardCursor | undefined;
27
- }
28
- //# sourceMappingURL=Shard.d.ts.map
1
+ import type { ContainerClient, CommonOptions } from "@azure/storage-blob";
2
+ import type { ChunkFactory } from "./ChunkFactory.js";
3
+ import type { Chunk } from "./Chunk.js";
4
+ import type { BlobChangeFeedEvent } from "./models/BlobChangeFeedEvent.js";
5
+ import type { ShardCursor } from "./models/ChangeFeedCursor.js";
6
+ import type { AbortSignalLike } from "@azure/abort-controller";
7
+ /**
8
+ * Options to configure {@link Shard.getChange} operation.
9
+ */
10
+ export interface ShardGetChangeOptions extends CommonOptions {
11
+ /**
12
+ * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
13
+ * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
14
+ */
15
+ abortSignal?: AbortSignalLike;
16
+ }
17
+ export declare class Shard {
18
+ readonly shardPath: string;
19
+ private readonly containerClient;
20
+ private readonly chunkFactory;
21
+ private readonly chunks;
22
+ private currentChunk;
23
+ constructor(containerClient: ContainerClient, chunkFactory: ChunkFactory, chunks: string[], currentChunk: Chunk | undefined, shardPath: string);
24
+ hasNext(): boolean;
25
+ getChange(options?: ShardGetChangeOptions): Promise<BlobChangeFeedEvent | undefined>;
26
+ getCursor(): ShardCursor | undefined;
27
+ }
28
+ //# sourceMappingURL=Shard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shard.d.ts","sourceRoot":"","sources":["../../src/Shard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,KAAK;aAcE,SAAS,EAAE,MAAM;IAbnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAElD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAElC,OAAO,CAAC,YAAY,CAAoB;gBAGtC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,KAAK,GAAG,SAAS,EACf,SAAS,EAAE,MAAM;IAQ5B,OAAO,IAAI,OAAO;IAMZ,SAAS,CACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAwBpC,SAAS,IAAI,WAAW,GAAG,SAAS;CAS5C"}
@@ -1,8 +1,12 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
- import { createSpan } from "./utils/tracing";
4
- import { SpanStatusCode } from "@azure/core-tracing";
2
+ // Licensed under the MIT License.
3
+ import { tracingClient } from "./utils/tracing.js";
5
4
  export class Shard {
5
+ shardPath;
6
+ containerClient;
7
+ chunkFactory;
8
+ chunks;
9
+ currentChunk;
6
10
  constructor(containerClient, chunkFactory, chunks, currentChunk, shardPath) {
7
11
  this.shardPath = shardPath;
8
12
  this.containerClient = containerClient;
@@ -14,8 +18,7 @@ export class Shard {
14
18
  return (this.chunks.length > 0 || (this.currentChunk !== undefined && this.currentChunk.hasNext()));
15
19
  }
16
20
  async getChange(options = {}) {
17
- const { span, updatedOptions } = createSpan("Shard-getChange", options);
18
- try {
21
+ return tracingClient.withSpan("Shard-getChange", options, async (updatedOptions) => {
19
22
  let event = undefined;
20
23
  while (event === undefined && this.hasNext()) {
21
24
  event = await this.currentChunk.getChange();
@@ -28,17 +31,7 @@ export class Shard {
28
31
  }
29
32
  }
30
33
  return event;
31
- }
32
- catch (e) {
33
- span.setStatus({
34
- code: SpanStatusCode.ERROR,
35
- message: e.message,
36
- });
37
- throw e;
38
- }
39
- finally {
40
- span.end();
41
- }
34
+ });
42
35
  }
43
36
  getCursor() {
44
37
  return this.currentChunk === undefined
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shard.js","sourceRoot":"","sources":["../../src/Shard.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAQlC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,MAAM,OAAO,KAAK;IAcE;IAbD,eAAe,CAAkB;IAEjC,YAAY,CAAe;IAE3B,MAAM,CAAW;IAE1B,YAAY,CAAoB;IAExC,YACE,eAAgC,EAChC,YAA0B,EAC1B,MAAgB,EAChB,YAA+B,EACf,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;QAEjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,OAAO;QACZ,OAAO,CACL,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAC3F,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,SAAS,CACpB,UAAiC,EAAE;QAEnC,OAAO,aAAa,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YACjF,IAAI,KAAK,GAAoC,SAAS,CAAC;YACvD,OAAO,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC7C,KAAK,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,SAAS,EAAE,CAAC;gBAE7C,sDAAsD;gBACtD,IAAI,CAAC,IAAI,CAAC,YAAa,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5D,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAChD,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,EACpB,SAAS,EACT,SAAS,EACT;wBACE,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,cAAc,EAAE,cAAc,CAAC,cAAc;qBAC9C,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS;YACpC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;gBAC7C,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;gBAC1C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU;aACzC,CAAC;IACR,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ContainerClient, CommonOptions } from \"@azure/storage-blob\";\nimport type { ChunkFactory } from \"./ChunkFactory.js\";\nimport type { Chunk } from \"./Chunk.js\";\nimport type { BlobChangeFeedEvent } from \"./models/BlobChangeFeedEvent.js\";\nimport type { ShardCursor } from \"./models/ChangeFeedCursor.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport { tracingClient } from \"./utils/tracing.js\";\n\n/**\n * Options to configure {@link Shard.getChange} operation.\n */\nexport interface ShardGetChangeOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport class Shard {\n private readonly containerClient: ContainerClient;\n\n private readonly chunkFactory: ChunkFactory;\n\n private readonly chunks: string[];\n\n private currentChunk: Chunk | undefined;\n\n constructor(\n containerClient: ContainerClient,\n chunkFactory: ChunkFactory,\n chunks: string[],\n currentChunk: Chunk | undefined,\n public readonly shardPath: string,\n ) {\n this.containerClient = containerClient;\n this.chunkFactory = chunkFactory;\n this.chunks = chunks;\n this.currentChunk = currentChunk;\n }\n\n public hasNext(): boolean {\n return (\n this.chunks.length > 0 || (this.currentChunk !== undefined && this.currentChunk.hasNext())\n );\n }\n\n public async getChange(\n options: ShardGetChangeOptions = {},\n ): Promise<BlobChangeFeedEvent | undefined> {\n return tracingClient.withSpan(\"Shard-getChange\", options, async (updatedOptions) => {\n let event: BlobChangeFeedEvent | undefined = undefined;\n while (event === undefined && this.hasNext()) {\n event = await this.currentChunk!.getChange();\n\n // Remove currentChunk if it doesn't have more events.\n if (!this.currentChunk!.hasNext() && this.chunks.length > 0) {\n this.currentChunk = await this.chunkFactory.create(\n this.containerClient,\n this.chunks.shift()!,\n undefined,\n undefined,\n {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n },\n );\n }\n }\n return event;\n });\n }\n\n public getCursor(): ShardCursor | undefined {\n return this.currentChunk === undefined\n ? undefined\n : {\n CurrentChunkPath: this.currentChunk.chunkPath,\n BlockOffset: this.currentChunk.blockOffset,\n EventIndex: this.currentChunk.eventIndex,\n };\n }\n}\n"]}