@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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const crypto_1 = require("crypto");
|
|
13
4
|
const events_1 = require("events");
|
|
@@ -16,6 +7,18 @@ const dto_js_1 = require("@super-protocol/dto-js");
|
|
|
16
7
|
*
|
|
17
8
|
*/
|
|
18
9
|
class NativeCrypto {
|
|
10
|
+
/**
|
|
11
|
+
* Here would be better to check cipher type using
|
|
12
|
+
* ```
|
|
13
|
+
* getCipherInfo(cipher)!.mode === 'mode'
|
|
14
|
+
* ```
|
|
15
|
+
* but it doesn't work in browser
|
|
16
|
+
*/
|
|
17
|
+
static isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
18
|
+
static isGCM = (cipher) => /gcm/i.test(cipher);
|
|
19
|
+
static isOCB = (cipher) => /ocb/i.test(cipher);
|
|
20
|
+
static isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
21
|
+
static isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
19
22
|
/**
|
|
20
23
|
* Here would be better to check cipher type using
|
|
21
24
|
* ```
|
|
@@ -110,34 +113,30 @@ class NativeCrypto {
|
|
|
110
113
|
}
|
|
111
114
|
return result;
|
|
112
115
|
}
|
|
113
|
-
static encryptStream(key, inputStream, outputStream, cipherName, encoding = dto_js_1.Encoding.base64) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
return result;
|
|
125
|
-
});
|
|
116
|
+
static async encryptStream(key, inputStream, outputStream, cipherName, encoding = dto_js_1.Encoding.base64) {
|
|
117
|
+
const iv = this.createIV(cipherName);
|
|
118
|
+
const result = {};
|
|
119
|
+
const cipher = this.createCipher(cipherName, key, iv);
|
|
120
|
+
inputStream.pipe(cipher).pipe(outputStream);
|
|
121
|
+
await (0, events_1.once)(outputStream, 'finish');
|
|
122
|
+
result.iv = iv.toString(encoding);
|
|
123
|
+
if (this.isCCM(cipherName) || this.isGCM(cipherName)) {
|
|
124
|
+
result.mac = cipher.getAuthTag().toString(encoding);
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
126
127
|
}
|
|
127
128
|
static decrypt(key, content, cipherName, params, inputEncoding = dto_js_1.Encoding.base64,
|
|
128
129
|
// TODO: replace BufferEncoding with Encoding
|
|
129
130
|
outputEncoding = 'binary') {
|
|
130
|
-
const decipher = this.createDecipher(cipherName, key, params.iv, params
|
|
131
|
+
const decipher = this.createDecipher(cipherName, key, params.iv, params?.mac);
|
|
131
132
|
let decrypted = decipher.update(content, inputEncoding, outputEncoding);
|
|
132
133
|
decrypted += decipher.final(outputEncoding);
|
|
133
134
|
return decrypted;
|
|
134
135
|
}
|
|
135
|
-
static decryptStream(key, inputStream, outputStream, cipherName, params) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
yield (0, events_1.once)(outputStream, 'finish');
|
|
140
|
-
});
|
|
136
|
+
static async decryptStream(key, inputStream, outputStream, cipherName, params) {
|
|
137
|
+
const decipher = this.createDecipher(cipherName, key, params.iv, params.mac);
|
|
138
|
+
inputStream.pipe(decipher).pipe(outputStream);
|
|
139
|
+
await (0, events_1.once)(outputStream, 'finish');
|
|
141
140
|
}
|
|
142
141
|
static createHashFromBuffer(data, algorithm, encoding = dto_js_1.Encoding.base64) {
|
|
143
142
|
const hash = (0, crypto_1.createHash)(algorithm);
|
|
@@ -162,17 +161,5 @@ class NativeCrypto {
|
|
|
162
161
|
});
|
|
163
162
|
}
|
|
164
163
|
}
|
|
165
|
-
/**
|
|
166
|
-
* Here would be better to check cipher type using
|
|
167
|
-
* ```
|
|
168
|
-
* getCipherInfo(cipher)!.mode === 'mode'
|
|
169
|
-
* ```
|
|
170
|
-
* but it doesn't work in browser
|
|
171
|
-
*/
|
|
172
|
-
NativeCrypto.isCCM = (cipher) => /ccm/i.test(cipher) || cipher === 'chacha20-poly1305';
|
|
173
|
-
NativeCrypto.isGCM = (cipher) => /gcm/i.test(cipher);
|
|
174
|
-
NativeCrypto.isOCB = (cipher) => /ocb/i.test(cipher);
|
|
175
|
-
NativeCrypto.isECB = (cipher) => /ecb/i.test(cipher) || cipher === 'des-ede' || cipher === 'des-ede3';
|
|
176
|
-
NativeCrypto.isRC4 = (cipher) => /^rc4/i.test(cipher);
|
|
177
164
|
exports.default = NativeCrypto;
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0aXZlQ3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NyeXB0by9ub2RlanMvTmF0aXZlQ3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsbUNBVWdCO0FBRWhCLG1DQUE4QjtBQUU5QixtREFBNEY7QUFFNUY7O0dBRUc7QUFDSCxNQUFNLFlBQVk7SUFDaEI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFVLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQ3pELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLG1CQUFtQixDQUFDO0lBQ2pELE1BQU0sQ0FBVSxLQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsTUFBTSxDQUFVLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxNQUFNLENBQVUsS0FBSyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUUsQ0FDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxVQUFVLENBQUM7SUFDaEUsTUFBTSxDQUFVLEtBQUssR0FBRyxDQUFDLE1BQWMsRUFBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVqRjs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWM7UUFDdkMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxLQUFLLHlC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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
|
};
|
|
@@ -59,15 +50,25 @@ class RSAHybrid {
|
|
|
59
50
|
const aesKey = (0, crypto_1.randomBytes)(32);
|
|
60
51
|
const keys = this.publicEncrypt(encryption.key, aesKey);
|
|
61
52
|
const encrypted = NativeCrypto_js_1.default.encrypt(aesKey, content, dto_js_1.Cipher.AES_256_GCM, encryption.encoding);
|
|
62
|
-
return
|
|
53
|
+
return {
|
|
54
|
+
...encrypted,
|
|
55
|
+
encoding: encryption.encoding,
|
|
56
|
+
algo: dto_js_1.CryptoAlgorithm.RSAHybrid,
|
|
57
|
+
cipher: dto_js_1.Cipher.RSA_OAEP_AES_GCM,
|
|
58
|
+
keys: JSON.stringify(keys),
|
|
59
|
+
};
|
|
63
60
|
}
|
|
64
|
-
static encryptStream(inputStream, outputStream, encryption) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
static async encryptStream(inputStream, outputStream, encryption) {
|
|
62
|
+
const aesKey = (0, crypto_1.randomBytes)(32);
|
|
63
|
+
const keys = this.publicEncrypt(encryption.key, aesKey);
|
|
64
|
+
const encrypted = (await NativeCrypto_js_1.default.encryptStream(aesKey, inputStream, outputStream, dto_js_1.Cipher.AES_256_GCM, encryption.encoding));
|
|
65
|
+
return {
|
|
66
|
+
...encrypted,
|
|
67
|
+
encoding: encryption.encoding,
|
|
68
|
+
algo: dto_js_1.CryptoAlgorithm.RSAHybrid,
|
|
69
|
+
cipher: dto_js_1.Cipher.RSA_OAEP_AES_GCM,
|
|
70
|
+
keys: JSON.stringify(keys),
|
|
71
|
+
};
|
|
71
72
|
}
|
|
72
73
|
static decrypt(encryption) {
|
|
73
74
|
const iv = Buffer.from(encryption.iv, encryption.encoding);
|
|
@@ -79,17 +80,15 @@ class RSAHybrid {
|
|
|
79
80
|
}, encryption.encoding);
|
|
80
81
|
return decrypted;
|
|
81
82
|
}
|
|
82
|
-
static decryptStream(inputStream, outputStream, encryption) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
mac,
|
|
90
|
-
});
|
|
83
|
+
static async decryptStream(inputStream, outputStream, encryption) {
|
|
84
|
+
const iv = Buffer.from(encryption.iv, encryption.encoding);
|
|
85
|
+
const mac = Buffer.from(encryption.mac, encryption.encoding);
|
|
86
|
+
const aesKey = this.privateDecrypt(encryption.key, JSON.parse(encryption.keys));
|
|
87
|
+
await NativeCrypto_js_1.default.decryptStream(aesKey, inputStream, outputStream, dto_js_1.Cipher.AES_256_GCM, {
|
|
88
|
+
iv,
|
|
89
|
+
mac,
|
|
91
90
|
});
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
exports.default = RSAHybrid;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUlNBLUh5YnJpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jcnlwdG8vbm9kZWpzL1JTQS1IeWJyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxtREFNZ0M7QUFDaEMsbUNBVWdCO0FBQ2hCLHdFQUE2QztBQUk3QyxNQUFNLFNBQVM7SUFDTixNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBYztRQUM1QyxNQUFNLE9BQU8sR0FBZSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBQSxtQkFBVSxFQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN6RCxNQUFNLFNBQVMsR0FBRyxJQUFBLHdCQUFlLEVBQUM7WUFDaEMsR0FBRyxFQUFFLE1BQU07WUFDWCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUNILE1BQU0sWUFBWSxHQUFHLElBQUEsc0JBQWEsRUFDaEM7WUFDRSxHQUFHLEVBQUUsU0FBUztZQUNkLE9BQU8sRUFBRSxrQkFBZSxD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
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ export { Web3TransactionRevertedByEvmError } from './utils/TxManager.js';
|
|
|
72
72
|
import './polyfills.js';
|
|
73
73
|
export { TeeSgxParser } from './tee/QuoteParser.js';
|
|
74
74
|
export { QuoteValidator } from './tee/QuoteValidator.js';
|
|
75
|
+
export * from './analytics/types.js';
|
|
75
76
|
export { default as Analytics } from './analytics/Analytics.js';
|
|
76
77
|
export { default as NodeEventProvider } from './analytics/eventProviders/NodeEventProvider.js';
|
|
77
78
|
export { default as BrowserEventProvider } from './analytics/eventProviders/BrowserEventProvider.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -129,6 +129,7 @@ var QuoteParser_js_1 = require("./tee/QuoteParser.js");
|
|
|
129
129
|
Object.defineProperty(exports, "TeeSgxParser", { enumerable: true, get: function () { return QuoteParser_js_1.TeeSgxParser; } });
|
|
130
130
|
var QuoteValidator_js_1 = require("./tee/QuoteValidator.js");
|
|
131
131
|
Object.defineProperty(exports, "QuoteValidator", { enumerable: true, get: function () { return QuoteValidator_js_1.QuoteValidator; } });
|
|
132
|
+
__exportStar(require("./analytics/types.js"), exports);
|
|
132
133
|
var Analytics_js_1 = require("./analytics/Analytics.js");
|
|
133
134
|
Object.defineProperty(exports, "Analytics", { enumerable: true, get: function () { return __importDefault(Analytics_js_1).default; } });
|
|
134
135
|
var NodeEventProvider_js_1 = require("./analytics/eventProviders/NodeEventProvider.js");
|
|
@@ -139,4 +140,4 @@ var AxiosTransport_js_1 = require("./analytics/transports/AxiosTransport.js");
|
|
|
139
140
|
Object.defineProperty(exports, "AxiosTransport", { enumerable: true, get: function () { return __importDefault(AxiosTransport_js_1).default; } });
|
|
140
141
|
var FetchTransport_js_1 = require("./analytics/transports/FetchTransport.js");
|
|
141
142
|
Object.defineProperty(exports, "FetchTransport", { enumerable: true, get: function () { return __importDefault(FetchTransport_js_1).default; } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpR0FBc0U7QUFFdEUsa0JBQWUsZ0NBQW1CLENBQUM7QUFDbkMsc0VBQW9EO0FBSXBELHdGQUErRjtBQUF0Rix3SkFBQSxPQUFPLE9BQTRCO0FBRTVDLDhDQUFzRDtBQUE3QyxtSEFBQSxPQUFPLE9BQVU7QUFFMUIscURBQTREO0FBQW5ELGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMsb0RBQWtDO0FBRWxDLDREQUFtRTtBQUExRCwwSEFBQSxPQUFPLE9BQWE7QUFDN0IsOERBQTRDO0FBRTVDLHNEQUE2RDtBQUFwRCxvSEFBQSxPQUFPLE9BQVU7QUFDMUIsMkRBQXlDO0FBRXpDLGtFQUF5RTtBQUFoRSxnSUFBQSxPQUFPLE9BQWdCO0FBQ2hDLGlFQUErQztBQUUvQyxrRUFBeUU7QUFBaEUsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyxpRUFBK0M7QUFFL0Msc0RBQTZEO0FBQXBELG9IQUFBLE9BQU8sT0FBVTtBQUMxQiwyREFBeUM7QUFFekMsNERBQW1FO0FBQTFELDBIQUFBLE9BQU8sT0FBYTtBQUM3Qiw4REFBNEM7QUFFNUMsMEVBQWlGO0FBQXhFLHdJQUFBLE9BQU8sT0FBb0I7QUFDcEMscUVBQW1EO0FBRW5ELG9FQUEyRTtBQUFsRSxrSUFBQSxPQUFPLE9BQWlCO0FBQ2pDLGtFQUFnRDtBQUVoRCwwREFBaUU7QUFBeEQsd0hBQUEsT0FBTyxPQUFZO0FBQzVCLDZEQUEyQztBQUUzQyxvREFBMkQ7QUFBbEQsa0hBQUEsT0FBTyxPQUFTO0FBQ3pCLDBEQUF3QztBQUV4QywwREFBaUU7QUFBeEQsd0hBQUEsT0FBTyxPQUFZO0FBQzVCLDZEQUEyQztBQUUzQyw4Q0FBcUQ7QUFBNUMsa0hBQUEsT0FBTyxPQUFTO0FBQ3pCLG9EQUFrQztBQUVsQyxvREFBMkQ7QUFBbEQsd0hBQUEsT0FBTyxPQUFZO0FBQzVCLHVEQUFxQztBQUVyQyxvREFBMkQ7QUFBbEQsd0hBQUEsT0FBTyxPQUFZO0FBQzVCLHVEQUFxQztBQUVyQyw4Q0FBcUQ7QUFBNUMsa0hBQUEsT0FBTyxPQUFTO0FBQ3pCLG9EQUFrQztBQUVsQywwQ0FBaUQ7QUFBeEMsOEdBQUEsT0FBTyxPQUFPO0FBQ3ZCLGtEQUFnQztBQUVoQyxtREFBaUM7QUFDakMsbURBQWlDO0FBQ2pDLG1EQUFpQztBQUNqQywwREFBd0M7QUFDeEMsMERBQXdDO0FBQ3hDLHNEQUFvQztBQUNwQyx1REFBcUM7QUFDckMsd0RBQXNDO0FBQ3RDLHdEQUFzQztBQUN0QywwREFBd0M7QUFDeEMsNERBQTBDO0FBQzFDLDBEQUF3QztBQUN4Qyw0REFBMEM7QUFDMUMsc0RBQW9DO0FBQ3BDLHNEQUFvQztBQUNwQyx1REFBcUM7QUFDckMscURBQW1DO0FBQ25DLGtEQUFnQztBQUVoQyx5R0FBeUY7QUFDekYsdUVBQTJGO0FBQWxGLGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMseUZBR3NEO0FBRnBELGtKQUFBLE9BQU8sT0FBeUI7QUFHbEMsMkZBQWtHO0FBQXpGLG9KQUFBLE9BQU8sT0FBMEI7QUFDMUMsMkVBSStDO0FBSDdDLG9JQUFBLE9BQU8sT0FBa0I7QUFDekIsZ0hBQUEsV0FBVyxPQUFBO0FBR2IsdUZBSXFEO0FBSG5ELGdKQUFBLE9BQU8sT0FBd0I7QUFFL0IsNEhBQUEsaUJBQWlCLE9BQUE7QUFNbkIsbUZBQTBGO0FBQWpGLDRJQUFBLE9BQU8sT0FBc0I7QUFHdEMsb0VBQW9EO0FBRXBELHFEQUF5RTtBQUFoRSxpSUFBQSxpQ0FBaUMsT0FBQTtBQUUxQywwQkFBd0I7QUFFeEIsdURBQW9EO0FBQTNDLDhHQUFBLFlBQVksT0FBQTtBQUNyQiw2REFBeUQ7QUFBaEQsbUhBQUEsY0FBYyxPQUFBO0FBRXZCLHVEQUFxQztBQUNyQyx5REFBZ0U7QUFBdkQsMEhBQUEsT0FBTyxPQUFhO0FBQzdCLHdGQUErRjtBQUF0RiwwSUFBQSxPQUFPLE9BQXFCO0FBQ3JDLDhGQUFxRztBQUE1RixnSkFBQSxPQUFPLE9BQXdCO0FBQ3hDLDhFQUFxRjtBQUE1RSxvSUFBQSxPQUFPLE9BQWtCO0FBQ2xDLDhFQUFxRjtBQUE1RSxvSUFBQSxPQUFPLE9BQWtCIn0=
|
|
@@ -22,15 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
27
|
};
|
|
@@ -42,6 +33,8 @@ const ModelPackager_js_1 = require("../staticModels/ModelPackager.js");
|
|
|
42
33
|
const ResourceContentType_enum_1 = require("@super-protocol/dto-js/build/enum/ResourceContentType.enum");
|
|
43
34
|
const index_js_1 = require("../utils/resourceLoaders/index.js");
|
|
44
35
|
class EtlModel {
|
|
36
|
+
etlModel;
|
|
37
|
+
static logger = logger_js_1.default.child({ name: EtlModel.name });
|
|
45
38
|
constructor(etlModel) {
|
|
46
39
|
this.etlModel = etlModel;
|
|
47
40
|
}
|
|
@@ -51,17 +44,15 @@ class EtlModel {
|
|
|
51
44
|
* @param data - packed EtlModel
|
|
52
45
|
* @returns instance of EtlModel
|
|
53
46
|
*/
|
|
54
|
-
static unpack(data) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
});
|
|
47
|
+
static async unpack(data) {
|
|
48
|
+
try {
|
|
49
|
+
const etlModel = await ModelPackager_js_1.ModelPackager.unpack(data);
|
|
50
|
+
return new EtlModel(etlModel);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
EtlModel.logger.error('Unable to unpack EtlModel');
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
65
56
|
}
|
|
66
57
|
/**
|
|
67
58
|
* Packing EltModel
|
|
@@ -71,32 +62,30 @@ class EtlModel {
|
|
|
71
62
|
pack() {
|
|
72
63
|
return ModelPackager_js_1.ModelPackager.pack(this.etlModel);
|
|
73
64
|
}
|
|
74
|
-
downloadMetadata() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
throw new Error('Resource is empty');
|
|
85
|
-
}
|
|
86
|
-
const stringified = bytes.toString();
|
|
87
|
-
switch (metadata.resourceContentType) {
|
|
88
|
-
case ResourceContentType_enum_1.ResourceContentType.JSON:
|
|
89
|
-
return this.parseJsonResource(stringified);
|
|
90
|
-
case ResourceContentType_enum_1.ResourceContentType.PROTOBUF:
|
|
91
|
-
return this.parseProtobufResource(stringified);
|
|
92
|
-
default:
|
|
93
|
-
throw new Error(`Resource content type ${metadata.resourceContentType} is not supported`);
|
|
94
|
-
}
|
|
65
|
+
async downloadMetadata() {
|
|
66
|
+
const { metadata } = this.etlModel;
|
|
67
|
+
if (!metadata?.resource) {
|
|
68
|
+
throw new Error('Resource is not present int he EtlModel');
|
|
69
|
+
}
|
|
70
|
+
const ResourceLoader = (0, index_js_1.getResourceLoader)(metadata.resource.type);
|
|
71
|
+
try {
|
|
72
|
+
const bytes = await new ResourceLoader().download(metadata.resource);
|
|
73
|
+
if (bytes.byteLength === 0) {
|
|
74
|
+
throw new Error('Resource is empty');
|
|
95
75
|
}
|
|
96
|
-
|
|
97
|
-
|
|
76
|
+
const stringified = bytes.toString();
|
|
77
|
+
switch (metadata.resourceContentType) {
|
|
78
|
+
case ResourceContentType_enum_1.ResourceContentType.JSON:
|
|
79
|
+
return this.parseJsonResource(stringified);
|
|
80
|
+
case ResourceContentType_enum_1.ResourceContentType.PROTOBUF:
|
|
81
|
+
return this.parseProtobufResource(stringified);
|
|
82
|
+
default:
|
|
83
|
+
throw new Error(`Resource content type ${metadata.resourceContentType} is not supported`);
|
|
98
84
|
}
|
|
99
|
-
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
throw new Error(`Error during download and parsing resource: ${error.message}`);
|
|
88
|
+
}
|
|
100
89
|
}
|
|
101
90
|
getType() {
|
|
102
91
|
return this.etlModel.type;
|
|
@@ -134,5 +123,4 @@ class EtlModel {
|
|
|
134
123
|
}
|
|
135
124
|
}
|
|
136
125
|
exports.EtlModel = EtlModel;
|
|
137
|
-
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXRsTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL0V0bE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXVDO0FBSXZDLDZEQUFzQztBQUN0Qyx1RUFBaUU7QUFDakUseUdBQWlHO0FBQ2pHLGdFQUFzRTtBQUV0RSxNQUFhLFFBQVE7SUFHbkIsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFFM0M7Ozs7O09BS0c7SUFDSSxNQUFNLENBQU8sTUFBTSxDQUFDLElBQVk7O1lBQ3JDLElBQUk7Z0JBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQ0FBYSxDQUFDLE1BQU0sQ0FBWSxJQUFJLENBQUMsQ0FBQztnQkFFN0QsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvQjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ25ELE1BQU0sS0FBSyxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSTtRQUNULE9BQU8sZ0NBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFWSxnQkFBZ0I7O1lBQzNCLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ25DLElBQUksQ0FBQyxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLENBQUEsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2FBQzVEO1lBRUQsTUFBTSxjQUFjLEdBQUcsSUFBQSw0QkFBaUIsRUFBQyxRQUFRLENBQUMsUUFBUSxDQUFD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
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXRsTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL0V0bE1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXVDO0FBSXZDLDZEQUFzQztBQUN0Qyx1RUFBaUU7QUFDakUseUdBQWlHO0FBQ2pHLGdFQUFzRTtBQUV0RSxNQUFhLFFBQVE7SUFHQztJQUZiLE1BQU0sQ0FBQyxNQUFNLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFakUsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFFM0M7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFZO1FBQ3JDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0NBQWEsQ0FBQyxNQUFNLENBQVksSUFBSSxDQUFDLENBQUM7WUFFN0QsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDbkQsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJO1FBQ1QsT0FBTyxnQ0FBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUks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
|