@microsoft/agents-hosting-storage-blob 1.9.0-beta.8.gf58e66b2ee → 1.9.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"blobsStorage.js","sourceRoot":"","sources":["../../src/blobsStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobsStorage.js","sourceRoot":"","sources":["../../src/blobsStorage.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,46 @@ exports.Errors = {
39
39
  ETagConflict: {
40
40
  code: -160002,
41
41
  description: 'Storage: error writing "{key}" due to eTag conflict.'
42
+ },
43
+ /** Error thrown when an empty V2 storage version token is provided. */
44
+ StorageV2ExpectedVersionEmpty: {
45
+ code: -160003,
46
+ description: 'Storage V2 expectedVersion cannot be empty.'
47
+ },
48
+ /** Error thrown when a V2 value is not a non-array object. */
49
+ StorageV2ValueRequired: {
50
+ code: -160004,
51
+ description: 'Storage V2 values must be non-null, non-array objects.'
52
+ },
53
+ /** Error thrown when an Azure Blob V2 operation fails unexpectedly. */
54
+ StorageV2OperationFailed: {
55
+ code: -160005,
56
+ description: 'Blob Storage V2 {operation} failed for key "{key}".'
57
+ },
58
+ /** Error thrown when a legacy Blob Storage write fails unexpectedly. */
59
+ StorageWriteFailed: {
60
+ code: -160008,
61
+ description: 'Blob Storage failed to write key "{key}".'
62
+ },
63
+ /** Error thrown when a V2 storage key is empty or whitespace. */
64
+ StorageV2KeyRequired: {
65
+ code: -160006,
66
+ description: 'Storage V2 keys must be non-empty strings.'
67
+ },
68
+ /** Error thrown when a V2 write mode is not supported. */
69
+ StorageV2WriteModeUnsupported: {
70
+ code: -160007,
71
+ description: 'Storage V2 write mode "{mode}" is not supported.'
72
+ },
73
+ /** Error thrown when V2 write changes are missing or invalid. */
74
+ StorageV2ChangesRequired: {
75
+ code: -160009,
76
+ description: 'Storage V2 changes must be an object.'
77
+ },
78
+ /** Error thrown when the V2 key collection is missing or invalid. */
79
+ StorageV2KeysRequired: {
80
+ code: -160010,
81
+ description: 'Storage V2 keys must be an array.'
42
82
  }
43
83
  };
44
84
  //# sourceMappingURL=errorHelper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../src/errorHelper.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;AAIlC;;;;;;;;;;;;;;GAcG;AACU,QAAA,MAAM,GAA4C;IAC7D;;OAEG;IACH,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,gDAAgD;KAC9D;IAED;;OAEG;IACH,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,gCAAgC;KAC9C;IAED;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,sDAAsD;KACpE;CACF,CAAA"}
1
+ {"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../src/errorHelper.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;;AAIlC;;;;;;;;;;;;;;GAcG;AACU,QAAA,MAAM,GAA4C;IAC7D;;OAEG;IACH,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,gDAAgD;KAC9D;IAED;;OAEG;IACH,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,gCAAgC;KAC9C;IAED;;OAEG;IACH,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,sDAAsD;KACpE;IAED,uEAAuE;IACvE,6BAA6B,EAAE;QAC7B,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,6CAA6C;KAC3D;IAED,8DAA8D;IAC9D,sBAAsB,EAAE;QACtB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,wDAAwD;KACtE;IAED,uEAAuE;IACvE,wBAAwB,EAAE;QACxB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,qDAAqD;KACnE;IAED,wEAAwE;IACxE,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,2CAA2C;KACzD;IAED,iEAAiE;IACjE,oBAAoB,EAAE;QACpB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,4CAA4C;KAC1D;IAED,0DAA0D;IAC1D,6BAA6B,EAAE;QAC7B,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,kDAAkD;KAChE;IAED,iEAAiE;IACjE,wBAAwB,EAAE;QACxB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,uCAAuC;KACrD;IAED,qEAAqE;IACrE,qBAAqB,EAAE;QACrB,IAAI,EAAE,CAAC,MAAM;QACb,WAAW,EAAE,mCAAmC;KACjD;CACF,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@microsoft/agents-hosting-storage-blob",
4
- "version": "1.9.0-beta.8.gf58e66b2ee",
4
+ "version": "1.9.1",
5
5
  "homepage": "https://github.com/microsoft/Agents-for-js",
6
6
  "repository": {
7
7
  "type": "git",
@@ -18,9 +18,9 @@
18
18
  "dependencies": {
19
19
  "@azure/core-auth": "1.10.1",
20
20
  "@azure/storage-blob": "12.31.0",
21
- "@microsoft/agents-hosting": "1.9.0-beta.8.gf58e66b2ee",
22
- "@microsoft/agents-activity": "1.9.0-beta.8.gf58e66b2ee",
23
- "@microsoft/agents-telemetry": "1.9.0-beta.8.gf58e66b2ee",
21
+ "@microsoft/agents-hosting": "1.9.1",
22
+ "@microsoft/agents-activity": "1.9.1",
23
+ "@microsoft/agents-telemetry": "1.9.1",
24
24
  "zod": "3.25.75"
25
25
  },
26
26
  "license": "MIT",
@@ -1,82 +1,39 @@
1
1
  import * as z from 'zod'
2
2
  import StreamConsumers from 'stream/consumers'
3
3
  import { isTokenCredential, TokenCredential } from '@azure/core-auth'
4
- import {
5
- AnonymousCredential,
6
- ContainerClient,
7
- StoragePipelineOptions,
8
- StorageSharedKeyCredential,
9
- } from '@azure/storage-blob'
10
- import { Storage, StoreItems } from '@microsoft/agents-hosting'
4
+ import { AnonymousCredential, ContainerClient, StoragePipelineOptions, StorageSharedKeyCredential } from '@azure/storage-blob'
5
+ import { getStorageWriteExpiry, StorageDeleteOptions, StorageDeleteResults, StorageOperationStatus, StorageReadResults, StorageWriteMode, StorageWriteOptions, StorageWriteResults, Storage, StorageV2, StoreItems } from '@microsoft/agents-hosting'
11
6
  import { ExceptionHelper } from '@microsoft/agents-activity'
12
7
  import { Errors } from './errorHelper'
13
8
  import { sanitizeBlobKey } from './blobsTranscriptStore'
14
9
  import { ignoreError, isStatusCodeError } from './ignoreError'
15
- import { trace, debug } from '@microsoft/agents-telemetry'
10
+ import { trace, debug, redactString } from '@microsoft/agents-telemetry'
16
11
  import { BlobsStorageTraceDefinitions } from './observability'
17
12
 
18
13
  const logger = debug('agents:blob-storage')
14
+ const expirationMetadataKey = 'agentsstorageexpiresat'
19
15
 
20
- /**
21
- * Options for configuring the BlobsStorage.
22
- */
16
+ /** Options for configuring Blob storage. */
23
17
  export interface BlobsStorageOptions {
24
- /**
25
- * Optional Azure Storage pipeline options to customize request behavior
26
- */
18
+ /** Optional Azure Storage pipeline options to customize request behavior. */
27
19
  storagePipelineOptions?: StoragePipelineOptions;
28
20
  }
29
21
 
30
- /**
31
- * A class that implements the Storage interface using Azure Blob Storage.
32
- * Provides persistence for bot state data using Azure's Blob Storage service.
33
- */
34
- export class BlobsStorage implements Storage {
35
- private readonly _containerClient: ContainerClient
22
+ /** Shared Blob client setup and raw Blob primitives. */
23
+ class BlobsStorageInternals {
24
+ readonly _containerClient: ContainerClient
36
25
  private readonly _concurrency = Infinity
37
26
  private _initializePromise?: Promise<unknown>
38
27
 
39
- /**
40
- * Creates a new instance of the BlobsStorage class.
41
- *
42
- * @param containerName The name of the Blob container to use
43
- * @param connectionString Optional, The Azure Storage connection string
44
- * @param options Optional configuration settings for the storage provider
45
- * @param url Optional URL to the blob service (used instead of connectionString if provided)
46
- * @param credential Optional credential for authentication (used with url if provided)
47
- */
48
- constructor (
49
- containerName: string,
50
- connectionString?: string,
51
- options?: BlobsStorageOptions,
52
- url = '',
53
- credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential
54
- ) {
28
+ constructor (containerName: string, connectionString?: string, options?: BlobsStorageOptions, url = '', credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential) {
55
29
  if (url.trim() !== '') {
56
- z.object({ url: z.string() }).parse({
57
- url,
58
- })
59
-
30
+ z.object({ url: z.string() }).parse({ url })
60
31
  this._containerClient = new ContainerClient(url, credential, options?.storagePipelineOptions)
61
-
62
- if (url.trim() === 'UseDevelopmentStorage=true;') {
63
- this._concurrency = 1
64
- }
32
+ if (url.trim() === 'UseDevelopmentStorage=true;') this._concurrency = 1
65
33
  } else {
66
- z.object({ connectionString: z.string(), containerName: z.string() }).parse({
67
- connectionString,
68
- containerName,
69
- })
70
-
71
- this._containerClient = new ContainerClient(
72
- connectionString!,
73
- containerName,
74
- options?.storagePipelineOptions
75
- )
76
-
77
- if (connectionString!.trim() === 'UseDevelopmentStorage=true;') {
78
- this._concurrency = 1
79
- }
34
+ z.object({ connectionString: z.string(), containerName: z.string() }).parse({ connectionString, containerName })
35
+ this._containerClient = new ContainerClient(connectionString!, containerName, options?.storagePipelineOptions)
36
+ if (connectionString!.trim() === 'UseDevelopmentStorage=true;') this._concurrency = 1
80
37
  }
81
38
  logger.info('BlobsStorage settings loaded', {
82
39
  container: containerName,
@@ -88,111 +45,332 @@ export class BlobsStorage implements Storage {
88
45
  })
89
46
  }
90
47
 
91
- private toJSON (): unknown {
92
- return { name: 'BlobsStorage' }
48
+ _initialize (): Promise<unknown> {
49
+ if (!this._initializePromise) this._initializePromise = this._containerClient.createIfNotExists()
50
+ return this._initializePromise
93
51
  }
94
52
 
95
- private _initialize (): Promise<unknown> {
96
- if (!this._initializePromise) {
97
- this._initializePromise = this._containerClient.createIfNotExists()
53
+ async getVersion (key: string): Promise<string | undefined> {
54
+ try {
55
+ return (await this._containerClient.getBlobClient(sanitizeBlobKey(key)).getProperties()).etag
56
+ } catch (err) {
57
+ if (isStatusCodeError(404)(err as Error)) return undefined
58
+ throwStorageOperationError('read version', key, err)
98
59
  }
99
- return this._initializePromise
60
+ }
61
+ }
62
+
63
+ /** A legacy Azure Blob storage provider. */
64
+ export class BlobsStorage extends BlobsStorageInternals implements Storage {
65
+ constructor (containerName: string, connectionString?: string, options?: BlobsStorageOptions, url = '', credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential) {
66
+ super(containerName, connectionString, options, url, credential)
100
67
  }
101
68
 
102
69
  /**
103
- * Reads storage items from blob storage.
70
+ * Reads legacy items from Azure Blob Storage.
104
71
  *
105
- * @param keys Array of item keys to read
106
- * @returns A promise that resolves to a StoreItems object containing the retrieved items
107
- * @throws Will throw if keys parameter is invalid or if there's an error reading from storage
72
+ * @param keys The keys to read.
73
+ * @returns Existing items keyed by storage key. Missing blobs are omitted and returned items
74
+ * include the Blob ETag as their legacy `eTag`.
108
75
  */
109
76
  async read (keys: string[]): Promise<StoreItems> {
110
77
  return trace(BlobsStorageTraceDefinitions.read, async ({ record }) => {
111
78
  record({ keyCount: keys?.length ?? 0 })
112
79
  z.object({ keys: z.array(z.string()) }).parse({ keys })
113
-
114
80
  await this._initialize()
115
-
116
- const results = await Promise.all(keys.map(async (key) => {
117
- const result = { key, value: undefined }
118
-
119
- const blob = await ignoreError(
120
- this._containerClient.getBlobClient(sanitizeBlobKey(key)).download(),
121
- isStatusCodeError(404)
122
- )
123
-
124
- if (!blob) {
125
- return result
126
- }
127
-
128
- const { etag: eTag, readableStreamBody } = blob
129
- if (!readableStreamBody) {
130
- return result
131
- }
132
-
133
- const parsed = (await StreamConsumers.json(readableStreamBody)) as any
134
- result.value = { ...parsed, eTag }
135
- logger.debug(`Read blob: ${key}, eTag: ${eTag}`)
81
+ const results = await Promise.all(keys.map(async key => {
82
+ const result = { key, value: undefined as unknown }
83
+ const blob = await ignoreError(this._containerClient.getBlobClient(sanitizeBlobKey(key)).download(), isStatusCodeError(404))
84
+ if (!blob?.readableStreamBody) return result
85
+ const parsed = await StreamConsumers.json(blob.readableStreamBody) as Record<string, unknown>
86
+ result.value = { ...parsed, eTag: blob.etag }
87
+ logger.debug(`Read blob: ${key}, eTag: ${blob.etag}`)
136
88
  return result
137
89
  }))
138
-
139
- return results.reduce((acc, { key, value }) => (value ? { ...acc, [key]: value } : acc), {})
90
+ return results.reduce<StoreItems>((items, { key, value }) => value ? { ...items, [key]: value } : items, {})
140
91
  })
141
92
  }
142
93
 
143
94
  /**
144
- * Writes storage items to blob storage.
95
+ * Writes legacy items to Azure Blob Storage.
145
96
  *
146
- * @param changes The items to write to storage
147
- * @returns A promise that resolves when the write operation is complete
148
- * @throws Will throw if there's a validation error, eTag conflict, or other storage error
97
+ * @param changes The items to write, keyed by storage key.
98
+ * @throws If the input is invalid, Blob Storage cannot complete the write, or a legacy `eTag`
99
+ * condition fails.
149
100
  */
150
101
  async write (changes: StoreItems): Promise<void> {
151
102
  return trace(BlobsStorageTraceDefinitions.write, async ({ record }) => {
103
+ record({ keyCount: changes ? Object.keys(changes).length : 0 })
152
104
  z.record(z.unknown()).parse(changes)
153
- record({ keyCount: Object.keys(changes).length })
154
-
155
105
  await this._initialize()
156
-
157
- await Promise.all(
158
- Object.entries(changes).map(async ([key, { eTag = '', ...change }]) => {
159
- try {
160
- const blob = this._containerClient.getBlockBlobClient(sanitizeBlobKey(key))
161
- const serialized = JSON.stringify(change)
162
- logger.debug(`Writing blob: ${key}, eTag: ${eTag}, size: ${serialized.length}`)
163
- return await blob.upload(serialized, serialized.length, {
164
- conditions: typeof eTag === 'string' && eTag !== '*' ? { ifMatch: eTag } : {},
165
- blobHTTPHeaders: { blobContentType: 'application/json' },
166
- })
167
- } catch (err: any) {
168
- if (err.statusCode === 412) {
169
- throw ExceptionHelper.generateException(Error, Errors.ETagConflict)
170
- } else {
171
- throw err
172
- }
106
+ await Promise.all(Object.entries(changes).map(async ([key, { eTag = '', ...change }]) => {
107
+ try {
108
+ const blob = this._containerClient.getBlockBlobClient(sanitizeBlobKey(key))
109
+ const serialized = JSON.stringify(change)
110
+ logger.debug(`Writing blob: ${key}, eTag: ${eTag}, size: ${serialized.length}`)
111
+ const conditions = typeof eTag === 'string' && eTag !== '*'
112
+ ? { ifMatch: eTag }
113
+ : {}
114
+ await blob.upload(serialized, serialized.length, {
115
+ conditions,
116
+ blobHTTPHeaders: { blobContentType: 'application/json' },
117
+ })
118
+ } catch (err: any) {
119
+ if (err.statusCode === 412) {
120
+ throw ExceptionHelper.generateException(Error, Errors.ETagConflict, undefined, { key })
173
121
  }
174
- })
175
- )
122
+ throw ExceptionHelper.generateException(Error, Errors.StorageWriteFailed, err, { key })
123
+ }
124
+ }))
176
125
  })
177
126
  }
178
127
 
179
128
  /**
180
- * Deletes storage items from blob storage.
129
+ * Deletes legacy items from Azure Blob Storage.
181
130
  *
182
- * @param keys Array of item keys to delete
183
- * @returns A promise that resolves when the delete operation is complete
184
- * @throws Will throw if keys parameter is invalid
131
+ * @param keys The keys to delete. Missing blobs are ignored.
185
132
  */
186
133
  async delete (keys: string[]): Promise<void> {
187
134
  return trace(BlobsStorageTraceDefinitions.delete, async ({ record }) => {
188
135
  record({ keyCount: keys?.length ?? 0 })
189
136
  z.object({ keys: z.array(z.string()) }).parse({ keys })
190
-
191
137
  await this._initialize()
138
+ await Promise.all(keys.map(key => ignoreError(this._containerClient.deleteBlob(sanitizeBlobKey(key)), isStatusCodeError(404))))
139
+ })
140
+ }
141
+ }
142
+
143
+ /**
144
+ * An Azure Blob Storage provider for the structured {@link StorageV2} contract.
145
+ *
146
+ * This is the V2 counterpart to {@link BlobsStorage} and accepts the same connection settings.
147
+ * It returns a result for every requested key and exposes the Azure Blob ETag as the separate
148
+ * storage `version`, preserving any `eTag` property in an application value. Writes support
149
+ * create-only, replace, and expected-version conditions to detect concurrent updates.
150
+ */
151
+ export class BlobsStorageV2 extends StorageV2 {
152
+ private readonly internals: BlobsStorageInternals
153
+
154
+ /**
155
+ * Creates a V2 Azure Blob Storage provider.
156
+ *
157
+ * @param containerName The Blob container name when using a connection string.
158
+ * @param connectionString The Azure Storage connection string.
159
+ * @param options Optional Azure Storage pipeline options.
160
+ * @param url The Blob service or container URL when using a credential.
161
+ * @param credential The credential used with `url`.
162
+ */
163
+ constructor (containerName: string, connectionString?: string, options?: BlobsStorageOptions, url = '', credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential) {
164
+ super()
165
+ this.internals = new BlobsStorageInternals(containerName, connectionString, options, url, credential)
166
+ }
167
+
168
+ /**
169
+ * Reads Blob values and ETag versions.
170
+ *
171
+ * @param keys The keys to read. Empty batches are valid.
172
+ * @returns A result for every key, with `notFound` for missing blobs and the Blob ETag as the
173
+ * version for successful reads.
174
+ */
175
+ async read<T extends object = Record<string, unknown>> (keys: string[]): Promise<StorageReadResults<T>> {
176
+ return trace(BlobsStorageTraceDefinitions.read, async ({ record }) => {
177
+ record({ keyCount: keys?.length ?? 0 })
178
+ validateV2Keys(keys)
179
+ if (keys.length === 0) return {}
180
+ await this.internals._initialize()
181
+ const results: StorageReadResults<T> = {}
182
+ await Promise.all(keys.map(async key => {
183
+ try {
184
+ const { etag: version, metadata, readableStreamBody } = await this.internals._containerClient.getBlobClient(sanitizeBlobKey(key)).download()
185
+ if (!readableStreamBody) {
186
+ results[key] = { key, status: StorageOperationStatus.NotFound }
187
+ return
188
+ }
189
+ if (isExpired(metadata?.[expirationMetadataKey])) {
190
+ readableStreamBody.destroy()
191
+ logger.info('Blob expired, deleting from storage', {
192
+ key: redactString(key, true),
193
+ eTag: redactString(version, true),
194
+ expiresAt: metadata?.[expirationMetadataKey],
195
+ })
196
+ await ignoreError(this.internals._containerClient.deleteBlob(sanitizeBlobKey(key), { conditions: { ifMatch: version } }), isStatusCodeError(404, 412))
197
+ results[key] = { key, status: StorageOperationStatus.NotFound }
198
+ return
199
+ }
200
+ const value = await StreamConsumers.json(readableStreamBody) as T
201
+ results[key] = { key, status: StorageOperationStatus.Succeeded, value, version }
202
+ logger.debug(`Read blob: ${key}, eTag: ${version}`)
203
+ } catch (err) {
204
+ if (isStatusCodeError(404)(err as Error)) {
205
+ results[key] = { key, status: StorageOperationStatus.NotFound }
206
+ return
207
+ }
208
+ throwStorageOperationError('read', key, err)
209
+ }
210
+ }))
211
+ return results
212
+ })
213
+ }
192
214
 
193
- await Promise.all(
194
- keys.map((key) => ignoreError(this._containerClient.deleteBlob(sanitizeBlobKey(key)), isStatusCodeError(404)))
195
- )
215
+ /**
216
+ * Writes Blob values with optional concurrency conditions.
217
+ *
218
+ * @param changes The values to write, keyed by storage key.
219
+ * @param options Create-only, replace, or expected-version conditions.
220
+ * @returns A result for every supplied key, including Blob concurrency-condition outcomes.
221
+ */
222
+ async write<T extends object = Record<string, unknown>> (changes: Record<string, T>, options?: StorageWriteOptions): Promise<StorageWriteResults> {
223
+ return trace(BlobsStorageTraceDefinitions.write, async ({ record }) => {
224
+ record({ keyCount: changes ? Object.keys(changes).length : 0 })
225
+ validateExpectedVersion(options?.expectedVersion)
226
+ validateV2Changes(changes)
227
+ const mode = options?.mode ?? StorageWriteMode.Upsert
228
+ validateWriteMode(mode)
229
+ if (Object.keys(changes).length === 0) return {}
230
+ await this.internals._initialize()
231
+ const results: StorageWriteResults = {}
232
+ const expiresAt = getStorageWriteExpiry(options)
233
+ await Promise.all(Object.entries(changes).map(async ([key, change]) => {
234
+ const blob = this.internals._containerClient.getBlockBlobClient(sanitizeBlobKey(key))
235
+ const needsCurrentVersion = mode !== StorageWriteMode.Upsert || options?.expectedVersion !== undefined
236
+ const currentVersion = needsCurrentVersion
237
+ ? await this.internals.getVersion(key)
238
+ : undefined
239
+ if (mode === StorageWriteMode.CreateOnly && currentVersion !== undefined) {
240
+ results[key] = { key, status: StorageOperationStatus.Conflict, version: currentVersion }
241
+ return
242
+ }
243
+ if (mode === StorageWriteMode.Replace && currentVersion === undefined) {
244
+ results[key] = { key, status: StorageOperationStatus.NotFound }
245
+ return
246
+ }
247
+ if (options?.expectedVersion !== undefined && options.expectedVersion !== currentVersion) {
248
+ results[key] = { key, status: StorageOperationStatus.ConditionNotMet, version: currentVersion }
249
+ return
250
+ }
251
+ const serialized = JSON.stringify(change)
252
+ const conditions = mode === StorageWriteMode.CreateOnly
253
+ ? { ifNoneMatch: '*' }
254
+ : options?.expectedVersion !== undefined
255
+ ? { ifMatch: options.expectedVersion }
256
+ : mode === StorageWriteMode.Replace && currentVersion !== undefined
257
+ ? { ifMatch: currentVersion }
258
+ : undefined
259
+ try {
260
+ const response = await blob.upload(serialized, serialized.length, {
261
+ conditions,
262
+ blobHTTPHeaders: { blobContentType: 'application/json' },
263
+ metadata: expiresAt === undefined ? {} : { [expirationMetadataKey]: expiresAt.toString() },
264
+ })
265
+ results[key] = { key, status: StorageOperationStatus.Succeeded, version: response.etag }
266
+ } catch (err) {
267
+ const statusCode = (err as { statusCode?: number }).statusCode
268
+ if (mode === StorageWriteMode.CreateOnly && (statusCode === 409 || statusCode === 412)) {
269
+ results[key] = { key, status: StorageOperationStatus.Conflict, version: currentVersion }
270
+ return
271
+ }
272
+ if (statusCode === 412) {
273
+ results[key] = { key, status: StorageOperationStatus.ConditionNotMet, version: currentVersion }
274
+ return
275
+ }
276
+ if (statusCode === 404) {
277
+ results[key] = { key, status: StorageOperationStatus.NotFound }
278
+ return
279
+ }
280
+ throwStorageOperationError('write', key, err)
281
+ }
282
+ }))
283
+ return results
284
+ })
285
+ }
286
+
287
+ /**
288
+ * Deletes Blob values with an optional ETag version condition.
289
+ *
290
+ * @param keys The keys to delete. Empty batches are valid.
291
+ * @param options An optional expected Blob ETag version.
292
+ * @returns A result for every supplied key.
293
+ */
294
+ async delete (keys: string[], options?: StorageDeleteOptions): Promise<StorageDeleteResults> {
295
+ return trace(BlobsStorageTraceDefinitions.delete, async ({ record }) => {
296
+ record({ keyCount: keys?.length ?? 0 })
297
+ validateExpectedVersion(options?.expectedVersion)
298
+ validateV2Keys(keys)
299
+ if (keys.length === 0) return {}
300
+ await this.internals._initialize()
301
+ const results: StorageDeleteResults = {}
302
+ await Promise.all(keys.map(async key => {
303
+ let currentVersion: string | undefined
304
+ if (options?.expectedVersion !== undefined) {
305
+ currentVersion = await this.internals.getVersion(key)
306
+ if (currentVersion === undefined) {
307
+ results[key] = { key, status: StorageOperationStatus.NotFound }
308
+ return
309
+ }
310
+ if (options.expectedVersion !== currentVersion) {
311
+ results[key] = { key, status: StorageOperationStatus.ConditionNotMet, version: currentVersion }
312
+ return
313
+ }
314
+ }
315
+ try {
316
+ const deleteOptions = options?.expectedVersion === undefined
317
+ ? undefined
318
+ : { conditions: { ifMatch: options.expectedVersion } }
319
+ await this.internals._containerClient.deleteBlob(sanitizeBlobKey(key), deleteOptions)
320
+ results[key] = { key, status: StorageOperationStatus.Succeeded, version: currentVersion }
321
+ } catch (err) {
322
+ const statusCode = (err as { statusCode?: number }).statusCode
323
+ if (statusCode === 412) {
324
+ results[key] = { key, status: StorageOperationStatus.ConditionNotMet, version: currentVersion }
325
+ return
326
+ }
327
+ if (statusCode === 404) {
328
+ results[key] = { key, status: StorageOperationStatus.NotFound }
329
+ return
330
+ }
331
+ throwStorageOperationError('delete', key, err)
332
+ }
333
+ }))
334
+ return results
196
335
  })
197
336
  }
198
337
  }
338
+
339
+ function validateExpectedVersion (expectedVersion: string | undefined): void {
340
+ if (expectedVersion === '') throw ExceptionHelper.generateException(RangeError, Errors.StorageV2ExpectedVersionEmpty)
341
+ }
342
+
343
+ function validateWriteMode (mode: StorageWriteMode): void {
344
+ if (!Object.values(StorageWriteMode).includes(mode)) {
345
+ throw ExceptionHelper.generateException(RangeError, Errors.StorageV2WriteModeUnsupported, undefined, { mode: String(mode) })
346
+ }
347
+ }
348
+
349
+ function validateV2Changes (changes: Record<string, unknown>): void {
350
+ if (changes === null || typeof changes !== 'object' || Array.isArray(changes)) {
351
+ throw ExceptionHelper.generateException(ReferenceError, Errors.StorageV2ChangesRequired)
352
+ }
353
+ if (Object.keys(changes).some(key => key.trim() === '')) {
354
+ throw ExceptionHelper.generateException(ReferenceError, Errors.StorageV2KeyRequired)
355
+ }
356
+ if (Object.values(changes).some(value => value === null || typeof value !== 'object' || Array.isArray(value))) {
357
+ throw ExceptionHelper.generateException(TypeError, Errors.StorageV2ValueRequired)
358
+ }
359
+ }
360
+
361
+ function validateV2Keys (keys: string[]): void {
362
+ if (!Array.isArray(keys)) throw ExceptionHelper.generateException(ReferenceError, Errors.StorageV2KeysRequired)
363
+ if (keys.some(key => typeof key !== 'string' || key.trim() === '')) {
364
+ throw ExceptionHelper.generateException(ReferenceError, Errors.StorageV2KeyRequired)
365
+ }
366
+ }
367
+
368
+ function throwStorageOperationError (operation: string, key: string, error: unknown): never {
369
+ throw ExceptionHelper.generateException(Error, Errors.StorageV2OperationFailed, error instanceof Error ? error : undefined, { operation, key })
370
+ }
371
+
372
+ function isExpired (expiresAt?: string): boolean {
373
+ if (expiresAt === undefined) return false
374
+ const timestamp = Number(expiresAt)
375
+ return Number.isFinite(timestamp) && timestamp <= Date.now()
376
+ }