@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.
- package/README.md +40 -8
- package/dist/client/backblaze.client.d.ts +1 -0
- package/dist/client/backblaze.client.d.ts.map +1 -1
- package/dist/client/backblaze.client.js +26 -4
- package/dist/client/backblaze.client.js.map +1 -1
- package/dist/constants/backblaze.settings.constants.d.ts +1 -0
- package/dist/constants/backblaze.settings.constants.d.ts.map +1 -1
- package/dist/constants/backblaze.settings.constants.js +1 -0
- package/dist/constants/backblaze.settings.constants.js.map +1 -1
- package/dist/dtos/create-bucket.dto.d.ts +2 -0
- package/dist/dtos/create-bucket.dto.d.ts.map +1 -1
- package/dist/dtos/create-bucket.dto.js +7 -0
- package/dist/dtos/create-bucket.dto.js.map +1 -1
- package/dist/dtos/delete-bucket.dto.d.ts +4 -0
- package/dist/dtos/delete-bucket.dto.d.ts.map +1 -0
- package/dist/dtos/delete-bucket.dto.js +22 -0
- package/dist/dtos/delete-bucket.dto.js.map +1 -0
- package/dist/dtos/delete-object.dto.d.ts +6 -0
- package/dist/dtos/delete-object.dto.d.ts.map +1 -0
- package/dist/dtos/delete-object.dto.js +33 -0
- package/dist/dtos/delete-object.dto.js.map +1 -0
- package/dist/dtos/get-object.dto.d.ts +6 -0
- package/dist/dtos/get-object.dto.d.ts.map +1 -0
- package/dist/dtos/get-object.dto.js +33 -0
- package/dist/dtos/get-object.dto.js.map +1 -0
- package/dist/dtos/head-bucket.dto.d.ts +4 -0
- package/dist/dtos/head-bucket.dto.d.ts.map +1 -0
- package/dist/dtos/head-bucket.dto.js +22 -0
- package/dist/dtos/head-bucket.dto.js.map +1 -0
- package/dist/dtos/head-object.dto.d.ts +6 -0
- package/dist/dtos/head-object.dto.d.ts.map +1 -0
- package/dist/dtos/head-object.dto.js +33 -0
- package/dist/dtos/head-object.dto.js.map +1 -0
- package/dist/dtos/list-objects.dto.d.ts +1 -1
- package/dist/dtos/list-objects.dto.d.ts.map +1 -1
- package/dist/dtos/list-objects.dto.js +2 -2
- package/dist/dtos/list-objects.dto.js.map +1 -1
- package/dist/dtos/put-object.dto.d.ts +1 -1
- package/dist/dtos/put-object.dto.d.ts.map +1 -1
- package/dist/dtos/put-object.dto.js +2 -2
- package/dist/dtos/put-object.dto.js.map +1 -1
- package/dist/errors/backblaze-s3.error.d.ts +47 -0
- package/dist/errors/backblaze-s3.error.d.ts.map +1 -0
- package/dist/errors/backblaze-s3.error.js +52 -0
- package/dist/errors/backblaze-s3.error.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/services/backblaze-bucket.service.d.ts +10 -7
- package/dist/services/backblaze-bucket.service.d.ts.map +1 -1
- package/dist/services/backblaze-bucket.service.js +12 -12
- package/dist/services/backblaze-bucket.service.js.map +1 -1
- package/dist/services/backblaze-object.service.d.ts +18 -13
- package/dist/services/backblaze-object.service.d.ts.map +1 -1
- package/dist/services/backblaze-object.service.js +52 -42
- package/dist/services/backblaze-object.service.js.map +1 -1
- package/dist/utils/s3-xml.util.d.ts +4 -0
- package/dist/utils/s3-xml.util.d.ts.map +1 -1
- package/dist/utils/s3-xml.util.js +16 -0
- package/dist/utils/s3-xml.util.js.map +1 -1
- 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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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 {
|
|
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
|
|
36
|
+
* Creates a bucket. Use CreateBucketDto with bucketName, optional acl and region.
|
|
34
37
|
*/
|
|
35
|
-
createBucket(
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
|
47
|
+
* Creates a bucket. Use CreateBucketDto with bucketName, optional acl and region.
|
|
48
48
|
*/
|
|
49
|
-
createBucket(
|
|
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 (
|
|
54
|
-
headers['x-amz-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(
|
|
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(
|
|
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":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,iEAA6D;AAC7D,sFAA+E;
|
|
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 {
|
|
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
|
|
34
|
+
* Uploads an object. Use PutObjectDto with bucket, key, body and optional contentType.
|
|
30
35
|
*/
|
|
31
|
-
putObject(
|
|
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(
|
|
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(
|
|
44
|
+
deleteObject(dto: DeleteObjectDto, options?: BackblazeOptions): Promise<void>;
|
|
40
45
|
/**
|
|
41
|
-
* Lists objects in a bucket. Returns a normalized result
|
|
42
|
-
* Use ListObjectsV2Params for prefix, maxKeys, pagination, etc.
|
|
46
|
+
* Lists objects in a bucket. Returns a normalized result. Use ListObjectsDto.
|
|
43
47
|
*/
|
|
44
|
-
listObjectsV2(
|
|
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(
|
|
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(
|
|
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;
|
|
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
|
|
23
|
+
* Uploads an object. Use PutObjectDto with bucket, key, body and optional contentType.
|
|
24
24
|
*/
|
|
25
|
-
putObject(
|
|
26
|
-
const buf =
|
|
27
|
-
const contentType =
|
|
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(
|
|
46
|
-
let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
|
|
47
|
-
if (
|
|
48
|
-
path += `?versionId=${encodeURIComponent(
|
|
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(
|
|
61
|
-
let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
|
|
62
|
-
if (
|
|
63
|
-
path += `?versionId=${encodeURIComponent(
|
|
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
|
|
74
|
-
* Use ListObjectsV2Params for prefix, maxKeys, pagination, etc.
|
|
73
|
+
* Lists objects in a bucket. Returns a normalized result. Use ListObjectsDto.
|
|
75
74
|
*/
|
|
76
|
-
listObjectsV2(
|
|
75
|
+
listObjectsV2(dto, options) {
|
|
77
76
|
const query = new URLSearchParams();
|
|
78
77
|
query.set('list-type', '2');
|
|
79
|
-
if (
|
|
80
|
-
query.set('prefix',
|
|
81
|
-
if (
|
|
82
|
-
query.set('max-keys', String(
|
|
83
|
-
if (
|
|
84
|
-
query.set('continuation-token',
|
|
85
|
-
if (
|
|
86
|
-
query.set('start-after',
|
|
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(
|
|
99
|
+
listObjectsV2Raw(dto, options) {
|
|
101
100
|
const query = new URLSearchParams();
|
|
102
101
|
query.set('list-type', '2');
|
|
103
|
-
if (
|
|
104
|
-
query.set('prefix',
|
|
105
|
-
if (
|
|
106
|
-
query.set('max-keys', String(
|
|
107
|
-
if (
|
|
108
|
-
query.set('continuation-token',
|
|
109
|
-
if (
|
|
110
|
-
query.set('start-after',
|
|
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(
|
|
123
|
-
let path = `/${encodeURIComponent(bucketName)}/${this.encodeKey(key)}`;
|
|
124
|
-
if (
|
|
125
|
-
path += `?versionId=${encodeURIComponent(
|
|
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":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,iEAA6D;AAC7D,sFAA+E;
|
|
1
|
+
{"version":3,"file":"backblaze-object.service.js","sourceRoot":"","sources":["../../src/services/backblaze-object.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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.
|
|
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": [
|
|
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": "^
|
|
29
|
+
"@venturialstd/core": "^2.0.0",
|
|
28
30
|
"class-validator": "^0.14.1",
|
|
29
31
|
"rxjs": "^7.8.1"
|
|
30
32
|
},
|