@azure/storage-blob-changefeed 12.0.0-alpha.20250407.1 → 12.0.0-alpha.20250516.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.
- package/README.md +82 -37
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/AvroReaderFactory.d.ts +2 -2
- package/dist/browser/AvroReaderFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/AvroReaderFactory.js +1 -1
- package/dist/browser/AvroReaderFactory.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/BlobChangeFeedClient.d.ts +74 -56
- package/dist/browser/BlobChangeFeedClient.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/BlobChangeFeedClient.js +52 -44
- package/dist/browser/BlobChangeFeedClient.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/ChangeFeed.d.ts +4 -4
- package/dist/browser/ChangeFeed.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChangeFeed.js +2 -2
- package/dist/browser/ChangeFeed.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/ChangeFeedFactory.d.ts +3 -3
- package/dist/browser/ChangeFeedFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChangeFeedFactory.js +14 -11
- package/dist/browser/ChangeFeedFactory.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/Chunk.d.ts +2 -3
- package/dist/browser/Chunk.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Chunk.js +1 -1
- package/dist/browser/Chunk.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/ChunkFactory.d.ts +3 -3
- package/dist/browser/ChunkFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ChunkFactory.js +3 -3
- package/dist/browser/ChunkFactory.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStream.d.ts +2 -2
- package/dist/browser/LazyLoadingBlobStream.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStream.js +2 -2
- package/dist/browser/LazyLoadingBlobStream.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStreamFactory.d.ts +2 -2
- package/dist/browser/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/LazyLoadingBlobStreamFactory.js +1 -1
- package/dist/browser/LazyLoadingBlobStreamFactory.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/Segment.d.ts +3 -3
- package/dist/browser/Segment.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Segment.js +1 -1
- package/dist/browser/Segment.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/SegmentFactory.d.ts +3 -3
- package/dist/browser/SegmentFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/SegmentFactory.js +5 -5
- package/dist/browser/SegmentFactory.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/Shard.d.ts +4 -4
- package/dist/browser/Shard.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/Shard.js +1 -1
- package/dist/browser/Shard.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/ShardFactory.d.ts +3 -3
- package/dist/browser/ShardFactory.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/ShardFactory.js +2 -2
- package/dist/browser/ShardFactory.js.map +1 -0
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +6 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/log.d.ts.map +1 -0
- package/dist/browser/log.js.map +1 -0
- package/dist/browser/models/BlobChangeFeedEvent.d.ts.map +1 -0
- package/dist/browser/models/BlobChangeFeedEvent.js.map +1 -0
- package/dist/browser/models/ChangeFeedCursor.d.ts.map +1 -0
- package/dist/browser/models/ChangeFeedCursor.js.map +1 -0
- package/dist/browser/models/models.d.ts.map +1 -0
- package/dist/browser/models/models.js.map +1 -0
- package/dist/browser/package.json +3 -0
- package/dist/browser/utils/constants.d.ts.map +1 -0
- package/dist/browser/utils/constants.js.map +1 -0
- package/dist/browser/utils/tracing.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/tracing.js +1 -1
- package/dist/browser/utils/tracing.js.map +1 -0
- package/dist/browser/utils/utils.browser.d.ts.map +1 -0
- package/dist/browser/utils/utils.browser.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.common.d.ts +1 -1
- package/dist/browser/utils/utils.common.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.common.js +2 -2
- package/dist/browser/utils/utils.common.js.map +1 -0
- package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.node.d.ts +1 -1
- package/dist/browser/utils/utils.node.d.ts.map +1 -0
- package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.node.js +1 -1
- package/dist/browser/utils/utils.node.js.map +1 -0
- package/dist/commonjs/AvroReaderFactory.d.ts +10 -0
- package/dist/commonjs/AvroReaderFactory.d.ts.map +1 -0
- package/dist/commonjs/AvroReaderFactory.js +21 -0
- package/dist/commonjs/AvroReaderFactory.js.map +1 -0
- package/dist/commonjs/BlobChangeFeedClient.d.ts +201 -0
- package/dist/commonjs/BlobChangeFeedClient.d.ts.map +1 -0
- package/dist/commonjs/BlobChangeFeedClient.js +239 -0
- package/dist/commonjs/BlobChangeFeedClient.js.map +1 -0
- package/dist/commonjs/ChangeFeed.d.ts +37 -0
- package/dist/commonjs/ChangeFeed.d.ts.map +1 -0
- package/dist/commonjs/ChangeFeed.js +97 -0
- package/dist/commonjs/ChangeFeed.js.map +1 -0
- package/dist/commonjs/ChangeFeedFactory.d.ts +13 -0
- package/dist/commonjs/ChangeFeedFactory.d.ts.map +1 -0
- package/dist/commonjs/ChangeFeedFactory.js +124 -0
- package/dist/commonjs/ChangeFeedFactory.js.map +1 -0
- package/dist/commonjs/Chunk.d.ts +27 -0
- package/dist/commonjs/Chunk.d.ts.map +1 -0
- package/dist/commonjs/Chunk.js +44 -0
- package/dist/commonjs/Chunk.js.map +1 -0
- package/dist/commonjs/ChunkFactory.d.ts +23 -0
- package/dist/commonjs/ChunkFactory.d.ts.map +1 -0
- package/dist/commonjs/ChunkFactory.js +34 -0
- package/dist/commonjs/ChunkFactory.js.map +1 -0
- package/dist/commonjs/LazyLoadingBlobStream.d.ts +46 -0
- package/dist/commonjs/LazyLoadingBlobStream.d.ts.map +1 -0
- package/dist/commonjs/LazyLoadingBlobStream.js +85 -0
- package/dist/commonjs/LazyLoadingBlobStream.js.map +1 -0
- package/dist/commonjs/LazyLoadingBlobStreamFactory.d.ts +7 -0
- package/dist/commonjs/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
- package/dist/commonjs/LazyLoadingBlobStreamFactory.js +13 -0
- package/dist/commonjs/LazyLoadingBlobStreamFactory.js.map +1 -0
- package/dist/commonjs/Segment.d.ts +29 -0
- package/dist/commonjs/Segment.d.ts.map +1 -0
- package/dist/commonjs/Segment.js +64 -0
- package/dist/commonjs/Segment.js.map +1 -0
- package/dist/commonjs/SegmentFactory.d.ts +29 -0
- package/dist/commonjs/SegmentFactory.d.ts.map +1 -0
- package/dist/commonjs/SegmentFactory.js +50 -0
- package/dist/commonjs/SegmentFactory.js.map +1 -0
- package/dist/commonjs/Shard.d.ts +28 -0
- package/dist/commonjs/Shard.d.ts.map +1 -0
- package/dist/commonjs/Shard.js +45 -0
- package/dist/commonjs/Shard.js.map +1 -0
- package/dist/commonjs/ShardFactory.d.ts +21 -0
- package/dist/commonjs/ShardFactory.d.ts.map +1 -0
- package/dist/commonjs/ShardFactory.js +72 -0
- package/dist/commonjs/ShardFactory.js.map +1 -0
- package/dist/commonjs/index.d.ts +4 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +9 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/log.d.ts +5 -0
- package/dist/commonjs/log.d.ts.map +1 -0
- package/dist/commonjs/log.js +11 -0
- package/dist/commonjs/log.js.map +1 -0
- package/dist/commonjs/models/BlobChangeFeedEvent.d.ts +233 -0
- package/dist/commonjs/models/BlobChangeFeedEvent.d.ts.map +1 -0
- package/dist/commonjs/models/BlobChangeFeedEvent.js +5 -0
- package/dist/commonjs/models/BlobChangeFeedEvent.js.map +1 -0
- package/dist/commonjs/models/ChangeFeedCursor.d.ts +17 -0
- package/dist/commonjs/models/ChangeFeedCursor.d.ts.map +1 -0
- package/dist/commonjs/models/ChangeFeedCursor.js +5 -0
- package/dist/commonjs/models/ChangeFeedCursor.js.map +1 -0
- package/dist/commonjs/models/models.d.ts +23 -0
- package/dist/commonjs/models/models.d.ts.map +1 -0
- package/dist/commonjs/models/models.js +5 -0
- package/dist/commonjs/models/models.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/{types/latest → dist/commonjs}/tsdoc-metadata.json +1 -1
- package/dist/commonjs/utils/constants.d.ts +9 -0
- package/dist/commonjs/utils/constants.d.ts.map +1 -0
- package/dist/commonjs/utils/constants.js +14 -0
- package/dist/commonjs/utils/constants.js.map +1 -0
- package/dist/commonjs/utils/tracing.d.ts +6 -0
- package/dist/commonjs/utils/tracing.d.ts.map +1 -0
- package/dist/commonjs/utils/tracing.js +17 -0
- package/dist/commonjs/utils/tracing.js.map +1 -0
- package/dist/commonjs/utils/utils.browser.d.ts +14 -0
- package/dist/commonjs/utils/utils.browser.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.browser.js +34 -0
- package/dist/commonjs/utils/utils.browser.js.map +1 -0
- package/dist/commonjs/utils/utils.common.d.ts +37 -0
- package/dist/commonjs/utils/utils.common.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.common.js +207 -0
- package/dist/commonjs/utils/utils.common.js.map +1 -0
- package/dist/commonjs/utils/utils.node.d.ts +14 -0
- package/dist/commonjs/utils/utils.node.d.ts.map +1 -0
- package/dist/commonjs/utils/utils.node.js +32 -0
- package/dist/commonjs/utils/utils.node.js.map +1 -0
- package/dist/esm/AvroReaderFactory.d.ts +10 -0
- package/dist/esm/AvroReaderFactory.d.ts.map +1 -0
- package/dist/esm/AvroReaderFactory.js +17 -0
- package/dist/esm/AvroReaderFactory.js.map +1 -0
- package/dist/esm/BlobChangeFeedClient.d.ts +201 -0
- package/dist/esm/BlobChangeFeedClient.d.ts.map +1 -0
- package/dist/esm/BlobChangeFeedClient.js +233 -0
- package/dist/esm/BlobChangeFeedClient.js.map +1 -0
- package/dist/esm/ChangeFeed.d.ts +37 -0
- package/dist/esm/ChangeFeed.d.ts.map +1 -0
- package/dist/esm/ChangeFeed.js +93 -0
- package/dist/esm/ChangeFeed.js.map +1 -0
- package/dist/esm/ChangeFeedFactory.d.ts +13 -0
- package/dist/esm/ChangeFeedFactory.d.ts.map +1 -0
- package/dist/esm/ChangeFeedFactory.js +120 -0
- package/dist/esm/ChangeFeedFactory.js.map +1 -0
- package/dist/esm/Chunk.d.ts +27 -0
- package/dist/esm/Chunk.d.ts.map +1 -0
- package/dist/esm/Chunk.js +40 -0
- package/dist/esm/Chunk.js.map +1 -0
- package/dist/esm/ChunkFactory.d.ts +23 -0
- package/dist/esm/ChunkFactory.d.ts.map +1 -0
- package/dist/esm/ChunkFactory.js +30 -0
- package/dist/esm/ChunkFactory.js.map +1 -0
- package/dist/esm/LazyLoadingBlobStream.d.ts +46 -0
- package/dist/esm/LazyLoadingBlobStream.d.ts.map +1 -0
- package/dist/esm/LazyLoadingBlobStream.js +81 -0
- package/dist/esm/LazyLoadingBlobStream.js.map +1 -0
- package/dist/esm/LazyLoadingBlobStreamFactory.d.ts +7 -0
- package/dist/esm/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
- package/dist/esm/LazyLoadingBlobStreamFactory.js +9 -0
- package/dist/esm/LazyLoadingBlobStreamFactory.js.map +1 -0
- package/dist/esm/Segment.d.ts +29 -0
- package/dist/esm/Segment.d.ts.map +1 -0
- package/dist/esm/Segment.js +60 -0
- package/dist/esm/Segment.js.map +1 -0
- package/dist/esm/SegmentFactory.d.ts +29 -0
- package/dist/esm/SegmentFactory.d.ts.map +1 -0
- package/dist/esm/SegmentFactory.js +46 -0
- package/dist/esm/SegmentFactory.js.map +1 -0
- package/dist/esm/Shard.d.ts +28 -0
- package/dist/esm/Shard.d.ts.map +1 -0
- package/dist/esm/Shard.js +41 -0
- package/dist/esm/Shard.js.map +1 -0
- package/dist/esm/ShardFactory.d.ts +21 -0
- package/dist/esm/ShardFactory.d.ts.map +1 -0
- package/dist/esm/ShardFactory.js +68 -0
- package/dist/esm/ShardFactory.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/log.d.ts +5 -0
- package/dist/esm/log.d.ts.map +1 -0
- package/dist/esm/log.js +8 -0
- package/dist/esm/log.js.map +1 -0
- package/dist/esm/models/BlobChangeFeedEvent.d.ts +233 -0
- package/dist/esm/models/BlobChangeFeedEvent.d.ts.map +1 -0
- package/{dist-esm/storage-internal-avro/src/AvroReadable.js → dist/esm/models/BlobChangeFeedEvent.js} +2 -3
- package/dist/esm/models/BlobChangeFeedEvent.js.map +1 -0
- package/dist/esm/models/ChangeFeedCursor.d.ts +17 -0
- package/dist/esm/models/ChangeFeedCursor.d.ts.map +1 -0
- package/dist/esm/models/ChangeFeedCursor.js +4 -0
- package/dist/esm/models/ChangeFeedCursor.js.map +1 -0
- package/dist/esm/models/models.d.ts +23 -0
- package/dist/esm/models/models.d.ts.map +1 -0
- package/dist/esm/models/models.js +4 -0
- package/dist/esm/models/models.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/utils/constants.d.ts +9 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +11 -0
- package/dist/esm/utils/constants.js.map +1 -0
- package/dist/esm/utils/tracing.d.ts +6 -0
- package/dist/esm/utils/tracing.d.ts.map +1 -0
- package/dist/esm/utils/tracing.js +14 -0
- package/dist/esm/utils/tracing.js.map +1 -0
- package/dist/esm/utils/utils.browser.d.ts +14 -0
- package/dist/esm/utils/utils.browser.d.ts.map +1 -0
- package/dist/esm/utils/utils.browser.js +29 -0
- package/dist/esm/utils/utils.browser.js.map +1 -0
- package/dist/esm/utils/utils.common.d.ts +37 -0
- package/dist/esm/utils/utils.common.d.ts.map +1 -0
- package/dist/esm/utils/utils.common.js +197 -0
- package/dist/esm/utils/utils.common.js.map +1 -0
- package/dist/esm/utils/utils.node.d.ts +14 -0
- package/dist/esm/utils/utils.node.d.ts.map +1 -0
- package/dist/esm/utils/utils.node.js +28 -0
- package/dist/esm/utils/utils.node.js.map +1 -0
- package/dist/react-native/AvroReaderFactory.d.ts +10 -0
- package/dist/react-native/AvroReaderFactory.d.ts.map +1 -0
- package/dist/react-native/AvroReaderFactory.js +17 -0
- package/dist/react-native/AvroReaderFactory.js.map +1 -0
- package/dist/react-native/BlobChangeFeedClient.d.ts +201 -0
- package/dist/react-native/BlobChangeFeedClient.d.ts.map +1 -0
- package/dist/react-native/BlobChangeFeedClient.js +233 -0
- package/dist/react-native/BlobChangeFeedClient.js.map +1 -0
- package/dist/react-native/ChangeFeed.d.ts +37 -0
- package/dist/react-native/ChangeFeed.d.ts.map +1 -0
- package/dist/react-native/ChangeFeed.js +93 -0
- package/dist/react-native/ChangeFeed.js.map +1 -0
- package/dist/react-native/ChangeFeedFactory.d.ts +13 -0
- package/dist/react-native/ChangeFeedFactory.d.ts.map +1 -0
- package/dist/react-native/ChangeFeedFactory.js +120 -0
- package/dist/react-native/ChangeFeedFactory.js.map +1 -0
- package/dist/react-native/Chunk.d.ts +27 -0
- package/dist/react-native/Chunk.d.ts.map +1 -0
- package/dist/react-native/Chunk.js +40 -0
- package/dist/react-native/Chunk.js.map +1 -0
- package/dist/react-native/ChunkFactory.d.ts +23 -0
- package/dist/react-native/ChunkFactory.d.ts.map +1 -0
- package/dist/react-native/ChunkFactory.js +30 -0
- package/dist/react-native/ChunkFactory.js.map +1 -0
- package/dist/react-native/LazyLoadingBlobStream.d.ts +46 -0
- package/dist/react-native/LazyLoadingBlobStream.d.ts.map +1 -0
- package/dist/react-native/LazyLoadingBlobStream.js +81 -0
- package/dist/react-native/LazyLoadingBlobStream.js.map +1 -0
- package/dist/react-native/LazyLoadingBlobStreamFactory.d.ts +7 -0
- package/dist/react-native/LazyLoadingBlobStreamFactory.d.ts.map +1 -0
- package/dist/react-native/LazyLoadingBlobStreamFactory.js +9 -0
- package/dist/react-native/LazyLoadingBlobStreamFactory.js.map +1 -0
- package/dist/react-native/Segment.d.ts +29 -0
- package/dist/react-native/Segment.d.ts.map +1 -0
- package/dist/react-native/Segment.js +60 -0
- package/dist/react-native/Segment.js.map +1 -0
- package/dist/react-native/SegmentFactory.d.ts +29 -0
- package/dist/react-native/SegmentFactory.d.ts.map +1 -0
- package/dist/react-native/SegmentFactory.js +46 -0
- package/dist/react-native/SegmentFactory.js.map +1 -0
- package/dist/react-native/Shard.d.ts +28 -0
- package/dist/react-native/Shard.d.ts.map +1 -0
- package/dist/react-native/Shard.js +41 -0
- package/dist/react-native/Shard.js.map +1 -0
- package/dist/react-native/ShardFactory.d.ts +21 -0
- package/dist/react-native/ShardFactory.d.ts.map +1 -0
- package/dist/react-native/ShardFactory.js +68 -0
- package/dist/react-native/ShardFactory.js.map +1 -0
- package/dist/react-native/index.d.ts +4 -0
- package/dist/react-native/index.d.ts.map +1 -0
- package/dist/react-native/index.js +6 -0
- package/dist/react-native/index.js.map +1 -0
- package/dist/react-native/log.d.ts +5 -0
- package/dist/react-native/log.d.ts.map +1 -0
- package/dist/react-native/log.js +8 -0
- package/dist/react-native/log.js.map +1 -0
- package/dist/react-native/models/BlobChangeFeedEvent.d.ts +233 -0
- package/dist/react-native/models/BlobChangeFeedEvent.d.ts.map +1 -0
- package/dist/react-native/models/BlobChangeFeedEvent.js +4 -0
- package/dist/react-native/models/BlobChangeFeedEvent.js.map +1 -0
- package/dist/react-native/models/ChangeFeedCursor.d.ts +17 -0
- package/dist/react-native/models/ChangeFeedCursor.d.ts.map +1 -0
- package/dist/react-native/models/ChangeFeedCursor.js +4 -0
- package/dist/react-native/models/ChangeFeedCursor.js.map +1 -0
- package/dist/react-native/models/models.d.ts +23 -0
- package/dist/react-native/models/models.d.ts.map +1 -0
- package/dist/react-native/models/models.js +4 -0
- package/dist/react-native/models/models.js.map +1 -0
- package/dist/react-native/package.json +3 -0
- package/dist/react-native/utils/constants.d.ts +9 -0
- package/dist/react-native/utils/constants.d.ts.map +1 -0
- package/dist/react-native/utils/constants.js +11 -0
- package/dist/react-native/utils/constants.js.map +1 -0
- package/dist/react-native/utils/tracing.d.ts +6 -0
- package/dist/react-native/utils/tracing.d.ts.map +1 -0
- package/dist/react-native/utils/tracing.js +14 -0
- package/dist/react-native/utils/tracing.js.map +1 -0
- package/dist/react-native/utils/utils.browser.d.ts +14 -0
- package/dist/react-native/utils/utils.browser.d.ts.map +1 -0
- package/dist/react-native/utils/utils.browser.js +29 -0
- package/dist/react-native/utils/utils.browser.js.map +1 -0
- package/dist/react-native/utils/utils.common.d.ts +37 -0
- package/dist/react-native/utils/utils.common.d.ts.map +1 -0
- package/dist/react-native/utils/utils.common.js +197 -0
- package/dist/react-native/utils/utils.common.js.map +1 -0
- package/dist/react-native/utils/utils.node.d.ts +14 -0
- package/dist/react-native/utils/utils.node.d.ts.map +1 -0
- package/dist/react-native/utils/utils.node.js +28 -0
- package/dist/react-native/utils/utils.node.js.map +1 -0
- package/package.json +69 -68
- package/dist/index.js +0 -1577
- package/dist/index.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/AvroReaderFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/BlobChangeFeedClient.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/ChangeFeed.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/ChangeFeedFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/Chunk.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/ChunkFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStream.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/Segment.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/SegmentFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/Shard.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/ShardFactory.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/index.js +0 -6
- package/dist-esm/storage-blob-changefeed/src/index.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/log.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/models/BlobChangeFeedEvent.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/models/ChangeFeedCursor.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/models/models.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/utils/constants.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/utils/tracing.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/utils/utils.browser.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/utils/utils.common.js.map +0 -1
- package/dist-esm/storage-blob-changefeed/src/utils/utils.node.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroConstants.js +0 -7
- package/dist-esm/storage-internal-avro/src/AvroConstants.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroParser.js +0 -317
- package/dist-esm/storage-internal-avro/src/AvroParser.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroReadable.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroReadableFromBlob.js +0 -47
- package/dist-esm/storage-internal-avro/src/AvroReadableFromBlob.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroReadableFromStream.js +0 -84
- package/dist-esm/storage-internal-avro/src/AvroReadableFromStream.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/AvroReader.js +0 -106
- package/dist-esm/storage-internal-avro/src/AvroReader.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/index.browser.js +0 -6
- package/dist-esm/storage-internal-avro/src/index.browser.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/index.js +0 -6
- package/dist-esm/storage-internal-avro/src/index.js.map +0 -1
- package/dist-esm/storage-internal-avro/src/utils/utils.common.js +0 -16
- package/dist-esm/storage-internal-avro/src/utils/utils.common.js.map +0 -1
- package/types/latest/storage-blob-changefeed/samples-dev/blobChangeFeedClient.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/samples-dev/blobChangeFeedClient.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/samples-dev/resumeListChanges.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/samples-dev/resumeListChanges.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/AvroReaderFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/BlobChangeFeedClient.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/ChangeFeed.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/ChangeFeedFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/Chunk.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/ChunkFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStream.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/LazyLoadingBlobStreamFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/Segment.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/SegmentFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/Shard.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/ShardFactory.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/index.d.ts +0 -4
- package/types/latest/storage-blob-changefeed/src/index.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/log.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/models/BlobChangeFeedEvent.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/models/ChangeFeedCursor.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/models/models.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/utils/constants.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/utils/tracing.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/utils/utils.browser.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/utils/utils.common.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/src/utils/utils.node.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/blobchangefeedclient.spec.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/test/blobchangefeedclient.spec.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/changefeed.spec.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/test/changefeed.spec.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/chunk.spec.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/test/chunk.spec.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/segment.spec.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/test/segment.spec.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/shard.spec.d.ts +0 -2
- package/types/latest/storage-blob-changefeed/test/shard.spec.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/utils/index.d.ts +0 -15
- package/types/latest/storage-blob-changefeed/test/utils/index.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed/test/utils/testutils.common.d.ts +0 -67
- package/types/latest/storage-blob-changefeed/test/utils/testutils.common.d.ts.map +0 -1
- package/types/latest/storage-blob-changefeed.d.ts +0 -453
- package/types/latest/storage-internal-avro/src/AvroConstants.d.ts +0 -5
- package/types/latest/storage-internal-avro/src/AvroConstants.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/AvroParser.d.ts +0 -57
- package/types/latest/storage-internal-avro/src/AvroParser.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/AvroReadable.d.ts +0 -16
- package/types/latest/storage-internal-avro/src/AvroReadable.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/AvroReadableFromBlob.d.ts +0 -10
- package/types/latest/storage-internal-avro/src/AvroReadableFromBlob.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/AvroReadableFromStream.d.ts +0 -11
- package/types/latest/storage-internal-avro/src/AvroReadableFromStream.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/AvroReader.d.ts +0 -32
- package/types/latest/storage-internal-avro/src/AvroReader.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/index.browser.d.ts +0 -4
- package/types/latest/storage-internal-avro/src/index.browser.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/index.d.ts +0 -4
- package/types/latest/storage-internal-avro/src/index.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/src/utils/utils.common.d.ts +0 -6
- package/types/latest/storage-internal-avro/src/utils/utils.common.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/test/browser/avroreadable.spec.d.ts +0 -2
- package/types/latest/storage-internal-avro/test/browser/avroreadable.spec.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/test/node/avroreadable.spec.d.ts +0 -2
- package/types/latest/storage-internal-avro/test/node/avroreadable.spec.d.ts.map +0 -1
- package/types/latest/storage-internal-avro/test/node/avroreader.spec.d.ts +0 -2
- package/types/latest/storage-internal-avro/test/node/avroreader.spec.d.ts.map +0 -1
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/log.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/log.js +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/BlobChangeFeedEvent.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/models/BlobChangeFeedEvent.js +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/ChangeFeedCursor.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/models/ChangeFeedCursor.js +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/models/models.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/models/models.js +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/constants.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/constants.js +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/tracing.d.ts +0 -0
- /package/{types/latest/storage-blob-changefeed/src → dist/browser}/utils/utils.browser.d.ts +0 -0
- /package/{dist-esm/storage-blob-changefeed/src → dist/browser}/utils/utils.browser.js +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { __asyncValues } from "tslib";
|
|
4
|
+
import { CHANGE_FEED_SEGMENT_PREFIX, CHANGE_FEED_INITIALIZATION_SEGMENT } from "./constants.js";
|
|
5
|
+
import { tracingClient } from "./tracing.js";
|
|
6
|
+
const millisecondsInAnHour = 60 * 60 * 1000;
|
|
7
|
+
export function ceilToNearestHour(date) {
|
|
8
|
+
if (date === undefined) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return new Date(Math.ceil(date.getTime() / millisecondsInAnHour) * millisecondsInAnHour);
|
|
12
|
+
}
|
|
13
|
+
export function floorToNearestHour(date) {
|
|
14
|
+
if (date === undefined) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return new Date(Math.floor(date.getTime() / millisecondsInAnHour) * millisecondsInAnHour);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get host from an URL string.
|
|
21
|
+
*
|
|
22
|
+
* @param url - Source URL string
|
|
23
|
+
*/
|
|
24
|
+
export function getHost(url) {
|
|
25
|
+
const urlParsed = new URL(url);
|
|
26
|
+
return urlParsed.hostname;
|
|
27
|
+
}
|
|
28
|
+
export async function getYearsPaths(containerClient, options = {}) {
|
|
29
|
+
return tracingClient.withSpan("getYearsPaths", options, async (updatedOptions) => {
|
|
30
|
+
var _a, e_1, _b, _c;
|
|
31
|
+
const years = [];
|
|
32
|
+
try {
|
|
33
|
+
for (var _d = true, _e = __asyncValues(containerClient.listBlobsByHierarchy("/", {
|
|
34
|
+
abortSignal: options.abortSignal,
|
|
35
|
+
tracingOptions: updatedOptions.tracingOptions,
|
|
36
|
+
prefix: CHANGE_FEED_SEGMENT_PREFIX,
|
|
37
|
+
})), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
38
|
+
_c = _f.value;
|
|
39
|
+
_d = false;
|
|
40
|
+
const item = _c;
|
|
41
|
+
if (item.kind === "prefix" && !item.name.includes(CHANGE_FEED_INITIALIZATION_SEGMENT)) {
|
|
42
|
+
const yearStr = item.name.slice(CHANGE_FEED_SEGMENT_PREFIX.length, -1);
|
|
43
|
+
years.push(parseInt(yearStr));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
48
|
+
finally {
|
|
49
|
+
try {
|
|
50
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
51
|
+
}
|
|
52
|
+
finally { if (e_1) throw e_1.error; }
|
|
53
|
+
}
|
|
54
|
+
return years.sort((a, b) => a - b);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export async function getSegmentsInYear(containerClient, year, startTime, endTime, options = {}) {
|
|
58
|
+
return tracingClient.withSpan("getSegmentsInYear", options, async (updatedOptions) => {
|
|
59
|
+
var _a, e_2, _b, _c;
|
|
60
|
+
const segments = [];
|
|
61
|
+
const yearBeginTime = new Date(Date.UTC(year, 0));
|
|
62
|
+
if (endTime && yearBeginTime >= endTime) {
|
|
63
|
+
return segments;
|
|
64
|
+
}
|
|
65
|
+
const prefix = `${CHANGE_FEED_SEGMENT_PREFIX}${year}/`;
|
|
66
|
+
try {
|
|
67
|
+
for (var _d = true, _e = __asyncValues(containerClient.listBlobsFlat({
|
|
68
|
+
prefix,
|
|
69
|
+
abortSignal: options.abortSignal,
|
|
70
|
+
tracingOptions: updatedOptions.tracingOptions,
|
|
71
|
+
})), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
72
|
+
_c = _f.value;
|
|
73
|
+
_d = false;
|
|
74
|
+
const item = _c;
|
|
75
|
+
const segmentTime = parseDateFromSegmentPath(item.name);
|
|
76
|
+
if ((startTime && segmentTime < startTime) || (endTime && segmentTime >= endTime)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
segments.push(item.name);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
83
|
+
finally {
|
|
84
|
+
try {
|
|
85
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
86
|
+
}
|
|
87
|
+
finally { if (e_2) throw e_2.error; }
|
|
88
|
+
}
|
|
89
|
+
return segments;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function parseDateFromSegmentPath(segmentPath) {
|
|
93
|
+
const splitPath = segmentPath.split("/");
|
|
94
|
+
if (splitPath.length < 3) {
|
|
95
|
+
throw new Error(`${segmentPath} is not a valid segment path.`);
|
|
96
|
+
}
|
|
97
|
+
const segmentTime = new Date(0);
|
|
98
|
+
segmentTime.setUTCFullYear(parseInt(splitPath[2]));
|
|
99
|
+
if (splitPath.length >= 4) {
|
|
100
|
+
segmentTime.setUTCMonth(parseInt(splitPath[3]) - 1);
|
|
101
|
+
}
|
|
102
|
+
if (splitPath.length >= 5) {
|
|
103
|
+
segmentTime.setUTCDate(parseInt(splitPath[4]));
|
|
104
|
+
}
|
|
105
|
+
if (splitPath.length >= 6) {
|
|
106
|
+
segmentTime.setUTCHours(parseInt(splitPath[5]) / 100);
|
|
107
|
+
}
|
|
108
|
+
return segmentTime;
|
|
109
|
+
}
|
|
110
|
+
export function minDate(dateA, dateB) {
|
|
111
|
+
if (dateB && dateB < dateA) {
|
|
112
|
+
return dateB;
|
|
113
|
+
}
|
|
114
|
+
return dateA;
|
|
115
|
+
}
|
|
116
|
+
export function rawEventToBlobChangeFeedEvent(rawEvent) {
|
|
117
|
+
if (rawEvent.eventTime) {
|
|
118
|
+
rawEvent.eventTime = new Date(rawEvent.eventTime);
|
|
119
|
+
}
|
|
120
|
+
if (rawEvent.eTag) {
|
|
121
|
+
rawEvent.etag = rawEvent.eTag;
|
|
122
|
+
delete rawEvent.eTag;
|
|
123
|
+
}
|
|
124
|
+
if (rawEvent.data) {
|
|
125
|
+
if (rawEvent.data.recursive !== undefined) {
|
|
126
|
+
rawEvent.data.isRecursive = rawEvent.data.recursive;
|
|
127
|
+
delete rawEvent.data.recursive;
|
|
128
|
+
}
|
|
129
|
+
if (rawEvent.data.previousInfo) {
|
|
130
|
+
const previousInfo = rawEvent.data.previousInfo;
|
|
131
|
+
if (previousInfo.SoftDeleteSnapshot) {
|
|
132
|
+
previousInfo.softDeleteSnapshot = previousInfo.SoftDeleteSnapshot;
|
|
133
|
+
delete previousInfo.SoftDeleteSnapshot;
|
|
134
|
+
}
|
|
135
|
+
if (previousInfo.WasBlobSoftDeleted) {
|
|
136
|
+
previousInfo.isBlobSoftDeleted = previousInfo.WasBlobSoftDeleted === "true";
|
|
137
|
+
delete previousInfo.WasBlobSoftDeleted;
|
|
138
|
+
}
|
|
139
|
+
if (previousInfo.BlobVersion) {
|
|
140
|
+
previousInfo.newBlobVersion = previousInfo.BlobVersion;
|
|
141
|
+
delete previousInfo.BlobVersion;
|
|
142
|
+
}
|
|
143
|
+
if (previousInfo.LastVersion) {
|
|
144
|
+
previousInfo.oldBlobVersion = previousInfo.LastVersion;
|
|
145
|
+
delete previousInfo.LastVersion;
|
|
146
|
+
}
|
|
147
|
+
if (previousInfo.PreviousTier) {
|
|
148
|
+
previousInfo.previousTier = previousInfo.PreviousTier;
|
|
149
|
+
delete previousInfo.PreviousTier;
|
|
150
|
+
}
|
|
151
|
+
rawEvent.data.previousInfo = previousInfo;
|
|
152
|
+
}
|
|
153
|
+
if (rawEvent.data.blobPropertiesUpdated) {
|
|
154
|
+
const updatedBlobProperties = {};
|
|
155
|
+
Object.entries(rawEvent.data.blobPropertiesUpdated).map((item) => {
|
|
156
|
+
const blobPropertyChange = {
|
|
157
|
+
propertyName: item[0],
|
|
158
|
+
oldValue: item[1].previous,
|
|
159
|
+
newValue: item[1].current,
|
|
160
|
+
};
|
|
161
|
+
updatedBlobProperties[item[0]] = blobPropertyChange;
|
|
162
|
+
});
|
|
163
|
+
rawEvent.data.updatedBlobProperties = updatedBlobProperties;
|
|
164
|
+
delete rawEvent.data.blobPropertiesUpdated;
|
|
165
|
+
}
|
|
166
|
+
if (rawEvent.data.asyncOperationInfo) {
|
|
167
|
+
const longRunningOperationInfo = rawEvent.data.asyncOperationInfo;
|
|
168
|
+
if (longRunningOperationInfo.DestinationTier) {
|
|
169
|
+
longRunningOperationInfo.destinationAccessTier = longRunningOperationInfo.DestinationTier;
|
|
170
|
+
delete longRunningOperationInfo.DestinationTier;
|
|
171
|
+
}
|
|
172
|
+
if ("WasAsyncOperation" in longRunningOperationInfo) {
|
|
173
|
+
longRunningOperationInfo.isAsync = longRunningOperationInfo.WasAsyncOperation === "true";
|
|
174
|
+
delete longRunningOperationInfo.WasAsyncOperation;
|
|
175
|
+
}
|
|
176
|
+
if (longRunningOperationInfo.CopyId) {
|
|
177
|
+
longRunningOperationInfo.copyId = longRunningOperationInfo.CopyId;
|
|
178
|
+
delete longRunningOperationInfo.CopyId;
|
|
179
|
+
}
|
|
180
|
+
rawEvent.data.longRunningOperationInfo = longRunningOperationInfo;
|
|
181
|
+
delete rawEvent.data.asyncOperationInfo;
|
|
182
|
+
}
|
|
183
|
+
if (rawEvent.data.blobTagsUpdated) {
|
|
184
|
+
rawEvent.data.updatedBlobTags = {
|
|
185
|
+
newTags: rawEvent.data.blobTagsUpdated.current,
|
|
186
|
+
oldTags: rawEvent.data.blobTagsUpdated.previous,
|
|
187
|
+
};
|
|
188
|
+
delete rawEvent.data.blobTagsUpdated;
|
|
189
|
+
}
|
|
190
|
+
if (rawEvent.data.blobTier) {
|
|
191
|
+
rawEvent.data.blobAccessTier = rawEvent.data.blobTier;
|
|
192
|
+
delete rawEvent.data.blobTier;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return rawEvent;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=utils.common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.common.js","sourceRoot":"","sources":["../../../src/utils/utils.common.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { ContainerClient, CommonOptions } from \"@azure/storage-blob\";\nimport { CHANGE_FEED_SEGMENT_PREFIX, CHANGE_FEED_INITIALIZATION_SEGMENT } from \"./constants.js\";\nimport { tracingClient } from \"./tracing.js\";\nimport type { BlobChangeFeedEvent, UpdatedBlobProperties } from \"../models/BlobChangeFeedEvent.js\";\n\nconst millisecondsInAnHour = 60 * 60 * 1000;\nexport function ceilToNearestHour(date: Date | undefined): Date | undefined {\n if (date === undefined) {\n return undefined;\n }\n return new Date(Math.ceil(date.getTime() / millisecondsInAnHour) * millisecondsInAnHour);\n}\n\nexport function floorToNearestHour(date: Date | undefined): Date | undefined {\n if (date === undefined) {\n return undefined;\n }\n return new Date(Math.floor(date.getTime() / millisecondsInAnHour) * millisecondsInAnHour);\n}\n\n/**\n * Get host from an URL string.\n *\n * @param url - Source URL string\n */\nexport function getHost(url: string): string | undefined {\n const urlParsed = new URL(url);\n return urlParsed.hostname;\n}\n\n/**\n * Options to configure {@link getYearsPaths} operation.\n */\nexport interface GetYearsPathsOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport async function getYearsPaths(\n containerClient: ContainerClient,\n options: GetYearsPathsOptions = {},\n): Promise<number[]> {\n return tracingClient.withSpan(\"getYearsPaths\", options, async (updatedOptions) => {\n const years: number[] = [];\n for await (const item of containerClient.listBlobsByHierarchy(\"/\", {\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n prefix: CHANGE_FEED_SEGMENT_PREFIX,\n })) {\n if (item.kind === \"prefix\" && !item.name.includes(CHANGE_FEED_INITIALIZATION_SEGMENT)) {\n const yearStr = item.name.slice(CHANGE_FEED_SEGMENT_PREFIX.length, -1);\n years.push(parseInt(yearStr));\n }\n }\n return years.sort((a, b) => a - b);\n });\n}\n\n/**\n * Options to configure {@link getSegmentsInYear} operation.\n */\nexport interface GetSegmentsInYearOptions extends CommonOptions {\n /**\n * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.\n * For example, use the @azure/abort-controller to create an `AbortSignal`.\n */\n abortSignal?: AbortSignalLike;\n}\n\nexport async function getSegmentsInYear(\n containerClient: ContainerClient,\n year: number,\n startTime?: Date,\n endTime?: Date,\n options: GetSegmentsInYearOptions = {},\n): Promise<string[]> {\n return tracingClient.withSpan(\"getSegmentsInYear\", options, async (updatedOptions) => {\n const segments: string[] = [];\n const yearBeginTime = new Date(Date.UTC(year, 0));\n if (endTime && yearBeginTime >= endTime) {\n return segments;\n }\n\n const prefix = `${CHANGE_FEED_SEGMENT_PREFIX}${year}/`;\n for await (const item of containerClient.listBlobsFlat({\n prefix,\n abortSignal: options.abortSignal,\n tracingOptions: updatedOptions.tracingOptions,\n })) {\n const segmentTime = parseDateFromSegmentPath(item.name);\n if ((startTime && segmentTime < startTime) || (endTime && segmentTime >= endTime)) {\n continue;\n }\n segments.push(item.name);\n }\n return segments;\n });\n}\n\nexport function parseDateFromSegmentPath(segmentPath: string): Date {\n const splitPath = segmentPath.split(\"/\");\n if (splitPath.length < 3) {\n throw new Error(`${segmentPath} is not a valid segment path.`);\n }\n\n const segmentTime = new Date(0);\n segmentTime.setUTCFullYear(parseInt(splitPath[2]));\n\n if (splitPath.length >= 4) {\n segmentTime.setUTCMonth(parseInt(splitPath[3]) - 1);\n }\n if (splitPath.length >= 5) {\n segmentTime.setUTCDate(parseInt(splitPath[4]));\n }\n if (splitPath.length >= 6) {\n segmentTime.setUTCHours(parseInt(splitPath[5]) / 100);\n }\n return segmentTime;\n}\n\nexport function minDate(dateA: Date, dateB?: Date): Date {\n if (dateB && dateB < dateA) {\n return dateB;\n }\n return dateA;\n}\n\nexport function rawEventToBlobChangeFeedEvent(rawEvent: Record<string, any>): BlobChangeFeedEvent {\n if (rawEvent.eventTime) {\n rawEvent.eventTime = new Date(rawEvent.eventTime);\n }\n if (rawEvent.eTag) {\n rawEvent.etag = rawEvent.eTag;\n delete rawEvent.eTag;\n }\n if (rawEvent.data) {\n if (rawEvent.data.recursive !== undefined) {\n rawEvent.data.isRecursive = rawEvent.data.recursive;\n delete rawEvent.data.recursive;\n }\n if (rawEvent.data.previousInfo) {\n const previousInfo = rawEvent.data.previousInfo;\n\n if (previousInfo.SoftDeleteSnapshot) {\n previousInfo.softDeleteSnapshot = previousInfo.SoftDeleteSnapshot;\n delete previousInfo.SoftDeleteSnapshot;\n }\n if (previousInfo.WasBlobSoftDeleted) {\n previousInfo.isBlobSoftDeleted = previousInfo.WasBlobSoftDeleted === \"true\";\n delete previousInfo.WasBlobSoftDeleted;\n }\n if (previousInfo.BlobVersion) {\n previousInfo.newBlobVersion = previousInfo.BlobVersion;\n delete previousInfo.BlobVersion;\n }\n if (previousInfo.LastVersion) {\n previousInfo.oldBlobVersion = previousInfo.LastVersion;\n delete previousInfo.LastVersion;\n }\n if (previousInfo.PreviousTier) {\n previousInfo.previousTier = previousInfo.PreviousTier;\n delete previousInfo.PreviousTier;\n }\n\n rawEvent.data.previousInfo = previousInfo;\n }\n\n if (rawEvent.data.blobPropertiesUpdated) {\n const updatedBlobProperties: UpdatedBlobProperties = {};\n Object.entries(rawEvent.data.blobPropertiesUpdated).map((item) => {\n const blobPropertyChange = {\n propertyName: item[0],\n oldValue: (item[1] as any).previous as string,\n newValue: (item[1] as any).current as string,\n };\n updatedBlobProperties[item[0]] = blobPropertyChange;\n });\n rawEvent.data.updatedBlobProperties = updatedBlobProperties;\n delete rawEvent.data.blobPropertiesUpdated;\n }\n\n if (rawEvent.data.asyncOperationInfo) {\n const longRunningOperationInfo = rawEvent.data.asyncOperationInfo;\n if (longRunningOperationInfo.DestinationTier) {\n longRunningOperationInfo.destinationAccessTier = longRunningOperationInfo.DestinationTier;\n delete longRunningOperationInfo.DestinationTier;\n }\n if (\"WasAsyncOperation\" in longRunningOperationInfo) {\n longRunningOperationInfo.isAsync = longRunningOperationInfo.WasAsyncOperation === \"true\";\n delete longRunningOperationInfo.WasAsyncOperation;\n }\n if (longRunningOperationInfo.CopyId) {\n longRunningOperationInfo.copyId = longRunningOperationInfo.CopyId;\n delete longRunningOperationInfo.CopyId;\n }\n rawEvent.data.longRunningOperationInfo = longRunningOperationInfo;\n delete rawEvent.data.asyncOperationInfo;\n }\n\n if (rawEvent.data.blobTagsUpdated) {\n rawEvent.data.updatedBlobTags = {\n newTags: rawEvent.data.blobTagsUpdated.current,\n oldTags: rawEvent.data.blobTagsUpdated.previous,\n };\n\n delete rawEvent.data.blobTagsUpdated;\n }\n\n if (rawEvent.data.blobTier) {\n rawEvent.data.blobAccessTier = rawEvent.data.blobTier;\n delete rawEvent.data.blobTier;\n }\n }\n\n return rawEvent as BlobChangeFeedEvent;\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AvroReadable } from "@azure/storage-internal-avro";
|
|
2
|
+
/**
|
|
3
|
+
* Read body from downloading operation methods to string.
|
|
4
|
+
* Works in both Node.js and browsers.
|
|
5
|
+
*
|
|
6
|
+
* @param response - Convenience layer methods response with downloaded body
|
|
7
|
+
* @param length - Length of Readable stream, needed for Node.js environment
|
|
8
|
+
*/
|
|
9
|
+
export declare function bodyToString(response: {
|
|
10
|
+
readableStreamBody?: NodeJS.ReadableStream;
|
|
11
|
+
blobBody?: Promise<Blob>;
|
|
12
|
+
}, length?: number): Promise<string>;
|
|
13
|
+
export declare function streamToAvroReadable(readableStream: NodeJS.ReadableStream): AvroReadable;
|
|
14
|
+
//# sourceMappingURL=utils.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.node.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE;IACR,kBAAkB,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B,EACD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,GAAG,YAAY,CAExF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { AvroReadableFromStream } from "@azure/storage-internal-avro";
|
|
4
|
+
/**
|
|
5
|
+
* Read body from downloading operation methods to string.
|
|
6
|
+
* Works in both Node.js and browsers.
|
|
7
|
+
*
|
|
8
|
+
* @param response - Convenience layer methods response with downloaded body
|
|
9
|
+
* @param length - Length of Readable stream, needed for Node.js environment
|
|
10
|
+
*/
|
|
11
|
+
export async function bodyToString(response, length) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
response.readableStreamBody.on("readable", () => {
|
|
14
|
+
const chunk = response.readableStreamBody.read(length);
|
|
15
|
+
if (chunk) {
|
|
16
|
+
resolve(chunk.toString());
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
response.readableStreamBody.on("error", reject);
|
|
20
|
+
response.readableStreamBody.on("end", () => {
|
|
21
|
+
resolve("");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function streamToAvroReadable(readableStream) {
|
|
26
|
+
return new AvroReadableFromStream(readableStream);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=utils.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.node.js","sourceRoot":"","sources":["../../../src/utils/utils.node.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAGC,EACD,MAAe;IAEf,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,QAAQ,CAAC,kBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,QAAQ,CAAC,kBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YAC1C,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,cAAqC;IACxE,OAAO,IAAI,sBAAsB,CAAC,cAAc,CAAC,CAAC;AACpD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AvroReadable } from \"@azure/storage-internal-avro\";\nimport { AvroReadableFromStream } from \"@azure/storage-internal-avro\";\n\n/**\n * Read body from downloading operation methods to string.\n * Works in both Node.js and browsers.\n *\n * @param response - Convenience layer methods response with downloaded body\n * @param length - Length of Readable stream, needed for Node.js environment\n */\nexport async function bodyToString(\n response: {\n readableStreamBody?: NodeJS.ReadableStream;\n blobBody?: Promise<Blob>;\n },\n length?: number,\n): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n response.readableStreamBody!.on(\"readable\", () => {\n const chunk = response.readableStreamBody!.read(length);\n if (chunk) {\n resolve(chunk.toString());\n }\n });\n\n response.readableStreamBody!.on(\"error\", reject);\n response.readableStreamBody!.on(\"end\", () => {\n resolve(\"\");\n });\n });\n}\n\nexport function streamToAvroReadable(readableStream: NodeJS.ReadableStream): AvroReadable {\n return new AvroReadableFromStream(readableStream);\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AvroReadable } from "@azure/storage-internal-avro";
|
|
2
|
+
import { AvroReader } from "@azure/storage-internal-avro";
|
|
3
|
+
/**
|
|
4
|
+
* Creates AvroReaders. Allows us to inject mock AvroReaders in the Chunk unit tests.
|
|
5
|
+
*/
|
|
6
|
+
export declare class AvroReaderFactory {
|
|
7
|
+
create(headerAndDataStream: AvroReadable): AvroReader;
|
|
8
|
+
create(dataStream: AvroReadable, headerStream: AvroReadable, blockOffset: number, eventIndex: number): AvroReader;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AvroReaderFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvroReaderFactory.d.ts","sourceRoot":"","sources":["../../src/AvroReaderFactory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D;;GAEG;AACH,qBAAa,iBAAiB;IACrB,MAAM,CAAC,mBAAmB,EAAE,YAAY,GAAG,UAAU;IAErD,MAAM,CACX,UAAU,EAAE,YAAY,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,UAAU;CAcd"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { AvroReader } from "@azure/storage-internal-avro";
|
|
4
|
+
/**
|
|
5
|
+
* Creates AvroReaders. Allows us to inject mock AvroReaders in the Chunk unit tests.
|
|
6
|
+
*/
|
|
7
|
+
export class AvroReaderFactory {
|
|
8
|
+
create(dataStream, headerStream, blockOffset, eventIndex) {
|
|
9
|
+
if (headerStream) {
|
|
10
|
+
return new AvroReader(dataStream, headerStream, blockOffset, eventIndex);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return new AvroReader(dataStream);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AvroReaderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AvroReaderFactory.js","sourceRoot":"","sources":["../../src/AvroReaderFactory.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAUrB,MAAM,CACX,UAAwB,EACxB,YAA2B,EAC3B,WAAoB,EACpB,UAAmB;QAEnB,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,WAAY,EAAE,UAAW,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AvroReadable } from \"@azure/storage-internal-avro\";\nimport { AvroReader } from \"@azure/storage-internal-avro\";\n\n/**\n * Creates AvroReaders. Allows us to inject mock AvroReaders in the Chunk unit tests.\n */\nexport class AvroReaderFactory {\n public create(headerAndDataStream: AvroReadable): AvroReader;\n\n public create(\n dataStream: AvroReadable,\n headerStream: AvroReadable,\n blockOffset: number,\n eventIndex: number,\n ): AvroReader;\n\n public create(\n dataStream: AvroReadable,\n headerStream?: AvroReadable,\n blockOffset?: number,\n eventIndex?: number,\n ): AvroReader {\n if (headerStream) {\n return new AvroReader(dataStream, headerStream, blockOffset!, eventIndex!);\n } else {\n return new AvroReader(dataStream);\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import type { StoragePipelineOptions, StorageSharedKeyCredential, AnonymousCredential } from "@azure/storage-blob";
|
|
2
|
+
import { Pipeline } from "@azure/storage-blob";
|
|
3
|
+
import type { PagedAsyncIterableIterator } from "@azure/core-paging";
|
|
4
|
+
import type { BlobChangeFeedEvent } from "./models/BlobChangeFeedEvent.js";
|
|
5
|
+
import type { BlobChangeFeedListChangesOptions } from "./models/models.js";
|
|
6
|
+
import type { TokenCredential } from "@azure/core-auth";
|
|
7
|
+
/**
|
|
8
|
+
* Contains paged response data for the {@link BlobChangeFeedClient.listChanges} operation.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BlobChangeFeedEventPage {
|
|
11
|
+
/**
|
|
12
|
+
* Array of {@link BlobChangeFeedEvent}.
|
|
13
|
+
*/
|
|
14
|
+
events: BlobChangeFeedEvent[];
|
|
15
|
+
/**
|
|
16
|
+
* The token that keeps track of where to continue the iterator.
|
|
17
|
+
*/
|
|
18
|
+
continuationToken: string;
|
|
19
|
+
constructor();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new Pipeline object with Credential provided.
|
|
23
|
+
*
|
|
24
|
+
* @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.
|
|
25
|
+
* @param pipelineOptions - Optional. Options.
|
|
26
|
+
* @returns A new Pipeline object.
|
|
27
|
+
*/
|
|
28
|
+
export declare function newPipeline(credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, pipelineOptions?: StoragePipelineOptions): Pipeline;
|
|
29
|
+
/**
|
|
30
|
+
* Blob Change Feed client options.
|
|
31
|
+
*/
|
|
32
|
+
export interface BlobChangeFeedClientOptions {
|
|
33
|
+
/**
|
|
34
|
+
* The maximum length of an transfer in bytes.
|
|
35
|
+
*/
|
|
36
|
+
maximumTransferSize?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* BlobChangeFeedClient.
|
|
40
|
+
* @see https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-change-feed?tabs=azure-portal
|
|
41
|
+
*/
|
|
42
|
+
export declare class BlobChangeFeedClient {
|
|
43
|
+
/**
|
|
44
|
+
* blobServiceClient provided by `@azure/storage-blob` package.
|
|
45
|
+
*/
|
|
46
|
+
private blobServiceClient;
|
|
47
|
+
private changeFeedFactory;
|
|
48
|
+
private changeFeedClientOptions;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* Creates an instance of BlobChangeFeedClient from connection string.
|
|
52
|
+
*
|
|
53
|
+
* @param connectionString - Account connection string or a SAS connection string of an Azure storage account.
|
|
54
|
+
* [ Note - Account connection string can only be used in NODE.JS runtime. ]
|
|
55
|
+
* Account connection string example -
|
|
56
|
+
* `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`
|
|
57
|
+
* SAS connection string example -
|
|
58
|
+
* `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`
|
|
59
|
+
* @param options - Optional. Options to configure the HTTP pipeline.
|
|
60
|
+
*/
|
|
61
|
+
static fromConnectionString(connectionString: string, options?: StoragePipelineOptions, changeFeedClientOptions?: BlobChangeFeedClientOptions): BlobChangeFeedClient;
|
|
62
|
+
/**
|
|
63
|
+
* Creates an instance of BlobChangeFeedClient.
|
|
64
|
+
*
|
|
65
|
+
* @param url - A Client string pointing to Azure Storage blob service, such as
|
|
66
|
+
* "https://myaccount.blob.core.windows.net". You can append a SAS
|
|
67
|
+
* if using AnonymousCredential, such as "https://myaccount.blob.core.windows.net?sasString".
|
|
68
|
+
* @param credential - Such as AnonymousCredential, StorageSharedKeyCredential or any credential from the `@azure/identity` package to authenticate requests to the service. You can also provide an object that implements the TokenCredential interface. If not specified, AnonymousCredential is used.
|
|
69
|
+
* @param options - Optional. Options to configure the HTTP pipeline.
|
|
70
|
+
*
|
|
71
|
+
* Example using DefaultAzureCredential from `@azure/identity`:
|
|
72
|
+
*
|
|
73
|
+
* ```ts snippet:ReadmeSampleCreateClient_TokenCredential
|
|
74
|
+
* import { DefaultAzureCredential } from "@azure/identity";
|
|
75
|
+
* import { BlobChangeFeedClient } from "@azure/storage-blob-changefeed";
|
|
76
|
+
*
|
|
77
|
+
* // Enter your storage account name and shared key
|
|
78
|
+
* const account = "<account>";
|
|
79
|
+
* const credential = new DefaultAzureCredential();
|
|
80
|
+
* const changeFeedClient = new BlobChangeFeedClient(
|
|
81
|
+
* // When using AnonymousCredential, following url should include a valid SAS or support public access
|
|
82
|
+
* `https://${account}.blob.core.windows.net`,
|
|
83
|
+
* credential,
|
|
84
|
+
* );
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* Example using an account name/key:
|
|
88
|
+
*
|
|
89
|
+
* ```ts snippet:ReadmeSampleCreateClient
|
|
90
|
+
* import { StorageSharedKeyCredential } from "@azure/storage-blob";
|
|
91
|
+
* import { BlobChangeFeedClient } from "@azure/storage-blob-changefeed";
|
|
92
|
+
*
|
|
93
|
+
* // Enter your storage account name and shared key
|
|
94
|
+
* const account = "<account>";
|
|
95
|
+
* const accountKey = "<accountkey>";
|
|
96
|
+
* // Use StorageSharedKeyCredential with storage account and account key
|
|
97
|
+
* // StorageSharedKeyCredential is only available in Node.js runtime, not in browsers
|
|
98
|
+
* const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
|
|
99
|
+
* const changeFeedClient = new BlobChangeFeedClient(
|
|
100
|
+
* // When using AnonymousCredential, following url should include a valid SAS or support public access
|
|
101
|
+
* `https://${account}.blob.core.windows.net`,
|
|
102
|
+
* sharedKeyCredential,
|
|
103
|
+
* );
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
constructor(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions, changeFeedClientOptions?: BlobChangeFeedClientOptions);
|
|
107
|
+
/**
|
|
108
|
+
* Creates an instance of BlobChangeFeedClient.
|
|
109
|
+
*
|
|
110
|
+
* @param url - A Client string pointing to Azure Storage blob service, such as
|
|
111
|
+
* "https://myaccount.blob.core.windows.net". You can append a SAS
|
|
112
|
+
* if using AnonymousCredential, such as "https://myaccount.blob.core.windows.net?sasString".
|
|
113
|
+
* @param pipeline - Call newPipeline() to create a default
|
|
114
|
+
* pipeline, or provide a customized pipeline.
|
|
115
|
+
*/
|
|
116
|
+
constructor(url: string, pipeline: Pipeline);
|
|
117
|
+
private getChange;
|
|
118
|
+
private getPage;
|
|
119
|
+
/**
|
|
120
|
+
* Returns an async iterable iterator to list all the change feed events
|
|
121
|
+
* in the specified account.
|
|
122
|
+
*
|
|
123
|
+
* .byPage() returns an async iterable iterator to list the change feed events in pages.
|
|
124
|
+
*
|
|
125
|
+
* Example using `for await` syntax:
|
|
126
|
+
*
|
|
127
|
+
* ```ts snippet:ReadmeSampleListChanges
|
|
128
|
+
* import { StorageSharedKeyCredential } from "@azure/storage-blob";
|
|
129
|
+
* import { BlobChangeFeedClient } from "@azure/storage-blob-changefeed";
|
|
130
|
+
*
|
|
131
|
+
* const account = "<account>";
|
|
132
|
+
* const accountKey = "<accountkey>";
|
|
133
|
+
* const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
|
|
134
|
+
* const changeFeedClient = new BlobChangeFeedClient(
|
|
135
|
+
* `https://${account}.blob.core.windows.net`,
|
|
136
|
+
* sharedKeyCredential,
|
|
137
|
+
* );
|
|
138
|
+
*
|
|
139
|
+
* // Use for await to iterate through the change feed
|
|
140
|
+
* for await (const event of changeFeedClient.listChanges()) {
|
|
141
|
+
* console.log(`Event: ${event.eventType}`);
|
|
142
|
+
* console.log(`Event time: ${event.eventTime}`);
|
|
143
|
+
* console.log(`Event data: ${JSON.stringify(event.data)}`);
|
|
144
|
+
* }
|
|
145
|
+
*
|
|
146
|
+
* // Use `byPage` to iterate through the change feed
|
|
147
|
+
* for await (const page of changeFeedClient.listChanges().byPage()) {
|
|
148
|
+
* console.log(`Page: ${JSON.stringify(page)}`);
|
|
149
|
+
* for (const event of page.events) {
|
|
150
|
+
* console.log(`Event: ${event.eventType}`);
|
|
151
|
+
* console.log(`Event time: ${event.eventTime}`);
|
|
152
|
+
* console.log(`Event data: ${JSON.stringify(event.data)}`);
|
|
153
|
+
* }
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* Example using paging with a marker:
|
|
158
|
+
*
|
|
159
|
+
* ```ts snippet:ReadmeSampleListChanges_Continuation
|
|
160
|
+
* import { StorageSharedKeyCredential } from "@azure/storage-blob";
|
|
161
|
+
* import { BlobChangeFeedClient } from "@azure/storage-blob-changefeed";
|
|
162
|
+
*
|
|
163
|
+
* const account = "<account>";
|
|
164
|
+
* const accountKey = "<accountkey>";
|
|
165
|
+
* const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
|
|
166
|
+
* const changeFeedClient = new BlobChangeFeedClient(
|
|
167
|
+
* `https://${account}.blob.core.windows.net`,
|
|
168
|
+
* sharedKeyCredential,
|
|
169
|
+
* );
|
|
170
|
+
*
|
|
171
|
+
* let iterator = changeFeedClient.listChanges().byPage({ maxPageSize: 2 });
|
|
172
|
+
* let response = (await iterator.next()).value;
|
|
173
|
+
* // Prints 2 page ranges
|
|
174
|
+
* if (response.pageRange) {
|
|
175
|
+
* for (const pageRange of response.pageRange) {
|
|
176
|
+
* console.log(`Event: ${pageRange.eventType}`);
|
|
177
|
+
* console.log(`Event time: ${pageRange.eventTime}`);
|
|
178
|
+
* console.log(`Event data: ${JSON.stringify(pageRange.data)}`);
|
|
179
|
+
* }
|
|
180
|
+
* }
|
|
181
|
+
* // Gets next marker
|
|
182
|
+
* let marker = response.continuationToken;
|
|
183
|
+
* // Passing next marker as continuationToken
|
|
184
|
+
* iterator = changeFeedClient.listChanges().byPage({ continuationToken: marker, maxPageSize: 10 });
|
|
185
|
+
* response = (await iterator.next()).value;
|
|
186
|
+
* // Prints 10 page ranges
|
|
187
|
+
* if (response.pageRange) {
|
|
188
|
+
* for (const pageRange of response.pageRange) {
|
|
189
|
+
* console.log(`Event: ${pageRange.eventType}`);
|
|
190
|
+
* console.log(`Event time: ${pageRange.eventTime}`);
|
|
191
|
+
* console.log(`Event data: ${JSON.stringify(pageRange.data)}`);
|
|
192
|
+
* }
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* @param options - Options to list change feed events.
|
|
197
|
+
* @returns An asyncIterableIterator that supports paging.
|
|
198
|
+
*/
|
|
199
|
+
listChanges(options?: BlobChangeFeedListChangesOptions): PagedAsyncIterableIterator<BlobChangeFeedEvent, BlobChangeFeedEventPage>;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=BlobChangeFeedClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlobChangeFeedClient.d.ts","sourceRoot":"","sources":["../../src/BlobChangeFeedClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAgB,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAI3E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,qBAAa,uBAAuB;IAClC;;OAEG;IACI,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAErC;;OAEG;IACI,iBAAiB,EAAE,MAAM,CAAC;;CAMlC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,UAAU,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,GAAG,eAAe,EAC/E,eAAe,GAAE,sBAA2B,GAC3C,QAAQ,CAEV;AAmBD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,uBAAuB,CAA8B;IAE7D;;;;;;;;;;;OAWG;WACW,oBAAoB,CAChC,gBAAgB,EAAE,MAAM,EAGxB,OAAO,CAAC,EAAE,sBAAsB,EAGhC,uBAAuB,CAAC,EAAE,2BAA2B,GACpD,oBAAoB;IAUvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;gBAED,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,GAAG,eAAe,EAG/E,OAAO,CAAC,EAAE,sBAAsB,EAChC,uBAAuB,CAAC,EAAE,2BAA2B;IAGvD;;;;;;;;OAQG;gBACS,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YA6B5B,SAAS;YAuBT,OAAO;IAoCtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACI,WAAW,CAChB,OAAO,GAAE,gCAAqC,GAC7C,0BAA0B,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;CAuB5E"}
|