@venturialstd/backblaze 0.0.1 → 0.0.3

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 (62) hide show
  1. package/README.md +40 -8
  2. package/dist/client/backblaze.client.d.ts +1 -0
  3. package/dist/client/backblaze.client.d.ts.map +1 -1
  4. package/dist/client/backblaze.client.js +26 -4
  5. package/dist/client/backblaze.client.js.map +1 -1
  6. package/dist/constants/backblaze.settings.constants.d.ts +1 -0
  7. package/dist/constants/backblaze.settings.constants.d.ts.map +1 -1
  8. package/dist/constants/backblaze.settings.constants.js +1 -0
  9. package/dist/constants/backblaze.settings.constants.js.map +1 -1
  10. package/dist/dtos/create-bucket.dto.d.ts +2 -0
  11. package/dist/dtos/create-bucket.dto.d.ts.map +1 -1
  12. package/dist/dtos/create-bucket.dto.js +7 -0
  13. package/dist/dtos/create-bucket.dto.js.map +1 -1
  14. package/dist/dtos/delete-bucket.dto.d.ts +4 -0
  15. package/dist/dtos/delete-bucket.dto.d.ts.map +1 -0
  16. package/dist/dtos/delete-bucket.dto.js +22 -0
  17. package/dist/dtos/delete-bucket.dto.js.map +1 -0
  18. package/dist/dtos/delete-object.dto.d.ts +6 -0
  19. package/dist/dtos/delete-object.dto.d.ts.map +1 -0
  20. package/dist/dtos/delete-object.dto.js +33 -0
  21. package/dist/dtos/delete-object.dto.js.map +1 -0
  22. package/dist/dtos/get-object.dto.d.ts +6 -0
  23. package/dist/dtos/get-object.dto.d.ts.map +1 -0
  24. package/dist/dtos/get-object.dto.js +33 -0
  25. package/dist/dtos/get-object.dto.js.map +1 -0
  26. package/dist/dtos/head-bucket.dto.d.ts +4 -0
  27. package/dist/dtos/head-bucket.dto.d.ts.map +1 -0
  28. package/dist/dtos/head-bucket.dto.js +22 -0
  29. package/dist/dtos/head-bucket.dto.js.map +1 -0
  30. package/dist/dtos/head-object.dto.d.ts +6 -0
  31. package/dist/dtos/head-object.dto.d.ts.map +1 -0
  32. package/dist/dtos/head-object.dto.js +33 -0
  33. package/dist/dtos/head-object.dto.js.map +1 -0
  34. package/dist/dtos/list-objects.dto.d.ts +1 -1
  35. package/dist/dtos/list-objects.dto.d.ts.map +1 -1
  36. package/dist/dtos/list-objects.dto.js +2 -2
  37. package/dist/dtos/list-objects.dto.js.map +1 -1
  38. package/dist/dtos/put-object.dto.d.ts +1 -1
  39. package/dist/dtos/put-object.dto.d.ts.map +1 -1
  40. package/dist/dtos/put-object.dto.js +2 -2
  41. package/dist/dtos/put-object.dto.js.map +1 -1
  42. package/dist/errors/backblaze-s3.error.d.ts +47 -0
  43. package/dist/errors/backblaze-s3.error.d.ts.map +1 -0
  44. package/dist/errors/backblaze-s3.error.js +52 -0
  45. package/dist/errors/backblaze-s3.error.js.map +1 -0
  46. package/dist/index.d.ts +6 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +6 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/services/backblaze-bucket.service.d.ts +10 -7
  51. package/dist/services/backblaze-bucket.service.d.ts.map +1 -1
  52. package/dist/services/backblaze-bucket.service.js +12 -12
  53. package/dist/services/backblaze-bucket.service.js.map +1 -1
  54. package/dist/services/backblaze-object.service.d.ts +18 -13
  55. package/dist/services/backblaze-object.service.d.ts.map +1 -1
  56. package/dist/services/backblaze-object.service.js +52 -42
  57. package/dist/services/backblaze-object.service.js.map +1 -1
  58. package/dist/utils/s3-xml.util.d.ts +4 -0
  59. package/dist/utils/s3-xml.util.d.ts.map +1 -1
  60. package/dist/utils/s3-xml.util.js +16 -0
  61. package/dist/utils/s3-xml.util.js.map +1 -1
  62. package/package.json +5 -3
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BackblazeS3ErrorCode = exports.BackblazeS3Error = void 0;
4
+ /**
5
+ * Thrown when the S3-Compatible API returns an error (4xx/5xx).
6
+ * Exposes the S3 error Code, Message, HTTP status, and optional details for programmatic handling.
7
+ */
8
+ class BackblazeS3Error extends Error {
9
+ code;
10
+ statusCode;
11
+ requestId;
12
+ resource;
13
+ key;
14
+ bucketName;
15
+ details;
16
+ constructor(code, message, statusCode, details = {}) {
17
+ super(message);
18
+ this.name = 'BackblazeS3Error';
19
+ this.code = code;
20
+ this.statusCode = statusCode;
21
+ this.requestId = details.RequestId;
22
+ this.resource = details.Resource;
23
+ this.key = details.Key;
24
+ this.bucketName = details.BucketName;
25
+ this.details = details;
26
+ Object.setPrototypeOf(this, BackblazeS3Error.prototype);
27
+ }
28
+ /** Whether this is a "not found" type error (NoSuchKey, NoSuchBucket). */
29
+ get isNotFound() {
30
+ return this.code === 'NoSuchKey' || this.code === 'NoSuchBucket' || this.code === '404';
31
+ }
32
+ /** Whether this is an access denied / forbidden error. */
33
+ get isAccessDenied() {
34
+ return this.code === 'AccessDenied' || this.code === '403';
35
+ }
36
+ }
37
+ exports.BackblazeS3Error = BackblazeS3Error;
38
+ /** Common S3 error codes for type-safe checks. */
39
+ exports.BackblazeS3ErrorCode = {
40
+ AccessDenied: 'AccessDenied',
41
+ BucketAlreadyExists: 'BucketAlreadyExists',
42
+ BucketAlreadyOwnedByYou: 'BucketAlreadyOwnedByYou',
43
+ InvalidBucketName: 'InvalidBucketName',
44
+ NoSuchBucket: 'NoSuchBucket',
45
+ NoSuchKey: 'NoSuchKey',
46
+ NotFound: '404',
47
+ PreconditionFailed: 'PreconditionFailed',
48
+ RequestTimeout: 'RequestTimeout',
49
+ ServiceUnavailable: 'ServiceUnavailable',
50
+ InternalError: 'InternalError',
51
+ };
52
+ //# sourceMappingURL=backblaze-s3.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-s3.error.js","sourceRoot":"","sources":["../../src/errors/backblaze-s3.error.ts"],"names":[],"mappings":";;;AAcA;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,SAAS,CAAU;IACnB,QAAQ,CAAU;IAClB,GAAG,CAAU;IACb,UAAU,CAAU;IACpB,OAAO,CAAiB;IAEjC,YACE,IAAY,EACZ,OAAe,EACf,UAAkB,EAClB,UAA0B,EAAE;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAA+B,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAA8B,CAAC;QACvD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAyB,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAgC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IAC1F,CAAC;IAED,0DAA0D;IAC1D,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IAC7D,CAAC;CACF;AApCD,4CAoCC;AAED,kDAAkD;AACrC,QAAA,oBAAoB,GAAG;IAClC,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,uBAAuB,EAAE,yBAAyB;IAClD,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,oBAAoB;IACxC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;CACtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,9 +3,15 @@ export * from './constants/backblaze-client.constant';
3
3
  export * from './constants/backblaze.constant';
