@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
package/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # @venturialstd/backblaze
2
+
3
+ **Backblaze B2** client using the **S3-Compatible API** (no AWS SDK). Authentication via **AWS Signature Version 4** using the `aws4` library. Intended for use across multiple projects that need Backblaze storage.
4
+
5
+ ## Features
6
+
7
+ - **Authentication**: AWS Sig v4 (Application Key = access key + secret).
8
+ - **Buckets**: List Buckets (GET /), Create Bucket (PUT /bucket-name), Delete Bucket (DELETE /bucket-name), Head Bucket (HEAD /bucket-name).
9
+ - **Objects**: Put Object, Get Object, Delete Object, List Objects V2, Head Object.
10
+ - Credentials from **SettingsModule** or per-request via `BackblazeOptions` (includes `region`).
11
+ - S3 XML responses parsed to JSON (ListBuckets, ListObjectsV2).
12
+
13
+ ## Requirements
14
+
15
+ - Backblaze B2 Application Key (S3-compatible).
16
+ - Configure in settings: `GLOBAL:BACKBLAZE:GENERAL:REGION`, `GLOBAL:BACKBLAZE:GENERAL:ACCESS_KEY_ID`, `GLOBAL:BACKBLAZE:GENERAL:SECRET_ACCESS_KEY`.
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ npm install @venturialstd/backblaze
22
+ yarn add @venturialstd/backblaze
23
+ ```
24
+
25
+ ## Basic usage
26
+
27
+ ```ts
28
+ import {
29
+ BackblazeModule,
30
+ BackblazeBucketService,
31
+ BackblazeObjectService,
32
+ BucketAcl,
33
+ ContentType,
34
+ } from '@venturialstd/backblaze';
35
+
36
+ @Module({
37
+ imports: [BackblazeModule],
38
+ })
39
+ export class AppModule {}
40
+
41
+ @Injectable()
42
+ export class MyService {
43
+ constructor(
44
+ private readonly bucketService: BackblazeBucketService,
45
+ private readonly objectService: BackblazeObjectService,
46
+ ) {}
47
+
48
+ async listBuckets() {
49
+ // Returns { buckets: Array<{ name, creationDate }>, owner? }
50
+ const { buckets } = await this.bucketService.listBuckets();
51
+ return buckets;
52
+ }
53
+
54
+ async createBucket(name: string) {
55
+ await this.bucketService.createBucket(name, { acl: BucketAcl.Private });
56
+ }
57
+
58
+ async upload(bucketName: string, key: string, body: Buffer) {
59
+ await this.objectService.putObject(bucketName, key, body, {
60
+ contentType: ContentType.ApplicationJson,
61
+ });
62
+ }
63
+
64
+ async download(bucketName: string, key: string) {
65
+ return this.objectService.getObject(bucketName, key);
66
+ }
67
+
68
+ async listObjects(bucketName: string, prefix?: string) {
69
+ // Returns { objects, isTruncated, keyCount, nextContinuationToken?, prefix? }
70
+ return this.objectService.listObjectsV2(bucketName, { prefix, maxKeys: 1000 });
71
+ }
72
+ }
73
+ ```
74
+
75
+ ### Per-request options
76
+
77
+ ```ts
78
+ await this.bucketService.listBuckets({
79
+ region: 'us-west-004',
80
+ credentials: { accessKeyId: '...', secretAccessKey: '...' },
81
+ });
82
+ ```
83
+
84
+ ## S3-Compatible API (official documentation)
85
+
86
+ - **List Buckets**: GET `https://s3.<region>.backblazeb2.com/`
87
+ - **Create Bucket**: PUT `https://s3.<region>.backblazeb2.com/<bucket-name>` (optional: CreateBucketConfiguration XML body, header `x-amz-acl`: private | public-read)
88
+ - **Delete Bucket**: DELETE `https://s3.<region>.backblazeb2.com/<bucket-name>`
89
+ - **Head Bucket**: HEAD `https://s3.<region>.backblazeb2.com/<bucket-name>`
90
+ - **Put Object**: PUT `https://s3.<region>.backblazeb2.com/<bucket>/<key>` (body = file)
91
+ - **Get Object**: GET `https://s3.<region>.backblazeb2.com/<bucket>/<key>`
92
+ - **Delete Object**: DELETE `https://s3.<region>.backblazeb2.com/<bucket>/<key>`
93
+ - **List Objects V2**: GET `https://s3.<region>.backblazeb2.com/<bucket>?list-type=2&prefix=...&max-keys=...`
94
+ - **Head Object**: HEAD `https://s3.<region>.backblazeb2.com/<bucket>/<key>`
95
+
96
+ ## Notes
97
+
98
+ - The AWS SDK is not used; requests are signed with `aws4` and sent with `HttpService`.
99
+ - Backblaze only supports "private" and "public-read" ACLs at bucket level.
100
+ - **Developer-friendly API**: use `BucketAcl`, `ContentType`, and `BackblazeRegion` enums; options are typed (`CreateBucketOptions`, `PutObjectOptions`, etc.); `listBuckets()` and `listObjectsV2()` return normalized results (`ListBucketsResult`, `ListObjectsV2Result`). Use `listBucketsRaw()` and `listObjectsV2Raw()` when you need the raw S3 response.
101
+ - Developed and maintained by Venturial.
102
+
103
+ ## License
104
+
105
+ MIT
@@ -0,0 +1,3 @@
1
+ export declare class BackblazeModule {
2
+ }
3
+ //# sourceMappingURL=backblaze.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.module.d.ts","sourceRoot":"","sources":["../src/backblaze.module.ts"],"names":[],"mappings":"AAQA,qBAKa,eAAe;CAAG"}
@@ -0,0 +1,26 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BackblazeModule = void 0;
10
+ const axios_1 = require("@nestjs/axios");
11
+ const common_1 = require("@nestjs/common");
12
+ const core_1 = require("@venturialstd/core");
13
+ const backblaze_client_1 = require("./client/backblaze.client");
14
+ const backblaze_bucket_service_1 = require("./services/backblaze-bucket.service");
15
+ const backblaze_object_service_1 = require("./services/backblaze-object.service");
16
+ let BackblazeModule = class BackblazeModule {
17
+ };
18
+ exports.BackblazeModule = BackblazeModule;
19
+ exports.BackblazeModule = BackblazeModule = __decorate([
20
+ (0, common_1.Module)({
21
+ imports: [axios_1.HttpModule, core_1.AppLoggerModule, core_1.SettingsModule],
22
+ providers: [backblaze_client_1.BackblazeClient, backblaze_bucket_service_1.BackblazeBucketService, backblaze_object_service_1.BackblazeObjectService],
23
+ exports: [backblaze_bucket_service_1.BackblazeBucketService, backblaze_object_service_1.BackblazeObjectService],
24
+ })
25
+ ], BackblazeModule);
26
+ //# sourceMappingURL=backblaze.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.module.js","sourceRoot":"","sources":["../src/backblaze.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAA2C;AAC3C,2CAAwC;AACxC,6CAAqE;AAErE,gEAA4D;AAC5D,kFAA6E;AAC7E,kFAA6E;AAOtE,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAL3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,kBAAU,EAAE,sBAAe,EAAE,qBAAc,CAAC;QACtD,SAAS,EAAE,CAAC,kCAAe,EAAE,iDAAsB,EAAE,iDAAsB,CAAC;QAC5E,OAAO,EAAE,CAAC,iDAAsB,EAAE,iDAAsB,CAAC;KAC1D,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,17 @@
1
+ import { HttpService } from '@nestjs/axios';
2
+ import { AppLogger, SettingsService } from '@venturialstd/core';
3
+ import type { BackblazeRequestParams } from '../interfaces/backblaze-credentials.interface';
4
+ export declare class BackblazeClient {
5
+ private readonly httpService;
6
+ private readonly logger;
7
+ private readonly settings;
8
+ constructor(httpService: HttpService, logger: AppLogger, settings: SettingsService);
9
+ request<T>(params: BackblazeRequestParams<T>): Promise<T>;
10
+ requestWithResponse(params: BackblazeRequestParams): Promise<{
11
+ data: unknown;
12
+ headers: Record<string, string>;
13
+ status: number;
14
+ }>;
15
+ private getConfig;
16
+ }
17
+ //# sourceMappingURL=backblaze.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.client.d.ts","sourceRoot":"","sources":["../../src/client/backblaze.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMhE,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,+CAA+C,CAAC;AAGvD,qBACa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe;IAGtC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAKzD,mBAAmB,CACvB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;YA+ChE,SAAS;CA8BxB"}
@@ -0,0 +1,133 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ 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;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.BackblazeClient = void 0;
46
+ const axios_1 = require("@nestjs/axios");
47
+ const common_1 = require("@nestjs/common");
48
+ const core_1 = require("@venturialstd/core");
49
+ const rxjs_1 = require("rxjs");
50
+ const aws4 = __importStar(require("aws4"));
51
+ const backblaze_constant_1 = require("../constants/backblaze.constant");
52
+ const backblaze_settings_constants_1 = require("../constants/backblaze.settings.constants");
53
+ const s3_xml_util_1 = require("../utils/s3-xml.util");
54
+ let BackblazeClient = class BackblazeClient {
55
+ httpService;
56
+ logger;
57
+ settings;
58
+ constructor(httpService, logger, settings) {
59
+ this.httpService = httpService;
60
+ this.logger = logger;
61
+ this.settings = settings;
62
+ }
63
+ async request(params) {
64
+ const result = await this.requestWithResponse(params);
65
+ return result.data;
66
+ }
67
+ async requestWithResponse(params) {
68
+ const { options, method, path, body, headers = {}, responseType = 'json' } = params;
69
+ const { host, baseUrl, region, credentials } = await this.getConfig(options);
70
+ const pathNormalized = path.startsWith('/') ? path : `/${path}`;
71
+ const req = {
72
+ host,
73
+ path: pathNormalized || '/',
74
+ method,
75
+ service: 's3',
76
+ region,
77
+ headers: { ...headers },
78
+ body: body,
79
+ };
80
+ aws4.sign(req, credentials);
81
+ const url = `${baseUrl}${pathNormalized || '/'}`;
82
+ const axiosConfig = {
83
+ method: (req.method ?? method),
84
+ url,
85
+ headers: req.headers,
86
+ responseType: responseType === 'arraybuffer' ? 'arraybuffer' : responseType === 'text' ? 'text' : 'json',
87
+ };
88
+ if (body !== undefined) {
89
+ axiosConfig.data = typeof body === 'string' ? body : body;
90
+ }
91
+ try {
92
+ const response = await (0, rxjs_1.firstValueFrom)(this.httpService.request(axiosConfig));
93
+ let data = response.data;
94
+ if (responseType === 'json' && typeof data === 'string' && data.trim().startsWith('<?xml')) {
95
+ data = (0, s3_xml_util_1.parseXmlToJson)(data);
96
+ }
97
+ this.logger?.log(`Backblaze S3 request OK: ${method} ${url}`);
98
+ return { data, headers: response.headers, status: response.status };
99
+ }
100
+ catch (err) {
101
+ this.logger.error(`Backblaze S3 request error: ${method} ${url} - ${err}`);
102
+ throw err;
103
+ }
104
+ }
105
+ async getConfig(options) {
106
+ const region = options?.region ??
107
+ (await this.settings.get(backblaze_settings_constants_1.BACKBLAZE_SETTING_KEYS.GENERAL_REGION)) ??
108
+ 'us-west-004';
109
+ const accessKeyId = options?.credentials?.accessKeyId ??
110
+ (await this.settings.get(backblaze_settings_constants_1.BACKBLAZE_SETTING_KEYS.GENERAL_ACCESS_KEY_ID));
111
+ const secretAccessKey = options?.credentials?.secretAccessKey ??
112
+ (await this.settings.get(backblaze_settings_constants_1.BACKBLAZE_SETTING_KEYS.GENERAL_SECRET_ACCESS_KEY));
113
+ if (!accessKeyId || !secretAccessKey) {
114
+ throw new Error('Backblaze credentials not provided');
115
+ }
116
+ const baseUrl = backblaze_constant_1.BACKBLAZE_ENDPOINT_PATTERN.replace('{region}', region);
117
+ const host = baseUrl.replace(/^https?:\/\//, '').replace(/\/$/, '');
118
+ return {
119
+ host,
120
+ baseUrl: baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl,
121
+ region,
122
+ credentials: { accessKeyId, secretAccessKey },
123
+ };
124
+ }
125
+ };
126
+ exports.BackblazeClient = BackblazeClient;
127
+ exports.BackblazeClient = BackblazeClient = __decorate([
128
+ (0, common_1.Injectable)(),
129
+ __metadata("design:paramtypes", [axios_1.HttpService,
130
+ core_1.AppLogger,
131
+ core_1.SettingsService])
132
+ ], BackblazeClient);
133
+ //# sourceMappingURL=backblaze.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.client.js","sourceRoot":"","sources":["../../src/client/backblaze.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare enum BACKBLAZE_HTTP_METHOD {
2
+ GET = "GET",
3
+ PUT = "PUT",
4
+ POST = "POST",
5
+ DELETE = "DELETE",
6
+ HEAD = "HEAD"
7
+ }
8
+ //# sourceMappingURL=backblaze-client.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-client.constant.d.ts","sourceRoot":"","sources":["../../src/constants/backblaze-client.constant.ts"],"names":[],"mappings":"AAAA,oBAAY,qBAAqB;IAC/B,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;CACd"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BACKBLAZE_HTTP_METHOD = void 0;
4
+ var BACKBLAZE_HTTP_METHOD;
5
+ (function (BACKBLAZE_HTTP_METHOD) {
6
+ BACKBLAZE_HTTP_METHOD["GET"] = "GET";
7
+ BACKBLAZE_HTTP_METHOD["PUT"] = "PUT";
8
+ BACKBLAZE_HTTP_METHOD["POST"] = "POST";
9
+ BACKBLAZE_HTTP_METHOD["DELETE"] = "DELETE";
10
+ BACKBLAZE_HTTP_METHOD["HEAD"] = "HEAD";
11
+ })(BACKBLAZE_HTTP_METHOD || (exports.BACKBLAZE_HTTP_METHOD = BACKBLAZE_HTTP_METHOD = {}));
12
+ //# sourceMappingURL=backblaze-client.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze-client.constant.js","sourceRoot":"","sources":["../../src/constants/backblaze-client.constant.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC/B,oCAAW,CAAA;IACX,oCAAW,CAAA;IACX,sCAAa,CAAA;IACb,0CAAiB,CAAA;IACjB,sCAAa,CAAA;AACf,CAAC,EANW,qBAAqB,qCAArB,qBAAqB,QAMhC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Endpoint base for Backblaze B2 S3-Compatible API.
3
+ * Format: https://s3.<region>.backblazeb2.com
4
+ */
5
+ export declare const BACKBLAZE_ENDPOINT_PATTERN = "https://s3.{region}.backblazeb2.com";
6
+ /**
7
+ * Backblaze-specific headers (e.g. Live Read for multipart).
8
+ */
9
+ export declare const BACKBLAZE_HEADERS: {
10
+ readonly LIVE_READ_ENABLED: "x-backblaze-live-read-enabled";
11
+ };
12
+ /**
13
+ * Encryption for SSE-B2 (Backblaze-managed keys).
14
+ */
15
+ export declare const BACKBLAZE_SSE_ALGORITHM: {
16
+ readonly AES256: "AES256";
17
+ };
18
+ /**
19
+ * Supported Object Lock modes.
20
+ */
21
+ export declare const BACKBLAZE_OBJECT_LOCK_MODE: {
22
+ readonly GOVERNANCE: "GOVERNANCE";
23
+ readonly COMPLIANCE: "COMPLIANCE";
24
+ };
25
+ //# sourceMappingURL=backblaze.constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.constant.d.ts","sourceRoot":"","sources":["../../src/constants/backblaze.constant.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,0BAA0B,wCAAwC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;CAEpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB;;CAE1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BACKBLAZE_OBJECT_LOCK_MODE = exports.BACKBLAZE_SSE_ALGORITHM = exports.BACKBLAZE_HEADERS = exports.BACKBLAZE_ENDPOINT_PATTERN = void 0;
4
+ /**
5
+ * Endpoint base for Backblaze B2 S3-Compatible API.
6
+ * Format: https://s3.<region>.backblazeb2.com
7
+ */
8
+ exports.BACKBLAZE_ENDPOINT_PATTERN = 'https://s3.{region}.backblazeb2.com';
9
+ /**
10
+ * Backblaze-specific headers (e.g. Live Read for multipart).
11
+ */
12
+ exports.BACKBLAZE_HEADERS = {
13
+ LIVE_READ_ENABLED: 'x-backblaze-live-read-enabled',
14
+ };
15
+ /**
16
+ * Encryption for SSE-B2 (Backblaze-managed keys).
17
+ */
18
+ exports.BACKBLAZE_SSE_ALGORITHM = {
19
+ AES256: 'AES256',
20
+ };
21
+ /**
22
+ * Supported Object Lock modes.
23
+ */
24
+ exports.BACKBLAZE_OBJECT_LOCK_MODE = {
25
+ GOVERNANCE: 'GOVERNANCE',
26
+ COMPLIANCE: 'COMPLIANCE',
27
+ };
28
+ //# sourceMappingURL=backblaze.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.constant.js","sourceRoot":"","sources":["../../src/constants/backblaze.constant.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,0BAA0B,GAAG,qCAAqC,CAAC;AAEhF;;GAEG;AACU,QAAA,iBAAiB,GAAG;IAC/B,iBAAiB,EAAE,+BAA+B;CAC1C,CAAC;AAEX;;GAEG;AACU,QAAA,uBAAuB,GAAG;IACrC,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX;;GAEG;AACU,QAAA,0BAA0B,GAAG;IACxC,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const BACKBLAZE_SETTING_KEYS: {
2
+ readonly GENERAL_REGION: "GLOBAL:BACKBLAZE:GENERAL:REGION";
3
+ readonly GENERAL_ACCESS_KEY_ID: "GLOBAL:BACKBLAZE:GENERAL:ACCESS_KEY_ID";
4
+ readonly GENERAL_SECRET_ACCESS_KEY: "GLOBAL:BACKBLAZE:GENERAL:SECRET_ACCESS_KEY";
5
+ };
6
+ //# sourceMappingURL=backblaze.settings.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.settings.constants.d.ts","sourceRoot":"","sources":["../../src/constants/backblaze.settings.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BACKBLAZE_SETTING_KEYS = void 0;
4
+ exports.BACKBLAZE_SETTING_KEYS = {
5
+ GENERAL_REGION: 'GLOBAL:BACKBLAZE:GENERAL:REGION',
6
+ GENERAL_ACCESS_KEY_ID: 'GLOBAL:BACKBLAZE:GENERAL:ACCESS_KEY_ID',
7
+ GENERAL_SECRET_ACCESS_KEY: 'GLOBAL:BACKBLAZE:GENERAL:SECRET_ACCESS_KEY',
8
+ };
9
+ //# sourceMappingURL=backblaze.settings.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backblaze.settings.constants.js","sourceRoot":"","sources":["../../src/constants/backblaze.settings.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG;IACpC,cAAc,EAAE,iCAAiC;IACjD,qBAAqB,EAAE,wCAAwC;IAC/D,yBAAyB,EAAE,4CAA4C;CAC/D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { BucketAcl } from '../enums/backblaze.enums';
2
+ export declare class CreateBucketDto {
3
+ bucketName: string;
4
+ acl?: BucketAcl;
5
+ }
6
+ //# sourceMappingURL=create-bucket.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-bucket.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-bucket.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,qBAAa,eAAe;IAE1B,UAAU,EAAG,MAAM,CAAC;IAIpB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB"}
@@ -0,0 +1,29 @@
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.CreateBucketDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const backblaze_enums_1 = require("../enums/backblaze.enums");
15
+ class CreateBucketDto {
16
+ bucketName;
17
+ acl;
18
+ }
19
+ exports.CreateBucketDto = CreateBucketDto;
20
+ __decorate([
21
+ (0, class_validator_1.IsString)(),
22
+ __metadata("design:type", String)
23
+ ], CreateBucketDto.prototype, "bucketName", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, class_validator_1.IsIn)(Object.values(backblaze_enums_1.BucketAcl)),
27
+ __metadata("design:type", String)
28
+ ], CreateBucketDto.prototype, "acl", void 0);
29
+ //# sourceMappingURL=create-bucket.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-bucket.dto.js","sourceRoot":"","sources":["../../src/dtos/create-bucket.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA6D;AAE7D,8DAAqD;AAErD,MAAa,eAAe;IAE1B,UAAU,CAAU;IAIpB,GAAG,CAAa;CACjB;AAPD,0CAOC;AALC;IADC,IAAA,0BAAQ,GAAE;;mDACS;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,MAAM,CAAC,MAAM,CAAC,2BAAS,CAAC,CAAC;;4CACf"}
@@ -0,0 +1,9 @@
1
+ export declare class ListObjectsDto {
2
+ bucket: string;
3
+ prefix?: string;
4
+ delimiter?: string;
5
+ maxKeys?: number;
6
+ continuationToken?: string;
7
+ startAfter?: string;
8
+ }
9
+ //# sourceMappingURL=list-objects.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/list-objects.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IAEzB,MAAM,EAAG,MAAM,CAAC;IAIhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,53 @@
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.ListObjectsDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class ListObjectsDto {
15
+ bucket;
16
+ prefix;
17
+ delimiter;
18
+ maxKeys;
19
+ continuationToken;
20
+ startAfter;
21
+ }
22
+ exports.ListObjectsDto = ListObjectsDto;
23
+ __decorate([
24
+ (0, class_validator_1.IsString)(),
25
+ __metadata("design:type", String)
26
+ ], ListObjectsDto.prototype, "bucket", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsString)(),
30
+ __metadata("design:type", String)
31
+ ], ListObjectsDto.prototype, "prefix", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsString)(),
35
+ __metadata("design:type", String)
36
+ ], ListObjectsDto.prototype, "delimiter", void 0);
37
+ __decorate([
38
+ (0, class_validator_1.IsOptional)(),
39
+ (0, class_validator_1.Min)(1),
40
+ (0, class_validator_1.Max)(1000),
41
+ __metadata("design:type", Number)
42
+ ], ListObjectsDto.prototype, "maxKeys", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_validator_1.IsString)(),
46
+ __metadata("design:type", String)
47
+ ], ListObjectsDto.prototype, "continuationToken", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsOptional)(),
50
+ (0, class_validator_1.IsString)(),
51
+ __metadata("design:type", String)
52
+ ], ListObjectsDto.prototype, "startAfter", void 0);
53
+ //# sourceMappingURL=list-objects.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-objects.dto.js","sourceRoot":"","sources":["../../src/dtos/list-objects.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAiE;AAEjE,MAAa,cAAc;IAEzB,MAAM,CAAU;IAIhB,MAAM,CAAU;IAIhB,SAAS,CAAU;IAKnB,OAAO,CAAU;IAIjB,iBAAiB,CAAU;IAI3B,UAAU,CAAU;CACrB;AAxBD,wCAwBC;AAtBC;IADC,IAAA,0BAAQ,GAAE;;8CACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8CACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iDACQ;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,IAAI,CAAC;;+CACO;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACgB;AAI3B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kDACS"}
@@ -0,0 +1,12 @@
1
+ export declare class PutObjectDto {
2
+ bucket: string;
3
+ key: string;
4
+ /** Body: Buffer, Uint8Array, Blob, string, or ReadableStream */
5
+ body?: Buffer | Uint8Array | Blob | string | ReadableStream;
6
+ contentType?: string;
7
+ cacheControl?: string;
8
+ contentDisposition?: string;
9
+ contentEncoding?: string;
10
+ metadata?: Record<string, string>;
11
+ }
12
+ //# sourceMappingURL=put-object.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put-object.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/put-object.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IAEvB,MAAM,EAAG,MAAM,CAAC;IAGhB,GAAG,EAAG,MAAM,CAAC;IAEb,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,cAAc,CAAC;IAI5D,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAI5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC"}
@@ -0,0 +1,58 @@
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.PutObjectDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class PutObjectDto {
15
+ bucket;
16
+ key;
17
+ /** Body: Buffer, Uint8Array, Blob, string, or ReadableStream */
18
+ body;
19
+ contentType;
20
+ cacheControl;
21
+ contentDisposition;
22
+ contentEncoding;
23
+ metadata;
24
+ }
25
+ exports.PutObjectDto = PutObjectDto;
26
+ __decorate([
27
+ (0, class_validator_1.IsString)(),
28
+ __metadata("design:type", String)
29
+ ], PutObjectDto.prototype, "bucket", void 0);
30
+ __decorate([
31
+ (0, class_validator_1.IsString)(),
32
+ __metadata("design:type", String)
33
+ ], PutObjectDto.prototype, "key", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_validator_1.IsString)(),
37
+ __metadata("design:type", String)
38
+ ], PutObjectDto.prototype, "contentType", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_validator_1.IsString)(),
42
+ __metadata("design:type", String)
43
+ ], PutObjectDto.prototype, "cacheControl", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ __metadata("design:type", String)
48
+ ], PutObjectDto.prototype, "contentDisposition", void 0);
49
+ __decorate([
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ __metadata("design:type", String)
53
+ ], PutObjectDto.prototype, "contentEncoding", void 0);
54
+ __decorate([
55
+ (0, class_validator_1.IsOptional)(),
56
+ __metadata("design:type", Object)
57
+ ], PutObjectDto.prototype, "metadata", void 0);
58
+ //# sourceMappingURL=put-object.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put-object.dto.js","sourceRoot":"","sources":["../../src/dtos/put-object.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAuD;AAEvD,MAAa,YAAY;IAEvB,MAAM,CAAU;IAGhB,GAAG,CAAU;IAEb,gEAAgE;IAChE,IAAI,CAAwD;IAI5D,WAAW,CAAU;IAIrB,YAAY,CAAU;IAItB,kBAAkB,CAAU;IAI5B,eAAe,CAAU;IAGzB,QAAQ,CAA0B;CACnC;AA5BD,oCA4BC;AA1BC;IADC,IAAA,0BAAQ,GAAE;;4CACK;AAGhB;IADC,IAAA,0BAAQ,GAAE;;yCACE;AAOb;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;iDACU;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;kDACW;AAItB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wDACiB;AAI5B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACc;AAGzB;IADC,IAAA,4BAAU,GAAE;;8CACqB"}