@super-protocol/sdk-js 2.1.4-beta.8 → 2.1.5
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/TIIGenerator.js +193 -210
- package/dist/cjs/analytics/Analytics.d.ts +2 -2
- package/dist/cjs/analytics/Analytics.js +15 -22
- package/dist/cjs/analytics/AnalyticsError.js +2 -1
- package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +14 -8
- package/dist/cjs/analytics/eventProviders/EventProvider.js +13 -2
- package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +9 -1
- package/dist/cjs/analytics/transports/AxiosTransport.js +24 -36
- package/dist/cjs/analytics/transports/FetchTransport.js +23 -34
- package/dist/cjs/analytics/types.d.ts +1 -1
- package/dist/cjs/connectors/BaseConnector.js +5 -17
- package/dist/cjs/connectors/BlockchainConnector.js +164 -181
- package/dist/cjs/connectors/BlockchainEventsListener.js +42 -53
- package/dist/cjs/contracts/abi.d.ts +33 -107
- package/dist/cjs/contracts/abi.js +34 -131
- package/dist/cjs/crypto/Crypto.js +54 -73
- package/dist/cjs/crypto/nodejs/AES.js +40 -55
- package/dist/cjs/crypto/nodejs/ARIA.js +39 -54
- package/dist/cjs/crypto/nodejs/ECIES.js +44 -57
- package/dist/cjs/crypto/nodejs/NativeCrypto.js +29 -42
- package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +26 -27
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/models/EtlModel.js +34 -46
- package/dist/cjs/models/Offer.js +110 -156
- package/dist/cjs/models/Order.js +166 -200
- package/dist/cjs/models/Provider.js +47 -65
- package/dist/cjs/models/TCB.js +32 -55
- package/dist/cjs/models/TeeOffer.js +188 -250
- package/dist/cjs/polyfills.js +1 -1
- package/dist/cjs/proto/Compression.js +4 -5
- package/dist/cjs/proto/TRI.js +14 -17
- package/dist/cjs/proto/TeeProperties.js +19 -23
- package/dist/cjs/providers/storage/ChunksDownloadDecorator.js +38 -70
- package/dist/cjs/providers/storage/S3StorageProvider.js +118 -166
- package/dist/cjs/providers/storage/StorageAdapter.js +155 -177
- package/dist/cjs/providers/storage/StorageContentWriter.js +103 -118
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +84 -117
- package/dist/cjs/providers/storage/StorageMetadataReader.js +38 -49
- package/dist/cjs/providers/storage/StorjAdapter.js +28 -48
- package/dist/cjs/providers/storage/StorjStorageProvider.d.ts +0 -1
- package/dist/cjs/providers/storage/StorjStorageProvider.js +101 -163
- package/dist/cjs/providers/storage/getStorageProvider.js +1 -1
- package/dist/cjs/staticModels/ActiveOffers.js +14 -29
- package/dist/cjs/staticModels/ActiveOrders.js +20 -35
- package/dist/cjs/staticModels/Consensus.js +71 -93
- package/dist/cjs/staticModels/Deposits.js +20 -39
- package/dist/cjs/staticModels/Marks.js +7 -20
- package/dist/cjs/staticModels/ModelPackager.js +26 -39
- package/dist/cjs/staticModels/Offers.js +33 -51
- package/dist/cjs/staticModels/Orders.js +108 -106
- package/dist/cjs/staticModels/ProviderRegistry.js +23 -41
- package/dist/cjs/staticModels/StaticModel.js +22 -33
- package/dist/cjs/staticModels/Superpro.js +2 -1
- package/dist/cjs/staticModels/SuperproToken.js +27 -40
- package/dist/cjs/staticModels/TeeOffers.js +64 -94
- package/dist/cjs/tee/QuoteParser.js +20 -20
- package/dist/cjs/tee/QuoteValidator.js +176 -201
- package/dist/cjs/tee/helpers.js +2 -1
- package/dist/cjs/tee/statuses.js +4 -4
- package/dist/cjs/tee/types.d.ts +5 -0
- package/dist/cjs/types/Consensus.js +2 -2
- package/dist/cjs/types/Marks.js +2 -2
- package/dist/cjs/types/Offer.js +3 -3
- package/dist/cjs/types/Order.d.ts +2 -14
- package/dist/cjs/types/Order.js +3 -46
- package/dist/cjs/types/SlotUsage.js +2 -2
- package/dist/cjs/types/Superpro.js +2 -2
- package/dist/cjs/utils/Monitoring.js +6 -5
- package/dist/cjs/utils/NonceTracker.js +31 -43
- package/dist/cjs/utils/PubSub.js +2 -4
- package/dist/cjs/utils/TxManager.js +110 -120
- package/dist/cjs/utils/compressors/GzipCompressor.js +5 -16
- package/dist/cjs/utils/compressors/UncompressedCompressor.js +2 -2
- package/dist/cjs/utils/helper.js +26 -23
- package/dist/cjs/utils/helpers/getStreamChunks.js +29 -68
- package/dist/cjs/utils/helpers/tryWithInterval.js +7 -16
- package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.js +7 -44
- package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.js +18 -27
- package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.js +8 -21
- package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +1 -1
- package/dist/mjs/TIIGenerator.js +1 -1
- package/dist/mjs/analytics/Analytics.d.ts +2 -2
- package/dist/mjs/analytics/Analytics.js +1 -1
- package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +1 -1
- package/dist/mjs/analytics/transports/AxiosTransport.js +1 -1
- package/dist/mjs/analytics/transports/FetchTransport.js +1 -1
- package/dist/mjs/analytics/types.d.ts +1 -1
- package/dist/mjs/connectors/BaseConnector.js +1 -1
- package/dist/mjs/connectors/BlockchainConnector.js +1 -1
- package/dist/mjs/connectors/BlockchainEventsListener.js +1 -1
- package/dist/mjs/contracts/abi.d.ts +33 -107
- package/dist/mjs/contracts/abi.js +34 -131
- package/dist/mjs/crypto/Crypto.js +1 -1
- package/dist/mjs/crypto/nodejs/AES.js +1 -1
- package/dist/mjs/crypto/nodejs/ARIA.js +1 -1
- package/dist/mjs/crypto/nodejs/ECIES.js +1 -1
- package/dist/mjs/crypto/nodejs/NativeCrypto.js +1 -1
- package/dist/mjs/index.d.ts +1 -0
- package/dist/mjs/index.js +2 -1
- package/dist/mjs/models/EtlModel.js +1 -1
- package/dist/mjs/models/Offer.js +1 -1
- package/dist/mjs/models/Order.js +38 -20
- package/dist/mjs/models/Provider.js +1 -1
- package/dist/mjs/models/TCB.js +1 -1
- package/dist/mjs/models/TeeOffer.js +1 -1
- package/dist/mjs/polyfills.js +1 -1
- package/dist/mjs/proto/Compression.js +1 -1
- package/dist/mjs/proto/TRI.js +1 -1
- package/dist/mjs/proto/TeeProperties.js +1 -1
- package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +4 -4
- package/dist/mjs/providers/storage/S3StorageProvider.js +1 -1
- package/dist/mjs/providers/storage/StorageAdapter.js +1 -1
- package/dist/mjs/providers/storage/StorageContentWriter.js +1 -1
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +1 -1
- package/dist/mjs/providers/storage/StorageMetadataReader.js +1 -1
- package/dist/mjs/providers/storage/StorjAdapter.js +1 -1
- package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +0 -1
- package/dist/mjs/providers/storage/StorjStorageProvider.js +1 -3
- package/dist/mjs/providers/storage/getStorageProvider.js +1 -1
- package/dist/mjs/staticModels/ActiveOrders.js +1 -1
- package/dist/mjs/staticModels/Consensus.js +1 -1
- package/dist/mjs/staticModels/Deposits.js +1 -1
- package/dist/mjs/staticModels/ModelPackager.js +1 -1
- package/dist/mjs/staticModels/Offers.js +1 -1
- package/dist/mjs/staticModels/Orders.js +39 -12
- package/dist/mjs/staticModels/StaticModel.js +1 -1
- package/dist/mjs/staticModels/SuperproToken.js +1 -1
- package/dist/mjs/staticModels/TeeOffers.js +1 -1
- package/dist/mjs/tee/QuoteParser.js +1 -1
- package/dist/mjs/tee/QuoteValidator.js +1 -1
- package/dist/mjs/tee/helpers.js +1 -1
- package/dist/mjs/tee/types.d.ts +5 -0
- package/dist/mjs/types/Order.d.ts +2 -14
- package/dist/mjs/types/Order.js +1 -40
- package/dist/mjs/utils/Monitoring.js +1 -1
- package/dist/mjs/utils/NonceTracker.js +1 -1
- package/dist/mjs/utils/PubSub.js +1 -1
- package/dist/mjs/utils/TxManager.js +1 -1
- package/dist/mjs/utils/helper.js +1 -1
- package/dist/mjs/utils/helpers/getStreamChunks.js +1 -1
- package/dist/mjs/utils/helpers/tryWithInterval.js +1 -1
- package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +1 -1
- package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +1 -1
- package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +1 -1
- package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +1 -1
- package/package.json +6 -16
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -19,13 +10,21 @@ var ContentWriterType;
|
|
|
19
10
|
(function (ContentWriterType) {
|
|
20
11
|
ContentWriterType["NEEDS_UPLOAD"] = "NEEDS_UPLOAD";
|
|
21
12
|
ContentWriterType["NEEDS_DELETE"] = "NEEDS_DELETE";
|
|
22
|
-
})(ContentWriterType
|
|
13
|
+
})(ContentWriterType || (exports.ContentWriterType = ContentWriterType = {}));
|
|
23
14
|
const DEFAULT_WRITE_CONTENT_CONCURRENCY = 16;
|
|
24
15
|
const DEFAULT_CACHE_EXPIRATION_TS = 5 * 60 * 1000;
|
|
25
16
|
class StorageContentWriter {
|
|
17
|
+
timeout = null;
|
|
18
|
+
INTERVAL;
|
|
19
|
+
storageKeyValueAdapter;
|
|
20
|
+
logger;
|
|
21
|
+
instanceId;
|
|
22
|
+
cacheExpirationTs;
|
|
23
|
+
objectDeletedFlag;
|
|
24
|
+
queueWriteContent;
|
|
25
|
+
performance;
|
|
26
|
+
storageWrites = new Map();
|
|
26
27
|
constructor(config) {
|
|
27
|
-
this.timeout = null;
|
|
28
|
-
this.storageWrites = new Map();
|
|
29
28
|
const { writeContentConcurrency, interval, storageKeyValueAdapter, instanceId, objectDeletedFlag, cacheExpirationTs, performance, showLogs = true, } = config || {};
|
|
30
29
|
this.logger = showLogs ? logger_js_1.default.child({ class: StorageContentWriter.name }) : null;
|
|
31
30
|
this.performance = performance;
|
|
@@ -38,118 +37,107 @@ class StorageContentWriter {
|
|
|
38
37
|
concurrency: writeContentConcurrency || DEFAULT_WRITE_CONTENT_CONCURRENCY,
|
|
39
38
|
});
|
|
40
39
|
}
|
|
41
|
-
actualizeCacheDelete(key, encryptionKey) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
});
|
|
40
|
+
async actualizeCacheDelete(key, encryptionKey) {
|
|
41
|
+
const objects = await this.storageKeyValueAdapter.listFiles(key);
|
|
42
|
+
const objectsToDelete = objects.filter((object) => !object.name.endsWith(this.objectDeletedFlag));
|
|
43
|
+
await Promise.all(objectsToDelete.map((object) => this.storageKeyValueAdapter.delete(object.name)));
|
|
44
|
+
if (objectsToDelete.length === objects.length) {
|
|
45
|
+
await this.storageKeyValueAdapter.set(`${key}/${this.objectDeletedFlag}`, null, encryptionKey);
|
|
46
|
+
}
|
|
50
47
|
}
|
|
51
|
-
actualizeCacheUpload(key, encryptionKey, cache) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const finishUpload = this.performance.now();
|
|
69
|
-
(_c = this.logger) === null || _c === void 0 ? void 0 : _c.info(`Uploading took ${(finishUpload - startUpload).toFixed(1)} ms`);
|
|
70
|
-
}
|
|
48
|
+
async actualizeCacheUpload(key, encryptionKey, cache) {
|
|
49
|
+
const instances = cache.get(key);
|
|
50
|
+
const instance = instances?.get(this.instanceId);
|
|
51
|
+
if (!instances || !instance) {
|
|
52
|
+
this.logger?.error({
|
|
53
|
+
key,
|
|
54
|
+
instancesSize: instances?.size,
|
|
55
|
+
value: instance,
|
|
56
|
+
}, 'Attempted to upload non-existing value');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (instance.value) {
|
|
60
|
+
const startUpload = this.performance?.now();
|
|
61
|
+
await this.storageKeyValueAdapter.set(`${key}/${this.instanceId}`, instance.value, encryptionKey);
|
|
62
|
+
if (this.performance && startUpload !== undefined) {
|
|
63
|
+
const finishUpload = this.performance.now();
|
|
64
|
+
this.logger?.info(`Uploading took ${(finishUpload - startUpload).toFixed(1)} ms`);
|
|
71
65
|
}
|
|
72
|
-
|
|
73
|
-
|
|
66
|
+
}
|
|
67
|
+
await this.deleteOutdatedInstances(key, instances);
|
|
74
68
|
}
|
|
75
|
-
actualizeCache(cache) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
break;
|
|
91
|
-
default:
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
// delete only if the current index is up to date
|
|
95
|
-
if (index === ((_a = this.storageWrites.get(key)) === null || _a === void 0 ? void 0 : _a.index)) {
|
|
96
|
-
this.storageWrites.delete(key);
|
|
97
|
-
}
|
|
69
|
+
async actualizeCache(cache) {
|
|
70
|
+
const logger = this.logger?.child({ method: this.actualizeCache.name });
|
|
71
|
+
if (this.storageWrites.size) {
|
|
72
|
+
Array.from(this.storageWrites.entries()).forEach(([key, { type, index, encryptionKey }]) => {
|
|
73
|
+
this.queueWriteContent.add(async () => {
|
|
74
|
+
try {
|
|
75
|
+
switch (type) {
|
|
76
|
+
case ContentWriterType.NEEDS_DELETE:
|
|
77
|
+
await this.actualizeCacheDelete(key, encryptionKey);
|
|
78
|
+
break;
|
|
79
|
+
case ContentWriterType.NEEDS_UPLOAD:
|
|
80
|
+
await this.actualizeCacheUpload(key, encryptionKey, cache);
|
|
81
|
+
break;
|
|
82
|
+
default:
|
|
83
|
+
break;
|
|
98
84
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
size: this.storageWrites.size,
|
|
103
|
-
}, `Error storage writing ${key}`);
|
|
85
|
+
// delete only if the current index is up to date
|
|
86
|
+
if (index === this.storageWrites.get(key)?.index) {
|
|
87
|
+
this.storageWrites.delete(key);
|
|
104
88
|
}
|
|
105
|
-
}
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
logger?.error({
|
|
92
|
+
err,
|
|
93
|
+
size: this.storageWrites.size,
|
|
94
|
+
}, `Error storage writing ${key}`);
|
|
95
|
+
}
|
|
106
96
|
});
|
|
107
|
-
yield this.queueWriteContent.onIdle();
|
|
108
|
-
logger === null || logger === void 0 ? void 0 : logger.info({ size: this.storageWrites.size }, 'Success storage writing');
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
deleteOutdatedInstances(key, instances) {
|
|
113
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
-
const expiredTs = Date.now() - this.cacheExpirationTs;
|
|
115
|
-
const instancesToDelete = [];
|
|
116
|
-
instances === null || instances === void 0 ? void 0 : instances.forEach((instance, instanceId) => {
|
|
117
|
-
const isOutdated = instance.modifiedTs < expiredTs;
|
|
118
|
-
const isNotNull = Boolean(instance.value);
|
|
119
|
-
if (instanceId !== this.instanceId && isNotNull && isOutdated) {
|
|
120
|
-
instancesToDelete.push([instanceId, instance]);
|
|
121
|
-
}
|
|
122
97
|
});
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
98
|
+
await this.queueWriteContent.onIdle();
|
|
99
|
+
logger?.info({ size: this.storageWrites.size }, 'Success storage writing');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async deleteOutdatedInstances(key, instances) {
|
|
103
|
+
const expiredTs = Date.now() - this.cacheExpirationTs;
|
|
104
|
+
const instancesToDelete = [];
|
|
105
|
+
instances?.forEach((instance, instanceId) => {
|
|
106
|
+
const isOutdated = instance.modifiedTs < expiredTs;
|
|
107
|
+
const isNotNull = Boolean(instance.value);
|
|
108
|
+
if (instanceId !== this.instanceId && isNotNull && isOutdated) {
|
|
109
|
+
instancesToDelete.push([instanceId, instance]);
|
|
126
110
|
}
|
|
127
|
-
// Finding the most up-to-date instance to preserve
|
|
128
|
-
instancesToDelete
|
|
129
|
-
.sort((a, b) => {
|
|
130
|
-
const diff = a[1].modifiedTs - b[1].modifiedTs;
|
|
131
|
-
if (diff === 0) {
|
|
132
|
-
return a[0] >= b[0] ? 1 : -1;
|
|
133
|
-
}
|
|
134
|
-
return diff;
|
|
135
|
-
})
|
|
136
|
-
.pop();
|
|
137
|
-
yield Promise.allSettled(instancesToDelete.map(([instanceId]) => this.storageKeyValueAdapter
|
|
138
|
-
.delete(`${key}/${instanceId}`)
|
|
139
|
-
.then(() => {
|
|
140
|
-
instances.delete(instanceId);
|
|
141
|
-
})
|
|
142
|
-
.catch((err) => { var _a; return (_a = this.logger) === null || _a === void 0 ? void 0 : _a.error({ err }, 'Error deleting outdated instance'); })));
|
|
143
111
|
});
|
|
112
|
+
// For safety, always preserve one additional copy in storage
|
|
113
|
+
if (instancesToDelete.length <= 1) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Finding the most up-to-date instance to preserve
|
|
117
|
+
instancesToDelete
|
|
118
|
+
.sort((a, b) => {
|
|
119
|
+
const diff = a[1].modifiedTs - b[1].modifiedTs;
|
|
120
|
+
if (diff === 0) {
|
|
121
|
+
return a[0] >= b[0] ? 1 : -1;
|
|
122
|
+
}
|
|
123
|
+
return diff;
|
|
124
|
+
})
|
|
125
|
+
.pop();
|
|
126
|
+
await Promise.allSettled(instancesToDelete.map(([instanceId]) => this.storageKeyValueAdapter
|
|
127
|
+
.delete(`${key}/${instanceId}`)
|
|
128
|
+
.then(() => {
|
|
129
|
+
instances.delete(instanceId);
|
|
130
|
+
})
|
|
131
|
+
.catch((err) => this.logger?.error({ err }, 'Error deleting outdated instance'))));
|
|
144
132
|
}
|
|
145
133
|
startActualizeCacheTimer(cache) {
|
|
146
134
|
if (this.INTERVAL) {
|
|
147
135
|
if (this.timeout)
|
|
148
136
|
clearTimeout(this.timeout);
|
|
149
|
-
this.timeout = setTimeout(() =>
|
|
150
|
-
|
|
137
|
+
this.timeout = setTimeout(async () => {
|
|
138
|
+
await this.actualizeCache(cache);
|
|
151
139
|
this.startActualizeCacheTimer(cache);
|
|
152
|
-
}
|
|
140
|
+
}, this.INTERVAL);
|
|
153
141
|
}
|
|
154
142
|
}
|
|
155
143
|
stop() {
|
|
@@ -161,23 +149,20 @@ class StorageContentWriter {
|
|
|
161
149
|
const oldValue = this.storageWrites.get(key);
|
|
162
150
|
this.storageWrites.set(key, {
|
|
163
151
|
type,
|
|
164
|
-
index:
|
|
152
|
+
index: oldValue?.index ? oldValue.index + 1 : 1,
|
|
165
153
|
encryptionKey,
|
|
166
154
|
});
|
|
167
155
|
}
|
|
168
156
|
get(key) {
|
|
169
|
-
|
|
170
|
-
return ((_a = this.storageWrites.get(key)) === null || _a === void 0 ? void 0 : _a.type) || null;
|
|
157
|
+
return this.storageWrites.get(key)?.type || null;
|
|
171
158
|
}
|
|
172
159
|
clear() {
|
|
173
160
|
this.storageWrites.clear();
|
|
174
161
|
}
|
|
175
|
-
shutdown(cache) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
yield this.actualizeCache(cache);
|
|
179
|
-
});
|
|
162
|
+
async shutdown(cache) {
|
|
163
|
+
this.stop();
|
|
164
|
+
await this.actualizeCache(cache);
|
|
180
165
|
}
|
|
181
166
|
}
|
|
182
167
|
exports.default = StorageContentWriter;
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUNvbnRlbnRXcml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUNvbnRlbnRXcml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esc0RBQTRCO0FBQzVCLGdFQUFpRDtBQWVqRCxJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDM0Isa0RBQTZCLENBQUE7SUFDN0Isa0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQUhXLGlCQUFpQixpQ0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQVFsRCxNQUFxQixvQkFBb0I7SUFDL0IsT0FBTyxHQUF5QyxJQUFJLENBQUM7SUFDNUMsUUFBUSxDQUFTO0lBQ2pCLHNCQUFzQixDQUE0QjtJQUNsRCxNQUFNLENBQWlCO0lBQ3ZCLFVBQVUsQ0FBUztJQUNuQixpQkFBaUIsQ0FBUztJQUMxQixpQkFBaUIsQ0FBUztJQUMxQixpQkFBaUIsQ0FBUTtJQUN6QixXQUFXLENBQWU7SUFDM0IsYUFBYSxHQUErQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXRFLFlBQVksTUFBcUM7UUFDL0MsTUFBTSxFQUNKLHVCQUF1QixFQUN2QixRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxRQUFRLEdBQUcsSUFBSSxHQUNoQixHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLG1CQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -18,42 +9,38 @@ const getStorageProvider_js_1 = __importDefault(require("./getStorageProvider.js
|
|
|
18
9
|
const logger_js_1 = __importDefault(require("../../logger.js"));
|
|
19
10
|
const Crypto_js_1 = __importDefault(require("../../crypto/Crypto.js"));
|
|
20
11
|
class StorageKeyValueAdapter {
|
|
12
|
+
storageProvider;
|
|
13
|
+
logger;
|
|
21
14
|
constructor(storageAccess, config) {
|
|
22
|
-
if (!
|
|
15
|
+
if (!storageAccess?.credentials)
|
|
23
16
|
throw new Error('Credentials is empty');
|
|
24
17
|
const { showLogs = true } = config || {};
|
|
25
18
|
this.logger = showLogs ? logger_js_1.default.child({ class: StorageKeyValueAdapter.name }) : null;
|
|
26
19
|
this.storageProvider = (0, getStorageProvider_js_1.default)(storageAccess);
|
|
27
20
|
}
|
|
28
|
-
decrypt(encryption, key) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return JSON.parse(yield Crypto_js_1.default.decrypt(encryption));
|
|
36
|
-
});
|
|
21
|
+
async decrypt(encryption, key) {
|
|
22
|
+
if (!encryption)
|
|
23
|
+
return null;
|
|
24
|
+
if (!key)
|
|
25
|
+
throw new Error('Key cannot be empty!');
|
|
26
|
+
encryption.key = key;
|
|
27
|
+
return JSON.parse(await Crypto_js_1.default.decrypt(encryption));
|
|
37
28
|
}
|
|
38
|
-
encrypt(data, key) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
cipher: dto_js_1.Cipher.AES_256_GCM,
|
|
49
|
-
});
|
|
29
|
+
async encrypt(data, key) {
|
|
30
|
+
if (data === undefined)
|
|
31
|
+
throw new Error('Data cannot be empty!');
|
|
32
|
+
if (!key)
|
|
33
|
+
throw new Error('Private cannot be empty!');
|
|
34
|
+
return Crypto_js_1.default.encrypt(JSON.stringify(data), {
|
|
35
|
+
algo: dto_js_1.CryptoAlgorithm.AES,
|
|
36
|
+
encoding: dto_js_1.Encoding.base64,
|
|
37
|
+
key,
|
|
38
|
+
cipher: dto_js_1.Cipher.AES_256_GCM,
|
|
50
39
|
});
|
|
51
40
|
}
|
|
52
|
-
downloadFromStorage(filepath) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return this.streamToString(downloadStream);
|
|
56
|
-
});
|
|
41
|
+
async downloadFromStorage(filepath) {
|
|
42
|
+
const downloadStream = await this.storageProvider.downloadFile(filepath, {});
|
|
43
|
+
return this.streamToString(downloadStream);
|
|
57
44
|
}
|
|
58
45
|
streamToString(stream) {
|
|
59
46
|
const chunks = [];
|
|
@@ -65,94 +52,74 @@ class StorageKeyValueAdapter {
|
|
|
65
52
|
stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
66
53
|
});
|
|
67
54
|
}
|
|
68
|
-
storageUpload(key, value, privateKey) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
throw err;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
55
|
+
async storageUpload(key, value, privateKey) {
|
|
56
|
+
try {
|
|
57
|
+
const encryptedValue = await this.encrypt(value, privateKey);
|
|
58
|
+
const buffer = Buffer.from(JSON.stringify(encryptedValue));
|
|
59
|
+
await this.storageProvider.uploadFile(stream_1.Readable.from(buffer), key, buffer.byteLength);
|
|
60
|
+
this.logger?.info({ data: key }, 'Success uploading to storage');
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
this.logger?.error({ err }, 'Error uploading to storage');
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
82
66
|
}
|
|
83
|
-
storageDelete(key) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
throw err;
|
|
93
|
-
}
|
|
94
|
-
});
|
|
67
|
+
async storageDelete(key) {
|
|
68
|
+
try {
|
|
69
|
+
await this.storageProvider.deleteObject(key);
|
|
70
|
+
this.logger?.info({ data: key }, 'Success deleting from storage');
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
this.logger?.info({ err }, 'Error deleting from storage');
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
95
76
|
}
|
|
96
|
-
storageDownload(key, privateKey) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
throw err;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
77
|
+
async storageDownload(key, privateKey) {
|
|
78
|
+
try {
|
|
79
|
+
const downloaded = await this.downloadFromStorage(key);
|
|
80
|
+
this.logger?.info({ key }, 'Success download data from storage');
|
|
81
|
+
if (!downloaded)
|
|
82
|
+
return null;
|
|
83
|
+
const decryptedValue = await this.decrypt(JSON.parse(downloaded), privateKey);
|
|
84
|
+
return decryptedValue;
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
this.logger?.info({
|
|
88
|
+
err,
|
|
89
|
+
key,
|
|
90
|
+
}, 'Error download data from storage');
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
115
93
|
}
|
|
116
|
-
storageListFiles(key) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
throw err;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
94
|
+
async storageListFiles(key) {
|
|
95
|
+
try {
|
|
96
|
+
const listObjects = await this.storageProvider.listObjects(key);
|
|
97
|
+
this.logger?.trace({
|
|
98
|
+
data: listObjects,
|
|
99
|
+
key,
|
|
100
|
+
}, 'Success list objects from storage');
|
|
101
|
+
return listObjects.filter((obj) => !obj.isFolder);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
this.logger?.info({
|
|
105
|
+
err,
|
|
106
|
+
key,
|
|
107
|
+
}, 'Error list objects from storage');
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
135
110
|
}
|
|
136
|
-
set(key, value, privateKey) {
|
|
137
|
-
return
|
|
138
|
-
return this.storageUpload(key, value, privateKey);
|
|
139
|
-
});
|
|
111
|
+
async set(key, value, privateKey) {
|
|
112
|
+
return this.storageUpload(key, value, privateKey);
|
|
140
113
|
}
|
|
141
|
-
delete(key) {
|
|
142
|
-
return
|
|
143
|
-
return this.storageDelete(key);
|
|
144
|
-
});
|
|
114
|
+
async delete(key) {
|
|
115
|
+
return this.storageDelete(key);
|
|
145
116
|
}
|
|
146
|
-
get(key, privateKey) {
|
|
147
|
-
return
|
|
148
|
-
return this.storageDownload(key, privateKey);
|
|
149
|
-
});
|
|
117
|
+
async get(key, privateKey) {
|
|
118
|
+
return this.storageDownload(key, privateKey);
|
|
150
119
|
}
|
|
151
|
-
listFiles(key) {
|
|
152
|
-
return
|
|
153
|
-
return this.storageListFiles(key);
|
|
154
|
-
});
|
|
120
|
+
async listFiles(key) {
|
|
121
|
+
return this.storageListFiles(key);
|
|
155
122
|
}
|
|
156
123
|
}
|
|
157
124
|
exports.default = StorageKeyValueAdapter;
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWtDO0FBQ2xDLG1EQUF1RjtBQUd2RixvRkFBeUQ7QUFFekQsZ0VBQWlEO0FBQ2pELHVFQUE0QztBQU01QyxNQUFxQixzQkFBc0I7SUFDeEIsZUFBZSxDQUFtQjtJQUNsQyxNQUFNLENBQWlCO0lBRXhDLFlBQVksYUFBNEIsRUFBRSxNQUFxQztRQUM3RSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekUsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFBLCtCQUFrQixFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsR0FBVztRQUN0RCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxELFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLG1CQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFD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
|