4
4
  export * from './constants/backblaze.settings.constants';
5
5
  export * from './dtos/create-bucket.dto';
6
+ export * from './dtos/delete-bucket.dto';
7
+ export * from './dtos/delete-object.dto';
8
+ export * from './dtos/get-object.dto';
9
+ export * from './dtos/head-bucket.dto';
10
+ export * from './dtos/head-object.dto';
6
11
  export * from './dtos/list-objects.dto';
7
12
  export * from './dtos/put-object.dto';
8
13
  export * from './enums/backblaze.enums';
14
+ export * from './errors/backblaze-s3.error';
9
15
  export * from './interfaces/backblaze-credentials.interface';
10
16
  export * from './interfaces/backblaze-service.interface';
11
17
  export * from './backblaze.module';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0CAA0C,CAAC;AACzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,oBAAoB,CAAC;AACnC,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -19,9 +19,15 @@ __exportStar(require("./constants/backblaze-client.constant"), exports);
19
19
  __exportStar(require("./constants/backblaze.constant"), exports);
20
20
  __exportStar(require("./constants/backblaze.settings.constants"), exports);
21
21
  __exportStar(require("./dtos/create-bucket.dto"), exports);
22
+ __exportStar(require("./dtos/delete-bucket.dto"), exports);
23
+ __exportStar(require("./dtos/delete-object.dto"), exports);
24
+ __exportStar(require("./dtos/get-object.dto"), exports);
25
+ __exportStar(require("./dtos/head-bucket.dto"), exports);
26
+ __exportStar(require("./dtos/head-object.dto"), exports);
22
27
  __exportStar(require("./dtos/list-objects.dto"), exports);
