@super-protocol/sdk-js 2.1.4-beta.8 → 2.1.4-beta.9

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 (500) hide show
  1. package/{dist/cjs → build}/TIIGenerator.d.ts +4 -2
  2. package/build/TIIGenerator.js +261 -0
  3. package/{dist/mjs → build}/analytics/Analytics.d.ts +1 -1
  4. package/build/analytics/Analytics.js +74 -0
  5. package/{dist/cjs → build}/analytics/AnalyticsError.js +1 -1
  6. package/{dist/cjs → build}/analytics/eventProviders/BrowserEventProvider.d.ts +1 -1
  7. package/{dist/cjs → build}/analytics/eventProviders/BrowserEventProvider.js +3 -3
  8. package/build/analytics/eventProviders/EventProvider.js +14 -0
  9. package/{dist/cjs → build}/analytics/eventProviders/NodeEventProvider.d.ts +1 -1
  10. package/build/analytics/eventProviders/NodeEventProvider.js +48 -0
  11. package/{dist/mjs → build}/analytics/transports/AxiosTransport.d.ts +1 -1
  12. package/{dist/cjs → build}/analytics/transports/AxiosTransport.js +4 -4
  13. package/{dist/cjs → build}/analytics/transports/FetchTransport.d.ts +1 -1
  14. package/build/analytics/transports/FetchTransport.js +42 -0
  15. package/{dist/mjs → build}/analytics/types.d.ts +1 -1
  16. package/{dist/cjs → build}/analytics/types.js +1 -1
  17. package/{dist/cjs → build}/config.js +1 -1
  18. package/{dist/cjs → build}/connectors/BaseConnector.d.ts +1 -1
  19. package/{dist/cjs → build}/connectors/BaseConnector.js +3 -3
  20. package/{dist/mjs → build}/connectors/BlockchainConnector.d.ts +3 -3
  21. package/build/connectors/BlockchainConnector.js +358 -0
  22. package/{dist/mjs → build}/connectors/BlockchainEventsListener.d.ts +1 -1
  23. package/{dist/cjs → build}/connectors/BlockchainEventsListener.js +15 -15
  24. package/{dist/cjs → build}/connectors/index.d.ts +2 -2
  25. package/{dist/cjs → build}/connectors/index.js +5 -5
  26. package/{dist/cjs → build}/constants.js +1 -1
  27. package/{dist/cjs → build}/contracts/abi.d.ts +11 -11
  28. package/{dist/cjs → build}/contracts/abi.js +12 -12
  29. package/build/crypto/Crypto.js +119 -0
  30. package/build/crypto/index.d.ts +2 -0
  31. package/{dist/cjs → build}/crypto/index.js +3 -3
  32. package/{dist/cjs → build}/crypto/nodejs/AES.js +6 -6
  33. package/{dist/cjs → build}/crypto/nodejs/ARIA.js +6 -6
  34. package/{dist/cjs → build}/crypto/nodejs/ECIES.js +1 -1
  35. package/{dist/mjs → build}/crypto/nodejs/NativeCrypto.d.ts +3 -3
  36. package/build/crypto/nodejs/NativeCrypto.js +183 -0
  37. package/build/crypto/nodejs/RSA-Hybrid.js +95 -0
  38. package/build/index.d.ts +79 -0
  39. package/build/index.js +142 -0
  40. package/{dist/cjs → build}/logger.js +1 -1
  41. package/{dist/cjs → build}/models/EtlModel.d.ts +1 -1
  42. package/{dist/cjs → build}/models/EtlModel.js +8 -8
  43. package/{dist/mjs → build}/models/Offer.d.ts +1 -1
  44. package/build/models/Offer.js +407 -0
  45. package/{dist/mjs → build}/models/Order.d.ts +1 -1
  46. package/build/models/Order.js +577 -0
  47. package/{dist/mjs → build}/models/Provider.d.ts +1 -1
  48. package/build/models/Provider.js +137 -0
  49. package/{dist/cjs → build}/models/TCB.d.ts +1 -1
  50. package/build/models/TCB.js +135 -0
  51. package/{dist/mjs → build}/models/TeeOffer.d.ts +2 -2
  52. package/build/models/TeeOffer.js +600 -0
  53. package/build/models/index.d.ts +5 -0
  54. package/build/models/index.js +17 -0
  55. package/build/polyfills.js +7 -0
  56. package/{dist/cjs → build}/proto/Compression.d.ts +1 -1
  57. package/build/proto/Compression.js +132 -0
  58. package/{dist/mjs → build}/proto/TRI.d.ts +1 -1
  59. package/build/proto/TRI.js +293 -0
  60. package/{dist/mjs → build}/proto/TeeProperties.d.ts +1 -1
  61. package/build/proto/TeeProperties.js +401 -0
  62. package/{dist/cjs → build}/providers/storage/ChunksDownloadDecorator.d.ts +2 -2
  63. package/{dist/cjs → build}/providers/storage/ChunksDownloadDecorator.js +1 -1
  64. package/{dist/cjs → build}/providers/storage/IStorageProvider.d.ts +1 -1
  65. package/{dist/cjs → build}/providers/storage/IStorageProvider.js +1 -1
  66. package/{dist/mjs → build}/providers/storage/S3StorageProvider.d.ts +2 -2
  67. package/{dist/cjs → build}/providers/storage/S3StorageProvider.js +3 -3
  68. package/{dist/cjs → build}/providers/storage/StorageAdapter.d.ts +2 -2
  69. package/build/providers/storage/StorageAdapter.js +323 -0
  70. package/{dist/mjs → build}/providers/storage/StorageContentWriter.d.ts +2 -2
  71. package/{dist/cjs → build}/providers/storage/StorageContentWriter.js +3 -3
  72. package/{dist/cjs → build}/providers/storage/StorageKeyValueAdapter.d.ts +2 -2
  73. package/{dist/cjs → build}/providers/storage/StorageKeyValueAdapter.js +8 -8
  74. package/{dist/cjs → build}/providers/storage/StorageMetadataReader.d.ts +3 -3
  75. package/{dist/cjs → build}/providers/storage/StorageMetadataReader.js +3 -3
  76. package/{dist/mjs → build}/providers/storage/StorjAdapter.d.ts +2 -2
  77. package/{dist/cjs → build}/providers/storage/StorjAdapter.js +5 -5
  78. package/{dist/mjs → build}/providers/storage/StorjStorageProvider.d.ts +2 -2
  79. package/{dist/cjs → build}/providers/storage/StorjStorageProvider.js +6 -6
  80. package/build/providers/storage/getStorageProvider.d.ts +4 -0
  81. package/build/providers/storage/getStorageProvider.js +20 -0
  82. package/{dist/cjs → build}/providers/storage/types.js +1 -1
  83. package/{dist/mjs → build}/staticModels/ActiveOffers.d.ts +1 -1
  84. package/{dist/cjs → build}/staticModels/ActiveOffers.js +7 -7
  85. package/{dist/mjs → build}/staticModels/ActiveOrders.d.ts +1 -1
  86. package/{dist/cjs → build}/staticModels/ActiveOrders.js +12 -12
  87. package/{dist/cjs → build}/staticModels/Consensus.d.ts +1 -1
  88. package/build/staticModels/Consensus.js +247 -0
  89. package/{dist/mjs → build}/staticModels/Deposits.d.ts +1 -1
  90. package/build/staticModels/Deposits.js +214 -0
  91. package/{dist/cjs → build}/staticModels/Marks.d.ts +1 -1
  92. package/build/staticModels/Marks.js +43 -0
  93. package/{dist/cjs → build}/staticModels/ModelPackager.js +6 -6
  94. package/{dist/mjs → build}/staticModels/Offers.d.ts +2 -2
  95. package/build/staticModels/Offers.js +207 -0
  96. package/{dist/mjs → build}/staticModels/Orders.d.ts +2 -2
  97. package/build/staticModels/Orders.js +502 -0
  98. package/{dist/mjs → build}/staticModels/ProviderRegistry.d.ts +1 -1
  99. package/{dist/cjs → build}/staticModels/ProviderRegistry.js +28 -28
  100. package/{dist/cjs → build}/staticModels/StaticModel.d.ts +2 -2
  101. package/build/staticModels/StaticModel.js +46 -0
  102. package/{dist/cjs → build}/staticModels/Superpro.d.ts +2 -2
  103. package/build/staticModels/Superpro.js +24 -0
  104. package/{dist/cjs → build}/staticModels/SuperproToken.d.ts +1 -1
  105. package/build/staticModels/SuperproToken.js +154 -0
  106. package/{dist/cjs → build}/staticModels/TeeOffers.d.ts +1 -1
  107. package/build/staticModels/TeeOffers.js +344 -0
  108. package/build/store.js +17 -0
  109. package/{dist/cjs → build}/tee/QuoteParser.d.ts +1 -1
  110. package/build/tee/QuoteParser.js +189 -0
  111. package/{dist/cjs → build}/tee/QuoteValidator.d.ts +1 -1
  112. package/build/tee/QuoteValidator.js +414 -0
  113. package/{dist/cjs → build}/tee/errors.js +1 -1
  114. package/build/tee/helpers.js +119 -0
  115. package/{dist/cjs → build}/tee/interface.d.ts +1 -1
  116. package/{dist/cjs → build}/tee/interface.js +1 -1
  117. package/{dist/cjs → build}/tee/statuses.js +1 -1
  118. package/{dist/cjs → build}/tee/types.js +1 -1
  119. package/{dist/cjs → build}/types/Compressor.js +1 -1
  120. package/{dist/cjs → build}/types/Consensus.d.ts +1 -1
  121. package/{dist/cjs → build}/types/Consensus.js +1 -1
  122. package/{dist/mjs → build}/types/DepositInfo.d.ts +1 -1
  123. package/{dist/cjs → build}/types/DepositInfo.js +1 -1
  124. package/{dist/cjs → build}/types/EtlModel.js +1 -1
  125. package/{dist/mjs → build}/types/Events.d.ts +2 -2
  126. package/{dist/cjs → build}/types/Events.js +1 -1
  127. package/build/types/HardwareInfo.d.ts +6 -0
  128. package/{dist/cjs → build}/types/HardwareInfo.js +1 -1
  129. package/{dist/cjs → build}/types/Marks.js +1 -1
  130. package/{dist/mjs → build}/types/Offer.d.ts +1 -1
  131. package/{dist/cjs → build}/types/Offer.js +1 -1
  132. package/{dist/cjs → build}/types/OptionInfo.js +1 -1
  133. package/{dist/mjs → build}/types/Order.d.ts +6 -4
  134. package/build/types/Order.js +60 -0
  135. package/{dist/mjs → build}/types/OrderUsage.d.ts +4 -4
  136. package/{dist/cjs → build}/types/OrderUsage.js +1 -1
  137. package/{dist/cjs → build}/types/Origins.js +1 -1
  138. package/{dist/cjs → build}/types/Provider.js +1 -1
  139. package/{dist/mjs → build}/types/ResourceLoader.d.ts +1 -1
  140. package/{dist/cjs → build}/types/ResourceLoader.js +1 -1
  141. package/{dist/cjs → build}/types/SlotInfo.js +1 -1
  142. package/{dist/cjs → build}/types/SlotUsage.d.ts +1 -1
  143. package/{dist/cjs → build}/types/SlotUsage.js +1 -1
  144. package/{dist/cjs → build}/types/Superpro.js +1 -1
  145. package/{dist/cjs → build}/types/TeeOfferInfo.d.ts +1 -1
  146. package/{dist/cjs → build}/types/TeeOfferInfo.js +1 -1
  147. package/{dist/cjs → build}/types/TeeOfferOption.d.ts +3 -3
  148. package/{dist/cjs → build}/types/TeeOfferOption.js +1 -1
  149. package/build/types/TeeOfferSlot.d.ts +8 -0
  150. package/{dist/cjs → build}/types/TeeOfferSlot.js +1 -1
  151. package/{dist/cjs → build}/types/ValueOfferSlot.d.ts +4 -4
  152. package/{dist/cjs → build}/types/ValueOfferSlot.js +1 -1
  153. package/{dist/cjs → build}/types/Web3.js +1 -1
  154. package/{dist/cjs → build}/types/blockchainConnector/StorageAccess.d.ts +1 -1
  155. package/{dist/cjs → build}/types/blockchainConnector/StorageAccess.js +1 -1
  156. package/build/types/index.d.ts +22 -0
  157. package/build/types/index.js +39 -0
  158. package/{dist/cjs → build}/types/storage/StorageAccess.js +1 -1
  159. package/{dist/mjs → build}/types/storage/StorageFileAccess.d.ts +1 -1
  160. package/{dist/cjs → build}/types/storage/StorageFileAccess.js +1 -1
  161. package/{dist/cjs → build}/types/storage/StorageObject.js +1 -1
  162. package/build/utils/Monitoring.js +48 -0
  163. package/{dist/cjs → build}/utils/NonceTracker.js +3 -3
  164. package/build/utils/PubSub.js +37 -0
  165. package/{dist/mjs → build}/utils/TxManager.d.ts +1 -1
  166. package/build/utils/TxManager.js +179 -0
  167. package/{dist/mjs → build}/utils/compressors/GzipCompressor.d.ts +2 -2
  168. package/{dist/cjs → build}/utils/compressors/GzipCompressor.js +6 -10
  169. package/{dist/cjs → build}/utils/compressors/UncompressedCompressor.d.ts +2 -2
  170. package/build/utils/compressors/UncompressedCompressor.js +17 -0
  171. package/build/utils/compressors/index.d.ts +2 -0
  172. package/{dist/cjs → build}/utils/compressors/index.js +3 -3
  173. package/{dist/mjs → build}/utils/helper.d.ts +3 -3
  174. package/build/utils/helper.js +286 -0
  175. package/{dist/cjs → build}/utils/helpers/getStreamChunks.js +1 -1
  176. package/build/utils/helpers/index.d.ts +1 -0
  177. package/{dist/cjs → build}/utils/helpers/index.js +2 -2
  178. package/{dist/cjs → build}/utils/helpers/tryWithInterval.js +1 -1
  179. package/{dist/cjs → build}/utils/resourceLoaders/BaseResourceLoader.d.ts +1 -1
  180. package/{dist/cjs → build}/utils/resourceLoaders/BaseResourceLoader.js +1 -1
  181. package/{dist/mjs → build}/utils/resourceLoaders/StorageProviderLoader.d.ts +2 -2
  182. package/{dist/cjs → build}/utils/resourceLoaders/StorageProviderLoader.js +8 -8
  183. package/{dist/cjs → build}/utils/resourceLoaders/UrlResourceLoader.d.ts +1 -1
  184. package/{dist/cjs → build}/utils/resourceLoaders/UrlResourceLoader.js +3 -3
  185. package/{dist/cjs → build}/utils/resourceLoaders/getResourceLoader.d.ts +1 -1
  186. package/build/utils/resourceLoaders/getResourceLoader.js +15 -0
  187. package/build/utils/resourceLoaders/index.d.ts +1 -0
  188. package/{dist/cjs → build}/utils/resourceLoaders/index.js +2 -2
  189. package/package.json +5 -13
  190. package/dist/cjs/TIIGenerator.js +0 -247
  191. package/dist/cjs/analytics/Analytics.d.ts +0 -15
  192. package/dist/cjs/analytics/Analytics.js +0 -74
  193. package/dist/cjs/analytics/eventProviders/EventProvider.js +0 -14
  194. package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +0 -48
  195. package/dist/cjs/analytics/transports/AxiosTransport.d.ts +0 -4
  196. package/dist/cjs/analytics/transports/FetchTransport.js +0 -42
  197. package/dist/cjs/analytics/types.d.ts +0 -22
  198. package/dist/cjs/connectors/BlockchainConnector.d.ts +0 -81
  199. package/dist/cjs/connectors/BlockchainConnector.js +0 -358
  200. package/dist/cjs/connectors/BlockchainEventsListener.d.ts +0 -15
  201. package/dist/cjs/crypto/Crypto.js +0 -119
  202. package/dist/cjs/crypto/index.d.ts +0 -2
  203. package/dist/cjs/crypto/nodejs/NativeCrypto.d.ts +0 -58
  204. package/dist/cjs/crypto/nodejs/NativeCrypto.js +0 -178
  205. package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +0 -95
  206. package/dist/cjs/index.d.ts +0 -79
  207. package/dist/cjs/index.js +0 -142
  208. package/dist/cjs/models/Offer.d.ts +0 -130
  209. package/dist/cjs/models/Offer.js +0 -407
  210. package/dist/cjs/models/Order.d.ts +0 -148
  211. package/dist/cjs/models/Order.js +0 -577
  212. package/dist/cjs/models/Provider.d.ts +0 -51
  213. package/dist/cjs/models/Provider.js +0 -137
  214. package/dist/cjs/models/TCB.js +0 -135
  215. package/dist/cjs/models/TeeOffer.d.ts +0 -204
  216. package/dist/cjs/models/TeeOffer.js +0 -600
  217. package/dist/cjs/models/index.d.ts +0 -5
  218. package/dist/cjs/models/index.js +0 -17
  219. package/dist/cjs/package.json +0 -1
  220. package/dist/cjs/polyfills.js +0 -7
  221. package/dist/cjs/proto/Compression.js +0 -132
  222. package/dist/cjs/proto/TRI.d.ts +0 -124
  223. package/dist/cjs/proto/TRI.js +0 -293
  224. package/dist/cjs/proto/TeeProperties.d.ts +0 -263
  225. package/dist/cjs/proto/TeeProperties.js +0 -401
  226. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +0 -25
  227. package/dist/cjs/providers/storage/StorageAdapter.js +0 -323
  228. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +0 -46
  229. package/dist/cjs/providers/storage/StorjAdapter.d.ts +0 -19
  230. package/dist/cjs/providers/storage/StorjStorageProvider.d.ts +0 -25
  231. package/dist/cjs/providers/storage/getStorageProvider.d.ts +0 -4
  232. package/dist/cjs/providers/storage/getStorageProvider.js +0 -20
  233. package/dist/cjs/staticModels/ActiveOffers.d.ts +0 -15
  234. package/dist/cjs/staticModels/ActiveOrders.d.ts +0 -20
  235. package/dist/cjs/staticModels/Consensus.js +0 -247
  236. package/dist/cjs/staticModels/Deposits.d.ts +0 -70
  237. package/dist/cjs/staticModels/Deposits.js +0 -214
  238. package/dist/cjs/staticModels/Marks.js +0 -43
  239. package/dist/cjs/staticModels/Offers.d.ts +0 -65
  240. package/dist/cjs/staticModels/Offers.js +0 -207
  241. package/dist/cjs/staticModels/Orders.d.ts +0 -155
  242. package/dist/cjs/staticModels/Orders.js +0 -502
  243. package/dist/cjs/staticModels/ProviderRegistry.d.ts +0 -74
  244. package/dist/cjs/staticModels/StaticModel.js +0 -46
  245. package/dist/cjs/staticModels/Superpro.js +0 -24
  246. package/dist/cjs/staticModels/SuperproToken.js +0 -154
  247. package/dist/cjs/staticModels/TeeOffers.js +0 -344
  248. package/dist/cjs/store.js +0 -17
  249. package/dist/cjs/tee/QuoteParser.js +0 -189
  250. package/dist/cjs/tee/QuoteValidator.js +0 -416
  251. package/dist/cjs/tee/helpers.js +0 -119
  252. package/dist/cjs/types/DepositInfo.d.ts +0 -6
  253. package/dist/cjs/types/Events.d.ts +0 -34
  254. package/dist/cjs/types/HardwareInfo.d.ts +0 -6
  255. package/dist/cjs/types/Offer.d.ts +0 -33
  256. package/dist/cjs/types/Order.d.ts +0 -56
  257. package/dist/cjs/types/Order.js +0 -58
  258. package/dist/cjs/types/OrderUsage.d.ts +0 -26
  259. package/dist/cjs/types/ResourceLoader.d.ts +0 -28
  260. package/dist/cjs/types/TeeOfferSlot.d.ts +0 -8
  261. package/dist/cjs/types/index.d.ts +0 -22
  262. package/dist/cjs/types/index.js +0 -39
  263. package/dist/cjs/types/storage/StorageFileAccess.d.ts +0 -5
  264. package/dist/cjs/utils/Monitoring.js +0 -48
  265. package/dist/cjs/utils/PubSub.js +0 -37
  266. package/dist/cjs/utils/TxManager.d.ts +0 -25
  267. package/dist/cjs/utils/TxManager.js +0 -179
  268. package/dist/cjs/utils/compressors/GzipCompressor.d.ts +0 -8
  269. package/dist/cjs/utils/compressors/UncompressedCompressor.js +0 -17
  270. package/dist/cjs/utils/compressors/index.d.ts +0 -2
  271. package/dist/cjs/utils/helper.d.ts +0 -44
  272. package/dist/cjs/utils/helper.js +0 -286
  273. package/dist/cjs/utils/helpers/index.d.ts +0 -1
  274. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.d.ts +0 -18
  275. package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +0 -15
  276. package/dist/cjs/utils/resourceLoaders/index.d.ts +0 -1
  277. package/dist/mjs/TIIGenerator.d.ts +0 -22
  278. package/dist/mjs/TIIGenerator.js +0 -225
  279. package/dist/mjs/analytics/Analytics.js +0 -61
  280. package/dist/mjs/analytics/AnalyticsError.d.ts +0 -7
  281. package/dist/mjs/analytics/AnalyticsError.js +0 -8
  282. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +0 -18
  283. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +0 -32
  284. package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +0 -24
  285. package/dist/mjs/analytics/eventProviders/EventProvider.js +0 -22
  286. package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +0 -22
  287. package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +0 -50
  288. package/dist/mjs/analytics/transports/AxiosTransport.js +0 -31
  289. package/dist/mjs/analytics/transports/FetchTransport.d.ts +0 -4
  290. package/dist/mjs/analytics/transports/FetchTransport.js +0 -28
  291. package/dist/mjs/analytics/types.js +0 -2
  292. package/dist/mjs/config.d.ts +0 -4
  293. package/dist/mjs/config.js +0 -5
  294. package/dist/mjs/connectors/BaseConnector.d.ts +0 -36
  295. package/dist/mjs/connectors/BaseConnector.js +0 -34
  296. package/dist/mjs/connectors/BlockchainConnector.js +0 -313
  297. package/dist/mjs/connectors/BlockchainEventsListener.js +0 -75
  298. package/dist/mjs/connectors/index.d.ts +0 -2
  299. package/dist/mjs/connectors/index.js +0 -3
  300. package/dist/mjs/constants.d.ts +0 -13
  301. package/dist/mjs/constants.js +0 -14
  302. package/dist/mjs/contracts/abi.d.ts +0 -9916
  303. package/dist/mjs/contracts/abi.js +0 -12941
  304. package/dist/mjs/crypto/Crypto.d.ts +0 -54
  305. package/dist/mjs/crypto/Crypto.js +0 -95
  306. package/dist/mjs/crypto/index.d.ts +0 -2
  307. package/dist/mjs/crypto/index.js +0 -3
  308. package/dist/mjs/crypto/nodejs/AES.d.ts +0 -24
  309. package/dist/mjs/crypto/nodejs/AES.js +0 -74
  310. package/dist/mjs/crypto/nodejs/ARIA.d.ts +0 -24
  311. package/dist/mjs/crypto/nodejs/ARIA.js +0 -73
  312. package/dist/mjs/crypto/nodejs/ECIES.d.ts +0 -6
  313. package/dist/mjs/crypto/nodejs/ECIES.js +0 -51
  314. package/dist/mjs/crypto/nodejs/NativeCrypto.js +0 -163
  315. package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +0 -15
  316. package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +0 -89
  317. package/dist/mjs/index.d.ts +0 -79
  318. package/dist/mjs/index.js +0 -75
  319. package/dist/mjs/logger.d.ts +0 -7
  320. package/dist/mjs/logger.js +0 -7
  321. package/dist/mjs/models/EtlModel.d.ts +0 -34
  322. package/dist/mjs/models/EtlModel.js +0 -96
  323. package/dist/mjs/models/Offer.js +0 -356
  324. package/dist/mjs/models/Order.js +0 -520
  325. package/dist/mjs/models/Provider.js +0 -114
  326. package/dist/mjs/models/TCB.d.ts +0 -58
  327. package/dist/mjs/models/TCB.js +0 -107
  328. package/dist/mjs/models/TeeOffer.js +0 -533
  329. package/dist/mjs/models/index.d.ts +0 -5
  330. package/dist/mjs/models/index.js +0 -6
  331. package/dist/mjs/package.json +0 -1
  332. package/dist/mjs/polyfills.d.ts +0 -0
  333. package/dist/mjs/polyfills.js +0 -7
  334. package/dist/mjs/proto/Compression.d.ts +0 -36
  335. package/dist/mjs/proto/Compression.js +0 -123
  336. package/dist/mjs/proto/TRI.js +0 -284
  337. package/dist/mjs/proto/TeeProperties.js +0 -391
  338. package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +0 -36
  339. package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +0 -139
  340. package/dist/mjs/providers/storage/IStorageProvider.d.ts +0 -15
  341. package/dist/mjs/providers/storage/IStorageProvider.js +0 -2
  342. package/dist/mjs/providers/storage/S3StorageProvider.js +0 -167
  343. package/dist/mjs/providers/storage/StorageAdapter.d.ts +0 -60
  344. package/dist/mjs/providers/storage/StorageAdapter.js +0 -271
  345. package/dist/mjs/providers/storage/StorageContentWriter.js +0 -161
  346. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +0 -23
  347. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +0 -119
  348. package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +0 -20
  349. package/dist/mjs/providers/storage/StorageMetadataReader.js +0 -51
  350. package/dist/mjs/providers/storage/StorjAdapter.js +0 -48
  351. package/dist/mjs/providers/storage/StorjStorageProvider.js +0 -141
  352. package/dist/mjs/providers/storage/getStorageProvider.d.ts +0 -4
  353. package/dist/mjs/providers/storage/getStorageProvider.js +0 -15
  354. package/dist/mjs/providers/storage/types.d.ts +0 -7
  355. package/dist/mjs/providers/storage/types.js +0 -2
  356. package/dist/mjs/staticModels/ActiveOffers.js +0 -32
  357. package/dist/mjs/staticModels/ActiveOrders.js +0 -71
  358. package/dist/mjs/staticModels/Consensus.d.ts +0 -42
  359. package/dist/mjs/staticModels/Consensus.js +0 -220
  360. package/dist/mjs/staticModels/Deposits.js +0 -190
  361. package/dist/mjs/staticModels/Marks.d.ts +0 -8
  362. package/dist/mjs/staticModels/Marks.js +0 -25
  363. package/dist/mjs/staticModels/ModelPackager.d.ts +0 -18
  364. package/dist/mjs/staticModels/ModelPackager.js +0 -45
  365. package/dist/mjs/staticModels/Offers.js +0 -184
  366. package/dist/mjs/staticModels/Orders.js +0 -472
  367. package/dist/mjs/staticModels/ProviderRegistry.js +0 -169
  368. package/dist/mjs/staticModels/StaticModel.d.ts +0 -8
  369. package/dist/mjs/staticModels/StaticModel.js +0 -30
  370. package/dist/mjs/staticModels/Superpro.d.ts +0 -16
  371. package/dist/mjs/staticModels/Superpro.js +0 -23
  372. package/dist/mjs/staticModels/SuperproToken.d.ts +0 -48
  373. package/dist/mjs/staticModels/SuperproToken.js +0 -136
  374. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -115
  375. package/dist/mjs/staticModels/TeeOffers.js +0 -309
  376. package/dist/mjs/store.d.ts +0 -15
  377. package/dist/mjs/store.js +0 -15
  378. package/dist/mjs/tee/QuoteParser.d.ts +0 -27
  379. package/dist/mjs/tee/QuoteParser.js +0 -162
  380. package/dist/mjs/tee/QuoteValidator.d.ts +0 -38
  381. package/dist/mjs/tee/QuoteValidator.js +0 -384
  382. package/dist/mjs/tee/errors.d.ts +0 -6
  383. package/dist/mjs/tee/errors.js +0 -7
  384. package/dist/mjs/tee/helpers.d.ts +0 -14
  385. package/dist/mjs/tee/helpers.js +0 -115
  386. package/dist/mjs/tee/interface.d.ts +0 -63
  387. package/dist/mjs/tee/interface.js +0 -2
  388. package/dist/mjs/tee/statuses.d.ts +0 -21
  389. package/dist/mjs/tee/statuses.js +0 -25
  390. package/dist/mjs/tee/types.d.ts +0 -75
  391. package/dist/mjs/tee/types.js +0 -2
  392. package/dist/mjs/types/Compressor.d.ts +0 -5
  393. package/dist/mjs/types/Compressor.js +0 -2
  394. package/dist/mjs/types/Consensus.d.ts +0 -60
  395. package/dist/mjs/types/Consensus.js +0 -16
  396. package/dist/mjs/types/DepositInfo.js +0 -2
  397. package/dist/mjs/types/EtlModel.d.ts +0 -2
  398. package/dist/mjs/types/EtlModel.js +0 -2
  399. package/dist/mjs/types/Events.js +0 -2
  400. package/dist/mjs/types/HardwareInfo.d.ts +0 -6
  401. package/dist/mjs/types/HardwareInfo.js +0 -2
  402. package/dist/mjs/types/Marks.d.ts +0 -9
  403. package/dist/mjs/types/Marks.js +0 -7
  404. package/dist/mjs/types/Offer.js +0 -14
  405. package/dist/mjs/types/OptionInfo.d.ts +0 -8
  406. package/dist/mjs/types/OptionInfo.js +0 -2
  407. package/dist/mjs/types/Order.js +0 -51
  408. package/dist/mjs/types/OrderUsage.js +0 -2
  409. package/dist/mjs/types/Origins.d.ts +0 -6
  410. package/dist/mjs/types/Origins.js +0 -2
  411. package/dist/mjs/types/Provider.d.ts +0 -7
  412. package/dist/mjs/types/Provider.js +0 -2
  413. package/dist/mjs/types/ResourceLoader.js +0 -2
  414. package/dist/mjs/types/SlotInfo.d.ts +0 -6
  415. package/dist/mjs/types/SlotInfo.js +0 -2
  416. package/dist/mjs/types/SlotUsage.d.ts +0 -11
  417. package/dist/mjs/types/SlotUsage.js +0 -6
  418. package/dist/mjs/types/Superpro.d.ts +0 -9
  419. package/dist/mjs/types/Superpro.js +0 -11
  420. package/dist/mjs/types/TeeOfferInfo.d.ts +0 -10
  421. package/dist/mjs/types/TeeOfferInfo.js +0 -2
  422. package/dist/mjs/types/TeeOfferOption.d.ts +0 -13
  423. package/dist/mjs/types/TeeOfferOption.js +0 -2
  424. package/dist/mjs/types/TeeOfferSlot.d.ts +0 -8
  425. package/dist/mjs/types/TeeOfferSlot.js +0 -2
  426. package/dist/mjs/types/ValueOfferSlot.d.ts +0 -16
  427. package/dist/mjs/types/ValueOfferSlot.js +0 -2
  428. package/dist/mjs/types/Web3.d.ts +0 -62
  429. package/dist/mjs/types/Web3.js +0 -2
  430. package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +0 -8
  431. package/dist/mjs/types/blockchainConnector/StorageAccess.js +0 -2
  432. package/dist/mjs/types/index.d.ts +0 -22
  433. package/dist/mjs/types/index.js +0 -23
  434. package/dist/mjs/types/storage/StorageAccess.d.ts +0 -7
  435. package/dist/mjs/types/storage/StorageAccess.js +0 -2
  436. package/dist/mjs/types/storage/StorageFileAccess.js +0 -2
  437. package/dist/mjs/types/storage/StorageObject.d.ts +0 -8
  438. package/dist/mjs/types/storage/StorageObject.js +0 -2
  439. package/dist/mjs/utils/Monitoring.d.ts +0 -11
  440. package/dist/mjs/utils/Monitoring.js +0 -42
  441. package/dist/mjs/utils/NonceTracker.d.ts +0 -19
  442. package/dist/mjs/utils/NonceTracker.js +0 -73
  443. package/dist/mjs/utils/PubSub.d.ts +0 -9
  444. package/dist/mjs/utils/PubSub.js +0 -32
  445. package/dist/mjs/utils/TxManager.js +0 -162
  446. package/dist/mjs/utils/compressors/GzipCompressor.js +0 -15
  447. package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +0 -8
  448. package/dist/mjs/utils/compressors/UncompressedCompressor.js +0 -13
  449. package/dist/mjs/utils/compressors/index.d.ts +0 -2
  450. package/dist/mjs/utils/compressors/index.js +0 -3
  451. package/dist/mjs/utils/helper.js +0 -258
  452. package/dist/mjs/utils/helpers/getStreamChunks.d.ts +0 -9
  453. package/dist/mjs/utils/helpers/getStreamChunks.js +0 -31
  454. package/dist/mjs/utils/helpers/index.d.ts +0 -1
  455. package/dist/mjs/utils/helpers/index.js +0 -2
  456. package/dist/mjs/utils/helpers/tryWithInterval.d.ts +0 -13
  457. package/dist/mjs/utils/helpers/tryWithInterval.js +0 -35
  458. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +0 -10
  459. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +0 -10
  460. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +0 -53
  461. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +0 -9
  462. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +0 -44
  463. package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +0 -5
  464. package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +0 -11
  465. package/dist/mjs/utils/resourceLoaders/index.d.ts +0 -1
  466. package/dist/mjs/utils/resourceLoaders/index.js +0 -2
  467. /package/{dist/cjs → build}/analytics/AnalyticsError.d.ts +0 -0
  468. /package/{dist/cjs → build}/analytics/eventProviders/EventProvider.d.ts +0 -0
  469. /package/{dist/cjs → build}/config.d.ts +0 -0
  470. /package/{dist/cjs → build}/constants.d.ts +0 -0
  471. /package/{dist/cjs → build}/crypto/Crypto.d.ts +0 -0
  472. /package/{dist/cjs → build}/crypto/nodejs/AES.d.ts +0 -0
  473. /package/{dist/cjs → build}/crypto/nodejs/ARIA.d.ts +0 -0
  474. /package/{dist/cjs → build}/crypto/nodejs/ECIES.d.ts +0 -0
  475. /package/{dist/cjs → build}/crypto/nodejs/RSA-Hybrid.d.ts +0 -0
  476. /package/{dist/cjs → build}/logger.d.ts +0 -0
  477. /package/{dist/cjs → build}/polyfills.d.ts +0 -0
  478. /package/{dist/cjs → build}/providers/storage/types.d.ts +0 -0
  479. /package/{dist/cjs → build}/staticModels/ModelPackager.d.ts +0 -0
  480. /package/{dist/cjs → build}/store.d.ts +0 -0
  481. /package/{dist/cjs → build}/tee/errors.d.ts +0 -0
  482. /package/{dist/cjs → build}/tee/helpers.d.ts +0 -0
  483. /package/{dist/cjs → build}/tee/statuses.d.ts +0 -0
  484. /package/{dist/cjs → build}/tee/types.d.ts +0 -0
  485. /package/{dist/cjs → build}/types/Compressor.d.ts +0 -0
  486. /package/{dist/cjs → build}/types/EtlModel.d.ts +0 -0
  487. /package/{dist/cjs → build}/types/Marks.d.ts +0 -0
  488. /package/{dist/cjs → build}/types/OptionInfo.d.ts +0 -0
  489. /package/{dist/cjs → build}/types/Origins.d.ts +0 -0
  490. /package/{dist/cjs → build}/types/Provider.d.ts +0 -0
  491. /package/{dist/cjs → build}/types/SlotInfo.d.ts +0 -0
  492. /package/{dist/cjs → build}/types/Superpro.d.ts +0 -0
  493. /package/{dist/cjs → build}/types/Web3.d.ts +0 -0
  494. /package/{dist/cjs → build}/types/storage/StorageAccess.d.ts +0 -0
  495. /package/{dist/cjs → build}/types/storage/StorageObject.d.ts +0 -0
  496. /package/{dist/cjs → build}/utils/Monitoring.d.ts +0 -0
  497. /package/{dist/cjs → build}/utils/NonceTracker.d.ts +0 -0
  498. /package/{dist/cjs → build}/utils/PubSub.d.ts +0 -0
  499. /package/{dist/cjs → build}/utils/helpers/getStreamChunks.d.ts +0 -0
  500. /package/{dist/cjs → build}/utils/helpers/tryWithInterval.d.ts +0 -0
