@sphereon/ssi-sdk.kms-rest-client 0.34.1-feature.IDK.11.53 → 0.34.1-next.299

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.kms-rest-client",
3
3
  "description": "contains the client side to call REST endpoints of a KMS server",
4
- "version": "0.34.1-feature.IDK.11.53+3230e8fb",
4
+ "version": "0.34.1-next.299+9e9f5a50",
5
5
  "source": "src/index.ts",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
@@ -28,7 +28,7 @@
28
28
  "generate-plugin-schema": "tsx ../../packages/dev/bin/sphereon.js dev generate-plugin-schema"
29
29
  },
30
30
  "dependencies": {
31
- "@sphereon/ssi-types": "0.34.1-feature.IDK.11.53+3230e8fb",
31
+ "@sphereon/ssi-types": "0.34.1-next.299+9e9f5a50",
32
32
  "cross-fetch": "^3.1.8"
33
33
  },
34
34
  "devDependencies": {
@@ -56,5 +56,5 @@
56
56
  "KMS",
57
57
  "REST"
58
58
  ],
59
- "gitHead": "3230e8fbac34ec3e88c8907fbf55cdc95c696ed3"
59
+ "gitHead": "9e9f5a50ead9373a078cb5291cbc4fb1e7865dc2"
60
60
  }
@@ -115,11 +115,11 @@ export class KmsRestClient implements IAgentPlugin {
115
115
  })
116
116
  logger.debug(`get resolver response: ${response}`)
117
117
 
118
- try {
119
- return ResolverFromJSONTyped(await response.json(), false)
120
- } catch (error) {
121
- return Promise.reject(Error(`request to ${url} returned ${error}`))
118
+ if (!response.ok) {
119
+ return this.handleHttpError(url, response)
122
120
  }
121
+
122
+ return ResolverFromJSONTyped(await response.json(), false)
123
123
  }
124
124
 
125
125
  /** {@inheritDoc IKmsRestClient.kmsListResolvers} */
@@ -132,11 +132,11 @@ export class KmsRestClient implements IAgentPlugin {
132
132
  })
133
133
  logger.debug(`list resolvers response: ${response}`)
134
134
 
135
- try {
136
- return ListResolversResponseFromJSONTyped(await response.json(), false)
137
- } catch (error) {
138
- return Promise.reject(Error(`request to ${url} returned ${error}`))
135
+ if (!response.ok) {
136
+ return this.handleHttpError(url, response)
139
137
  }
138
+
139
+ return ListResolversResponseFromJSONTyped(await response.json(), false)
140
140
  }
141
141
 
142
142
  /** {@inheritDoc IKmsRestClient.kmsResolveKey} */
@@ -157,11 +157,11 @@ export class KmsRestClient implements IAgentPlugin {
157
157
  })
158
158
  logger.debug(`resolve key response: ${response}`)
159
159
 
160
- try {
161
- return ResolvedKeyInfoFromJSONTyped(await response.json(), false)
162
- } catch (error) {
163
- return Promise.reject(Error(`request to ${url} returned ${error}`))
160
+ if (!response.ok) {
161
+ return this.handleHttpError(url, response)
164
162
  }
163
+
164
+ return ResolvedKeyInfoFromJSONTyped(await response.json(), false)
165
165
  }
166
166
 
167
167
  /** {@inheritDoc IKmsRestClient.kmsCreateRawSignature} */
@@ -180,11 +180,11 @@ export class KmsRestClient implements IAgentPlugin {
180
180
  })
181
181
  logger.debug(`create raw signature response: ${response}`)
182
182
 
183
- try {
184
- return CreateRawSignatureResponseFromJSONTyped(await response.json(), false)
185
- } catch (error) {
186
- return Promise.reject(Error(`request to ${url} returned ${error}`))
183
+ if (!response.ok) {
184
+ return this.handleHttpError(url, response)
187
185
  }
186
+
187
+ return CreateRawSignatureResponseFromJSONTyped(await response.json(), false)
188
188
  }
189
189
 
190
190
  /** {@inheritDoc IKmsRestClient.kmsIsValidRawSignature} */
@@ -204,11 +204,11 @@ export class KmsRestClient implements IAgentPlugin {
204
204
  })
205
205
  logger.debug(`verify raw signature response: ${response}`)
206
206
 
207
- try {
208
- return VerifyRawSignatureResponseFromJSONTyped(await response.json(), false)
209
- } catch (error) {
210
- return Promise.reject(Error(`request to ${url} returned ${error}`))
207
+ if (!response.ok) {
208
+ return this.handleHttpError(url, response)
211
209
  }
210
+
211
+ return VerifyRawSignatureResponseFromJSONTyped(await response.json(), false)
212
212
  }
