@super-protocol/sdk-js 2.2.0-beta.9 → 2.2.0-beta.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/cjs/RIGenerator.d.ts +1 -0
  2. package/dist/cjs/RIGenerator.js +2 -1
  3. package/dist/cjs/TIIGenerator.d.ts +2 -1
  4. package/dist/cjs/TIIGenerator.js +13 -3
  5. package/dist/cjs/TeeInputGeneratorBase.d.ts +1 -1
  6. package/dist/cjs/TeeInputGeneratorBase.js +20 -32
  7. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  8. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  9. package/dist/cjs/analytics/transports/AxiosTransport.js +1 -1
  10. package/dist/cjs/config.d.ts +0 -1
  11. package/dist/cjs/config.js +1 -2
  12. package/dist/cjs/constants.d.ts +5 -4
  13. package/dist/cjs/constants.js +31 -7
  14. package/dist/cjs/contracts/abi.d.ts +698 -120
  15. package/dist/cjs/contracts/abi.js +890 -150
  16. package/dist/cjs/crypto/index.d.ts +1 -0
  17. package/dist/cjs/crypto/index.js +16 -1
  18. package/dist/cjs/errors/base.error.d.ts +3 -0
  19. package/dist/cjs/errors/base.error.js +19 -0
  20. package/dist/cjs/errors/index.d.ts +2 -0
  21. package/dist/cjs/errors/index.js +8 -0
  22. package/dist/cjs/errors/not-found.error.d.ts +3 -0
  23. package/dist/cjs/errors/not-found.error.js +8 -0
  24. package/dist/cjs/errors/utils.d.ts +1 -0
  25. package/dist/cjs/errors/utils.js +25 -0
  26. package/dist/cjs/index.d.ts +8 -1
  27. package/dist/cjs/index.js +15 -2
  28. package/dist/cjs/models/Offer.d.ts +40 -4
  29. package/dist/cjs/models/Offer.js +115 -11
  30. package/dist/cjs/models/Provider.js +1 -1
  31. package/dist/cjs/models/TCB.js +13 -5
  32. package/dist/cjs/models/TeeOffer.d.ts +26 -14
  33. package/dist/cjs/models/TeeOffer.js +79 -42
  34. package/dist/cjs/proto/TRI.d.ts +39 -4
  35. package/dist/cjs/proto/TRI.js +18 -1
  36. package/dist/cjs/providers/storage/IStorageProvider.d.ts +1 -1
  37. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +8 -7
  38. package/dist/cjs/providers/storage/S3StorageProvider.js +80 -38
  39. package/dist/cjs/providers/storage/StorageAdapter.d.ts +9 -7
  40. package/dist/cjs/providers/storage/StorageAdapter.js +27 -29
  41. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +2 -2
  42. package/dist/cjs/providers/storage/StorageContentWriter.js +5 -5
  43. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  44. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  45. package/dist/cjs/providers/storage/StorjAdapter.d.ts +5 -4
  46. package/dist/cjs/providers/storage/StorjAdapter.js +15 -9
  47. package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  48. package/dist/cjs/providers/storage/StorjCredentialsManager.js +86 -0
  49. package/dist/cjs/providers/storage/StorjStorageProvider.js +2 -2
  50. package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
  51. package/dist/cjs/providers/storage/fs-storage-provider.js +143 -0
  52. package/dist/cjs/providers/storage/getStorageProvider.js +4 -1
  53. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  54. package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
  55. package/dist/cjs/providers/storage/types.d.ts +22 -0
  56. package/dist/cjs/staticModels/LoaderSecretsPublicKeys.js +3 -3
  57. package/dist/cjs/staticModels/LoaderSessions.d.ts +2 -2
  58. package/dist/cjs/staticModels/LoaderSessions.js +5 -5
  59. package/dist/cjs/staticModels/OfferResources.d.ts +2 -1
  60. package/dist/cjs/staticModels/OfferResources.js +24 -8
  61. package/dist/cjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  62. package/dist/cjs/staticModels/OffersStorageAllocated.js +10 -10
  63. package/dist/cjs/staticModels/OffersStorageRequests.js +4 -3
  64. package/dist/cjs/staticModels/Orders.js +3 -2
  65. package/dist/cjs/staticModels/SecretRequests.d.ts +2 -2
  66. package/dist/cjs/staticModels/SecretRequests.js +19 -10
  67. package/dist/cjs/staticModels/TeeOffers.d.ts +0 -2
  68. package/dist/cjs/staticModels/TeeOffers.js +2 -33
  69. package/dist/cjs/tee/QuoteParser.d.ts +61 -6
  70. package/dist/cjs/tee/QuoteParser.js +248 -29
  71. package/dist/cjs/tee/QuoteValidator.d.ts +11 -0
  72. package/dist/cjs/tee/QuoteValidator.js +119 -30
  73. package/dist/cjs/tee/TeeBlockVerifier.d.ts +3 -4
  74. package/dist/cjs/tee/TeeBlockVerifier.js +2 -8
  75. package/dist/cjs/tee/errors.d.ts +6 -3
  76. package/dist/cjs/tee/errors.js +9 -5
  77. package/dist/cjs/tee/types.d.ts +50 -9
  78. package/dist/cjs/tee/types.js +32 -1
  79. package/dist/cjs/types/DistributedSecretStorage.d.ts +7 -0
  80. package/dist/cjs/types/Offer.d.ts +4 -3
  81. package/dist/cjs/types/OfferVersion.d.ts +13 -0
  82. package/dist/cjs/types/OfferVersion.js +9 -0
  83. package/dist/cjs/types/Order.d.ts +7 -2
  84. package/dist/cjs/types/Order.js +3 -1
  85. package/dist/cjs/types/SlotInfo.d.ts +1 -0
  86. package/dist/cjs/types/Superpro.d.ts +2 -1
  87. package/dist/cjs/types/Superpro.js +2 -1
  88. package/dist/cjs/types/TeeOfferInfo.d.ts +0 -1
  89. package/dist/cjs/types/index.d.ts +1 -0
  90. package/dist/cjs/types/index.js +2 -1
  91. package/dist/cjs/types/storage/StorageAccess.d.ts +3 -3
  92. package/dist/cjs/utils/CryptoKeysTransformer.d.ts +7 -1
  93. package/dist/cjs/utils/CryptoKeysTransformer.js +66 -7
  94. package/dist/cjs/utils/NonceTracker.js +1 -1
  95. package/dist/cjs/utils/helper.d.ts +7 -1
  96. package/dist/cjs/utils/helper.js +87 -2
  97. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +16 -0
  98. package/dist/cjs/utils/helpers/OrderArgsHelper.js +59 -0
  99. package/dist/cjs/utils/helpers/index.d.ts +2 -0
  100. package/dist/cjs/utils/helpers/index.js +3 -1
  101. package/dist/cjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  102. package/dist/cjs/utils/helpers/uploadObjectToStorage.js +55 -0
  103. package/dist/mjs/RIGenerator.d.ts +1 -0
  104. package/dist/mjs/RIGenerator.js +2 -1
  105. package/dist/mjs/TIIGenerator.d.ts +2 -1
  106. package/dist/mjs/TIIGenerator.js +13 -3
  107. package/dist/mjs/TeeInputGeneratorBase.d.ts +1 -1
  108. package/dist/mjs/TeeInputGeneratorBase.js +20 -32
  109. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  110. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  111. package/dist/mjs/analytics/transports/AxiosTransport.js +1 -1
  112. package/dist/mjs/config.d.ts +0 -1
  113. package/dist/mjs/config.js +1 -2
  114. package/dist/mjs/constants.d.ts +5 -4
  115. package/dist/mjs/constants.js +30 -6
  116. package/dist/mjs/contracts/abi.d.ts +698 -120
  117. package/dist/mjs/contracts/abi.js +890 -150
  118. package/dist/mjs/crypto/index.d.ts +1 -0
  119. package/dist/mjs/crypto/index.js +2 -1
  120. package/dist/mjs/errors/base.error.d.ts +3 -0
  121. package/dist/mjs/errors/base.error.js +15 -0
  122. package/dist/mjs/errors/index.d.ts +2 -0
  123. package/dist/mjs/errors/index.js +3 -0
  124. package/dist/mjs/errors/not-found.error.d.ts +3 -0
  125. package/dist/mjs/errors/not-found.error.js +4 -0
  126. package/dist/mjs/errors/utils.d.ts +1 -0
  127. package/dist/mjs/errors/utils.js +18 -0
  128. package/dist/mjs/index.d.ts +8 -1
  129. package/dist/mjs/index.js +8 -2
  130. package/dist/mjs/models/Offer.d.ts +40 -4
  131. package/dist/mjs/models/Offer.js +116 -12
  132. package/dist/mjs/models/Provider.js +1 -1
  133. package/dist/mjs/models/TCB.js +13 -5
  134. package/dist/mjs/models/TeeOffer.d.ts +26 -14
  135. package/dist/mjs/models/TeeOffer.js +80 -43
  136. package/dist/mjs/proto/TRI.d.ts +39 -4
  137. package/dist/mjs/proto/TRI.js +18 -1
  138. package/dist/mjs/providers/storage/IStorageProvider.d.ts +1 -1
  139. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +8 -7
  140. package/dist/mjs/providers/storage/S3StorageProvider.js +77 -38
  141. package/dist/mjs/providers/storage/StorageAdapter.d.ts +9 -7
  142. package/dist/mjs/providers/storage/StorageAdapter.js +27 -29
  143. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +2 -2
  144. package/dist/mjs/providers/storage/StorageContentWriter.js +5 -5
  145. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  146. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  147. package/dist/mjs/providers/storage/StorjAdapter.d.ts +5 -4
  148. package/dist/mjs/providers/storage/StorjAdapter.js +15 -9
  149. package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  150. package/dist/mjs/providers/storage/StorjCredentialsManager.js +82 -0
  151. package/dist/mjs/providers/storage/StorjStorageProvider.js +2 -2
  152. package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
  153. package/dist/mjs/providers/storage/fs-storage-provider.js +113 -0
  154. package/dist/mjs/providers/storage/getStorageProvider.js +4 -1
  155. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  156. package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
  157. package/dist/mjs/providers/storage/types.d.ts +22 -0
  158. package/dist/mjs/staticModels/LoaderSecretsPublicKeys.js +4 -4
  159. package/dist/mjs/staticModels/LoaderSessions.d.ts +2 -2
  160. package/dist/mjs/staticModels/LoaderSessions.js +6 -6
  161. package/dist/mjs/staticModels/OfferResources.d.ts +2 -1
  162. package/dist/mjs/staticModels/OfferResources.js +25 -9
  163. package/dist/mjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  164. package/dist/mjs/staticModels/OffersStorageAllocated.js +11 -11
  165. package/dist/mjs/staticModels/OffersStorageRequests.js +5 -4
  166. package/dist/mjs/staticModels/Orders.js +3 -2
  167. package/dist/mjs/staticModels/SecretRequests.d.ts +2 -2
  168. package/dist/mjs/staticModels/SecretRequests.js +20 -11
  169. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -2
  170. package/dist/mjs/staticModels/TeeOffers.js +2 -33
  171. package/dist/mjs/store.js +2 -2
  172. package/dist/mjs/tee/QuoteParser.d.ts +61 -6
  173. package/dist/mjs/tee/QuoteParser.js +245 -28
  174. package/dist/mjs/tee/QuoteValidator.d.ts +11 -0
  175. package/dist/mjs/tee/QuoteValidator.js +119 -30
  176. package/dist/mjs/tee/TeeBlockVerifier.d.ts +3 -4
  177. package/dist/mjs/tee/TeeBlockVerifier.js +2 -8
  178. package/dist/mjs/tee/errors.d.ts +6 -3
  179. package/dist/mjs/tee/errors.js +7 -4
  180. package/dist/mjs/tee/types.d.ts +50 -9
  181. package/dist/mjs/tee/types.js +28 -2
  182. package/dist/mjs/types/DistributedSecretStorage.d.ts +7 -0
  183. package/dist/mjs/types/Offer.d.ts +4 -3
  184. package/dist/mjs/types/OfferVersion.d.ts +13 -0
  185. package/dist/mjs/types/OfferVersion.js +6 -0
  186. package/dist/mjs/types/Order.d.ts +7 -2
  187. package/dist/mjs/types/Order.js +3 -1
  188. package/dist/mjs/types/SlotInfo.d.ts +1 -0
  189. package/dist/mjs/types/Superpro.d.ts +2 -1
  190. package/dist/mjs/types/Superpro.js +2 -1
  191. package/dist/mjs/types/TeeOfferInfo.d.ts +0 -1
  192. package/dist/mjs/types/index.d.ts +1 -0
  193. package/dist/mjs/types/index.js +2 -1
  194. package/dist/mjs/types/storage/StorageAccess.d.ts +3 -3
  195. package/dist/mjs/utils/CryptoKeysTransformer.d.ts +7 -1
  196. package/dist/mjs/utils/CryptoKeysTransformer.js +66 -7
  197. package/dist/mjs/utils/NonceTracker.js +1 -1
  198. package/dist/mjs/utils/helper.d.ts +7 -1
  199. package/dist/mjs/utils/helper.js +80 -1
  200. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +16 -0
  201. package/dist/mjs/utils/helpers/OrderArgsHelper.js +52 -0
  202. package/dist/mjs/utils/helpers/index.d.ts +2 -0
  203. package/dist/mjs/utils/helpers/index.js +3 -1
  204. package/dist/mjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  205. package/dist/mjs/utils/helpers/uploadObjectToStorage.js +48 -0
  206. package/package.json +4 -4