23
28
  __exportStar(require("./dtos/put-object.dto"), exports);
24
29
  __exportStar(require("./enums/backblaze.enums"), exports);
30
+ __exportStar(require("./errors/backblaze-s3.error"), exports);
25
31
  __exportStar(require("./interfaces/backblaze-credentials.interface"), exports);
26
32
  __exportStar(require("./interfaces/backblaze-service.interface"), exports);
27
33
  __exportStar(require("./backblaze.module"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wEAAsD;AACtD,iEAA+C;AAC/C,2EAAyD;AACzD,2DAAyC;AACzC,0DAAwC;AACxC,wDAAsC;AACtC,0DAAwC;AACxC,+EAA6D;AAC7D,2EAAyD;AACzD,qDAAmC;AACnC,sEAAoD;AACpD,sEAAoD;AACpD,gEAA8C;AAC9C,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,wEAAsD;AACtD,iEAA+C;AAC/C,2EAAyD;AACzD,2DAAyC;AACzC,2DAAyC;AACzC,2DAAyC;AACzC,wDAAsC;AACtC,yDAAuC;AACvC,yDAAuC;AACvC,0DAAwC;AACxC,wDAAsC;AACtC,0DAAwC;AACxC,8DAA4C;AAC5C,+EAA6D;AAC7D,2EAAyD;AACzD,qDAAmC;AACnC,sEAAoD;AACpD,sEAAoD;AACpD,gEAA8C;AAC9C,sDAAoC"}
@@ -1,6 +1,9 @@
1
1
  import { BackblazeClient } from '../client/backblaze.client';
2
+ import type { CreateBucketDto } from '../dtos/create-bucket.dto';
3
+ import type { DeleteBucketDto } from '../dtos/delete-bucket.dto';
4
+ import type { HeadBucketDto } from '../dtos/head-bucket.dto';
2
5
  import { BackblazeOptions } from '../interfaces/backblaze-credentials.interface';
3
- import type { CreateBucketOptions, ListBucketsResult } from '../interfaces/backblaze-service.interface';
6
+ import type { ListBucketsResult } from '../interfaces/backblaze-service.interface';
4
7
  /** Bucket as returned by S3 ListBuckets (parsed XML). */
5
8
  export interface S3Bucket {
6
9
  Name: string;
@@ -30,17 +33,17 @@ export declare class BackblazeBucketService {
30
33
  */
31
34
  listBucketsRaw(options?: BackblazeOptions): Promise<S3ListBucketsResponse>;
32
35
  /**
33
- * Creates a bucket. Use BucketAcl enum for the acl option.
36
+ * Creates a bucket. Use CreateBucketDto with bucketName, optional acl and region.
34
37
  */
35
- createBucket(bucketName: string, options?: CreateBucketOptions): Promise<void>;
38
+ createBucket(dto: CreateBucketDto, options?: BackblazeOptions): Promise<void>;
36
39
  /**
37
- * Deletes a bucket. The bucket must be empty.
40
+ * Deletes a bucket. The bucket must be empty. Use DeleteBucketDto.
38
41
  */
39
- deleteBucket(bucketName: string, options?: BackblazeOptions): Promise<void>;
42
+ deleteBucket(dto: DeleteBucketDto, options?: BackblazeOptions): Promise<void>;
40
43
  /**
41
- * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist.
44
+ * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist. Use HeadBucketDto.
42
45
  */
43
- headBucket(bucketName: string, options?: BackblazeOptions): Promise<void>;
46
+ headBucket(dto: HeadBucketDto, options?: BackblazeOptions): Promise<void>;
44
47
  private normalizeListBucketsResponse;
45
48
  }
46
49
  //# sourceMappingURL=backblaze-bucket.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backblaze-bucket.service.d.ts","sourceRoot":"","sources":["../../src/services/backblaze-bucket.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAIxG,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,sBAAsB,CAAC,EAAE;QACvB,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAA;SAAE,CAAC;QAC7C,KAAK,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAED,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;OAEG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWnE;;OAEG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAS1E;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9E;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE,OAAO,CAAC,4BAA4B;CAerC"}
1
+ {"version":3,"file":"backblaze-bucket.service.d.ts","sourceRoot":"","sources":["../../src/services/backblaze-bucket.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAGnF,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,sBAAsB,CAAC,EAAE;QACvB,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAA;SAAE,CAAC;QAC7C,KAAK,CAAC,EAAE;YAAE,EAAE,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC/C,CAAC;CACH;AAED,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;OAEG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWnE;;OAEG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAS1E;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7E;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7E;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE,OAAO,CAAC,4BAA4B;CAerC"}
@@ -44,42 +44,42 @@ let BackblazeBucketService = class BackblazeBucketService {
44
44
  });
45
45
  }
46
46
  /**
47
- * Creates a bucket. Use BucketAcl enum for the acl option.
47
+ * Creates a bucket. Use CreateBucketDto with bucketName, optional acl and region.
48
48
  */
49
- createBucket(bucketName, options) {
50
- const region = options?.region;
49
+ createBucket(dto, options) {
50
+ const region = dto.region ?? options?.region;
51
51
  const body = region ? (0, s3_xml_util_1.createBucketConfigurationXml)(region) : undefined;
52
52
  const headers = {};
53
- if (options?.acl != null)
54
- headers['x-amz-acl'] = options.acl;
53
+ if (dto.acl != null)
54
+ headers['x-amz-acl'] = dto.acl;
55
55
  return this.client.request({
56
56
  options,
57
57
  method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.PUT,
58
- path: `/${encodeURIComponent(bucketName)}`,
58
+ path: `/${encodeURIComponent(dto.bucketName)}`,
59
59
  body,
60
60
  headers: Object.keys(headers).length ? headers : undefined,
61
61
  responseType: 'text',
62
62
  });
63
63
  }
64
64
  /**
65
- * Deletes a bucket. The bucket must be empty.
65
+ * Deletes a bucket. The bucket must be empty. Use DeleteBucketDto.
66
66
  */
67
- deleteBucket(bucketName, options) {
67
+ deleteBucket(dto, options) {
68
68
  return this.client.request({
69
69
  options,
70
70
  method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.DELETE,
71
- path: `/${encodeURIComponent(bucketName)}`,
71
+ path: `/${encodeURIComponent(dto.bucketName)}`,
72
72
  responseType: 'text',
73
73
  });
74
74
  }
75
75
  /**
76
- * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist.
76
+ * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist. Use HeadBucketDto.
77
77
  */
78
- headBucket(bucketName, options) {
78
+ headBucket(dto, options) {
79
79
  return this.client.request({
80
80
  options,
81
81
  method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.HEAD,
82
- path: `/${encodeURIComponent(bucketName)}`,
82
+ path: `/${encodeURIComponent(dto.bucketName)}`,
83
83
  responseType: 'text',
84
84
  });
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backblaze-bucket.service.js","sourceRoot":"","sources":["../../src/services/backblaze-bucket.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backblaze-bucket.service.js","sourceRoot":"","sources":["../../src/services/backblaze-bucket.service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import { BackblazeClient } from '../client/backblaze.client';
2
+ import type { DeleteObjectDto } from '../dtos/delete-object.dto';
3
+ import type { GetObjectDto } from '../dtos/get-object.dto';
4
+ import type { HeadObjectDto } from '../dtos/head-object.dto';
5
+ import type { ListObjectsDto } from '../dtos/list-objects.dto';
6
+ import type { PutObjectDto } from '../dtos/put-object.dto';
2
7
  import { BackblazeOptions } from '../interfaces/backblaze-credentials.interface';
3
- import type { DeleteObjectOptions, GetObjectOptions, HeadObjectOptions, ListObjectsV2Params, ListObjectsV2Result, PutObjectOptions } from '../interfaces/backblaze-service.interface';
8
+ import type { ListObjectsV2Result } from '../interfaces/backblaze-service.interface';
4
9
  /** S3 object entry (ListObjectsV2). */
5
10
  export interface S3ObjectEntry {
6
11
  Key?: string;
@@ -26,30 +31,30 @@ export declare class BackblazeObjectService {
26
31
  private readonly client;
27
32
  constructor(client: BackblazeClient);
28
33
  /**
29
- * Uploads an object. Use ContentType enum for common types, or pass a custom string.
34
+ * Uploads an object. Use PutObjectDto with bucket, key, body and optional contentType.
30
35
  */
31
- putObject(bucketName: string, key: string, body: Buffer | Uint8Array, options?: PutObjectOptions): Promise<void>;
36
+ putObject(dto: PutObjectDto, options?: BackblazeOptions): Promise<void>;
32
37
  /**
33
- * Downloads an object. Returns the body as ArrayBuffer.
38
+ * Downloads an object. Returns the body as ArrayBuffer. Use GetObjectDto.
34
39
  */
35
- getObject(bucketName: string, key: string, options?: GetObjectOptions): Promise<ArrayBuffer>;
40
+ getObject(dto: GetObjectDto, options?: BackblazeOptions): Promise<ArrayBuffer>;
36
41
  /**
37
- * Deletes an object. Optionally specify versionId for versioned buckets.
42
+ * Deletes an object. Use DeleteObjectDto. Optionally specify versionId for versioned buckets.
38
43
  */
39
- deleteObject(bucketName: string, key: string, options?: DeleteObjectOptions): Promise<void>;
44
+ deleteObject(dto: DeleteObjectDto, options?: BackblazeOptions): Promise<void>;
40
45
  /**
41
- * Lists objects in a bucket. Returns a normalized result for easier consumption.
42
- * Use ListObjectsV2Params for prefix, maxKeys, pagination, etc.
46
+ * Lists objects in a bucket. Returns a normalized result. Use ListObjectsDto.
43
47
  */
44
- listObjectsV2(bucketName: string, params?: ListObjectsV2Params, options?: BackblazeOptions): Promise<ListObjectsV2Result>;
48
+ listObjectsV2(dto: ListObjectsDto, options?: BackblazeOptions): Promise<ListObjectsV2Result>;
45
49
  /**
46
50
  * Raw S3 List Objects V2 response (XML parsed to JSON). Use when you need the full structure.
47
51
  */
48
- listObjectsV2Raw(bucketName: string, params?: ListObjectsV2Params, options?: BackblazeOptions): Promise<S3ListObjectsV2Response>;
52
+ listObjectsV2Raw(dto: ListObjectsDto, options?: BackblazeOptions): Promise<S3ListObjectsV2Response>;
49
53
  /**
50
- * Returns object metadata (Content-Length, Content-Type, ETag, etc.) in response headers.
54
+ * Returns object metadata (Content-Length, Content-Type, ETag, etc.) in response headers. Use HeadObjectDto.
51
55
  */
52
- headObject(bucketName: string, key: string, options?: HeadObjectOptions): Promise<Record<string, string>>;
56
+ headObject(dto: HeadObjectDto, options?: BackblazeOptions): Promise<Record<string, string>>;
57
+ private normalizeBody;
53
58
  private normalizeListObjectsV2Response;
54
59
  private encodeKey;
55
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backblaze-object.service.d.ts","sourceRoot":"","sources":["../../src/services/backblaze-object.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,2CAA2C,CAAC;AAEnD,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;KAC5C,CAAC;CACH;AAED,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;OAEG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,WAAW,CAAC;IAavB;;OAEG;IACH,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAahB;;;OAGG;IACH,aAAa,CACX,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IAkB/B;;OAEG;IACH,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC;IAgBnC;;OAEG;IACG,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAclC,OAAO,CAAC,8BAA8B;IAmBtC,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"backblaze-object.service.d.ts","sourceRoot":"","sources":["../../src/services/backblaze-object.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;KAC5C,CAAC;CACH;AAED,qBACa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAEpD;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvE;;OAEG;IACH,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAa9E;;OAEG;IACH,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7E;;OAEG;IACH,aAAa,CACX,GAAG,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IAmB/B;;OAEG;IACH,gBAAgB,CACd,GAAG,EAAE,cAAc,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,uBAAuB,CAAC;IAiBnC;;OAEG;IACG,UAAU,CACd,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAclC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,8BAA8B;IAmBtC,OAAO,CAAC,SAAS;CAMlB"}
@@ -20,12 +20,12 @@ let BackblazeObjectService = class BackblazeObjectService {
20
20
  this.client = client;
21
21
  }
22
22
  /**
23
- * Uploads an object. Use ContentType enum for common types, or pass a custom string.
23
+ * Uploads an object. Use PutObjectDto with bucket, key, body and optional contentType.
24
24
  */
25
- putObject(bucketName, key, body, options) {
26
- const buf = Buffer.isBuffer(body) ? body : Buffer.from(body);
27
- const contentType = options?.contentType ?? backblaze_enums_1.ContentType.ApplicationOctetStream;
28
- const path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
25
+ putObject(dto, options) {
26
+ const buf = this.normalizeBody(dto.body);
27
+ const contentType = dto.contentType ?? backblaze_enums_1.ContentType.ApplicationOctetStream;
28
+ const path = `/${encodeURIComponent(dto.bucketName)}/${this.encodeKey(dto.key)}`;
29
29
  const headers = {
30
30
  'Content-Length': String(buf.length),
31
31
  'Content-Type': contentType,
@@ -40,12 +40,12 @@ let BackblazeObjectService = class BackblazeObjectService {
40
40
  });
41
41
  }
42
42
  /**
43
- * Downloads an object. Returns the body as ArrayBuffer.
43
+ * Downloads an object. Returns the body as ArrayBuffer. Use GetObjectDto.
44
44
  */
45
- getObject(bucketName, key, options) {
46
- let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
47
- if (options?.versionId) {
48
- path += `?versionId=${encodeURIComponent(options.versionId)}`;
45
+ getObject(dto, options) {
46
+ let path = `/${encodeURIComponent(dto.bucketName)}/${this.encodeKey(dto.key)}`;
47
+ if (dto.versionId) {
48
+ path += `?versionId=${encodeURIComponent(dto.versionId)}`;
49
49
  }
50
50
  return this.client.request({
51
51
  options,
@@ -55,12 +55,12 @@ let BackblazeObjectService = class BackblazeObjectService {
55
55
  });
56
56
  }
57
57
  /**
58
- * Deletes an object. Optionally specify versionId for versioned buckets.
58
+ * Deletes an object. Use DeleteObjectDto. Optionally specify versionId for versioned buckets.
59
59
  */
60
- deleteObject(bucketName, key, options) {
61
- let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
62
- if (options?.versionId) {
63
- path += `?versionId=${encodeURIComponent(options.versionId)}`;
60
+ deleteObject(dto, options) {
61
+ let path = `/${encodeURIComponent(dto.bucketName)}/${this.encodeKey(dto.key)}`;
62
+ if (dto.versionId) {
63
+ path += `?versionId=${encodeURIComponent(dto.versionId)}`;
64
64
  }
65
65
  return this.client.request({
66
66
  options,
@@ -70,21 +70,20 @@ let BackblazeObjectService = class BackblazeObjectService {
70
70
  });
71
71
  }
72
72
  /**
73
- * Lists objects in a bucket. Returns a normalized result for easier consumption.
74
- * Use ListObjectsV2Params for prefix, maxKeys, pagination, etc.
73
+ * Lists objects in a bucket. Returns a normalized result. Use ListObjectsDto.
75
74
  */
76
- listObjectsV2(bucketName, params, options) {
75
+ listObjectsV2(dto, options) {
77
76
  const query = new URLSearchParams();
78
77
  query.set('list-type', '2');
79
- if (params?.prefix != null)
80
- query.set('prefix', params.prefix);
81
- if (params?.maxKeys != null)
82
- query.set('max-keys', String(params.maxKeys));
83
- if (params?.continuationToken != null)
84
- query.set('continuation-token', params.continuationToken);
85
- if (params?.startAfter != null)
86
- query.set('start-after', params.startAfter);
87
- const path = `/${encodeURIComponent(bucketName)}?${query.toString()}`;
78
+ if (dto.prefix != null)
79
+ query.set('prefix', dto.prefix);
80
+ if (dto.maxKeys != null)
81
+ query.set('max-keys', String(dto.maxKeys));
82
+ if (dto.continuationToken != null)
83
+ query.set('continuation-token', dto.continuationToken);
84
+ if (dto.startAfter != null)
85
+ query.set('start-after', dto.startAfter);
86
+ const path = `/${encodeURIComponent(dto.bucketName)}?${query.toString()}`;
88
87
  return this.client
89
88
  .request({
90
89
  options,
@@ -97,18 +96,18 @@ let BackblazeObjectService = class BackblazeObjectService {
97
96
  /**
98
97
  * Raw S3 List Objects V2 response (XML parsed to JSON). Use when you need the full structure.
99
98
  */
100
- listObjectsV2Raw(bucketName, params, options) {
99
+ listObjectsV2Raw(dto, options) {
101
100
  const query = new URLSearchParams();
102
101
  query.set('list-type', '2');
103
- if (params?.prefix != null)
104
- query.set('prefix', params.prefix);
105
- if (params?.maxKeys != null)
106
- query.set('max-keys', String(params.maxKeys));
107
- if (params?.continuationToken != null)
108
- query.set('continuation-token', params.continuationToken);
109
- if (params?.startAfter != null)
110
- query.set('start-after', params.startAfter);
111
- const path = `/${encodeURIComponent(bucketName)}?${query.toString()}`;
102
+ if (dto.prefix != null)
103
+ query.set('prefix', dto.prefix);
104
+ if (dto.maxKeys != null)
105
+ query.set('max-keys', String(dto.maxKeys));
106
+ if (dto.continuationToken != null)
107
+ query.set('continuation-token', dto.continuationToken);
108
+ if (dto.startAfter != null)
109
+ query.set('start-after', dto.startAfter);
110
+ const path = `/${encodeURIComponent(dto.bucketName)}?${query.toString()}`;
112
111
  return this.client.request({
113
112
  options,
114
113
  method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.GET,
@@ -117,12 +116,12 @@ let BackblazeObjectService = class BackblazeObjectService {
117
116
  });
118
117
  }
119
118
  /**
120
- * Returns object metadata (Content-Length, Content-Type, ETag, etc.) in response headers.
119
+ * Returns object metadata (Content-Length, Content-Type, ETag, etc.) in response headers. Use HeadObjectDto.
121
120
  */
122
- async headObject(bucketName, key, options) {
123
- let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
124
- if (options?.versionId) {
125
- path += `?versionId=${encodeURIComponent(options.versionId)}`;
121
+ async headObject(dto, options) {
122
+ let path = `/${encodeURIComponent(dto.bucketName)}/${this.encodeKey(dto.key)}`;
123
+ if (dto.versionId) {
124
+ path += `?versionId=${encodeURIComponent(dto.versionId)}`;
126
125
  }
127
126
  const res = await this.client.requestWithResponse({
128
127
  options,
@@ -132,6 +131,17 @@ let BackblazeObjectService = class BackblazeObjectService {
132
131
  });
133
132
  return res.headers;
134
133
  }
134
+ normalizeBody(body) {
135
+ if (body == null)
136
+ return Buffer.from([]);
137
+ if (Buffer.isBuffer(body))
138
+ return body;
139
+ if (body instanceof Uint8Array)
140
+ return Buffer.from(body);
141
+ if (typeof body === 'string')
142
+ return Buffer.from(body, 'utf8');
143
+ return Buffer.from([]);
144
+ }
135
145
  normalizeListObjectsV2Response(raw) {
136
146
  const result = raw?.ListBucketResult;
137
147
  const contents = result?.Contents;
@@ -1 +1 @@
1
- {"version":3,"file":"backblaze-object.service.js","sourceRoot":"","sources":["../../src/services/backblaze-object.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backblaze-object.service.js","sourceRoot":"","sources":["../../src/services/backblaze-object.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,iEAA6D;AAC7D,sFAA+E;AAM/E,8DAAuD;AA4BhD,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACJ;IAA7B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAExD;;OAEG;IACH,SAAS,CAAC,GAAiB,EAAE,OAA0B;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,IAAI,6BAAW,CAAC,sBAAsB,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,OAAO,GAA2B;YACtC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACpC,cAAc,EAAE,WAAW;SAC5B,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,GAAG;YACjC,IAAI;YACJ,IAAI,EAAE,GAAG;YACT,OAAO;YACP,YAAY,EAAE,MAAM;SACrB,CAAkB,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,GAAiB,EAAE,OAA0B;QACrD,IAAI,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,IAAI,cAAc,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,GAAG;YACjC,IAAI;YACJ,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,GAAoB,EAAE,OAA0B;QAC3D,IAAI,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,IAAI,cAAc,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,MAAM;YACpC,IAAI;YACJ,YAAY,EAAE,MAAM;SACrB,CAAkB,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,aAAa,CACX,GAAmB,EACnB,OAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,iBAAiB,IAAI,IAAI;YAC/B,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,MAAM;aACf,OAAO,CAAC;YACP,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,GAAG;YACjC,IAAI;YACJ,YAAY,EAAE,MAAM;SACrB,CAAC;aACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,GAA8B,CAAC,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,GAAmB,EACnB,OAA0B;QAE1B,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,iBAAiB,IAAI,IAAI;YAC/B,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,GAAG;YACjC,IAAI;YACJ,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,GAAkB,EAClB,OAA0B;QAE1B,IAAI,IAAI,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,IAAI,cAAc,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAChD,OAAO;YACP,MAAM,EAAE,iDAAqB,CAAC,IAAI;YAClC,IAAI;YACJ,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAEO,aAAa,CACnB,IAA0B;QAE1B,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,IAAI,YAAY,UAAU;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAEO,8BAA8B,CAAC,GAA4B;QACjE,MAAM,MAAM,GAAG,GAAG,EAAE,gBAAgB,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,YAAY,EAAE,CAAC,CAAC,YAAY;aAC7B,CAAC,CAAC;YACH,WAAW,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,IAAI,MAAM,EAAE,WAAW,KAAK,MAAM;YAC3E,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;YACxG,qBAAqB,EAAE,MAAM,EAAE,qBAAqB;YACpD,MAAM,EAAE,MAAM,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,OAAO,GAAG;aACP,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;aAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACF,CAAA;AA/JY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAE0B,kCAAe;GADzC,sBAAsB,CA+JlC"}
@@ -2,6 +2,10 @@
2
2
  * Parses S3 response XML (ListBuckets, ListObjects, etc.) to JSON.
3
3
  */
4
4
  export declare function parseXmlToJson(xml: string): Record<string, unknown>;
5
+ /**
6
+ * Parses S3 error response XML to a flat payload (Code, Message, Resource, etc.).
7
+ */
8
+ export declare function parseS3ErrorXml(body: string): Record<string, unknown> | undefined;
5
9
  /** Standard S3 namespace for bucket creation XML. */
6
10
  export declare const S3_XML_NS = "http://s3.amazonaws.com/doc/2006-03-01/";
7
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"s3-xml.util.d.ts","sourceRoot":"","sources":["../../src/utils/s3-xml.util.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGnE;AAED,qDAAqD;AACrD,eAAO,MAAM,SAAS,4CAA4C,CAAC;AAEnE;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE"}
1
+ {"version":3,"file":"s3-xml.util.d.ts","sourceRoot":"","sources":["../../src/utils/s3-xml.util.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGnE;AAID;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAUjF;AAED,qDAAqD;AACrD,eAAO,MAAM,SAAS,4CAA4C,CAAC;AAEnE;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnE"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.S3_XML_NS = void 0;
4
4
  exports.parseXmlToJson = parseXmlToJson;
5
+ exports.parseS3ErrorXml = parseS3ErrorXml;
5
6
  exports.createBucketConfigurationXml = createBucketConfigurationXml;
6
7
  const fast_xml_parser_1 = require("fast-xml-parser");
7
8
  const parser = new fast_xml_parser_1.XMLParser({
@@ -17,6 +18,21 @@ function parseXmlToJson(xml) {
17
18
  const result = parser.parse(xml);
18
19
  return (result && typeof result === 'object' ? result : {});
19
20
  }
21
+ const S3_ERROR_ROOT = 'Error';
22
+ /**
23
+ * Parses S3 error response XML to a flat payload (Code, Message, Resource, etc.).
24
+ */
25
+ function parseS3ErrorXml(body) {
26
+ if (!body || typeof body !== 'string' || !body.trim().startsWith('<?xml')) {
27
+ return undefined;
28
+ }
29
+ const parsed = parseXmlToJson(body);
30
+ const error = parsed?.[S3_ERROR_ROOT];
31
+ if (!error || typeof error !== 'object') {
32
+ return undefined;
33
+ }
34
+ return error;
35
+ }
20
36
  /** Standard S3 namespace for bucket creation XML. */
21
37
  exports.S3_XML_NS = 'http://s3.amazonaws.com/doc/2006-03-01/';
22
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"s3-xml.util.js","sourceRoot":"","sources":["../../src/utils/s3-xml.util.ts"],"names":[],"mappings":";;;AAYA,wCAGC;AAQD,oEAEC;AAzBD,qDAA4C;AAE5C,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;IAC3B,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;AACzF,CAAC;AAED,qDAAqD;AACxC,QAAA,SAAS,GAAG,yCAAyC,CAAC;AAEnE;;GAEG;AACH,SAAgB,4BAA4B,CAAC,MAAc;IACzD,OAAO,2EAA2E,iBAAS,yBAAyB,SAAS,CAAC,MAAM,CAAC,mDAAmD,CAAC;AAC3L,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"s3-xml.util.js","sourceRoot":"","sources":["../../src/utils/s3-xml.util.ts"],"names":[],"mappings":";;;AAYA,wCAGC;AAOD,0CAUC;AAQD,oEAEC;AA1CD,qDAA4C;AAE5C,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;IAC3B,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;AACzF,CAAC;AAED,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1E,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAA4B,CAAC;IAC/D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,qDAAqD;AACxC,QAAA,SAAS,GAAG,yCAAyC,CAAC;AAEnE;;GAEG;AACH,SAAgB,4BAA4B,CAAC,MAAc;IACzD,OAAO,2EAA2E,iBAAS,yBAAyB,SAAS,CAAC,MAAM,CAAC,mDAAmD,CAAC;AAC3L,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,13 @@
1
1
  {
2
2
  "name": "@venturialstd/backblaze",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Backblaze B2 S3-Compatible API client for Venturial (no AWS SDK)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "commonjs",
8
- "files": ["dist"],
8
+ "files": [
9
+ "dist"
10
+ ],
9
11
  "publishConfig": {
10
12
  "access": "public"
11
13
  },
@@ -24,7 +26,7 @@
24
26
  "@nestjs/axios": "^4.0.0",
25
27
  "@nestjs/common": "^11.0.11",
26
28
  "@nestjs/core": "^11.0.5",
27
- "@venturialstd/core": "^1.0.16",
29
+ "@venturialstd/core": "^2.0.0",
28
30
  "class-validator": "^0.14.1",
29
31
  "rxjs": "^7.8.1"
30
32
  },