213
213
 
214
214
  /** {@inheritDoc IKmsRestClient.kmsGetKey} */
@@ -221,11 +221,11 @@ export class KmsRestClient implements IAgentPlugin {
221
221
  })
222
222
  logger.debug(`get key response: ${response}`)
223
223
 
224
- try {
225
- return GetKeyResponseFromJSONTyped(await response.json(), false)
226
- } catch (error) {
227
- return Promise.reject(Error(`request to ${url} returned ${error}`))
224
+ if (!response.ok) {
225
+ return this.handleHttpError(url, response)
228
226
  }
227
+
228
+ return GetKeyResponseFromJSONTyped(await response.json(), false)
229
229
  }
230
230
 
231
231
  /** {@inheritDoc IKmsRestClient.kmsListKeys} */
@@ -237,11 +237,11 @@ export class KmsRestClient implements IAgentPlugin {
237
237
  })
238
238
  logger.debug(`list keys response: ${response}`)
239
239
 
240
- try {
241
- return ListKeysResponseFromJSONTyped(await response.json(), false)
242
- } catch (error) {
243
- return Promise.reject(Error(`request to ${url} returned ${error}`))
240
+ if (!response.ok) {
241
+ return this.handleHttpError(url.toString(), response)
244
242
  }
243
+
244
+ return ListKeysResponseFromJSONTyped(await response.json(), false)
245
245
  }
246
246
 
247
247
  /** {@inheritDoc IKmsRestClient.kmsStoreKey} */
@@ -260,11 +260,11 @@ export class KmsRestClient implements IAgentPlugin {
260
260
  })
261
261
  logger.debug(`store key response: ${response}`)
262
262
 
263
- try {
264
- return StoreKeyResponseFromJSONTyped(await response.json(), false)
265
- } catch (error) {
266
- return Promise.reject(Error(`request to ${url} returned ${error}`))
263
+ if (!response.ok) {
264
+ return this.handleHttpError(url, response)
267
265
  }
266
+
267
+ return StoreKeyResponseFromJSONTyped(await response.json(), false)
268
268
  }
269
269
 
270
270
  /** {@inheritDoc IKmsRestClient.kmsGenerateKey} */
@@ -285,11 +285,11 @@ export class KmsRestClient implements IAgentPlugin {
285
285
  })
286
286
  logger.debug(`generate key response: ${response}`)
287
287
 
288
- try {
289
- return GenerateKeyResponseFromJSONTyped(await response.json(), false)
290
- } catch (error) {
291
- return Promise.reject(Error(`request to ${url} returned ${error}`))
288
+ if (!response.ok) {
289
+ return this.handleHttpError(url, response)
292
290
  }
291
+
292
+ return GenerateKeyResponseFromJSONTyped(await response.json(), false)
293
293
  }
294
294
 
295
295
  /** {@inheritDoc IKmsRestClient.kmsDeleteKey} */
@@ -297,9 +297,14 @@ export class KmsRestClient implements IAgentPlugin {
297
297
  const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)
298
298
  const url = KmsRestClient.urlWithBase(`/keys/${args.aliasOrKid}`, baseUrl)
299
299
 
300
- await fetch(url, {
300
+ const response = await fetch(url, {
301
301
  method: 'DELETE',
302
302
  })
303
+ logger.debug(`delete key response: ${response}`)
304
+
305
+ if (!response.ok) {
306
+ return this.handleHttpError(url, response)
307
+ }
303
308
 
304
309
  return true
305
310
  }
@@ -314,11 +319,11 @@ export class KmsRestClient implements IAgentPlugin {
314
319
  })
315
320
  logger.debug(`get provider response: ${response}`)
316
321
 
317
- try {
318
- return KeyProviderResponseFromJSONTyped(await response.json(), false)
319
- } catch (error) {
320
- return Promise.reject(Error(`request to ${url} returned ${error}`))
322
+ if (!response.ok) {
323
+ return this.handleHttpError(url, response)
321
324
  }
325
+
326
+ return KeyProviderResponseFromJSONTyped(await response.json(), false)
322
327
  }
323
328
 
324
329
  /** {@inheritDoc IKmsRestClient.kmsListKeyProviders} */
@@ -331,11 +336,11 @@ export class KmsRestClient implements IAgentPlugin {
331
336
  })
332
337
  logger.debug(`list providers response: ${response}`)
333
338
 