@@ -1,167 +0,0 @@
1
- import { AbortMultipartUploadCommand, CompleteMultipartUploadCommand, CreateMultipartUploadCommand, PutObjectCommand, DeleteObjectCommand, GetObjectCommand, HeadObjectCommand, ListObjectsV2Command, S3Client, UploadPartCommand, } from '@aws-sdk/client-s3';
2
- import { Readable } from 'stream';
3
- import { getStreamChunks } from '../../utils/helpers/getStreamChunks.js';
4
- export class S3StorageProvider {
5
- s3Client;
6
- bucket;
7
- multipartChunkSizeInBytes = 64 * 1024 * 1024; // 64MB
8
- constructor(storageAccess) {
9
- const { accessKeyId, secretAccessKey, endpoint, bucket, region } = storageAccess;
10
- if (!accessKeyId)
11
- throw new Error('Access key id is undefined');
12
- if (!secretAccessKey)
13
- throw new Error('Secret access is undefined');
14
- if (!endpoint)
15
- throw new Error('Endpoint is undefined');
16
- if (!bucket)
17
- throw new Error('Bucket is undefined');
18
- if (!region)
19
- throw new Error('Region is undefined');
20
- this.bucket = bucket;
21
- this.s3Client = new S3Client({
22
- credentials: {
23
- accessKeyId,
24
- secretAccessKey,
25
- },
26
- region,
27
- endpoint,
28
- forcePathStyle: true,
29
- });
30
- }
31
- async uploadFile(inputStream, remotePath, contentLength, progressListener) {
32
- // For performance & cost optimization
33
- // https://docs.storj.io/dcs/api-reference/s3-compatible-gateway/multipart-upload/multipart-part-size
34
- if (contentLength >= this.multipartChunkSizeInBytes) {
35
- return this.multipartUpload(inputStream, remotePath, contentLength, progressListener);
36
- }
37
- const putObjectCommand = new PutObjectCommand({
38
- Body: inputStream,
39
- Bucket: this.bucket,
40
- Key: remotePath,
41
- ContentLength: contentLength,
42
- });
43
- progressListener?.(contentLength, 0);
44
- await this.s3Client.send(putObjectCommand);
45
- progressListener?.(contentLength, contentLength);
46
- }
47
- async multipartUpload(inputStream, remotePath, contentLength, progressListener) {
48
- const createMultipartUploadCommand = new CreateMultipartUploadCommand({
49
- Bucket: this.bucket,
50
- Key: remotePath,
51
- });
52
- const multipart = await this.s3Client.send(createMultipartUploadCommand);
53
- if (!multipart.UploadId) {
54
- throw new Error('UploadId property is empty');
55
- }
56
- try {
57
- let totalWritten = 0;
58
- const uploadId = multipart.UploadId;
59
- const parts = [];
60
- for await (const streamChunk of getStreamChunks(inputStream, this.multipartChunkSizeInBytes)) {
61
- const uploadPartCommand = new UploadPartCommand({
62
- Body: streamChunk.data,
63
- Bucket: this.bucket,
64
- Key: remotePath,
65
- UploadId: uploadId,
66
- PartNumber: streamChunk.partNumber,
67
- });
68
- const response = await this.s3Client.send(uploadPartCommand);
69
- parts.push({
70
- ETag: response.ETag,
71
- PartNumber: streamChunk.partNumber,
72
- });
73
- totalWritten += streamChunk.data.length;
74
- if (!!progressListener) {
75
- progressListener(contentLength, totalWritten);
76
- }
77
- }
78
- const completeMultipartUploadCommand = new CompleteMultipartUploadCommand({
79
- Bucket: this.bucket,
80
- Key: remotePath,
81
- UploadId: multipart.UploadId,
82
- MultipartUpload: { Parts: parts },
83
- });
84
- await this.s3Client.send(completeMultipartUploadCommand);
85
- }
86
- catch (uploadingError) {
87
- const abortMultipartUploadCommand = new AbortMultipartUploadCommand({
88
- Bucket: this.bucket,
89
- Key: remotePath,
90
- UploadId: multipart.UploadId,
91
- });
92
- await this.s3Client.send(abortMultipartUploadCommand);
93
- throw uploadingError;
94
- }
95
- }
96
- async deleteObject(remotePath) {
97
- const deleteObjectCommand = new DeleteObjectCommand({
98
- Bucket: this.bucket,
99
- Key: remotePath,
100
- });
101
- await this.s3Client.send(deleteObjectCommand);
102
- }
103
- async downloadFile(remotePath, config, progressListener) {
104
- const getObjectParams = {
105
- Bucket: this.bucket,
106
- Key: remotePath,
107
- };
108
- if (config) {
109
- const start = config.offset || 0;
110
- const end = start + (config.length || 0);
111
- getObjectParams.Range = `bytes=${start}-${end || ''}`;
112
- }
113
- const getObjectCommand = new GetObjectCommand(getObjectParams);
114
- const getObjectResult = await this.s3Client.send(getObjectCommand);
115
- if (!getObjectResult.Body || !(getObjectResult.Body instanceof Readable)) {
116
- throw new Error('download Body is undefined');
117
- }
118
- let current = 0;
119
- if (progressListener && getObjectResult.Body) {
120
- const fileBytesSize = getObjectResult.ContentLength || config.length || (await this.getObjectSize(remotePath));
121
- getObjectResult.Body.on('data', (chunk) => {
122
- current += chunk.length;
123
- progressListener(fileBytesSize, current);
124
- });
125
- }
126
- return getObjectResult.Body;
127
- }
128
- async listObjects(remotePath) {
129
- const prefix = remotePath.endsWith('/') ? remotePath : `${remotePath}/`;
130
- const listObjectsCommand = new ListObjectsV2Command({
131
- Bucket: this.bucket,
132
- Prefix: prefix,
133
- });
134
- const listObjects = await this.s3Client.send(listObjectsCommand);
135
- let result = [];
136
- if (listObjects.Contents) {
137
- result = listObjects.Contents.map((object) => ({
138
- name: object.Key || '',
139
- createdAt: object.LastModified || new Date(),
140
- size: object.Size || 0,
141
- }));
142
- }
143
- return result;
144
- }
145
- async getMetadata(remotePath) {
146
- const headObjectCommand = new HeadObjectCommand({
147
- Bucket: this.bucket,
148
- Key: remotePath,
149
- });
150
- return await this.s3Client.send(headObjectCommand);
151
- }
152
- async getObjectSize(remotePath) {
153
- const metadata = await this.getMetadata(remotePath);
154
- if (metadata.ContentLength === undefined) {
155
- throw new Error('ContentLength property is empty');
156
- }
157
- return metadata.ContentLength || 0;
158
- }
159
- async getLastModified(remotePath) {
160
- const metadata = await this.getMetadata(remotePath);
161
- if (!metadata.LastModified) {
162
- throw new Error('LastModified property is empty');
163
- }
164
- return metadata.LastModified;
165
- }
166
- }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNTdG9yYWdlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvUzNTdG9yYWdlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLDJCQUEyQixFQUUzQiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBRWhCLGlCQUFpQixFQUVqQixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBVXpFLE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxRQUFRLENBQVc7SUFDbkIsTUFBTSxDQUFTO0lBQ2YseUJBQXlCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPO0lBRXRFLFlBQVksYUFBNkI7UUFDdkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUM7UUFDakYsSUFBSSxDQUFDLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFD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
@@ -1,60 +0,0 @@
1
- /// <reference types="node" />
2
- import StorageAccess from '../../types/storage/StorageAccess.js';
3
- import { Performance } from './types.js';
4
- export interface LRUCacheConfig {
5
- max: number;
6
- }
7
- export interface StorageAdapterConfig {
8
- lruCache: LRUCacheConfig;
9
- writeInterval: number;
10
- readInterval: number;
11
- objectDeletedFlag: string;
12
- readMetadataConcurrency?: number;
13
- performance?: Performance;
14
- showLogs?: boolean;
15
- }
16
- export declare enum CacheEvents {
17
- INSTANCES_CHANGED = "INSTANCES_CHANGED",
18
- KEY_DELETED = "KEY_DELETED"
19
- }
20
- export default class StorageAdapter<V extends object> {
21
- private readonly logger?;
22
- private readonly storageKeyValueAdapter;
23
- private readonly cache;
24
- private readonly encryptionKeys;
25
- private readonly contentWriter;
26
- private readonly metadataReader;
27
- private readonly instanceId;
28
- private timeout;
29
- private readonly readInterval;
30
- private readonly queues;
31
- private readonly queueReadMetadata;
32
- private readonly isUpdating;
33
- private readonly pubSub;
34
- private readonly eventName;
35
- private readonly performance?;
36
- constructor(storageAccess: StorageAccess, config: StorageAdapterConfig);
37
- private generateHash;
38
- subscribe(cb: (props: {
39
- type: CacheEvents;
40
- message: unknown;
41
- }) => void): Promise<() => Promise<void>>;
42
- private publish;
43
- has(key: string): Promise<boolean>;
44
- private getEnryptionKey;
45
- set(key: string, value: V, encryptionKeyBuffer: Buffer): Promise<void>;
46
- private setByInstance;
47
- delete(key: string): Promise<void>;
48
- get(key: string, encryptionKeyBuffer: Buffer): Promise<(V | null)[] | null>;
49
- private getQueue;
50
- private clearQueue;
51
- private cacheHasNullInstances;
52
- private fetchNullValues;
53
- clear(): void;
54
- run(): void;
55
- private checkUpdates;
56
- private startUpdatesChecking;
57
- private stopUpdatesChecking;
58
- stop(): void;
59
- shutdown(): Promise<void>;
60
- }
@@ -1,271 +0,0 @@
1
- import { LRUCache } from 'lru-cache';
2
- import { createHash, randomUUID } from 'crypto';
3
- import Queue from 'p-queue';
4
- import StorageKeyValueAdapter from './StorageKeyValueAdapter.js';
5
- import StorageContentWriter, { ContentWriterType } from './StorageContentWriter.js';
6
- import StorageMetadataReader from './StorageMetadataReader.js';
7
- import logger from '../../logger.js';
8
- import PubSub from '../../utils/PubSub.js';
9
- export var CacheEvents;
10
- (function (CacheEvents) {
11
- CacheEvents["INSTANCES_CHANGED"] = "INSTANCES_CHANGED";
12
- CacheEvents["KEY_DELETED"] = "KEY_DELETED";
13
- })(CacheEvents || (CacheEvents = {}));
14
- const DEFAULT_READ_METADATA_CONCUREENCY = 16;
15
- export default class StorageAdapter {
16
- logger;
17
- storageKeyValueAdapter;
18
- cache;
19
- encryptionKeys = new Map(); // key -> encryption key (base64)
20
- contentWriter;
21
- metadataReader;
22
- instanceId;
23
- timeout = null;
24
- readInterval;
25
- queues = new Map();
26
- queueReadMetadata;
27
- isUpdating = new Map();
28
- pubSub = new PubSub();
29
- eventName = 'storage-adapter';
30
- performance;
31
- constructor(storageAccess, config) {
32
- const { readInterval, writeInterval, lruCache, objectDeletedFlag, readMetadataConcurrency, performance, showLogs = true, } = config;
33
- this.logger = showLogs ? logger.child({ class: StorageAdapter.name }) : null;
34
- this.performance = performance;
35
- this.instanceId = this.generateHash();
36
- this.readInterval = readInterval;
37
- this.storageKeyValueAdapter = new StorageKeyValueAdapter(storageAccess, { showLogs });
38
- this.cache = new LRUCache(lruCache);
39
- this.metadataReader = new StorageMetadataReader({
40
- storageKeyValueAdapter: this.storageKeyValueAdapter,
41
- objectDeletedFlag,
42
- showLogs,
43
- });
44
- this.contentWriter = new StorageContentWriter({
45
- interval: writeInterval,
46
- storageKeyValueAdapter: this.storageKeyValueAdapter,
47
- instanceId: this.instanceId,
48
- objectDeletedFlag,
49
- performance: this.performance,
50
- showLogs,
51
- });
52
- this.queueReadMetadata = new Queue({
53
- concurrency: readMetadataConcurrency || DEFAULT_READ_METADATA_CONCUREENCY,
54
- });
55
- }
56
- generateHash(str) {
57
- return createHash('sha256')
58
- .update(str || randomUUID())
59
- .digest('hex');
60
- }
61
- async subscribe(cb) {
62
- this.pubSub.subscribe(this.eventName, cb);
63
- return async () => {
64
- this.pubSub.unsubscribe(this.eventName, cb);
65
- };
66
- }
67
- publish(type, message) {
68
- this.pubSub.publish(this.eventName, {
69
- type,
70
- message,
71
- });
72
- }
73
- async has(key) {
74
- if (!this.cache.has(key)) {
75
- await this.getQueue(key).add(async () => {
76
- if (!this.cache.has(key)) {
77
- await this.checkUpdates(key);
78
- }
79
- });
80
- }
81
- return this.cache.has(key);
82
- }
83
- getEnryptionKey(key, encryptionKeyBuffer) {
84
- if (!this.encryptionKeys.has(key)) {
85
- if (!encryptionKeyBuffer)
86
- return null;
87
- const encryptionKey = encryptionKeyBuffer.toString('base64');
88
- this.encryptionKeys.set(key, encryptionKey);
89
- return encryptionKey;
90
- }
91
- return this.encryptionKeys.get(key) || null;
92
- }
93
- async set(key, value, encryptionKeyBuffer) {
94
- if (this.contentWriter.storageWrites.get(key)?.type === ContentWriterType.NEEDS_DELETE) {
95
- throw new Error('Object has been deleted');
96
- }
97
- const encryptionKey = this.getEnryptionKey(key, encryptionKeyBuffer);
98
- if (!encryptionKey)
99
- throw new Error('Encryption key required');
100
- this.setByInstance(key, this.instanceId, {
101
- value,
102
- modifiedTs: Number.MAX_SAFE_INTEGER,
103
- });
104
- this.contentWriter.set(key, ContentWriterType.NEEDS_UPLOAD, encryptionKey);
105
- }
106
- setByInstance(key, instanceId, value) {
107
- const instances = this.cache.get(key) || new Map();
108
- instances.set(instanceId, value);
109
- this.cache.set(key, instances);
110
- }
111
- async delete(key) {
112
- this.cache.delete(key);
113
- this.isUpdating.delete(key);
114
- const encryptionKey = this.getEnryptionKey(key);
115
- if (encryptionKey) {
116
- this.contentWriter.set(key, ContentWriterType.NEEDS_DELETE, encryptionKey);
117
- this.encryptionKeys.delete(key);
118
- }
119
- else {
120
- this.logger?.error(`Encryption key for key ${key} is not set`);
121
- }
122
- this.clearQueue(key);
123
- }
124
- // the first value is always the current instance, if key exists
125
- async get(key, encryptionKeyBuffer) {
126
- if (!encryptionKeyBuffer)
127
- throw new Error('Encryption key required');
128
- if (this.contentWriter.storageWrites.get(key)?.type === ContentWriterType.NEEDS_DELETE ||
129
- !(await this.has(key))) {
130
- return null;
131
- }
132
- const encryptionKey = this.getEnryptionKey(key, encryptionKeyBuffer);
133
- if (!encryptionKey)
134
- throw new Error('Encryption key required');
135
- if (this.cacheHasNullInstances(key)) {
136
- await this.getQueue(key).add(async () => {
137
- if (this.cacheHasNullInstances(key)) {
138
- await this.fetchNullValues(key, encryptionKey);
139
- }
140
- });
141
- }
142
- const map = this.cache.get(key);
143
- if (!map?.size)
144
- return null;
145
- const currentInstance = map.get(this.instanceId)?.value || null;
146
- const otherInstances = Array.from(map.entries()).reduce((acc, [instanceId, instance]) => {
147
- return instanceId !== this.instanceId ? [...acc, instance?.value || null] : acc;
148
- }, []);
149
- return [currentInstance, ...otherInstances];
150
- }
151
- getQueue(key) {
152
- let queue = this.queues.get(key);
153
- if (!queue) {
154
- queue = new Queue({ concurrency: 1 });
155
- this.queues.set(key, queue);
156
- }
157
- return queue;
158
- }
159
- clearQueue(key) {
160
- const queue = this.queues.get(key);
161
- queue?.clear();
162
- this.queues.delete(key);
163
- }
164
- cacheHasNullInstances(key) {
165
- return Array.from(this.cache.get(key)?.values() || []).some((instance) => instance.value === null);
166
- }
167
- async fetchNullValues(key, encryptionKey) {
168
- const promises = [];
169
- this.cache.get(key)?.forEach((instance, instanseId) => {
170
- if (instance.value === null) {
171
- const fileName = `${key}/${instanseId}`;
172
- const startDownload = this.performance?.now();
173
- promises.push(this.storageKeyValueAdapter
174
- .get(fileName, encryptionKey)
175
- .then((file) => {
176
- if (this.performance && startDownload !== undefined) {
177
- const finishDownload = this.performance.now();
178
- logger.info(`Downloading took ${(finishDownload - startDownload).toFixed(1)} ms`);
179
- }
180
- this.setByInstance(key, instanseId, {
181
- ...instance,
182
- value: file,
183
- });
184
- })
185
- .catch((err) => this.logger?.error({ err }, 'Error fetching content')));
186
- }
187
- });
188
- await Promise.all(promises);
189
- }
190
- clear() {
191
- this.cache.clear();
192
- this.contentWriter.clear();
193
- }
194
- run() {
195
- this.contentWriter.startActualizeCacheTimer(this.cache);
196
- if (this.readInterval) {
197
- this.startUpdatesChecking();
198
- }
199
- }
200
- async checkUpdates(key) {
201
- if (this.isUpdating.get(key) ||
202
- this.contentWriter.storageWrites.get(key)?.type === ContentWriterType.NEEDS_DELETE) {
203
- return;
204
- }
205
- this.isUpdating.set(key, true);
206
- try {
207
- if (!this.cache.has(key)) {
208
- this.cache.set(key, new Map());
209
- }
210
- const cachedByKey = this.cache.get(key);
211
- const initialSize = cachedByKey.size;
212
- const { updated, deleted } = await this.metadataReader.fetchInstancesUpdates(key, cachedByKey);
213
- if (deleted.has(key)) {
214
- await this.delete(key);
215
- this.publish(CacheEvents.KEY_DELETED, key);
216
- return;
217
- }
218
- updated.forEach((storageObject, instanceId) => {
219
- cachedByKey.set(instanceId, {
220
- value: null,
221
- modifiedTs: storageObject.createdAt.getTime(),
222
- });
223
- });
224
- if (updated.size && initialSize) {
225
- this.publish(CacheEvents.INSTANCES_CHANGED, key);
226
- }
227
- deleted.forEach((instanceId) => {
228
- if (instanceId !== this.instanceId) {
229
- cachedByKey.delete(instanceId);
230
- }
231
- });
232
- if (!cachedByKey.size) {
233
- this.cache.delete(key);
234
- }
235
- }
236
- catch (err) {
237
- this.logger?.error({ err }, 'Error checking updates');
238
- return;
239
- }
240
- finally {
241
- this.isUpdating.set(key, false);
242
- }
243
- }
244
- async startUpdatesChecking() {
245
- this.stopUpdatesChecking();
246
- this.timeout = setTimeout(async () => {
247
- Array.from(this.cache.keys()).forEach((key) => {
248
- this.queueReadMetadata.add(async () => {
249
- await this.getQueue(key).add(async () => {
250
- await this.checkUpdates(key);
251
- });
252
- });
253
- });
254
- await this.queueReadMetadata.onIdle();
255
- this.startUpdatesChecking();
256
- }, this.readInterval);
257
- }
258
- stopUpdatesChecking() {
259
- if (this.timeout)
260
- clearTimeout(this.timeout);
261
- }
262
- stop() {
263
- this.stopUpdatesChecking();
264
- this.contentWriter.stop();
265
- }
266
- async shutdown() {
267
- this.stop();
268
- await this.contentWriter.shutdown(this.cache);
269
- }
270
- }
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmFnZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxTQUFTLENBQUM7QUFDNUIsT0FBTyxzQkFBc0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLG9CQUFvQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLHFCQUFxQixNQUFNLDRCQUE0QixDQUFDO0FBRS9ELE9BQU8sTUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLE1BQU0sTUFBTSx1QkFBdUIsQ0FBQztBQWdCM0MsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixzREFBdUMsQ0FBQTtJQUN2QywwQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFFRCxNQUFNLGlDQUFpQyxHQUFHLEVBQUUsQ0FBQztBQUU3QyxNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDaEIsTUFBTSxDQUFpQjtJQUN2QixzQkFBc0IsQ0FBNEI7SUFDbEQsS0FBSyxDQUFnRDtJQUNyRCxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUMsQ0FBQyxpQ0FBaUM7SUFDN0UsYUFBYSxDQUFrQztJQUMvQyxjQUFjLENBQW1DO0lBQ2pELFVBQVUsQ0FBUztJQUM1QixPQUFPLEdBQXlDLElBQUksQ0FBQztJQUM1QyxZQUFZLENBQVM7SUFDckIsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO0lBQ2xDLGlCQUFpQixDQUFRO0lBQ3pCLFVBQVUs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