@venturialstd/backblaze 0.0.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.
Files changed (66) hide show
  1. package/README.md +105 -0
  2. package/dist/backblaze.module.d.ts +3 -0
  3. package/dist/backblaze.module.d.ts.map +1 -0
  4. package/dist/backblaze.module.js +26 -0
  5. package/dist/backblaze.module.js.map +1 -0
  6. package/dist/client/backblaze.client.d.ts +17 -0
  7. package/dist/client/backblaze.client.d.ts.map +1 -0
  8. package/dist/client/backblaze.client.js +133 -0
  9. package/dist/client/backblaze.client.js.map +1 -0
  10. package/dist/constants/backblaze-client.constant.d.ts +8 -0
  11. package/dist/constants/backblaze-client.constant.d.ts.map +1 -0
  12. package/dist/constants/backblaze-client.constant.js +12 -0
  13. package/dist/constants/backblaze-client.constant.js.map +1 -0
  14. package/dist/constants/backblaze.constant.d.ts +25 -0
  15. package/dist/constants/backblaze.constant.d.ts.map +1 -0
  16. package/dist/constants/backblaze.constant.js +28 -0
  17. package/dist/constants/backblaze.constant.js.map +1 -0
  18. package/dist/constants/backblaze.settings.constants.d.ts +6 -0
  19. package/dist/constants/backblaze.settings.constants.d.ts.map +1 -0
  20. package/dist/constants/backblaze.settings.constants.js +9 -0
  21. package/dist/constants/backblaze.settings.constants.js.map +1 -0
  22. package/dist/dtos/create-bucket.dto.d.ts +6 -0
  23. package/dist/dtos/create-bucket.dto.d.ts.map +1 -0
  24. package/dist/dtos/create-bucket.dto.js +29 -0
  25. package/dist/dtos/create-bucket.dto.js.map +1 -0
  26. package/dist/dtos/list-objects.dto.d.ts +9 -0
  27. package/dist/dtos/list-objects.dto.d.ts.map +1 -0
  28. package/dist/dtos/list-objects.dto.js +53 -0
  29. package/dist/dtos/list-objects.dto.js.map +1 -0
  30. package/dist/dtos/put-object.dto.d.ts +12 -0
  31. package/dist/dtos/put-object.dto.d.ts.map +1 -0
  32. package/dist/dtos/put-object.dto.js +58 -0
  33. package/dist/dtos/put-object.dto.js.map +1 -0
  34. package/dist/enums/backblaze.enums.d.ts +37 -0
  35. package/dist/enums/backblaze.enums.d.ts.map +1 -0
  36. package/dist/enums/backblaze.enums.js +44 -0
  37. package/dist/enums/backblaze.enums.js.map +1 -0
  38. package/dist/index.d.ts +16 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +32 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/interfaces/backblaze-credentials.interface.d.ts +24 -0
  43. package/dist/interfaces/backblaze-credentials.interface.d.ts.map +1 -0
  44. package/dist/interfaces/backblaze-credentials.interface.js +3 -0
  45. package/dist/interfaces/backblaze-credentials.interface.js.map +1 -0
  46. package/dist/interfaces/backblaze-service.interface.d.ts +73 -0
  47. package/dist/interfaces/backblaze-service.interface.d.ts.map +1 -0
  48. package/dist/interfaces/backblaze-service.interface.js +3 -0
  49. package/dist/interfaces/backblaze-service.interface.js.map +1 -0
  50. package/dist/services/backblaze-bucket.service.d.ts +46 -0
  51. package/dist/services/backblaze-bucket.service.d.ts.map +1 -0
  52. package/dist/services/backblaze-bucket.service.js +107 -0
  53. package/dist/services/backblaze-bucket.service.js.map +1 -0
  54. package/dist/services/backblaze-object.service.d.ts +56 -0
  55. package/dist/services/backblaze-object.service.d.ts.map +1 -0
  56. package/dist/services/backblaze-object.service.js +165 -0
  57. package/dist/services/backblaze-object.service.js.map +1 -0
  58. package/dist/settings/backblaze.settings.d.ts +3 -0
  59. package/dist/settings/backblaze.settings.d.ts.map +1 -0
  60. package/dist/settings/backblaze.settings.js +43 -0
  61. package/dist/settings/backblaze.settings.js.map +1 -0
  62. package/dist/utils/s3-xml.util.d.ts +11 -0
  63. package/dist/utils/s3-xml.util.d.ts.map +1 -0
  64. package/dist/utils/s3-xml.util.js +36 -0
  65. package/dist/utils/s3-xml.util.js.map +1 -0
  66. package/package.json +35 -0
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Bucket ACL supported by Backblaze B2 (bucket level only).
3
+ */
4
+ export declare enum BucketAcl {
5
+ Private = "private",
6
+ PublicRead = "public-read"
7
+ }
8
+ /**
9
+ * Common content types for Put Object. Use the enum value or pass a custom string.
10
+ */
11
+ export declare enum ContentType {
12
+ ApplicationOctetStream = "application/octet-stream",
13
+ ApplicationJson = "application/json",
14
+ TextPlain = "text/plain",
15
+ TextHtml = "text/html",
16
+ TextCsv = "text/csv",
17
+ ImageJpeg = "image/jpeg",
18
+ ImagePng = "image/png",
19
+ ImageGif = "image/gif",
20
+ ImageWebp = "image/webp",
21
+ ImageSvgXml = "image/svg+xml",
22
+ MultipartFormData = "multipart/form-data"
23
+ }
24
+ /**
25
+ * S3/Backblaze storage class (when returned in list/get).
26
+ */
27
+ export declare enum StorageClass {
28
+ Standard = "STANDARD"
29
+ }
30
+ /**
31
+ * Known Backblaze regions for type safety.
32
+ */
33
+ export declare enum BackblazeRegion {
34
+ UsWest004 = "us-west-004",
35
+ EuCentral003 = "eu-central-003"
36
+ }
37
+ //# sourceMappingURL=backblaze.enums.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.enums.d.ts","sourceRoot":"","sources":["../../src/enums/backblaze.enums.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,UAAU,gBAAgB;CAC3B;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,sBAAsB,6BAA6B;IACnD,eAAe,qBAAqB;IACpC,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,OAAO,aAAa;IACpB,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,WAAW,kBAAkB;IAC7B,iBAAiB,wBAAwB;CAC1C;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,SAAS,gBAAgB;IACzB,YAAY,mBAAmB;CAChC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BackblazeRegion = exports.StorageClass = exports.ContentType = exports.BucketAcl = void 0;
4
+ /**
5
+ * Bucket ACL supported by Backblaze B2 (bucket level only).
6
+ */
7
+ var BucketAcl;
8
+ (function (BucketAcl) {
9
+ BucketAcl["Private"] = "private";
10
+ BucketAcl["PublicRead"] = "public-read";
11
+ })(BucketAcl || (exports.BucketAcl = BucketAcl = {}));
12
+ /**
13
+ * Common content types for Put Object. Use the enum value or pass a custom string.
14
+ */
15
+ var ContentType;
16
+ (function (ContentType) {
17
+ ContentType["ApplicationOctetStream"] = "application/octet-stream";
18
+ ContentType["ApplicationJson"] = "application/json";
19
+ ContentType["TextPlain"] = "text/plain";
20
+ ContentType["TextHtml"] = "text/html";
21
+ ContentType["TextCsv"] = "text/csv";
22
+ ContentType["ImageJpeg"] = "image/jpeg";
23
+ ContentType["ImagePng"] = "image/png";
24
+ ContentType["ImageGif"] = "image/gif";
25
+ ContentType["ImageWebp"] = "image/webp";
26
+ ContentType["ImageSvgXml"] = "image/svg+xml";
27
+ ContentType["MultipartFormData"] = "multipart/form-data";
28
+ })(ContentType || (exports.ContentType = ContentType = {}));
29
+ /**
30
+ * S3/Backblaze storage class (when returned in list/get).
31
+ */
32
+ var StorageClass;
33
+ (function (StorageClass) {
34
+ StorageClass["Standard"] = "STANDARD";
35
+ })(StorageClass || (exports.StorageClass = StorageClass = {}));
36
+ /**
37
+ * Known Backblaze regions for type safety.
38
+ */
39
+ var BackblazeRegion;
40
+ (function (BackblazeRegion) {
41
+ BackblazeRegion["UsWest004"] = "us-west-004";
42
+ BackblazeRegion["EuCentral003"] = "eu-central-003";
43
+ })(BackblazeRegion || (exports.BackblazeRegion = BackblazeRegion = {}));
44
+ //# sourceMappingURL=backblaze.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.enums.js","sourceRoot":"","sources":["../../src/enums/backblaze.enums.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,uCAA0B,CAAA;AAC5B,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED;;GAEG;AACH,IAAY,WAYX;AAZD,WAAY,WAAW;IACrB,kEAAmD,CAAA;IACnD,mDAAoC,CAAA;IACpC,uCAAwB,CAAA;IACxB,qCAAsB,CAAA;IACtB,mCAAoB,CAAA;IACpB,uCAAwB,CAAA;IACxB,qCAAsB,CAAA;IACtB,qCAAsB,CAAA;IACtB,uCAAwB,CAAA;IACxB,4CAA6B,CAAA;IAC7B,wDAAyC,CAAA;AAC3C,CAAC,EAZW,WAAW,2BAAX,WAAW,QAYtB;AAED;;GAEG;AACH,IAAY,YAEX;AAFD,WAAY,YAAY;IACtB,qCAAqB,CAAA;AACvB,CAAC,EAFW,YAAY,4BAAZ,YAAY,QAEvB;AAED;;GAEG;AACH,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;AACjC,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B"}
@@ -0,0 +1,16 @@
1
+ export * from './client/backblaze.client';
2
+ export * from './constants/backblaze-client.constant';
3
+ export * from './constants/backblaze.constant';
4
+ export * from './constants/backblaze.settings.constants';
5
+ export * from './dtos/create-bucket.dto';
6
+ export * from './dtos/list-objects.dto';
7
+ export * from './dtos/put-object.dto';
8
+ export * from './enums/backblaze.enums';
9
+ export * from './interfaces/backblaze-credentials.interface';
10
+ export * from './interfaces/backblaze-service.interface';
11
+ export * from './backblaze.module';
12
+ export * from './services/backblaze-bucket.service';
13
+ export * from './services/backblaze-object.service';
14
+ export * from './settings/backblaze.settings';
15
+ export * from './utils/s3-xml.util';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
package/dist/index.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./client/backblaze.client"), exports);
18
+ __exportStar(require("./constants/backblaze-client.constant"), exports);
19
+ __exportStar(require("./constants/backblaze.constant"), exports);
20
+ __exportStar(require("./constants/backblaze.settings.constants"), exports);
21
+ __exportStar(require("./dtos/create-bucket.dto"), exports);
22
+ __exportStar(require("./dtos/list-objects.dto"), exports);
23
+ __exportStar(require("./dtos/put-object.dto"), exports);
24
+ __exportStar(require("./enums/backblaze.enums"), exports);
25
+ __exportStar(require("./interfaces/backblaze-credentials.interface"), exports);
26
+ __exportStar(require("./interfaces/backblaze-service.interface"), exports);
27
+ __exportStar(require("./backblaze.module"), exports);
28
+ __exportStar(require("./services/backblaze-bucket.service"), exports);
29
+ __exportStar(require("./services/backblaze-object.service"), exports);
30
+ __exportStar(require("./settings/backblaze.settings"), exports);
31
+ __exportStar(require("./utils/s3-xml.util"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,24 @@
1
+ import type { BACKBLAZE_HTTP_METHOD } from '../constants/backblaze-client.constant';
2
+ export interface BackblazeCredentials {
3
+ accessKeyId: string;
4
+ secretAccessKey: string;
5
+ }
6
+ export interface BackblazeOptions {
7
+ credentials?: BackblazeCredentials;
8
+ /** Region for the S3 endpoint, e.g. us-west-004 */
9
+ region?: string;
10
+ }
11
+ /** Parameters for an S3-Compatible request (signed with AWS Sig v4). */
12
+ export interface BackblazeRequestParams<T = unknown> {
13
+ options?: BackblazeOptions;
14
+ method: BACKBLAZE_HTTP_METHOD;
15
+ /** Path without or with bucket/key depending on the operation. E.g. /, /my-bucket, /my-bucket/path/to/key */
16
+ path: string;
17
+ /** Body: string (XML/JSON) or Buffer (binary). Included in the signature. */
18
+ body?: string | Buffer;
19
+ /** Additional headers (Content-Type, x-amz-acl, etc.). Included in the signature. */
20
+ headers?: Record<string, string>;
21
+ /** Default 'json'. Use 'arraybuffer' for downloads. For XML the client may parse to JSON. */
22
+ responseType?: 'json' | 'arraybuffer' | 'text';
23
+ }
24
+ //# sourceMappingURL=backblaze-credentials.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-credentials.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/backblaze-credentials.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,OAAO;IACjD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,6GAA6G;IAC7G,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;CAChD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=backblaze-credentials.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-credentials.interface.js","sourceRoot":"","sources":["../../src/interfaces/backblaze-credentials.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ import type { BackblazeOptions } from './backblaze-credentials.interface';
2
+ import type { BucketAcl } from '../enums/backblaze.enums';
3
+ /** Options for creating a bucket. */
4
+ export interface CreateBucketOptions extends BackblazeOptions {
5
+ /** Bucket ACL. Defaults to private if omitted. */
6
+ acl?: BucketAcl;
7
+ /** Region for CreateBucketConfiguration XML. If omitted, client region is used. */
8
+ region?: string;
9
+ }
10
+ /** Options for put object. */
11
+ export interface PutObjectOptions extends BackblazeOptions {
12
+ /** Content-Type header. Use ContentType enum or a custom MIME type string. */
13
+ contentType?: string;
14
+ }
15
+ /** Options for get object. */
16
+ export interface GetObjectOptions extends BackblazeOptions {
17
+ /** Version ID for versioned buckets. */
18
+ versionId?: string;
19
+ }
20
+ /** Options for delete object. */
21
+ export interface DeleteObjectOptions extends BackblazeOptions {
22
+ /** Version ID for versioned buckets. */
23
+ versionId?: string;
24
+ }
25
+ /** Options for head object. */
26
+ export interface HeadObjectOptions extends BackblazeOptions {
27
+ /** Version ID for versioned buckets. */
28
+ versionId?: string;
29
+ }
30
+ /** Parameters for listing objects (List Objects V2). */
31
+ export interface ListObjectsV2Params {
32
+ /** Prefix to filter keys. */
33
+ prefix?: string;
34
+ /** Maximum number of keys to return (1–1000). */
35
+ maxKeys?: number;
36
+ /** Continuation token for pagination. */
37
+ continuationToken?: string;
38
+ /** Start listing after this key. */
39
+ startAfter?: string;
40
+ }
41
+ /** Normalized result of List Buckets (developer-friendly). */
42
+ export interface ListBucketsResult {
43
+ /** List of buckets. */
44
+ buckets: Array<{
45
+ name: string;
46
+ creationDate?: string;
47
+ }>;
48
+ /** Bucket owner from S3 response. */
49
+ owner?: {
50
+ id?: string;
51
+ displayName?: string;
52
+ };
53
+ }
54
+ /** Normalized result of List Objects V2 (developer-friendly). */
55
+ export interface ListObjectsV2Result {
56
+ /** List of object entries. */
57
+ objects: Array<{
58
+ key?: string;
59
+ lastModified?: string;
60
+ etag?: string;
61
+ size?: number;
62
+ storageClass?: string;
63
+ }>;
64
+ /** Whether the list is truncated (more results available). */
65
+ isTruncated: boolean;
66
+ /** Total number of keys returned. */
67
+ keyCount: number;
68
+ /** Token for the next page. Present when isTruncated is true. */
69
+ nextContinuationToken?: string;
70
+ /** Prefix that was applied. */
71
+ prefix?: string;
72
+ }
73
+ //# sourceMappingURL=backblaze-service.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-service.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/backblaze-service.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,qCAAqC;AACrC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,kDAAkD;IAClD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8BAA8B;AAC9B,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8BAA8B;AAC9B,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,qCAAqC;IACrC,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,iEAAiE;AACjE,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=backblaze-service.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-service.interface.js","sourceRoot":"","sources":["../../src/interfaces/backblaze-service.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { BackblazeClient } from '../client/backblaze.client';
2
+ import { BackblazeOptions } from '../interfaces/backblaze-credentials.interface';
3
+ import type { CreateBucketOptions, ListBucketsResult } from '../interfaces/backblaze-service.interface';
4
+ /** Bucket as returned by S3 ListBuckets (parsed XML). */
5
+ export interface S3Bucket {
6
+ Name: string;
7
+ CreationDate?: string;
8
+ }
9
+ /** S3 ListBuckets response (ListAllMyBucketsResult). */
10
+ export interface S3ListBucketsResponse {
11
+ ListAllMyBucketsResult?: {
12
+ Buckets?: {
13
+ Bucket?: S3Bucket | S3Bucket[];
14
+ };
15
+ Owner?: {
16
+ ID?: string;
17
+ DisplayName?: string;
18
+ };
19
+ };
20
+ }
21
+ export declare class BackblazeBucketService {
22
+ private readonly client;
23
+ constructor(client: BackblazeClient);
24
+ /**
25
+ * Lists all buckets. Returns a normalized result for easier consumption.
26
+ */
27
+ listBuckets(options?: BackblazeOptions): Promise<ListBucketsResult>;
28
+ /**
29
+ * Raw S3 List Buckets response (XML parsed to JSON). Use when you need the full structure.
30
+ */
31
+ listBucketsRaw(options?: BackblazeOptions): Promise<S3ListBucketsResponse>;
32
+ /**
33
+ * Creates a bucket. Use BucketAcl enum for the acl option.
34
+ */
35
+ createBucket(bucketName: string, options?: CreateBucketOptions): Promise<void>;
36
+ /**
37
+ * Deletes a bucket. The bucket must be empty.
38
+ */
39
+ deleteBucket(bucketName: string, options?: BackblazeOptions): Promise<void>;
40
+ /**
41
+ * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist.
42
+ */
43
+ headBucket(bucketName: string, options?: BackblazeOptions): Promise<void>;
44
+ private normalizeListBucketsResponse;
45
+ }
46
+ //# sourceMappingURL=backblaze-bucket.service.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BackblazeBucketService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const backblaze_client_1 = require("../client/backblaze.client");
15
+ const backblaze_client_constant_1 = require("../constants/backblaze-client.constant");
16
+ const s3_xml_util_1 = require("../utils/s3-xml.util");
17
+ let BackblazeBucketService = class BackblazeBucketService {
18
+ client;
19
+ constructor(client) {
20
+ this.client = client;
21
+ }
22
+ /**
23
+ * Lists all buckets. Returns a normalized result for easier consumption.
24
+ */
25
+ listBuckets(options) {
26
+ return this.client
27
+ .request({
28
+ options,
29
+ method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.GET,
30
+ path: '/',
31
+ responseType: 'text',
32
+ })
33
+ .then((raw) => this.normalizeListBucketsResponse(raw));
34
+ }
35
+ /**
36
+ * Raw S3 List Buckets response (XML parsed to JSON). Use when you need the full structure.
37
+ */
38
+ listBucketsRaw(options) {
39
+ return this.client.request({
40
+ options,
41
+ method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.GET,
42
+ path: '/',
43
+ responseType: 'text',
44
+ });
45
+ }
46
+ /**
47
+ * Creates a bucket. Use BucketAcl enum for the acl option.
48
+ */
49
+ createBucket(bucketName, options) {
50
+ const region = options?.region;
51
+ const body = region ? (0, s3_xml_util_1.createBucketConfigurationXml)(region) : undefined;
52
+ const headers = {};
53
+ if (options?.acl != null)
54
+ headers['x-amz-acl'] = options.acl;
55
+ return this.client.request({
56
+ options,
57
+ method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.PUT,
58
+ path: `/${encodeURIComponent(bucketName)}`,
59
+ body,
60
+ headers: Object.keys(headers).length ? headers : undefined,
61
+ responseType: 'text',
62
+ });
63
+ }
64
+ /**
65
+ * Deletes a bucket. The bucket must be empty.
66
+ */
67
+ deleteBucket(bucketName, options) {
68
+ return this.client.request({
69
+ options,
70
+ method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.DELETE,
71
+ path: `/${encodeURIComponent(bucketName)}`,
72
+ responseType: 'text',
73
+ });
74
+ }
75
+ /**
76
+ * Checks if a bucket exists (HEAD request). Throws if the bucket does not exist.
77
+ */
78
+ headBucket(bucketName, options) {
79
+ return this.client.request({
80
+ options,
81
+ method: backblaze_client_constant_1.BACKBLAZE_HTTP_METHOD.HEAD,
82
+ path: `/${encodeURIComponent(bucketName)}`,
83
+ responseType: 'text',
84
+ });
85
+ }
86
+ normalizeListBucketsResponse(raw) {
87
+ const result = raw?.ListAllMyBucketsResult;
88
+ const bucketOrList = result?.Buckets?.Bucket;
89
+ const buckets = Array.isArray(bucketOrList)
90
+ ? bucketOrList
91
+ : bucketOrList
92
+ ? [bucketOrList]
93
+ : [];
94
+ return {
95
+ buckets: buckets.map((b) => ({ name: b.Name, creationDate: b.CreationDate })),
96
+ owner: result?.Owner
97
+ ? { id: result.Owner.ID, displayName: result.Owner.DisplayName }
98
+ : undefined,
99
+ };
100
+ }
101
+ };
102
+ exports.BackblazeBucketService = BackblazeBucketService;
103
+ exports.BackblazeBucketService = BackblazeBucketService = __decorate([
104
+ (0, common_1.Injectable)(),
105
+ __metadata("design:paramtypes", [backblaze_client_1.BackblazeClient])
106
+ ], BackblazeBucketService);
107
+ //# sourceMappingURL=backblaze-bucket.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-bucket.service.js","sourceRoot":"","sources":["../../src/services/backblaze-bucket.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { BackblazeClient } from '../client/backblaze.client';
2
+ import { BackblazeOptions } from '../interfaces/backblaze-credentials.interface';
3
+ import type { DeleteObjectOptions, GetObjectOptions, HeadObjectOptions, ListObjectsV2Params, ListObjectsV2Result, PutObjectOptions } from '../interfaces/backblaze-service.interface';
4
+ /** S3 object entry (ListObjectsV2). */
5
+ export interface S3ObjectEntry {
6
+ Key?: string;
7
+ LastModified?: string;
8
+ ETag?: string;
9
+ Size?: number;
10
+ StorageClass?: string;
11
+ }
12
+ /** S3 ListObjectsV2 response (parsed XML). */
13
+ export interface S3ListObjectsV2Response {
14
+ ListBucketResult?: {
15
+ Name?: string;
16
+ Prefix?: string;
17
+ MaxKeys?: number;
18
+ KeyCount?: number | string;
19
+ IsTruncated?: boolean | string;
20
+ ContinuationToken?: string;
21
+ NextContinuationToken?: string;
22
+ Contents?: S3ObjectEntry | S3ObjectEntry[];
23
+ };
24
+ }
25
+ export declare class BackblazeObjectService {
26
+ private readonly client;
27
+ constructor(client: BackblazeClient);
28
+ /**
29
+ * Uploads an object. Use ContentType enum for common types, or pass a custom string.
30
+ */
31
+ putObject(bucketName: string, key: string, body: Buffer | Uint8Array, options?: PutObjectOptions): Promise<void>;
32
+ /**
33
+ * Downloads an object. Returns the body as ArrayBuffer.
34
+ */
35
+ getObject(bucketName: string, key: string, options?: GetObjectOptions): Promise<ArrayBuffer>;
36
+ /**
37
+ * Deletes an object. Optionally specify versionId for versioned buckets.
38
+ */
39
+ deleteObject(bucketName: string, key: string, options?: DeleteObjectOptions): Promise<void>;
40
+ /**
41
+ * Lists objects in a bucket. Returns a normalized result for easier consumption.
42
+ * Use ListObjectsV2Params for prefix, maxKeys, pagination, etc.
43
+ */
44
+ listObjectsV2(bucketName: string, params?: ListObjectsV2Params, options?: BackblazeOptions): Promise<ListObjectsV2Result>;
45
+ /**
46
+ * Raw S3 List Objects V2 response (XML parsed to JSON). Use when you need the full structure.
47
+ */
48
+ listObjectsV2Raw(bucketName: string, params?: ListObjectsV2Params, options?: BackblazeOptions): Promise<S3ListObjectsV2Response>;
49
+ /**
50
+ * Returns object metadata (Content-Length, Content-Type, ETag, etc.) in response headers.
51
+ */
52
+ headObject(bucketName: string, key: string, options?: HeadObjectOptions): Promise<Record<string, string>>;
53
+ private normalizeListObjectsV2Response;
54
+ private encodeKey;
55
+ }
56
+ //# sourceMappingURL=backblaze-object.service.d.ts.map
@@ -0,0 +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"}