334
- try {
335
- return ListKeyProvidersResponseFromJSONTyped(await response.json(), false)
336
- } catch (error) {
337
- return Promise.reject(Error(`request to ${url} returned ${error}`))
339
+ if (!response.ok) {
340
+ return this.handleHttpError(url, response)
338
341
  }
342
+
343
+ return ListKeyProvidersResponseFromJSONTyped(await response.json(), false)
339
344
  }
340
345
 
341
346
  /** {@inheritDoc IKmsRestClient.kmsProviderListKeys} */
@@ -348,11 +353,11 @@ export class KmsRestClient implements IAgentPlugin {
348
353
  })
349
354
  logger.debug(`list provider keys response: ${response}`)
350
355
 
351
- try {
352
- return ListKeysResponseFromJSONTyped(await response.json(), false)
353
- } catch (error) {
354
- return Promise.reject(Error(`request to ${url} returned ${error}`))
356
+ if (!response.ok) {
357
+ return this.handleHttpError(url, response)
355
358
  }
359
+
360
+ return ListKeysResponseFromJSONTyped(await response.json(), false)
356
361
  }
357
362
 
358
363
  /** {@inheritDoc IKmsRestClient.kmsProviderStoreKey} */
@@ -371,11 +376,11 @@ export class KmsRestClient implements IAgentPlugin {
371
376
  })
372
377
  logger.debug(`provider store key response: ${response}`)
373
378
 
374
- try {
375
- return StoreKeyResponseFromJSONTyped(await response.json(), false)
376
- } catch (error) {
377
- return Promise.reject(Error(`request to ${url} returned ${error}`))
379
+ if (!response.ok) {
380
+ return this.handleHttpError(url, response)
378
381
  }
382
+
383
+ return StoreKeyResponseFromJSONTyped(await response.json(), false)
379
384
  }
380
385
 
381
386
  /** {@inheritDoc IKmsRestClient.kmsProviderGenerateKey} */
@@ -395,11 +400,11 @@ export class KmsRestClient implements IAgentPlugin {
395
400
  })
396
401
  logger.debug(`provider generate key response: ${response}`)
397
402
 
398
- try {
399
- return GenerateKeyResponseFromJSONTyped(await response.json(), false)
400
- } catch (error) {
401
- return Promise.reject(Error(`request to ${url} returned ${error}`))
403
+ if (!response.ok) {
404
+ return this.handleHttpError(url, response)
402
405
  }
406
+
407
+ return GenerateKeyResponseFromJSONTyped(await response.json(), false)
403
408
  }
404
409
 
405
410
  /** {@inheritDoc IKmsRestClient.kmsProviderGetKey} */
@@ -412,11 +417,11 @@ export class KmsRestClient implements IAgentPlugin {
412
417
  })
413
418
  logger.debug(`get provider key response: ${response}`)
414
419
 
415
- try {
416
- return GetKeyResponseFromJSONTyped(await response.json(), false)
417
- } catch (error) {
418
- return Promise.reject(Error(`request to ${url} returned ${error}`))
420
+ if (!response.ok) {
421
+ return this.handleHttpError(url, response)
419
422
  }
423
+
424
+ return GetKeyResponseFromJSONTyped(await response.json(), false)
420
425
  }
421
426
 
422
427
  /** {@inheritDoc IKmsRestClient.kmsProviderDeleteKey} */
@@ -424,9 +429,14 @@ export class KmsRestClient implements IAgentPlugin {
424
429
  const baseUrl = this.assertedAgentBaseUrl(args.baseUrl)
425
430
  const url = KmsRestClient.urlWithBase(`providers/${args.providerId}/keys/${args.aliasOrKid}`, baseUrl)
426
431
 
427
- await fetch(url, {
432
+ const response = await fetch(url, {
428
433
  method: 'DELETE',
429
434
  })
435
+ logger.debug(`delete key response: ${response}`)
436
+
437
+ if (!response.ok) {
438
+ return this.handleHttpError(url, response)
439
+ }
430
440
 
431
441
  return true
432
442
  }
@@ -465,4 +475,14 @@ export class KmsRestClient implements IAgentPlugin {
465
475
 
466
476
  return url
467
477
  }
478
+
479
+ private async handleHttpError(url: string, response: Response): Promise<never> {
480
+ const contentType = response.headers.get("content-type")
481
+ const isJson = contentType?.includes("application/json")
482
+ const responseBody = isJson
483
+ ? JSON.stringify(await response.json())
484
+ : await response.text()
485
+
486
+ return Promise.reject(Error(`request to ${url} returned http error ${response.status} - ${responseBody}`))
487
+ }
468
488
  }