@super-protocol/sdk-js 2.2.0-beta.87 → 2.2.0-beta.88
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/dist/cjs/utils/helpers/OrderArgsHelper.js +8 -38
- package/dist/cjs/utils/helpers/index.d.ts +1 -0
- package/dist/cjs/utils/helpers/index.js +2 -1
- package/dist/cjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
- package/dist/cjs/utils/helpers/uploadObjectToStorage.js +55 -0
- package/dist/mjs/utils/helpers/OrderArgsHelper.js +8 -38
- package/dist/mjs/utils/helpers/index.d.ts +1 -0
- package/dist/mjs/utils/helpers/index.js +2 -1
- package/dist/mjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
- package/dist/mjs/utils/helpers/uploadObjectToStorage.js +48 -0
- package/package.json +1 -1
|
@@ -5,11 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.OrderArgsHelper = void 0;
|
|
7
7
|
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const stream_1 = require("stream");
|
|
9
|
-
const dto_js_1 = require("@super-protocol/dto-js");
|
|
10
8
|
const index_js_1 = __importDefault(require("../../crypto/index.js"));
|
|
11
|
-
const
|
|
12
|
-
const helper_js_1 = require("../helper.js");
|
|
9
|
+
const uploadObjectToStorage_js_1 = require("./uploadObjectToStorage.js");
|
|
13
10
|
const isStringArray = (item) => Array.isArray(item) && item.every(lodash_1.default.isString);
|
|
14
11
|
const isEncryptedArgsConfiguration = (arg) => Boolean(lodash_1.default.isPlainObject(arg) && isStringArray(arg.data) && lodash_1.default.isPlainObject(arg.solution));
|
|
15
12
|
const isEncryptedArgs = (arg) => Boolean(lodash_1.default.isPlainObject(arg) &&
|
|
@@ -45,45 +42,18 @@ class OrderArgsHelper {
|
|
|
45
42
|
totalElements += args.configuration?.solution ? 1 : 0;
|
|
46
43
|
return totalElements > elementsCount;
|
|
47
44
|
}
|
|
48
|
-
static
|
|
45
|
+
static uploadToStorage(params) {
|
|
49
46
|
const { access, args, key, encryption } = params;
|
|
50
|
-
if (access.read.storageType !== access.write.storageType ||
|
|
51
|
-
access.read.credentials.bucket !== access.write.credentials.bucket ||
|
|
52
|
-
access.read.credentials.prefix !== access.write.credentials.prefix) {
|
|
53
|
-
throw new Error('Invalid storage access configuration');
|
|
54
|
-
}
|
|
55
47
|
if (!isEncryptedArgs(args)) {
|
|
56
48
|
throw new Error('Invalid args for uploading');
|
|
57
49
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if ((0, helper_js_1.isNodeJS)()) {
|
|
61
|
-
const stream = new stream_1.Readable();
|
|
62
|
-
stream.push(buffer);
|
|
63
|
-
stream.push(null);
|
|
64
|
-
return {
|
|
65
|
-
stream,
|
|
66
|
-
size: buffer.length,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
const blob = new Blob([buffer]);
|
|
71
|
-
return {
|
|
72
|
-
stream: blob,
|
|
73
|
-
size: blob.size,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
const encryptedData = await OrderArgsHelper.encryptOrderArgs(args, encryption);
|
|
78
|
-
const dataForUpload = string2Stream(encryptedData);
|
|
79
|
-
const storageProvider = (0, getStorageProvider_js_1.default)(params.access.write);
|
|
80
|
-
await storageProvider.uploadFile(dataForUpload.stream, key, dataForUpload.size);
|
|
81
|
-
return {
|
|
82
|
-
...access.read,
|
|
83
|
-
type: dto_js_1.ResourceType.StorageProvider,
|
|
50
|
+
return (0, uploadObjectToStorage_js_1.uploadObjectToStorage)({
|
|
51
|
+
data: args,
|
|
84
52
|
filepath: key,
|
|
85
|
-
|
|
53
|
+
access,
|
|
54
|
+
encryption,
|
|
55
|
+
});
|
|
86
56
|
}
|
|
87
57
|
}
|
|
88
58
|
exports.OrderArgsHelper = OrderArgsHelper;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJBcmdzSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvT3JkZXJBcmdzSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQU92QixxRUFBMkM7QUFFM0MseUVBQW1FO0FBRW5FLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFvQixFQUFFLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWhELE1BQU0sNEJBQTRCLEdBQUcsQ0FDbkMsR0FBNEIsRUFDZSxFQUFFLENBQzdDLE9BQU8sQ0FBQyxnQkFBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBRTVGLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBeUMsRUFBZ0MsRUFBRSxDQUNsRyxPQUFPLENBQ0wsZ0JBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBQ2xCLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3hCLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYTtRQUNqQiw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsYUFBd0MsQ0FBQyxDQUFDLENBQ2hGLENBQUM7QUFFSixNQUFhLGVBQWU7SUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsYUFBcUIsRUFDckIsY0FBc0I7UUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQWUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RCxTQUFTLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQztRQUUvQixNQUFNLGdCQUFnQixHQUFHLE1BQU0sa0JBQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBELE9BQU8sY0FBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFhLEVBQUUsVUFBc0I7UUFDakUsTUFBTSxhQUFhLEdBQUcsTUFBTSxrQkFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHdCQUF3QixDQUM3QixJQUFvQyxFQUNwQyxhQUFhLEdBQUcsQ0FBQztRQUVqQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFnQyxFQUFRLEVBQUU7WUFDckQsYUFBYSxJQUFJLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RCxPQUFPLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFRdEI7UUFDQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRWpELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sSUFBQSxnREFBcUIsRUFBQztZQUMzQixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxHQUFHO1lBQ2IsTUFBTTtZQUNOLFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoRUQsMENBZ0VDIn0=
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./tryWithInterval.js"), exports);
|
|
18
18
|
__exportStar(require("./OrderArgsHelper.js"), exports);
|
|
19
|
-
|
|
19
|
+
__exportStar(require("./uploadObjectToStorage.js"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXFDO0FBQ3JDLHVEQUFxQztBQUNyQyw2REFBMkMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Encryption, StorageProviderResource } from '@super-protocol/dto-js';
|
|
2
|
+
import { StorageAccess } from '../../index.js';
|
|
3
|
+
export type ReadWriteStorageAccess = {
|
|
4
|
+
read: StorageAccess;
|
|
5
|
+
write: StorageAccess;
|
|
6
|
+
};
|
|
7
|
+
export type UploadObjectToStoragePrams = {
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
filepath: string;
|
|
10
|
+
access: ReadWriteStorageAccess;
|
|
11
|
+
encryption?: Encryption;
|
|
12
|
+
};
|
|
13
|
+
export declare const uploadObjectToStorage: (params: UploadObjectToStoragePrams) => Promise<StorageProviderResource>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.uploadObjectToStorage = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const stream_1 = require("stream");
|
|
9
|
+
const dto_js_1 = require("@super-protocol/dto-js");
|
|
10
|
+
const index_js_1 = require("../../index.js");
|
|
11
|
+
const helper_js_1 = require("../helper.js");
|
|
12
|
+
const OrderArgsHelper_js_1 = require("./OrderArgsHelper.js");
|
|
13
|
+
const string2Stream = (data) => {
|
|
14
|
+
const buffer = Buffer.from(data);
|
|
15
|
+
if ((0, helper_js_1.isNodeJS)()) {
|
|
16
|
+
const stream = new stream_1.Readable();
|
|
17
|
+
stream.push(buffer);
|
|
18
|
+
stream.push(null);
|
|
19
|
+
return {
|
|
20
|
+
stream,
|
|
21
|
+
size: buffer.length,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const blob = new Blob([buffer]);
|
|
26
|
+
return {
|
|
27
|
+
stream: blob,
|
|
28
|
+
size: blob.size,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const uploadObjectToStorage = async (params) => {
|
|
33
|
+
const { data, access, filepath, encryption } = params;
|
|
34
|
+
if (access.read.storageType !== access.write.storageType ||
|
|
35
|
+
access.read.credentials.bucket !== access.write.credentials.bucket ||
|
|
36
|
+
access.read.credentials.prefix !== access.write.credentials.prefix) {
|
|
37
|
+
throw new Error('Invalid storage access configuration');
|
|
38
|
+
}
|
|
39
|
+
if (!lodash_1.default.isPlainObject(params.data)) {
|
|
40
|
+
throw new Error('Invalid input data to upload to storage');
|
|
41
|
+
}
|
|
42
|
+
const dataToUpload = encryption
|
|
43
|
+
? await OrderArgsHelper_js_1.OrderArgsHelper.encryptOrderArgs(data, encryption)
|
|
44
|
+
: JSON.stringify(data);
|
|
45
|
+
const dataForUpload = string2Stream(dataToUpload);
|
|
46
|
+
const storageProvider = (0, index_js_1.getStorageProvider)(access.write);
|
|
47
|
+
await storageProvider.uploadFile(dataForUpload.stream, filepath, dataForUpload.size);
|
|
48
|
+
return {
|
|
49
|
+
...access.read,
|
|
50
|
+
type: dto_js_1.ResourceType.StorageProvider,
|
|
51
|
+
filepath,
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
exports.uploadObjectToStorage = uploadObjectToStorage;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkT2JqZWN0VG9TdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvdXBsb2FkT2JqZWN0VG9TdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QixtQ0FBa0M7QUFDbEMsbURBQTJGO0FBQzNGLDZDQUFtRTtBQUNuRSw0Q0FBd0M7QUFDeEMsNkRBQXVEO0FBY3ZELE1BQU0sYUFBYSxHQUFHLENBQ3BCLElBQVksRUFJWixFQUFFO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxJQUFJLElBQUEsb0JBQVEsR0FBRSxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEIsT0FBTztZQUNMLE1BQU07WUFDTixJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU07U0FDcEIsQ0FBQztJQUNKLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUVLLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxNQUFrQyxFQUNBLEVBQUU7SUFDcEMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN0RCxJQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUNsRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxVQUFVO1FBQzdCLENBQUMsQ0FBQyxNQUFNLG9DQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztRQUMxRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsTUFBTSxlQUFlLEdBQUcsSUFBQSw2QkFBa0IsRUFBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsTUFBTSxlQUFlLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyRixPQUFPO1FBQ0wsR0FBRyxNQUFNLENBQUMsSUFBSTtRQUNkLElBQUksRUFBRSxxQkFBWSxDQUFDLGVBQWU7UUFDbEMsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDLENBQUM7QUE1QlcsUUFBQSxxQkFBcUIseUJBNEJoQyJ9
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import { Readable } from 'stream';
|
|
3
|
-
import { ResourceType, } from '@super-protocol/dto-js';
|
|
4
2
|
import Crypto from '../../crypto/index.js';
|
|
5
|
-
import
|
|
6
|
-
import { isNodeJS } from '../helper.js';
|
|
3
|
+
import { uploadObjectToStorage } from './uploadObjectToStorage.js';
|
|
7
4
|
const isStringArray = (item) => Array.isArray(item) && item.every(_.isString);
|
|
8
5
|
const isEncryptedArgsConfiguration = (arg) => Boolean(_.isPlainObject(arg) && isStringArray(arg.data) && _.isPlainObject(arg.solution));
|
|
9
6
|
const isEncryptedArgs = (arg) => Boolean(_.isPlainObject(arg) &&
|
|
@@ -39,44 +36,17 @@ export class OrderArgsHelper {
|
|
|
39
36
|
totalElements += args.configuration?.solution ? 1 : 0;
|
|
40
37
|
return totalElements > elementsCount;
|
|
41
38
|
}
|
|
42
|
-
static
|
|
39
|
+
static uploadToStorage(params) {
|
|
43
40
|
const { access, args, key, encryption } = params;
|
|
44
|
-
if (access.read.storageType !== access.write.storageType ||
|
|
45
|
-
access.read.credentials.bucket !== access.write.credentials.bucket ||
|
|
46
|
-
access.read.credentials.prefix !== access.write.credentials.prefix) {
|
|
47
|
-
throw new Error('Invalid storage access configuration');
|
|
48
|
-
}
|
|
49
41
|
if (!isEncryptedArgs(args)) {
|
|
50
42
|
throw new Error('Invalid args for uploading');
|
|
51
43
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (isNodeJS()) {
|
|
55
|
-
const stream = new Readable();
|
|
56
|
-
stream.push(buffer);
|
|
57
|
-
stream.push(null);
|
|
58
|
-
return {
|
|
59
|
-
stream,
|
|
60
|
-
size: buffer.length,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
const blob = new Blob([buffer]);
|
|
65
|
-
return {
|
|
66
|
-
stream: blob,
|
|
67
|
-
size: blob.size,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
const encryptedData = await OrderArgsHelper.encryptOrderArgs(args, encryption);
|
|
72
|
-
const dataForUpload = string2Stream(encryptedData);
|
|
73
|
-
const storageProvider = getStorageProvider(params.access.write);
|
|
74
|
-
await storageProvider.uploadFile(dataForUpload.stream, key, dataForUpload.size);
|
|
75
|
-
return {
|
|
76
|
-
...access.read,
|
|
77
|
-
type: ResourceType.StorageProvider,
|
|
44
|
+
return uploadObjectToStorage({
|
|
45
|
+
data: args,
|
|
78
46
|
filepath: key,
|
|
79
|
-
|
|
47
|
+
access,
|
|
48
|
+
encryption,
|
|
49
|
+
});
|
|
80
50
|
}
|
|
81
51
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJBcmdzSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvT3JkZXJBcmdzSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQU92QixPQUFPLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRSxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQWEsRUFBb0IsRUFBRSxDQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRWhELE1BQU0sNEJBQTRCLEdBQUcsQ0FDbkMsR0FBNEIsRUFDZSxFQUFFLENBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUU1RixNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQXlDLEVBQWdDLEVBQUUsQ0FDbEcsT0FBTyxDQUNMLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBQ2xCLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3hCLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYTtRQUNqQiw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsYUFBd0MsQ0FBQyxDQUFDLENBQ2hGLENBQUM7QUFFSixNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUMzQixhQUFxQixFQUNyQixjQUFzQjtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBZSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDO1FBRS9CLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVwRCxPQUFPLGNBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBYSxFQUFFLFVBQXNCO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHdCQUF3QixDQUM3QixJQUFvQyxFQUNwQyxhQUFhLEdBQUcsQ0FBQztRQUVqQixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFnQyxFQUFRLEVBQUU7WUFDckQsYUFBYSxJQUFJLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RCxPQUFPLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFRdEI7UUFDQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRWpELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8scUJBQXFCLENBQUM7WUFDM0IsSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsR0FBRztZQUNiLE1BQU07WUFDTixVQUFVO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './tryWithInterval.js';
|
|
2
2
|
export * from './OrderArgsHelper.js';
|
|
3
|
-
|
|
3
|
+
export * from './uploadObjectToStorage.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Encryption, StorageProviderResource } from '@super-protocol/dto-js';
|
|
2
|
+
import { StorageAccess } from '../../index.js';
|
|
3
|
+
export type ReadWriteStorageAccess = {
|
|
4
|
+
read: StorageAccess;
|
|
5
|
+
write: StorageAccess;
|
|
6
|
+
};
|
|
7
|
+
export type UploadObjectToStoragePrams = {
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
filepath: string;
|
|
10
|
+
access: ReadWriteStorageAccess;
|
|
11
|
+
encryption?: Encryption;
|
|
12
|
+
};
|
|
13
|
+
export declare const uploadObjectToStorage: (params: UploadObjectToStoragePrams) => Promise<StorageProviderResource>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { ResourceType } from '@super-protocol/dto-js';
|
|
4
|
+
import { getStorageProvider } from '../../index.js';
|
|
5
|
+
import { isNodeJS } from '../helper.js';
|
|
6
|
+
import { OrderArgsHelper } from './OrderArgsHelper.js';
|
|
7
|
+
const string2Stream = (data) => {
|
|
8
|
+
const buffer = Buffer.from(data);
|
|
9
|
+
if (isNodeJS()) {
|
|
10
|
+
const stream = new Readable();
|
|
11
|
+
stream.push(buffer);
|
|
12
|
+
stream.push(null);
|
|
13
|
+
return {
|
|
14
|
+
stream,
|
|
15
|
+
size: buffer.length,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const blob = new Blob([buffer]);
|
|
20
|
+
return {
|
|
21
|
+
stream: blob,
|
|
22
|
+
size: blob.size,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export const uploadObjectToStorage = async (params) => {
|
|
27
|
+
const { data, access, filepath, encryption } = params;
|
|
28
|
+
if (access.read.storageType !== access.write.storageType ||
|
|
29
|
+
access.read.credentials.bucket !== access.write.credentials.bucket ||
|
|
30
|
+
access.read.credentials.prefix !== access.write.credentials.prefix) {
|
|
31
|
+
throw new Error('Invalid storage access configuration');
|
|
32
|
+
}
|
|
33
|
+
if (!_.isPlainObject(params.data)) {
|
|
34
|
+
throw new Error('Invalid input data to upload to storage');
|
|
35
|
+
}
|
|
36
|
+
const dataToUpload = encryption
|
|
37
|
+
? await OrderArgsHelper.encryptOrderArgs(data, encryption)
|
|
38
|
+
: JSON.stringify(data);
|
|
39
|
+
const dataForUpload = string2Stream(dataToUpload);
|
|
40
|
+
const storageProvider = getStorageProvider(access.write);
|
|
41
|
+
await storageProvider.uploadFile(dataForUpload.stream, filepath, dataForUpload.size);
|
|
42
|
+
return {
|
|
43
|
+
...access.read,
|
|
44
|
+
type: ResourceType.StorageProvider,
|
|
45
|
+
filepath,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkT2JqZWN0VG9TdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvdXBsb2FkT2JqZWN0VG9TdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBYyxZQUFZLEVBQTJCLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFpQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBY3ZELE1BQU0sYUFBYSxHQUFHLENBQ3BCLElBQVksRUFJWixFQUFFO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqQyxJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQixPQUFPO1lBQ0wsTUFBTTtZQUNOLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTTtTQUNwQixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFaEMsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxNQUFrQyxFQUNBLEVBQUU7SUFDcEMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN0RCxJQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVztRQUNwRCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUNsRSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFVBQVU7UUFDN0IsQ0FBQyxDQUFDLE1BQU0sZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7UUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJGLE9BQU87UUFDTCxHQUFHLE1BQU0sQ0FBQyxJQUFJO1FBQ2QsSUFBSSxFQUFFLFlBQVksQ0FBQyxlQUFlO1FBQ2xDLFFBQVE7S0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|