@azure/storage-blob 12.28.0-alpha.20250516.2 → 12.28.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/browser/generated/src/storageClient.js +1 -1
  2. package/dist/browser/generated/src/storageClient.js.map +1 -1
  3. package/dist/browser/internal-avro/AvroConstants.d.ts +5 -0
  4. package/dist/browser/internal-avro/AvroConstants.d.ts.map +1 -0
  5. package/dist/browser/internal-avro/AvroConstants.js +7 -0
  6. package/dist/browser/internal-avro/AvroConstants.js.map +1 -0
  7. package/dist/browser/internal-avro/AvroParser.d.ts +57 -0
  8. package/dist/browser/internal-avro/AvroParser.d.ts.map +1 -0
  9. package/dist/browser/internal-avro/AvroParser.js +317 -0
  10. package/dist/browser/internal-avro/AvroParser.js.map +1 -0
  11. package/dist/browser/internal-avro/AvroReadable.d.ts +16 -0
  12. package/dist/browser/internal-avro/AvroReadable.d.ts.map +1 -0
  13. package/dist/browser/internal-avro/AvroReadable.js +5 -0
  14. package/dist/browser/internal-avro/AvroReadable.js.map +1 -0
  15. package/dist/browser/internal-avro/AvroReadableFromBlob.d.ts +10 -0
  16. package/dist/browser/internal-avro/AvroReadableFromBlob.d.ts.map +1 -0
  17. package/dist/browser/internal-avro/AvroReadableFromBlob.js +47 -0
  18. package/dist/browser/internal-avro/AvroReadableFromBlob.js.map +1 -0
  19. package/dist/browser/internal-avro/AvroReadableFromStream.d.ts +11 -0
  20. package/dist/browser/internal-avro/AvroReadableFromStream.d.ts.map +1 -0
  21. package/dist/browser/internal-avro/AvroReadableFromStream.js +85 -0
  22. package/dist/browser/internal-avro/AvroReadableFromStream.js.map +1 -0
  23. package/dist/browser/internal-avro/AvroReader.d.ts +32 -0
  24. package/dist/browser/internal-avro/AvroReader.d.ts.map +1 -0
  25. package/dist/browser/internal-avro/AvroReader.js +106 -0
  26. package/dist/browser/internal-avro/AvroReader.js.map +1 -0
  27. package/dist/browser/internal-avro/index-browser.d.mts.map +1 -0
  28. package/dist/browser/internal-avro/index-browser.mjs.map +1 -0
  29. package/dist/browser/internal-avro/index.d.ts +4 -0
  30. package/dist/browser/internal-avro/index.js +6 -0
  31. package/dist/browser/internal-avro/utils/utils.common.d.ts +6 -0
  32. package/dist/browser/internal-avro/utils/utils.common.d.ts.map +1 -0
  33. package/dist/browser/internal-avro/utils/utils.common.js +16 -0
  34. package/dist/browser/internal-avro/utils/utils.common.js.map +1 -0
  35. package/dist/browser/utils/BlobQuickQueryStream.js +1 -1
  36. package/dist/browser/utils/BlobQuickQueryStream.js.map +1 -1
  37. package/dist/browser/utils/constants.js +1 -1
  38. package/dist/browser/utils/constants.js.map +1 -1
  39. package/dist/commonjs/generated/src/storageClient.js +1 -1
  40. package/dist/commonjs/generated/src/storageClient.js.map +1 -1
  41. package/dist/commonjs/internal-avro/AvroConstants.d.ts +5 -0
  42. package/dist/commonjs/internal-avro/AvroConstants.d.ts.map +1 -0
  43. package/dist/commonjs/internal-avro/AvroConstants.js +10 -0
  44. package/dist/commonjs/internal-avro/AvroConstants.js.map +1 -0
  45. package/dist/commonjs/internal-avro/AvroParser.d.ts +57 -0
  46. package/dist/commonjs/internal-avro/AvroParser.d.ts.map +1 -0
  47. package/dist/commonjs/internal-avro/AvroParser.js +322 -0
  48. package/dist/commonjs/internal-avro/AvroParser.js.map +1 -0
  49. package/dist/commonjs/internal-avro/AvroReadable.d.ts +16 -0
  50. package/dist/commonjs/internal-avro/AvroReadable.d.ts.map +1 -0
  51. package/dist/commonjs/internal-avro/AvroReadable.js +9 -0
  52. package/dist/commonjs/internal-avro/AvroReadable.js.map +1 -0
  53. package/dist/commonjs/internal-avro/AvroReadableFromBlob.d.ts +10 -0
  54. package/dist/commonjs/internal-avro/AvroReadableFromBlob.d.ts.map +1 -0
  55. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js +51 -0
  56. package/dist/commonjs/internal-avro/AvroReadableFromBlob.js.map +1 -0
  57. package/dist/commonjs/internal-avro/AvroReadableFromStream.d.ts +11 -0
  58. package/dist/commonjs/internal-avro/AvroReadableFromStream.d.ts.map +1 -0
  59. package/dist/commonjs/internal-avro/AvroReadableFromStream.js +89 -0
  60. package/dist/commonjs/internal-avro/AvroReadableFromStream.js.map +1 -0
  61. package/dist/commonjs/internal-avro/AvroReader.d.ts +32 -0
  62. package/dist/commonjs/internal-avro/AvroReader.d.ts.map +1 -0
  63. package/dist/commonjs/internal-avro/AvroReader.js +110 -0
  64. package/dist/commonjs/internal-avro/AvroReader.js.map +1 -0
  65. package/dist/commonjs/internal-avro/index.d.ts +4 -0
  66. package/dist/commonjs/internal-avro/index.d.ts.map +1 -0
  67. package/dist/commonjs/internal-avro/index.js +12 -0
  68. package/dist/commonjs/internal-avro/index.js.map +1 -0
  69. package/dist/commonjs/internal-avro/utils/utils.common.d.ts +6 -0
  70. package/dist/commonjs/internal-avro/utils/utils.common.d.ts.map +1 -0
  71. package/dist/commonjs/internal-avro/utils/utils.common.js +19 -0
  72. package/dist/commonjs/internal-avro/utils/utils.common.js.map +1 -0
  73. package/dist/commonjs/tsdoc-metadata.json +1 -1
  74. package/dist/commonjs/utils/BlobQuickQueryStream.js +2 -2
  75. package/dist/commonjs/utils/BlobQuickQueryStream.js.map +1 -1
  76. package/dist/commonjs/utils/constants.js +1 -1
  77. package/dist/commonjs/utils/constants.js.map +1 -1
  78. package/dist/esm/generated/src/storageClient.js +1 -1
  79. package/dist/esm/generated/src/storageClient.js.map +1 -1
  80. package/dist/esm/internal-avro/AvroConstants.d.ts +5 -0
  81. package/dist/esm/internal-avro/AvroConstants.d.ts.map +1 -0
  82. package/dist/esm/internal-avro/AvroConstants.js +7 -0
  83. package/dist/esm/internal-avro/AvroConstants.js.map +1 -0
  84. package/dist/esm/internal-avro/AvroParser.d.ts +57 -0
  85. package/dist/esm/internal-avro/AvroParser.d.ts.map +1 -0
  86. package/dist/esm/internal-avro/AvroParser.js +317 -0
  87. package/dist/esm/internal-avro/AvroParser.js.map +1 -0
  88. package/dist/esm/internal-avro/AvroReadable.d.ts +16 -0
  89. package/dist/esm/internal-avro/AvroReadable.d.ts.map +1 -0
  90. package/dist/esm/internal-avro/AvroReadable.js +5 -0
  91. package/dist/esm/internal-avro/AvroReadable.js.map +1 -0
  92. package/dist/esm/internal-avro/AvroReadableFromBlob.d.ts +10 -0
  93. package/dist/esm/internal-avro/AvroReadableFromBlob.d.ts.map +1 -0
  94. package/dist/esm/internal-avro/AvroReadableFromBlob.js +47 -0
  95. package/dist/esm/internal-avro/AvroReadableFromBlob.js.map +1 -0
  96. package/dist/esm/internal-avro/AvroReadableFromStream.d.ts +11 -0
  97. package/dist/esm/internal-avro/AvroReadableFromStream.d.ts.map +1 -0
  98. package/dist/esm/internal-avro/AvroReadableFromStream.js +85 -0
  99. package/dist/esm/internal-avro/AvroReadableFromStream.js.map +1 -0
  100. package/dist/esm/internal-avro/AvroReader.d.ts +32 -0
  101. package/dist/esm/internal-avro/AvroReader.d.ts.map +1 -0
  102. package/dist/esm/internal-avro/AvroReader.js +106 -0
  103. package/dist/esm/internal-avro/AvroReader.js.map +1 -0
  104. package/dist/esm/internal-avro/index.d.ts +4 -0
  105. package/dist/esm/internal-avro/index.d.ts.map +1 -0
  106. package/dist/esm/internal-avro/index.js +6 -0
  107. package/dist/esm/internal-avro/index.js.map +1 -0
  108. package/dist/esm/internal-avro/utils/utils.common.d.ts +6 -0
  109. package/dist/esm/internal-avro/utils/utils.common.d.ts.map +1 -0
  110. package/dist/esm/internal-avro/utils/utils.common.js +16 -0
  111. package/dist/esm/internal-avro/utils/utils.common.js.map +1 -0
  112. package/dist/esm/utils/BlobQuickQueryStream.js +1 -1
  113. package/dist/esm/utils/BlobQuickQueryStream.js.map +1 -1
  114. package/dist/esm/utils/constants.js +1 -1
  115. package/dist/esm/utils/constants.js.map +1 -1
  116. package/dist/react-native/generated/src/storageClient.js +1 -1
  117. package/dist/react-native/generated/src/storageClient.js.map +1 -1
  118. package/dist/react-native/internal-avro/AvroConstants.d.ts +5 -0
  119. package/dist/react-native/internal-avro/AvroConstants.d.ts.map +1 -0
  120. package/dist/react-native/internal-avro/AvroConstants.js +7 -0
  121. package/dist/react-native/internal-avro/AvroConstants.js.map +1 -0
  122. package/dist/react-native/internal-avro/AvroParser.d.ts +57 -0
  123. package/dist/react-native/internal-avro/AvroParser.d.ts.map +1 -0
  124. package/dist/react-native/internal-avro/AvroParser.js +317 -0
  125. package/dist/react-native/internal-avro/AvroParser.js.map +1 -0
  126. package/dist/react-native/internal-avro/AvroReadable.d.ts +16 -0
  127. package/dist/react-native/internal-avro/AvroReadable.d.ts.map +1 -0
  128. package/dist/react-native/internal-avro/AvroReadable.js +5 -0
  129. package/dist/react-native/internal-avro/AvroReadable.js.map +1 -0
  130. package/dist/react-native/internal-avro/AvroReadableFromBlob.d.ts +10 -0
  131. package/dist/react-native/internal-avro/AvroReadableFromBlob.d.ts.map +1 -0
  132. package/dist/react-native/internal-avro/AvroReadableFromBlob.js +47 -0
  133. package/dist/react-native/internal-avro/AvroReadableFromBlob.js.map +1 -0
  134. package/dist/react-native/internal-avro/AvroReadableFromStream.d.ts +11 -0
  135. package/dist/react-native/internal-avro/AvroReadableFromStream.d.ts.map +1 -0
  136. package/dist/react-native/internal-avro/AvroReadableFromStream.js +85 -0
  137. package/dist/react-native/internal-avro/AvroReadableFromStream.js.map +1 -0
  138. package/dist/react-native/internal-avro/AvroReader.d.ts +32 -0
  139. package/dist/react-native/internal-avro/AvroReader.d.ts.map +1 -0
  140. package/dist/react-native/internal-avro/AvroReader.js +106 -0
  141. package/dist/react-native/internal-avro/AvroReader.js.map +1 -0
  142. package/dist/react-native/internal-avro/index.d.ts +4 -0
  143. package/dist/react-native/internal-avro/index.d.ts.map +1 -0
  144. package/dist/react-native/internal-avro/index.js +6 -0
  145. package/dist/react-native/internal-avro/index.js.map +1 -0
  146. package/dist/react-native/internal-avro/utils/utils.common.d.ts +6 -0
  147. package/dist/react-native/internal-avro/utils/utils.common.d.ts.map +1 -0
  148. package/dist/react-native/internal-avro/utils/utils.common.js +16 -0
  149. package/dist/react-native/internal-avro/utils/utils.common.js.map +1 -0
  150. package/dist/react-native/utils/BlobQuickQueryStream.js +1 -1
  151. package/dist/react-native/utils/BlobQuickQueryStream.js.map +1 -1
  152. package/dist/react-native/utils/constants.js +1 -1
  153. package/dist/react-native/utils/constants.js.map +1 -1
  154. package/package.json +6 -7
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AvroReader = void 0;
6
+ const tslib_1 = require("tslib");
7
+ // TODO: Do a review of non-interfaces
8
+ /* eslint-disable @azure/azure-sdk/ts-use-interface-parameters */
9
+ const AvroConstants_js_1 = require("./AvroConstants.js");
10
+ const AvroParser_js_1 = require("./AvroParser.js");
11
+ const utils_common_js_1 = require("./utils/utils.common.js");
12
+ class AvroReader {
13
+ get blockOffset() {
14
+ return this._blockOffset;
15
+ }
16
+ get objectIndex() {
17
+ return this._objectIndex;
18
+ }
19
+ constructor(dataStream, headerStream, currentBlockOffset, indexWithinCurrentBlock) {
20
+ this._dataStream = dataStream;
21
+ this._headerStream = headerStream || dataStream;
22
+ this._initialized = false;
23
+ this._blockOffset = currentBlockOffset || 0;
24
+ this._objectIndex = indexWithinCurrentBlock || 0;
25
+ this._initialBlockOffset = currentBlockOffset || 0;
26
+ }
27
+ async initialize(options = {}) {
28
+ const header = await AvroParser_js_1.AvroParser.readFixedBytes(this._headerStream, AvroConstants_js_1.AVRO_INIT_BYTES.length, {
29
+ abortSignal: options.abortSignal,
30
+ });
31
+ if (!(0, utils_common_js_1.arraysEqual)(header, AvroConstants_js_1.AVRO_INIT_BYTES)) {
32
+ throw new Error("Stream is not an Avro file.");
33
+ }
34
+ // File metadata is written as if defined by the following map schema:
35
+ // { "type": "map", "values": "bytes"}
36
+ this._metadata = await AvroParser_js_1.AvroParser.readMap(this._headerStream, AvroParser_js_1.AvroParser.readString, {
37
+ abortSignal: options.abortSignal,
38
+ });
39
+ // Validate codec
40
+ const codec = this._metadata[AvroConstants_js_1.AVRO_CODEC_KEY];
41
+ if (!(codec === undefined || codec === null || codec === "null")) {
42
+ throw new Error("Codecs are not supported");
43
+ }
44
+ // The 16-byte, randomly-generated sync marker for this file.
45
+ this._syncMarker = await AvroParser_js_1.AvroParser.readFixedBytes(this._headerStream, AvroConstants_js_1.AVRO_SYNC_MARKER_SIZE, {
46
+ abortSignal: options.abortSignal,
47
+ });
48
+ // Parse the schema
49
+ const schema = JSON.parse(this._metadata[AvroConstants_js_1.AVRO_SCHEMA_KEY]);
50
+ this._itemType = AvroParser_js_1.AvroType.fromSchema(schema);
51
+ if (this._blockOffset === 0) {
52
+ this._blockOffset = this._initialBlockOffset + this._dataStream.position;
53
+ }
54
+ this._itemsRemainingInBlock = await AvroParser_js_1.AvroParser.readLong(this._dataStream, {
55
+ abortSignal: options.abortSignal,
56
+ });
57
+ // skip block length
58
+ await AvroParser_js_1.AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal });
59
+ this._initialized = true;
60
+ if (this._objectIndex && this._objectIndex > 0) {
61
+ for (let i = 0; i < this._objectIndex; i++) {
62
+ await this._itemType.read(this._dataStream, { abortSignal: options.abortSignal });
63
+ this._itemsRemainingInBlock--;
64
+ }
65
+ }
66
+ }
67
+ hasNext() {
68
+ return !this._initialized || this._itemsRemainingInBlock > 0;
69
+ }
70
+ parseObjects() {
71
+ return tslib_1.__asyncGenerator(this, arguments, function* parseObjects_1(options = {}) {
72
+ if (!this._initialized) {
73
+ yield tslib_1.__await(this.initialize(options));
74
+ }
75
+ while (this.hasNext()) {
76
+ const result = yield tslib_1.__await(this._itemType.read(this._dataStream, {
77
+ abortSignal: options.abortSignal,
78
+ }));
79
+ this._itemsRemainingInBlock--;
80
+ this._objectIndex++;
81
+ if (this._itemsRemainingInBlock === 0) {
82
+ const marker = yield tslib_1.__await(AvroParser_js_1.AvroParser.readFixedBytes(this._dataStream, AvroConstants_js_1.AVRO_SYNC_MARKER_SIZE, {
83
+ abortSignal: options.abortSignal,
84
+ }));
85
+ this._blockOffset = this._initialBlockOffset + this._dataStream.position;
86
+ this._objectIndex = 0;
87
+ if (!(0, utils_common_js_1.arraysEqual)(this._syncMarker, marker)) {
88
+ throw new Error("Stream is not a valid Avro file.");
89
+ }
90
+ try {
91
+ this._itemsRemainingInBlock = yield tslib_1.__await(AvroParser_js_1.AvroParser.readLong(this._dataStream, {
92
+ abortSignal: options.abortSignal,
93
+ }));
94
+ }
95
+ catch (_a) {
96
+ // We hit the end of the stream.
97
+ this._itemsRemainingInBlock = 0;
98
+ }
99
+ if (this._itemsRemainingInBlock > 0) {
100
+ // Ignore block size
101
+ yield tslib_1.__await(AvroParser_js_1.AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal }));
102
+ }
103
+ }
104
+ yield yield tslib_1.__await(result);
105
+ }
106
+ });
107
+ }
108
+ }
109
+ exports.AvroReader = AvroReader;
110
+ //# sourceMappingURL=AvroReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvroReader.js","sourceRoot":"","sources":["../../../src/internal-avro/AvroReader.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n// TODO: Do a review of non-interfaces\n/* eslint-disable @azure/azure-sdk/ts-use-interface-parameters */\n\nimport {\n AVRO_CODEC_KEY,\n AVRO_INIT_BYTES,\n AVRO_SCHEMA_KEY,\n AVRO_SYNC_MARKER_SIZE,\n} from \"./AvroConstants.js\";\nimport { AvroParser, AvroType } from \"./AvroParser.js\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { AvroReadable } from \"./AvroReadable.js\";\nimport { arraysEqual } from \"./utils/utils.common.js\";\n\n/**\n * Options to configure the {@link AvroReader.parseObjects} operation.\n */\nexport interface AvroParseOptions {\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 AvroReader {\n private readonly _dataStream: AvroReadable;\n\n private readonly _headerStream: AvroReadable;\n\n private _syncMarker?: Uint8Array;\n\n private _metadata?: Record<string, string>;\n\n private _itemType?: AvroType;\n\n private _itemsRemainingInBlock?: number;\n\n // Remembers where we started if partial data stream was provided.\n private readonly _initialBlockOffset: number;\n\n /// The byte offset within the Avro file (both header and data)\n /// of the start of the current block.\n private _blockOffset: number;\n public get blockOffset(): number {\n return this._blockOffset;\n }\n\n private _objectIndex: number;\n public get objectIndex(): number {\n return this._objectIndex;\n }\n\n private _initialized: boolean;\n\n constructor(dataStream: AvroReadable);\n\n constructor(\n dataStream: AvroReadable,\n headerStream: AvroReadable,\n currentBlockOffset: number,\n indexWithinCurrentBlock: number,\n );\n\n constructor(\n dataStream: AvroReadable,\n headerStream?: AvroReadable,\n currentBlockOffset?: number,\n indexWithinCurrentBlock?: number,\n ) {\n this._dataStream = dataStream;\n this._headerStream = headerStream || dataStream;\n this._initialized = false;\n this._blockOffset = currentBlockOffset || 0;\n this._objectIndex = indexWithinCurrentBlock || 0;\n this._initialBlockOffset = currentBlockOffset || 0;\n }\n\n private async initialize(options: AvroParseOptions = {}): Promise<void> {\n const header = await AvroParser.readFixedBytes(this._headerStream, AVRO_INIT_BYTES.length, {\n abortSignal: options.abortSignal,\n });\n if (!arraysEqual(header, AVRO_INIT_BYTES)) {\n throw new Error(\"Stream is not an Avro file.\");\n }\n\n // File metadata is written as if defined by the following map schema:\n // { \"type\": \"map\", \"values\": \"bytes\"}\n this._metadata = await AvroParser.readMap(this._headerStream, AvroParser.readString, {\n abortSignal: options.abortSignal,\n });\n\n // Validate codec\n const codec = this._metadata![AVRO_CODEC_KEY];\n if (!(codec === undefined || codec === null || codec === \"null\")) {\n throw new Error(\"Codecs are not supported\");\n }\n\n // The 16-byte, randomly-generated sync marker for this file.\n this._syncMarker = await AvroParser.readFixedBytes(this._headerStream, AVRO_SYNC_MARKER_SIZE, {\n abortSignal: options.abortSignal,\n });\n\n // Parse the schema\n const schema = JSON.parse(this._metadata![AVRO_SCHEMA_KEY]);\n this._itemType = AvroType.fromSchema(schema);\n\n if (this._blockOffset === 0) {\n this._blockOffset = this._initialBlockOffset + this._dataStream.position;\n }\n\n this._itemsRemainingInBlock = await AvroParser.readLong(this._dataStream, {\n abortSignal: options.abortSignal,\n });\n // skip block length\n await AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal });\n\n this._initialized = true;\n if (this._objectIndex && this._objectIndex > 0) {\n for (let i = 0; i < this._objectIndex; i++) {\n await this._itemType.read(this._dataStream, { abortSignal: options.abortSignal });\n this._itemsRemainingInBlock!--;\n }\n }\n }\n\n public hasNext(): boolean {\n return !this._initialized || this._itemsRemainingInBlock! > 0;\n }\n\n public async *parseObjects(\n options: AvroParseOptions = {},\n ): AsyncIterableIterator<Record<string, any> | null> {\n if (!this._initialized) {\n await this.initialize(options);\n }\n\n while (this.hasNext()) {\n const result = await this._itemType!.read(this._dataStream, {\n abortSignal: options.abortSignal,\n });\n\n this._itemsRemainingInBlock!--;\n this._objectIndex!++;\n\n if (this._itemsRemainingInBlock === 0) {\n const marker = await AvroParser.readFixedBytes(this._dataStream, AVRO_SYNC_MARKER_SIZE, {\n abortSignal: options.abortSignal,\n });\n\n this._blockOffset = this._initialBlockOffset + this._dataStream.position;\n this._objectIndex = 0;\n\n if (!arraysEqual(this._syncMarker!, marker)) {\n throw new Error(\"Stream is not a valid Avro file.\");\n }\n\n try {\n this._itemsRemainingInBlock = await AvroParser.readLong(this._dataStream, {\n abortSignal: options.abortSignal,\n });\n } catch {\n // We hit the end of the stream.\n this._itemsRemainingInBlock = 0;\n }\n\n if (this._itemsRemainingInBlock! > 0) {\n // Ignore block size\n await AvroParser.readLong(this._dataStream, { abortSignal: options.abortSignal });\n }\n }\n yield result;\n }\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export { AvroReader, AvroParseOptions } from "./AvroReader.js";
2
+ export { AvroReadable } from "./AvroReadable.js";
3
+ export { AvroReadableFromStream } from "./AvroReadableFromStream.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal-avro/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AvroReadableFromStream = exports.AvroReadable = exports.AvroReader = void 0;
6
+ var AvroReader_js_1 = require("./AvroReader.js");
7
+ Object.defineProperty(exports, "AvroReader", { enumerable: true, get: function () { return AvroReader_js_1.AvroReader; } });
8
+ var AvroReadable_js_1 = require("./AvroReadable.js");
9
+ Object.defineProperty(exports, "AvroReadable", { enumerable: true, get: function () { return AvroReadable_js_1.AvroReadable; } });
10
+ var AvroReadableFromStream_js_1 = require("./AvroReadableFromStream.js");
11
+ Object.defineProperty(exports, "AvroReadableFromStream", { enumerable: true, get: function () { return AvroReadableFromStream_js_1.AvroReadableFromStream; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal-avro/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAA+D;AAAtD,2GAAA,UAAU,OAAA;AACnB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport { AvroReader, AvroParseOptions } from \"./AvroReader.js\";\nexport { AvroReadable } from \"./AvroReadable.js\";\nexport { AvroReadableFromStream } from \"./AvroReadableFromStream.js\";\n"]}
@@ -0,0 +1,6 @@
1
+ export interface KeyValuePair<T> {
2
+ key: string;
3
+ value: T;
4
+ }
5
+ export declare function arraysEqual(a: Uint8Array, b: Uint8Array): boolean;
6
+ //# sourceMappingURL=utils.common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.common.d.ts","sourceRoot":"","sources":["../../../../src/internal-avro/utils/utils.common.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;CACV;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAUjE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.arraysEqual = arraysEqual;
6
+ function arraysEqual(a, b) {
7
+ if (a === b)
8
+ return true;
9
+ if (a == null || b == null)
10
+ return false;
11
+ if (a.length !== b.length)
12
+ return false;
13
+ for (let i = 0; i < a.length; ++i) {
14
+ if (a[i] !== b[i])
15
+ return false;
16
+ }
17
+ return true;
18
+ }
19
+ //# sourceMappingURL=utils.common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.common.js","sourceRoot":"","sources":["../../../../src/internal-avro/utils/utils.common.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAOlC,kCAUC;AAVD,SAAgB,WAAW,CAAC,CAAa,EAAE,CAAa;IACtD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport interface KeyValuePair<T> {\n key: string;\n value: T;\n}\n\nexport function arraysEqual(a: Uint8Array, b: Uint8Array): boolean {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n if (a.length !== b.length) return false;\n\n for (let i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.7"
8
+ "packageVersion": "7.52.8"
9
9
  }