@@ -12,7 +12,7 @@ export var CacheEvents;
12
12
  CacheEvents["INSTANCES_CHANGED"] = "INSTANCES_CHANGED";
13
13
  CacheEvents["KEY_DELETED"] = "KEY_DELETED";
14
14
  })(CacheEvents || (CacheEvents = {}));
15
- const DEFAULT_READ_METADATA_CONCUREENCY = 16;
15
+ const DEFAULT_READ_METADATA_CONCURRENCY = 16;
16
16
  export default class StorageAdapter {
17
17
  logger;
18
18
  storageKeyValueAdapter;
@@ -30,12 +30,15 @@ export default class StorageAdapter {
30
30
  eventName = 'storage-adapter';
31
31
  performance;
32
32
  constructor(storageAccess, config) {
33
- const { readInterval, writeInterval, lruCache, objectDeletedFlag, readMetadataConcurrency, performance, showLogs = true, } = config;
33
+ const { readInterval, writeInterval, lruCache, objectDeletedFlag, readMetadataConcurrency, performance, showLogs = true, hasEncryption = true, instanceId, } = config;
34
34
  this.logger = showLogs ? logger.child({ class: StorageAdapter.name }) : null;
35
35
  this.performance = performance;
36
- this.instanceId = this.generateHash();
36
+ this.instanceId = instanceId ?? this.generateHash();
37
37
  this.readInterval = readInterval;
38
- this.storageKeyValueAdapter = new StorageKeyValueAdapter(storageAccess, { showLogs });
38
+ this.storageKeyValueAdapter = new StorageKeyValueAdapter(storageAccess, {
39
+ showLogs,
40
+ hasEncryption,
41
+ });
39
42
  this.cache = new LRUCache(lruCache);
40
43
  this.metadataReader = new StorageMetadataReader({
41
44
  storageKeyValueAdapter: this.storageKeyValueAdapter,
@@ -51,7 +54,7 @@ export default class StorageAdapter {
51
54
  showLogs,
52
55
  });
53
56
  this.queueReadMetadata = new Queue({
54
- concurrency: readMetadataConcurrency || DEFAULT_READ_METADATA_CONCUREENCY,
57
+ concurrency: readMetadataConcurrency || DEFAULT_READ_METADATA_CONCURRENCY,
55
58
  });
56
59
  }
57
60
  generateHash(str) {
@@ -59,9 +62,9 @@ export default class StorageAdapter {
59
62
  .update(str || uuid.v4())
60
63
  .digest('hex');
61
64
  }
62
- async subscribe(cb) {
65
+ subscribe(cb) {
63
66
  this.pubSub.subscribe(this.eventName, cb);
64
- return async () => {
67
+ return () => {
65
68
  this.pubSub.unsubscribe(this.eventName, cb);
66
69
  };
67
70
  }
@@ -81,38 +84,37 @@ export default class StorageAdapter {
81
84
  }
82
85
  return this.cache.has(key);
83
86
  }
84
- getEnryptionKey(key, encryptionKeyBuffer) {
87
+ getEncryptionKey(key, encryptionKeyBuffer) {
85
88
  if (!this.encryptionKeys.has(key)) {
86
- if (!encryptionKeyBuffer)
89
+ if (!encryptionKeyBuffer) {
87
90
  return null;
91
+ }
88
92
  const encryptionKey = encryptionKeyBuffer.toString('base64');
89
93
  this.encryptionKeys.set(key, encryptionKey);
90
94
  return encryptionKey;
91
95
  }
92
96
  return this.encryptionKeys.get(key) || null;
93
97
  }
94
- async set(key, value, encryptionKeyBuffer) {
98
+ set(key, value, encryptionKeyBuffer) {
95
99
  if (this.contentWriter.storageWrites.get(key)?.type === ContentWriterType.NEEDS_DELETE) {
96
100
  throw new Error('Object has been deleted');
97
101
  }
98
- const encryptionKey = this.getEnryptionKey(key, encryptionKeyBuffer);
99
- if (!encryptionKey)
100
- throw new Error('Encryption key required');
102
+ const encryptionKey = this.getEncryptionKey(key, encryptionKeyBuffer);
101
103
  this.setByInstance(key, this.instanceId, {
102
104
  value,
103
105
  modifiedTs: Number.MAX_SAFE_INTEGER,
104
106
  });
105
- this.contentWriter.set(key, ContentWriterType.NEEDS_UPLOAD, encryptionKey);
107
+ this.contentWriter.set(key, ContentWriterType.NEEDS_UPLOAD, encryptionKey || undefined);
106
108
  }
107
109
  setByInstance(key, instanceId, value) {
108
110
  const instances = this.cache.get(key) || new Map();
109
111
  instances.set(instanceId, value);
110
112
  this.cache.set(key, instances);
111
113
  }
112
- async delete(key) {
114
+ delete(key) {
113
115
  this.cache.delete(key);
114
116
  this.isUpdating.delete(key);
115
- const encryptionKey = this.getEnryptionKey(key);
117
+ const encryptionKey = this.getEncryptionKey(key);
116
118
  if (encryptionKey) {
117
119
  this.contentWriter.set(key, ContentWriterType.NEEDS_DELETE, encryptionKey);
118
120
  this.encryptionKeys.delete(key);
@@ -124,19 +126,15 @@ export default class StorageAdapter {
124
126
  }
125
127
  // the first value is always the current instance, if key exists
126
128
  async get(key, encryptionKeyBuffer) {
127
- if (!encryptionKeyBuffer)
128
- throw new Error('Encryption key required');
129
129
  if (this.contentWriter.storageWrites.get(key)?.type === ContentWriterType.NEEDS_DELETE ||
130
130
  !(await this.has(key))) {
131
131
  return null;
132
132
  }
133
- const encryptionKey = this.getEnryptionKey(key, encryptionKeyBuffer);
134
- if (!encryptionKey)
135
- throw new Error('Encryption key required');
133
+ const encryptionKey = this.getEncryptionKey(key, encryptionKeyBuffer);
136
134
  if (this.cacheHasNullInstances(key)) {
137
135
  await this.getQueue(key).add(async () => {
138
136
  if (this.cacheHasNullInstances(key)) {
139
- await this.fetchNullValues(key, encryptionKey);
137
+ await this.fetchNullValues(key, encryptionKey || undefined);
140
138
  }
141
139
  });
142
140
  }
@@ -167,9 +165,9 @@ export default class StorageAdapter {
167
165
  }
168
166
  async fetchNullValues(key, encryptionKey) {
169
167
  const promises = [];
170
- this.cache.get(key)?.forEach((instance, instanseId) => {
168
+ this.cache.get(key)?.forEach((instance, instanceId) => {
171
169
  if (instance.value === null) {
172
- const fileName = `${key}/${instanseId}`;
170
+ const fileName = `${key}/${instanceId}`;
173
171
  const startDownload = this.performance?.now();
174
172
  promises.push(this.storageKeyValueAdapter
175
173
  .get(fileName, encryptionKey)
@@ -178,7 +176,7 @@ export default class StorageAdapter {
178
176
  const finishDownload = this.performance.now();
179
177
  logger.info(`Downloading took ${(finishDownload - startDownload).toFixed(1)} ms`);
180
178
  }
181
- this.setByInstance(key, instanseId, {
179
+ this.setByInstance(key, instanceId, {
182
180
  ...instance,
183
181
  value: file,
184
182
  });
@@ -212,7 +210,7 @@ export default class StorageAdapter {
212
210
  const initialSize = cachedByKey.size;
213
211
  const { updated, deleted } = await this.metadataReader.fetchInstancesUpdates(key, cachedByKey);
214
212
  if (deleted.has(key)) {
215
- await this.delete(key);
213
+ this.delete(key);
216
214
  this.publish(CacheEvents.KEY_DELETED, key);
217
215
  return;
218
216
  }
@@ -242,11 +240,11 @@ export default class StorageAdapter {
242
240
  this.isUpdating.set(key, false);
243
241
  }
244
242
  }
245
- async startUpdatesChecking() {
243
+ startUpdatesChecking() {
246
244
  this.stopUpdatesChecking();
247
245
  this.timeout = setTimeout(async () => {
248
246
  Array.from(this.cache.keys()).forEach((key) => {
249
- this.queueReadMetadata.add(async () => {
247
+ void this.queueReadMetadata.add(async () => {
250
248
  await this.getQueue(key).add(async () => {
251
249
  await this.checkUpdates(key);
252
250
  });
@@ -269,4 +267,4 @@ export default class StorageAdapter {
269
267
  await this.contentWriter.shutdown(this.cache);
270
268
  }
271
269
  }
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUM1QixPQUFPLHNCQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sb0JBQW9CLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8scUJBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFFL0QsT0FBTyxNQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBZ0IzQyxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLHNEQUF1QyxDQUFBO0lBQ3ZDLDBDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQUVELE1BQU0saUNBQWlDLEdBQUcsRUFBRSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNoQixNQUFNLENBQWlCO0lBQ3ZCLHNCQUFzQixDQUE0QjtJQUNsRCxLQUFLLENBQWdEO0lBQ3JELGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQyxDQUFDLGlDQUFpQztJQUM3RSxhQUFhLENBQWtDO0lBQy9DLGNBQWMsQ0FBbUM7SUFDakQsVUFBVSxDQUFTO0lBQzVCLE9BQU8sR0FBeUMsSUFBSSxDQUFDO0lBQzVDLFlBQVksQ0FBUztJQUNyQixNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7SUFD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
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLFNBQVMsQ0FBQztBQUM1QixPQUFPLHNCQUFzQixNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sb0JBQW9CLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8scUJBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFFL0QsT0FBTyxNQUFrQixNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBa0IzQyxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLHNEQUF1QyxDQUFBO0lBQ3ZDLDBDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQUVELE1BQU0saUNBQWlDLEdBQUcsRUFBRSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sY0FBYztJQUNoQixNQUFNLENBQWlCO0lBQ3ZCLHNCQUFzQixDQUE0QjtJQUNsRCxLQUFLLENBQWdEO0lBQ3JELGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQyxDQUFDLGlDQUFpQztJQUM3RSxhQUFhLENBQWtDO0lBQy9DLGNBQWMsQ0FBbUM7SUFDakQsVUFBVSxDQUFTO0lBQzVCLE9BQU8sR0FBeUMsSUFBSSxDQUFDO0lBQzVDLFlBQVksQ0FBUztJQUNyQixNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7SUFD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
@@ -18,7 +18,7 @@ export declare enum ContentWriterType {
18
18
  interface StorageWriteRecord {
19
19
  type: ContentWriterType;
20
20
  index: number;
21
- encryptionKey: string;
21
+ encryptionKey?: string;
22
22
  }
23
23
  export default class StorageContentWriter<K extends string, V extends object> {
24
24
  private timeout;
@@ -38,7 +38,7 @@ export default class StorageContentWriter<K extends string, V extends object> {
38
38
  private deleteOutdatedInstances;
39
39
  startActualizeCacheTimer(cache: LRUCache<K, Map<string, CacheRecord<V>>>): void;
40
40
  stop(): void;
41
- set(key: K, type: ContentWriterType, encryptionKey: string): void;
41
+ set(key: K, type: ContentWriterType, encryptionKey?: string): void;
42
42
  get(key: K): ContentWriterType | null;
43
43
  clear(): void;
44
44
  shutdown(cache: LRUCache<K, Map<string, CacheRecord<V>>>): Promise<void>;
@@ -39,7 +39,7 @@ export default class StorageContentWriter {
39
39
  await this.storageKeyValueAdapter.set(`${key}/${this.objectDeletedFlag}`, null, encryptionKey);
40
40
  }
41
41
  }
42
- async actualizeCacheUpload(key, encryptionKey, cache) {
42
+ async actualizeCacheUpload(key, cache, encryptionKey) {
43
43
  const instances = cache.get(key);
44
44
  const instance = instances?.get(this.instanceId);
45
45
  if (!instances || !instance) {
@@ -64,19 +64,19 @@ export default class StorageContentWriter {
64
64
  const logger = this.logger?.child({ method: this.actualizeCache.name });
65
65
  if (this.storageWrites.size) {
66
66
  Array.from(this.storageWrites.entries()).forEach(([key, { type, index, encryptionKey }]) => {
67
- this.queueWriteContent.add(async () => {
67
+ void this.queueWriteContent.add(async () => {
68
68
  try {
69
69
  switch (type) {
70
70
  case ContentWriterType.NEEDS_DELETE:
71
71
  await this.actualizeCacheDelete(key, encryptionKey);
72
72
  break;
73
73
  case ContentWriterType.NEEDS_UPLOAD:
74
- await this.actualizeCacheUpload(key, encryptionKey, cache);
74
+ await this.actualizeCacheUpload(key, cache, encryptionKey);
75
75
  break;
76
76
  default:
77
77
  break;
78
78
  }
79
- // delete only if the current index is up to date
79
+ // delete only if the current index is up-to-date
80
80
  if (index === this.storageWrites.get(key)?.index) {
81
81
  this.storageWrites.delete(key);
82
82
  }
@@ -158,4 +158,4 @@ export default class StorageContentWriter {
158
158
  await this.actualizeCache(cache);
159
159
  }
160
160
  }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUNvbnRlbnRXcml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUNvbnRlbnRXcml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8sTUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQWVqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLGtEQUE2QixDQUFBO0lBQzdCLGtEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQVFsRCxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUMvQixPQUFPLEdBQXlDLElBQUksQ0FBQztJQUM1QyxRQUFRLENBQVM7SUFDakIsc0JBQXNCLENBQTRCO0lBQ2xELE1BQU0sQ0FBaUI7SUFDdkIsVUFBVSxDQUFTO0lBQ25CLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFRO0lBQ3pCLFdBQVcsQ0FBZTtJQUMzQixhQUFhLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdEUsWUFBWSxNQUFxQztRQUMvQyxNQUFNLEVBQ0osdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsR0FBRyxJQUFJLEdBQ2hCLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUss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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUNvbnRlbnRXcml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUNvbnRlbnRXcml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQzVCLE9BQU8sTUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQWVqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLGtEQUE2QixDQUFBO0lBQzdCLGtEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFDN0MsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQVFsRCxNQUFNLENBQUMsT0FBTyxPQUFPLG9CQUFvQjtJQUMvQixPQUFPLEdBQXlDLElBQUksQ0FBQztJQUM1QyxRQUFRLENBQVM7SUFDakIsc0JBQXNCLENBQTRCO0lBQ2xELE1BQU0sQ0FBaUI7SUFDdkIsVUFBVSxDQUFTO0lBQ25CLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFTO0lBQzFCLGlCQUFpQixDQUFRO0lBQ3pCLFdBQVcsQ0FBZTtJQUMzQixhQUFhLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdEUsWUFBWSxNQUFxQztRQUMvQyxNQUFNLEVBQ0osdUJBQXVCLEVBQ3ZCLFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsR0FBRyxJQUFJLEdBQ2hCLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUss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
@@ -1,23 +1,26 @@
1
1
  import { Encryption } from '@super-protocol/dto-js';
2
2
  import StorageAccess from '../../types/storage/StorageAccess.js';
3
3
  import StorageObject from '../../types/storage/StorageObject.js';
4
+ import { IStorageKeyValueAdapter } from './types.js';
4
5
  export interface StorageKeyValueAdapterConfig {
5
6
  showLogs?: boolean;
7
+ hasEncryption?: boolean;
6
8
  }
7
- export default class StorageKeyValueAdapter<V extends object> {
9
+ export default class StorageKeyValueAdapter<V extends object> implements IStorageKeyValueAdapter<V> {
10
+ private readonly hasEncryption;
8
11
  private readonly storageProvider;
9
12
  private readonly logger?;
10
13
  constructor(storageAccess: StorageAccess, config?: StorageKeyValueAdapterConfig);
11
- decrypt(encryption: Encryption, key: string): Promise<V | null>;
12
- encrypt(data: V | null, key: string): Promise<Encryption>;
14
+ protected decrypt(encryption: Encryption, key: string): Promise<V | null>;
15
+ protected encrypt(data: V | null, key: string): Promise<Encryption>;
13
16
  private downloadFromStorage;
14
17
  private streamToString;
15
18
  private storageUpload;
16
19
  private storageDelete;
17
20
  private storageDownload;
18
21
  private storageListFiles;
19
- set(key: string, value: V | null, privateKey: string): Promise<void>;
22
+ set(key: string, value: V | null, privateKey?: string): Promise<void>;
20
23
  delete(key: string): Promise<void>;
21
- get(key: string, privateKey: string): Promise<V | null>;
24
+ get(key: string, privateKey?: string): Promise<V | null>;
22
25
  listFiles(key: string): Promise<StorageObject[]>;
23
26
  }
@@ -4,28 +4,35 @@ import getStorageProvider from './getStorageProvider.js';
4
4
  import logger from '../../logger.js';
5
5
  import Crypto from '../../crypto/Crypto.js';
6
6
  export default class StorageKeyValueAdapter {
7
+ hasEncryption;
7
8
  storageProvider;
8
9
  logger;
9
10
  constructor(storageAccess, config) {
10
- if (!storageAccess?.credentials)
11
+ if (!storageAccess?.credentials) {
11
12
  throw new Error('Credentials is empty');
12
- const { showLogs = true } = config || {};
13
+ }
14
+ const { showLogs = true, hasEncryption = true } = config || {};
15
+ this.hasEncryption = hasEncryption;
13
16
  this.logger = showLogs ? logger.child({ class: StorageKeyValueAdapter.name }) : null;
14
17
  this.storageProvider = getStorageProvider(storageAccess);
15
18
  }
16
19
  async decrypt(encryption, key) {
17
- if (!encryption)
20
+ if (!encryption) {
18
21
  return null;
19
- if (!key)
22
+ }
23
+ if (!key) {
20
24
  throw new Error('Key cannot be empty!');
25
+ }
21
26
  encryption.key = key;
22
27
  return JSON.parse(await Crypto.decrypt(encryption));
23
28
  }
24
- async encrypt(data, key) {
25
- if (data === undefined)
29
+ encrypt(data, key) {
30
+ if (data === undefined) {
26
31
  throw new Error('Data cannot be empty!');
27
- if (!key)
32
+ }
33
+ if (!key) {
28
34
  throw new Error('Private cannot be empty!');
35
+ }
29
36
  return Crypto.encrypt(JSON.stringify(data), {
30
37
  algo: CryptoAlgorithm.AES,
31
38
  encoding: Encoding.base64,
@@ -48,8 +55,11 @@ export default class StorageKeyValueAdapter {
48
55
  });
49
56
  }
50
57
  async storageUpload(key, value, privateKey) {
58
+ if (this.hasEncryption && !privateKey) {
59
+ throw new Error('Invalid private key');
60
+ }
51
61
  try {
52
- const encryptedValue = await this.encrypt(value, privateKey);
62
+ const encryptedValue = this.hasEncryption && privateKey ? await this.encrypt(value, privateKey) : value;
53
63
  const buffer = Buffer.from(JSON.stringify(encryptedValue));
54
64
  await this.storageProvider.uploadFile(Readable.from(buffer), key, buffer.byteLength);
55
65
  this.logger?.info({ data: key }, 'Success uploading to storage');
@@ -70,13 +80,17 @@ export default class StorageKeyValueAdapter {
70
80
  }
71
81
  }
72
82
  async storageDownload(key, privateKey) {
83
+ if (this.hasEncryption && !privateKey) {
84
+ throw new Error('Invalid private key');
85
+ }
73
86
  try {
74
87
  const downloaded = await this.downloadFromStorage(key);
75
88
  this.logger?.info({ key }, 'Success download data from storage');
76
- if (!downloaded)
89
+ if (!downloaded) {
77
90
  return null;
78
- const decryptedValue = await this.decrypt(JSON.parse(downloaded), privateKey);
79
- return decryptedValue;
91
+ }
92
+ const value = JSON.parse(downloaded);
93
+ return this.hasEncryption && privateKey ? await this.decrypt(value, privateKey) : value;
80
94
  }
81
95
  catch (err) {
82
96
  this.logger?.info({
@@ -103,17 +117,17 @@ export default class StorageKeyValueAdapter {
103
117
  throw err;
104
118
  }
105
119
  }
106
- async set(key, value, privateKey) {
120
+ set(key, value, privateKey) {
107
121
  return this.storageUpload(key, value, privateKey);
108
122
  }
109
- async delete(key) {
123
+ delete(key) {
110
124
  return this.storageDelete(key);
111
125
  }
112
- async get(key, privateKey) {
126
+ get(key, privateKey) {
113
127
  return this.storageDownload(key, privateKey);
114
128
  }
115
- async listFiles(key) {
129
+ listFiles(key) {
116
130
  return this.storageListFiles(key);
117
131
  }
118
132
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFjLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxrQkFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLE1BQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFNNUMsTUFBTSxDQUFDLE9BQU8sT0FBTyxzQkFBc0I7SUFDeEIsZUFBZSxDQUFtQjtJQUNsQyxNQUFNLENBQWlCO0lBRXhDLFlBQVksYUFBNEIsRUFBRSxNQUFxQztRQUM3RSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekUsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsR0FBVztRQUN0RCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHO1lBQUUs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
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFjLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkYsT0FBTyxrQkFBa0IsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLE1BQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxNQUFNLE1BQU0sd0JBQXdCLENBQUM7QUFRNUMsTUFBTSxDQUFDLE9BQU8sT0FBTyxzQkFBc0I7SUFHeEIsYUFBYSxDQUFVO0lBQ3ZCLGVBQWUsQ0FBbUI7SUFDbEMsTUFBTSxDQUFpQjtJQUV4QyxZQUFZLGFBQTRCLEVBQUUsTUFBcUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNyRixJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxLQUFLLENBQUMs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
@@ -1,19 +1,20 @@
1
1
  /// <reference types="node" />
2
2
  import StorageAccess from '../../types/storage/StorageAccess.js';
3
3
  import { StorageAdapterConfig, CacheEvents } from './StorageAdapter.js';
4
+ import { StorjCredentials } from '@super-protocol/dto-js';
4
5
  export type StorjConfig = StorageAdapterConfig;
5
6
  export default class StorjAdapter<V extends object> {
6
7
  private storageAdapter;
7
8
  private readonly logger?;
8
- constructor(storageAccess: StorageAccess, config: StorjConfig);
9
+ constructor(storageAccess: StorageAccess<StorjCredentials>, config: StorjConfig);
9
10
  subscribe(cb: (props: {
10
11
  type: CacheEvents;
11
12
  message: unknown;
12
- }) => void): Promise<() => Promise<void>>;
13
+ }) => void): () => void;
13
14
  get(key: string, encryptionKey: Buffer): Promise<(V | null)[] | null>;
14
15
  has(key: string): Promise<boolean>;
15
- set(key: string, value: V, encryptionKey: Buffer): Promise<void>;
16
- del(key: string): Promise<void>;
16
+ set(key: string, value: V, encryptionKey: Buffer): void;
17
+ del(key: string): void;
17
18
  stop(): void;
18
19
  shutdown(): Promise<void>;
19
20
  }
@@ -13,30 +13,36 @@ export default class StorjAdapter {
13
13
  return this.storageAdapter?.subscribe(cb);
14
14
  }
15
15
  async get(key, encryptionKey) {
16
- return this.storageAdapter.get(key, encryptionKey).catch((err) => {
16
+ try {
17
+ return await this.storageAdapter.get(key, encryptionKey);
18
+ }
19
+ catch (err) {
17
20
  const message = err.message?.toLowerCase() || '';
18
21
  if (message.includes('object not found') || message.includes('object has been deleted')) {
19
22
  this.logger?.info({ key }, 'Object not found');
20
23
  return null;
21
24
  }
22
25
  throw err;
23
- });
26
+ }
24
27
  }
25
- async has(key) {
28
+ has(key) {
26
29
  return this.storageAdapter.has(key);
27
30
  }
28
- async set(key, value, encryptionKey) {
29
- return this.storageAdapter.set(key, value, encryptionKey).catch((err) => {
31
+ set(key, value, encryptionKey) {
32
+ try {
33
+ this.storageAdapter.set(key, value, encryptionKey);
34
+ }
35
+ catch (err) {
30
36
  const message = err.message?.toLowerCase() || '';
31
37
  if (message.includes('object has been deleted')) {
32
38
  this.logger?.info({ key }, 'Object has been deleted');
33
39
  return;
34
40
  }
35
41
  throw err;
36
- });
42
+ }
37
43
  }
38
- async del(key) {
39
- return this.storageAdapter.delete(key);
44
+ del(key) {
45
+ this.storageAdapter.delete(key);
40
46
  }
41
47
  stop() {
42
48
  this.storageAdapter.stop();
@@ -45,4 +51,4 @@ export default class StorjAdapter {
45
51
  await this.storageAdapter.shutdown();
46
52
  }
47
53
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL1N0b3JqQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLE1BQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxjQUFxRCxNQUFNLHFCQUFxQixDQUFDO0FBSXhGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUN2QixjQUFjLENBQW9CO0lBQ3pCLE1BQU0sQ0FBaUI7SUFDeEMsWUFBWSxhQUE0QixFQUFFLE1BQW1CO1FBQzNELE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNNLFNBQVMsQ0FBQyxFQUE0RDtRQUMzRSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDTSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxhQUFxQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFVLEVBQUUsRUFBRTtZQUN0RSxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNqRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDeEYsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUUvQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDTSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFRLEVBQUUsYUFBcUI7UUFDM0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVUsRUFBRSxFQUFFO1lBQzdFLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2pELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUseUJBQXlCLENBQUMsQ0FBQztnQkFFdEQsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ00sS0FBSyxDQUFDLFFBQVE7UUFDbkIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL1N0b3JqQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLE1BQWtCLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxjQUFxRCxNQUFNLHFCQUFxQixDQUFDO0FBS3hGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sWUFBWTtJQUN2QixjQUFjLENBQW9CO0lBQ3pCLE1BQU0sQ0FBaUI7SUFFeEMsWUFBWSxhQUE4QyxFQUFFLE1BQW1CO1FBQzdFLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUE0RDtRQUNwRSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxhQUFxQjtRQUMxQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxPQUFPLEdBQUksR0FBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDNUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFFL0MsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFRLEVBQUUsYUFBcUI7UUFDOUMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE1BQU0sT0FBTyxHQUFJLEdBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUseUJBQXlCLENBQUMsQ0FBQztnQkFFdEQsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
@@ -0,0 +1,24 @@
1
+ import { S3Credentials, StorjCredentials, StringifiedCredentials } from '@super-protocol/dto-js';
2
+ export declare enum CredentialsPermissions {
3
+ read = 0,
4
+ write = 1,
5
+ list = 2,
6
+ delete = 3
7
+ }
8
+ export declare class StorjCredentialsManager {
9
+ private accessToken;
10
+ private bucket;
11
+ private access?;
12
+ private project?;
13
+ constructor(storageConfig: Pick<StorjCredentials, 'token' | 'bucket'>);
14
+ getStorageId(entity: string, entityId: string): string;
15
+ create(): Promise<void>;
16
+ acquireCredentials(permissions: CredentialsPermissions[], prefix: string): Promise<StringifiedCredentials<StorjCredentials>>;
17
+ acquireS3Credentials(permissions: CredentialsPermissions[], prefix: string): Promise<S3Credentials>;
18
+ getS3Credentials(stringifiedCredentials: StringifiedCredentials): Promise<S3Credentials>;
19
+ getS3Credentials(storjCredentials: StorjCredentials): Promise<S3Credentials>;
20
+ revokeCredentials(credentialString: StringifiedCredentials<StorjCredentials>): Promise<void>;
21
+ private lazyStorj;
22
+ private lazyAccess;
23
+ private lazyProject;
24
+ }