10
10
  ]
11
11
  }
@@ -4,7 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.BlobQuickQueryStream = void 0;
6
6
  const node_stream_1 = require("node:stream");
7
- const storage_internal_avro_1 = require("@azure/storage-internal-avro");
7
+ const index_js_1 = require("../internal-avro/index.js");
8
8
  /**
9
9
  * ONLY AVAILABLE IN NODE.JS RUNTIME.
10
10
  *
@@ -23,7 +23,7 @@ class BlobQuickQueryStream extends node_stream_1.Readable {
23
23
  this.source = source;
24
24
  this.onProgress = options.onProgress;
25
25
  this.onError = options.onError;
26
- this.avroReader = new storage_internal_avro_1.AvroReader(new storage_internal_avro_1.AvroReadableFromStream(this.source));
26
+ this.avroReader = new index_js_1.AvroReader(new index_js_1.AvroReadableFromStream(this.source));
27
27
  this.avroIter = this.avroReader.parseObjects({ abortSignal: options.abortSignal });
28
28
  }
29
29
  _read() {
@@ -1 +1 @@
1
- {"version":3,"file":"BlobQuickQueryStream.js","sourceRoot":"","sources":["../../../src/utils/BlobQuickQueryStream.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Readable } from \"node:stream\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { TransferProgressEvent } from \"@azure/core-rest-pipeline\";\nimport { AvroReadableFromStream, AvroReader } from \"@azure/storage-internal-avro\";\nimport type { BlobQueryError } from \"../Clients.js\";\n\nexport interface BlobQuickQueryStreamOptions {\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 * Read progress event handler\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback to receive error events during the query operaiton.\n */\n onError?: (error: BlobQueryError) => void;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * A Node.js BlobQuickQueryStream will internally parse avro data stream for blob query.\n */\nexport class BlobQuickQueryStream extends Readable {\n private source: NodeJS.ReadableStream;\n private avroReader: AvroReader;\n private avroIter: AsyncIterableIterator<unknown | null>;\n private avroPaused: boolean = true;\n private onProgress?: (progress: TransferProgressEvent) => void;\n private onError?: (error: BlobQueryError) => void;\n\n /**\n * Creates an instance of BlobQuickQueryStream.\n *\n * @param source - The current ReadableStream returned from getter\n * @param options -\n */\n public constructor(source: NodeJS.ReadableStream, options: BlobQuickQueryStreamOptions = {}) {\n super();\n this.source = source;\n this.onProgress = options.onProgress;\n this.onError = options.onError;\n this.avroReader = new AvroReader(new AvroReadableFromStream(this.source));\n this.avroIter = this.avroReader.parseObjects({ abortSignal: options.abortSignal });\n }\n\n public _read(): void {\n if (this.avroPaused) {\n this.readInternal().catch((err) => {\n this.emit(\"error\", err);\n });\n }\n }\n\n private async readInternal(): Promise<void> {\n this.avroPaused = false;\n let avroNext;\n do {\n avroNext = await this.avroIter.next();\n if (avroNext.done) {\n break;\n }\n const obj = avroNext.value;\n const schema = (obj as any).$schema;\n if (typeof schema !== \"string\") {\n throw Error(\"Missing schema in avro record.\");\n }\n\n switch (schema) {\n case \"com.microsoft.azure.storage.queryBlobContents.resultData\":\n {\n const data = (obj as any).data;\n if (data instanceof Uint8Array === false) {\n throw Error(\"Invalid data in avro result record.\");\n }\n if (!this.push(Buffer.from(data))) {\n this.avroPaused = true;\n }\n }\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.progress\":\n {\n const bytesScanned = (obj as any).bytesScanned;\n if (typeof bytesScanned !== \"number\") {\n throw Error(\"Invalid bytesScanned in avro progress record.\");\n }\n if (this.onProgress) {\n this.onProgress({ loadedBytes: bytesScanned });\n }\n }\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.end\":\n if (this.onProgress) {\n const totalBytes = (obj as any).totalBytes;\n if (typeof totalBytes !== \"number\") {\n throw Error(\"Invalid totalBytes in avro end record.\");\n }\n this.onProgress({ loadedBytes: totalBytes });\n }\n this.push(null);\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.error\":\n if (this.onError) {\n const fatal = (obj as any).fatal;\n if (typeof fatal !== \"boolean\") {\n throw Error(\"Invalid fatal in avro error record.\");\n }\n const name = (obj as any).name;\n if (typeof name !== \"string\") {\n throw Error(\"Invalid name in avro error record.\");\n }\n const description = (obj as any).description;\n if (typeof description !== \"string\") {\n throw Error(\"Invalid description in avro error record.\");\n }\n const position = (obj as any).position;\n if (typeof position !== \"number\") {\n throw Error(\"Invalid position in avro error record.\");\n }\n this.onError({\n position,\n name,\n isFatal: fatal,\n description,\n });\n }\n break;\n default:\n throw Error(`Unknown schema ${schema} in avro progress record.`);\n }\n } while (!avroNext.done && !this.avroPaused);\n }\n}\n"]}
1
+ {"version":3,"file":"BlobQuickQueryStream.js","sourceRoot":"","sources":["../../../src/utils/BlobQuickQueryStream.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { Readable } from \"node:stream\";\nimport type { AbortSignalLike } from \"@azure/abort-controller\";\nimport type { TransferProgressEvent } from \"@azure/core-rest-pipeline\";\nimport { AvroReadableFromStream, AvroReader } from \"../internal-avro/index.js\";\nimport type { BlobQueryError } from \"../Clients.js\";\n\nexport interface BlobQuickQueryStreamOptions {\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 * Read progress event handler\n */\n onProgress?: (progress: TransferProgressEvent) => void;\n\n /**\n * Callback to receive error events during the query operaiton.\n */\n onError?: (error: BlobQueryError) => void;\n}\n\n/**\n * ONLY AVAILABLE IN NODE.JS RUNTIME.\n *\n * A Node.js BlobQuickQueryStream will internally parse avro data stream for blob query.\n */\nexport class BlobQuickQueryStream extends Readable {\n private source: NodeJS.ReadableStream;\n private avroReader: AvroReader;\n private avroIter: AsyncIterableIterator<unknown | null>;\n private avroPaused: boolean = true;\n private onProgress?: (progress: TransferProgressEvent) => void;\n private onError?: (error: BlobQueryError) => void;\n\n /**\n * Creates an instance of BlobQuickQueryStream.\n *\n * @param source - The current ReadableStream returned from getter\n * @param options -\n */\n public constructor(source: NodeJS.ReadableStream, options: BlobQuickQueryStreamOptions = {}) {\n super();\n this.source = source;\n this.onProgress = options.onProgress;\n this.onError = options.onError;\n this.avroReader = new AvroReader(new AvroReadableFromStream(this.source));\n this.avroIter = this.avroReader.parseObjects({ abortSignal: options.abortSignal });\n }\n\n public _read(): void {\n if (this.avroPaused) {\n this.readInternal().catch((err) => {\n this.emit(\"error\", err);\n });\n }\n }\n\n private async readInternal(): Promise<void> {\n this.avroPaused = false;\n let avroNext;\n do {\n avroNext = await this.avroIter.next();\n if (avroNext.done) {\n break;\n }\n const obj = avroNext.value;\n const schema = (obj as any).$schema;\n if (typeof schema !== \"string\") {\n throw Error(\"Missing schema in avro record.\");\n }\n\n switch (schema) {\n case \"com.microsoft.azure.storage.queryBlobContents.resultData\":\n {\n const data = (obj as any).data;\n if (data instanceof Uint8Array === false) {\n throw Error(\"Invalid data in avro result record.\");\n }\n if (!this.push(Buffer.from(data))) {\n this.avroPaused = true;\n }\n }\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.progress\":\n {\n const bytesScanned = (obj as any).bytesScanned;\n if (typeof bytesScanned !== \"number\") {\n throw Error(\"Invalid bytesScanned in avro progress record.\");\n }\n if (this.onProgress) {\n this.onProgress({ loadedBytes: bytesScanned });\n }\n }\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.end\":\n if (this.onProgress) {\n const totalBytes = (obj as any).totalBytes;\n if (typeof totalBytes !== \"number\") {\n throw Error(\"Invalid totalBytes in avro end record.\");\n }\n this.onProgress({ loadedBytes: totalBytes });\n }\n this.push(null);\n break;\n case \"com.microsoft.azure.storage.queryBlobContents.error\":\n if (this.onError) {\n const fatal = (obj as any).fatal;\n if (typeof fatal !== \"boolean\") {\n throw Error(\"Invalid fatal in avro error record.\");\n }\n const name = (obj as any).name;\n if (typeof name !== \"string\") {\n throw Error(\"Invalid name in avro error record.\");\n }\n const description = (obj as any).description;\n if (typeof description !== \"string\") {\n throw Error(\"Invalid description in avro error record.\");\n }\n const position = (obj as any).position;\n if (typeof position !== \"number\") {\n throw Error(\"Invalid position in avro error record.\");\n }\n this.onError({\n position,\n name,\n isFatal: fatal,\n description,\n });\n }\n break;\n default:\n throw Error(`Unknown schema ${schema} in avro progress record.`);\n }\n } while (!avroNext.done && !this.avroPaused);\n }\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.PathStylePorts = exports.BlobDoesNotUseCustomerSpecifiedEncryption = exports.BlobUsesCustomerSpecifiedEncryptionMsg = exports.StorageBlobLoggingAllowedQueryParameters = exports.StorageBlobLoggingAllowedHeaderNames = exports.DevelopmentConnectionString = exports.EncryptionAlgorithmAES25 = exports.HTTP_VERSION_1_1 = exports.HTTP_LINE_ENDING = exports.BATCH_MAX_PAYLOAD_IN_BYTES = exports.BATCH_MAX_REQUEST = exports.SIZE_1_MB = exports.ETagAny = exports.ETagNone = exports.HeaderConstants = exports.HTTPURLConnection = exports.URLConstants = exports.StorageOAuthScopes = exports.REQUEST_TIMEOUT = exports.DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS = exports.DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES = exports.DEFAULT_BLOCK_BUFFER_SIZE_BYTES = exports.BLOCK_BLOB_MAX_BLOCKS = exports.BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = exports.BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = exports.SERVICE_VERSION = exports.SDK_VERSION = void 0;
6
- exports.SDK_VERSION = "12.28.0-beta.1";
6
+ exports.SDK_VERSION = "12.28.0-beta.2";
7
7
  exports.SERVICE_VERSION = "2025-07-05";
8
8
  exports.BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES = 256 * 1024 * 1024; // 256MB
9
9
  exports.BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES = 4000 * 1024 * 1024; // 4000MB
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.28.0-beta.1\";\nexport const SERVICE_VERSION: string = \"2025-07-05\";\n\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES: number = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES: number = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES: number = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES: number = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS: number = 5;\n\nexport const REQUEST_TIMEOUT: number = 100 * 1000; // In ms\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n X_MS_CopySourceErrorCode: \"x-ms-copy-source-error-code\",\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const SIZE_1_MB = 1 * 1024 * 1024;\nexport const BATCH_MAX_REQUEST = 256;\nexport const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport const HTTP_LINE_ENDING = \"\\r\\n\";\nexport const HTTP_VERSION_1_1 = \"HTTP/1.1\";\n\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\nexport const StorageBlobLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n \"x-ms-copy-source-error-code\",\n \"x-ms-copy-source-status-code\",\n \"x-ms-if-tags\",\n \"x-ms-source-if-tags\",\n];\n\nexport const StorageBlobLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\",\n];\n\nexport const BlobUsesCustomerSpecifiedEncryptionMsg = \"BlobUsesCustomerSpecifiedEncryption\";\nexport const BlobDoesNotUseCustomerSpecifiedEncryption =\n \"BlobDoesNotUseCustomerSpecifiedEncryption\";\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"12.28.0-beta.2\";\nexport const SERVICE_VERSION: string = \"2025-07-05\";\n\nexport const BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES: number = 256 * 1024 * 1024; // 256MB\nexport const BLOCK_BLOB_MAX_STAGE_BLOCK_BYTES: number = 4000 * 1024 * 1024; // 4000MB\nexport const BLOCK_BLOB_MAX_BLOCKS: number = 50000;\nexport const DEFAULT_BLOCK_BUFFER_SIZE_BYTES: number = 8 * 1024 * 1024; // 8MB\nexport const DEFAULT_BLOB_DOWNLOAD_BLOCK_BYTES: number = 4 * 1024 * 1024; // 4MB\nexport const DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS: number = 5;\n\nexport const REQUEST_TIMEOUT: number = 100 * 1000; // In ms\n/**\n * The OAuth scope to use with Azure Storage.\n */\nexport const StorageOAuthScopes: string | string[] = \"https://storage.azure.com/.default\";\n\nexport const URLConstants = {\n Parameters: {\n FORCE_BROWSER_NO_CACHE: \"_\",\n SIGNATURE: \"sig\",\n SNAPSHOT: \"snapshot\",\n VERSIONID: \"versionid\",\n TIMEOUT: \"timeout\",\n },\n};\n\nexport const HTTPURLConnection = {\n HTTP_ACCEPTED: 202,\n HTTP_CONFLICT: 409,\n HTTP_NOT_FOUND: 404,\n HTTP_PRECON_FAILED: 412,\n HTTP_RANGE_NOT_SATISFIABLE: 416,\n};\n\nexport const HeaderConstants = {\n AUTHORIZATION: \"Authorization\",\n AUTHORIZATION_SCHEME: \"Bearer\",\n CONTENT_ENCODING: \"Content-Encoding\",\n CONTENT_ID: \"Content-ID\",\n CONTENT_LANGUAGE: \"Content-Language\",\n CONTENT_LENGTH: \"Content-Length\",\n CONTENT_MD5: \"Content-Md5\",\n CONTENT_TRANSFER_ENCODING: \"Content-Transfer-Encoding\",\n CONTENT_TYPE: \"Content-Type\",\n COOKIE: \"Cookie\",\n DATE: \"date\",\n IF_MATCH: \"if-match\",\n IF_MODIFIED_SINCE: \"if-modified-since\",\n IF_NONE_MATCH: \"if-none-match\",\n IF_UNMODIFIED_SINCE: \"if-unmodified-since\",\n PREFIX_FOR_STORAGE: \"x-ms-\",\n RANGE: \"Range\",\n USER_AGENT: \"User-Agent\",\n X_MS_CLIENT_REQUEST_ID: \"x-ms-client-request-id\",\n X_MS_COPY_SOURCE: \"x-ms-copy-source\",\n X_MS_DATE: \"x-ms-date\",\n X_MS_ERROR_CODE: \"x-ms-error-code\",\n X_MS_VERSION: \"x-ms-version\",\n X_MS_CopySourceErrorCode: \"x-ms-copy-source-error-code\",\n};\n\nexport const ETagNone = \"\";\nexport const ETagAny = \"*\";\n\nexport const SIZE_1_MB = 1 * 1024 * 1024;\nexport const BATCH_MAX_REQUEST = 256;\nexport const BATCH_MAX_PAYLOAD_IN_BYTES = 4 * SIZE_1_MB;\nexport const HTTP_LINE_ENDING = \"\\r\\n\";\nexport const HTTP_VERSION_1_1 = \"HTTP/1.1\";\n\nexport const EncryptionAlgorithmAES25 = \"AES256\";\n\nexport const DevelopmentConnectionString = `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`;\n\nexport const StorageBlobLoggingAllowedHeaderNames = [\n \"Access-Control-Allow-Origin\",\n \"Cache-Control\",\n \"Content-Length\",\n \"Content-Type\",\n \"Date\",\n \"Request-Id\",\n \"traceparent\",\n \"Transfer-Encoding\",\n \"User-Agent\",\n \"x-ms-client-request-id\",\n \"x-ms-date\",\n \"x-ms-error-code\",\n \"x-ms-request-id\",\n \"x-ms-return-client-request-id\",\n \"x-ms-version\",\n \"Accept-Ranges\",\n \"Content-Disposition\",\n \"Content-Encoding\",\n \"Content-Language\",\n \"Content-MD5\",\n \"Content-Range\",\n \"ETag\",\n \"Last-Modified\",\n \"Server\",\n \"Vary\",\n \"x-ms-content-crc64\",\n \"x-ms-copy-action\",\n \"x-ms-copy-completion-time\",\n \"x-ms-copy-id\",\n \"x-ms-copy-progress\",\n \"x-ms-copy-status\",\n \"x-ms-has-immutability-policy\",\n \"x-ms-has-legal-hold\",\n \"x-ms-lease-state\",\n \"x-ms-lease-status\",\n \"x-ms-range\",\n \"x-ms-request-server-encrypted\",\n \"x-ms-server-encrypted\",\n \"x-ms-snapshot\",\n \"x-ms-source-range\",\n \"If-Match\",\n \"If-Modified-Since\",\n \"If-None-Match\",\n \"If-Unmodified-Since\",\n \"x-ms-access-tier\",\n \"x-ms-access-tier-change-time\",\n \"x-ms-access-tier-inferred\",\n \"x-ms-account-kind\",\n \"x-ms-archive-status\",\n \"x-ms-blob-append-offset\",\n \"x-ms-blob-cache-control\",\n \"x-ms-blob-committed-block-count\",\n \"x-ms-blob-condition-appendpos\",\n \"x-ms-blob-condition-maxsize\",\n \"x-ms-blob-content-disposition\",\n \"x-ms-blob-content-encoding\",\n \"x-ms-blob-content-language\",\n \"x-ms-blob-content-length\",\n \"x-ms-blob-content-md5\",\n \"x-ms-blob-content-type\",\n \"x-ms-blob-public-access\",\n \"x-ms-blob-sequence-number\",\n \"x-ms-blob-type\",\n \"x-ms-copy-destination-snapshot\",\n \"x-ms-creation-time\",\n \"x-ms-default-encryption-scope\",\n \"x-ms-delete-snapshots\",\n \"x-ms-delete-type-permanent\",\n \"x-ms-deny-encryption-scope-override\",\n \"x-ms-encryption-algorithm\",\n \"x-ms-if-sequence-number-eq\",\n \"x-ms-if-sequence-number-le\",\n \"x-ms-if-sequence-number-lt\",\n \"x-ms-incremental-copy\",\n \"x-ms-lease-action\",\n \"x-ms-lease-break-period\",\n \"x-ms-lease-duration\",\n \"x-ms-lease-id\",\n \"x-ms-lease-time\",\n \"x-ms-page-write\",\n \"x-ms-proposed-lease-id\",\n \"x-ms-range-get-content-md5\",\n \"x-ms-rehydrate-priority\",\n \"x-ms-sequence-number-action\",\n \"x-ms-sku-name\",\n \"x-ms-source-content-md5\",\n \"x-ms-source-if-match\",\n \"x-ms-source-if-modified-since\",\n \"x-ms-source-if-none-match\",\n \"x-ms-source-if-unmodified-since\",\n \"x-ms-tag-count\",\n \"x-ms-encryption-key-sha256\",\n \"x-ms-copy-source-error-code\",\n \"x-ms-copy-source-status-code\",\n \"x-ms-if-tags\",\n \"x-ms-source-if-tags\",\n];\n\nexport const StorageBlobLoggingAllowedQueryParameters = [\n \"comp\",\n \"maxresults\",\n \"rscc\",\n \"rscd\",\n \"rsce\",\n \"rscl\",\n \"rsct\",\n \"se\",\n \"si\",\n \"sip\",\n \"sp\",\n \"spr\",\n \"sr\",\n \"srt\",\n \"ss\",\n \"st\",\n \"sv\",\n \"include\",\n \"marker\",\n \"prefix\",\n \"copyid\",\n \"restype\",\n \"blockid\",\n \"blocklisttype\",\n \"delimiter\",\n \"prevsnapshot\",\n \"ske\",\n \"skoid\",\n \"sks\",\n \"skt\",\n \"sktid\",\n \"skv\",\n \"snapshot\",\n];\n\nexport const BlobUsesCustomerSpecifiedEncryptionMsg = \"BlobUsesCustomerSpecifiedEncryption\";\nexport const BlobDoesNotUseCustomerSpecifiedEncryption =\n \"BlobDoesNotUseCustomerSpecifiedEncryption\";\n\n/// List of ports used for path style addressing.\n/// Path style addressing means that storage account is put in URI's Path segment in instead of in host.\nexport const PathStylePorts = [\n \"10000\",\n \"10001\",\n \"10002\",\n \"10003\",\n \"10004\",\n \"10100\",\n \"10101\",\n \"10102\",\n \"10103\",\n \"10104\",\n \"11000\",\n \"11001\",\n \"11002\",\n \"11003\",\n \"11004\",\n \"11100\",\n \"11101\",\n \"11102\",\n \"11103\",\n \"11104\",\n];\n"]}
@@ -26,7 +26,7 @@ export class StorageClient extends coreHttpCompat.ExtendedServiceClient {
26
26
  const defaults = {
27
27
  requestContentType: "application/json; charset=utf-8",
28
28
  };
29
- const packageDetails = `azsdk-js-azure-storage-blob/12.28.0-beta.1`;
29
+ const packageDetails = `azsdk-js-azure-storage-blob/12.28.0-beta.2`;
30
30
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
31
31
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
32
32
  : `${packageDetails}`;
@@ -1 +1 @@
1
- {"version":3,"file":"storageClient.js","sourceRoot":"","sources":["../../../../src/generated/src/storageClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAW/B,MAAM,OAAO,aAAc,SAAQ,cAAc,CAAC,qBAAqB;IAIrE;;;;;OAKG;IACH,YAAY,GAAW,EAAE,OAAqC;;QAC5D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAgC;YAC5C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,4CAA4C,CAAC;QACpE,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,iDACpB,QAAQ,GACR,OAAO,KACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB,EACD,QAAQ,EAAE,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,OAAO,GACzD,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CAQF","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttpCompat from \"@azure/core-http-compat\";\nimport {\n ServiceImpl,\n ContainerImpl,\n BlobImpl,\n PageBlobImpl,\n AppendBlobImpl,\n BlockBlobImpl,\n} from \"./operations/index.js\";\nimport {\n Service,\n Container,\n Blob,\n PageBlob,\n AppendBlob,\n BlockBlob,\n} from \"./operationsInterfaces/index.js\";\nimport { StorageClientOptionalParams } from \"./models/index.js\";\n\nexport class StorageClient extends coreHttpCompat.ExtendedServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the StorageClient class.\n * @param url The URL of the service account, container, or blob that is the target of the desired\n * operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: StorageClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: StorageClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-azure-storage-blob/12.28.0-beta.1`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{url}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2025-07-05\";\n this.service = new ServiceImpl(this);\n this.container = new ContainerImpl(this);\n this.blob = new BlobImpl(this);\n this.pageBlob = new PageBlobImpl(this);\n this.appendBlob = new AppendBlobImpl(this);\n this.blockBlob = new BlockBlobImpl(this);\n }\n\n service: Service;\n container: Container;\n blob: Blob;\n pageBlob: PageBlob;\n appendBlob: AppendBlob;\n blockBlob: BlockBlob;\n}\n"]}
1
+ {"version":3,"file":"storageClient.js","sourceRoot":"","sources":["../../../../src/generated/src/storageClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAW/B,MAAM,OAAO,aAAc,SAAQ,cAAc,CAAC,qBAAqB;IAIrE;;;;;OAKG;IACH,YAAY,GAAW,EAAE,OAAqC;;QAC5D,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;QACD,MAAM,QAAQ,GAAgC;YAC5C,kBAAkB,EAAE,iCAAiC;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,4CAA4C,CAAC;QACpE,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;YAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,cAAc,EAAE;YACjE,CAAC,CAAC,GAAG,cAAc,EAAE,CAAC;QAE1B,MAAM,mBAAmB,iDACpB,QAAQ,GACR,OAAO,KACV,gBAAgB,EAAE;gBAChB,eAAe;aAChB,EACD,QAAQ,EAAE,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,OAAO,GACzD,CAAC;QACF,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,wBAAwB;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,0CAA0C;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CAQF","sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreHttpCompat from \"@azure/core-http-compat\";\nimport {\n ServiceImpl,\n ContainerImpl,\n BlobImpl,\n PageBlobImpl,\n AppendBlobImpl,\n BlockBlobImpl,\n} from \"./operations/index.js\";\nimport {\n Service,\n Container,\n Blob,\n PageBlob,\n AppendBlob,\n BlockBlob,\n} from \"./operationsInterfaces/index.js\";\nimport { StorageClientOptionalParams } from \"./models/index.js\";\n\nexport class StorageClient extends coreHttpCompat.ExtendedServiceClient {\n url: string;\n version: string;\n\n /**\n * Initializes a new instance of the StorageClient class.\n * @param url The URL of the service account, container, or blob that is the target of the desired\n * operation.\n * @param options The parameter options\n */\n constructor(url: string, options?: StorageClientOptionalParams) {\n if (url === undefined) {\n throw new Error(\"'url' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: StorageClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\",\n };\n\n const packageDetails = `azsdk-js-azure-storage-blob/12.28.0-beta.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n endpoint: options.endpoint ?? options.baseUri ?? \"{url}\",\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.url = url;\n\n // Assigning values to Constant parameters\n this.version = options.version || \"2025-07-05\";\n this.service = new ServiceImpl(this);\n this.container = new ContainerImpl(this);\n this.blob = new BlobImpl(this);\n this.pageBlob = new PageBlobImpl(this);\n this.appendBlob = new AppendBlobImpl(this);\n this.blockBlob = new BlockBlobImpl(this);\n }\n\n service: Service;\n container: Container;\n blob: Blob;\n pageBlob: PageBlob;\n appendBlob: AppendBlob;\n blockBlob: BlockBlob;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const AVRO_SYNC_MARKER_SIZE: number;
2
+ export declare const AVRO_INIT_BYTES: Uint8Array;
3
+ export declare const AVRO_CODEC_KEY: string;
4
+ export declare const AVRO_SCHEMA_KEY: string;
5
+ //# sourceMappingURL=AvroConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvroConstants.d.ts","sourceRoot":"","sources":["../../../src/internal-avro/AvroConstants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,EAAE,MAAW,CAAC;AAChD,eAAO,MAAM,eAAe,EAAE,UAA6C,CAAC;AAC5E,eAAO,MAAM,cAAc,EAAE,MAAqB,CAAC;AACnD,eAAO,MAAM,eAAe,EAAE,MAAsB,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export const AVRO_SYNC_MARKER_SIZE = 16;
4
+ export const AVRO_INIT_BYTES = new Uint8Array([79, 98, 106, 1]);
5
+ export const AVRO_CODEC_KEY = "avro.codec";
6
+ export const AVRO_SCHEMA_KEY = "avro.schema";
7
+ //# sourceMappingURL=AvroConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvroConstants.js","sourceRoot":"","sources":["../../../src/internal-avro/AvroConstants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAW,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAe,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,cAAc,GAAW,YAAY,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAW,aAAa,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const AVRO_SYNC_MARKER_SIZE: number = 16;\nexport const AVRO_INIT_BYTES: Uint8Array = new Uint8Array([79, 98, 106, 1]);\nexport const AVRO_CODEC_KEY: string = \"avro.codec\";\nexport const AVRO_SCHEMA_KEY: string = \"avro.schema\";\n"]}
@@ -0,0 +1,57 @@
1
+ import type { AbortSignalLike } from "@azure/abort-controller";
2
+ import type { AvroReadable } from "./AvroReadable.js";
3
+ /**
4
+ * Options to configure the AvroParser read methods.
5
+ * See {@link AvroParser.readFixedBytes}, {@link AvroParser.readMap} and etc.
6
+ */
7
+ interface AvroParserReadOptions {
8
+ /**
9
+ * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
10
+ * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
11
+ */
12
+ abortSignal?: AbortSignalLike;
13
+ }
14
+ export declare class AvroParser {
15
+ /**
16
+ * Reads a fixed number of bytes from the stream.
17
+ *
18
+ * @param stream -
19
+ * @param length -
20
+ * @param options -
21
+ */
22
+ static readFixedBytes(stream: AvroReadable, length: number, options?: AvroParserReadOptions): Promise<Uint8Array>;
23
+ /**
24
+ * Reads a single byte from the stream.
25
+ *
26
+ * @param stream -
27
+ * @param options -
28
+ */
29
+ private static readByte;
30
+ private static readZigZagLong;
31
+ static readLong(stream: AvroReadable, options?: AvroParserReadOptions): Promise<number>;
32
+ static readInt(stream: AvroReadable, options?: AvroParserReadOptions): Promise<number>;
33
+ static readNull(): Promise<null>;
34
+ static readBoolean(stream: AvroReadable, options?: AvroParserReadOptions): Promise<boolean>;
35
+ static readFloat(stream: AvroReadable, options?: AvroParserReadOptions): Promise<number>;
36
+ static readDouble(stream: AvroReadable, options?: AvroParserReadOptions): Promise<number>;
37
+ static readBytes(stream: AvroReadable, options?: AvroParserReadOptions): Promise<Uint8Array>;
38
+ static readString(stream: AvroReadable, options?: AvroParserReadOptions): Promise<string>;
39
+ private static readMapPair;
40
+ static readMap<T>(stream: AvroReadable, readItemMethod: (s: AvroReadable, options?: AvroParserReadOptions) => Promise<T>, options?: AvroParserReadOptions): Promise<Record<string, T>>;
41
+ private static readArray;
42
+ }
43
+ export declare abstract class AvroType {
44
+ /**
45
+ * Reads an object from the stream.
46
+ */
47
+ abstract read(stream: AvroReadable, options?: AvroParserReadOptions): Promise<Object | null>;
48
+ /**
49
+ * Determines the AvroType from the Avro Schema.
50
+ */
51
+ static fromSchema(schema: string | Object): AvroType;
52
+ private static fromStringSchema;
53
+ private static fromArraySchema;
54
+ private static fromObjectSchema;
55
+ }
56
+ export {};
57
+ //# sourceMappingURL=AvroParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvroParser.d.ts","sourceRoot":"","sources":["../../../src/internal-avro/AvroParser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;GAGG;AACH,UAAU,qBAAqB;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,qBAAa,UAAU;IACrB;;;;;;OAMG;WACiB,cAAc,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,UAAU,CAAC;IAQtB;;;;;OAKG;mBACkB,QAAQ;mBAWR,cAAc;WAoCf,QAAQ,CAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;WAIE,OAAO,CACzB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;WAIE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;WAIzB,WAAW,CAC7B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC;WAWC,SAAS,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;WAME,UAAU,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;WAME,SAAS,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,UAAU,CAAC;WASF,UAAU,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC;mBAMG,WAAW;WAWZ,OAAO,CAAC,CAAC,EAC3B,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,EAChF,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;mBAiBR,SAAS;CAwB/B;AAqCD,8BAAsB,QAAQ;IAC5B;;OAEG;aACa,IAAI,CAClB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;WAEW,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ;IAU3D,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgB/B,OAAO,CAAC,MAAM,CAAC,eAAe;IAI9B,OAAO,CAAC,MAAM,CAAC,gBAAgB;CA8ChC"}