@super-protocol/sdk-js 2.2.0-beta.10 → 2.2.0-beta.101

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 (228) hide show
  1. package/dist/cjs/RIGenerator.d.ts +2 -0
  2. package/dist/cjs/RIGenerator.js +6 -4
  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 +766 -104
  15. package/dist/cjs/contracts/abi.js +968 -119
  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 +9 -1
  27. package/dist/cjs/index.js +16 -2
  28. package/dist/cjs/models/Offer.d.ts +38 -6
  29. package/dist/cjs/models/Offer.js +119 -15
  30. package/dist/cjs/models/Order.d.ts +2 -90
  31. package/dist/cjs/models/Order.js +20 -91
  32. package/dist/cjs/models/Provider.js +1 -1
  33. package/dist/cjs/models/TCB.js +13 -5
  34. package/dist/cjs/models/TeeOffer.d.ts +35 -13
  35. package/dist/cjs/models/TeeOffer.js +117 -45
  36. package/dist/cjs/proto/Compression.d.ts +1 -1
  37. package/dist/cjs/proto/TRI.d.ts +41 -6
  38. package/dist/cjs/proto/TRI.js +18 -1
  39. package/dist/cjs/proto/TeeProperties.d.ts +5 -5
  40. package/dist/cjs/providers/storage/IStorageProvider.d.ts +1 -1
  41. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +8 -7
  42. package/dist/cjs/providers/storage/S3StorageProvider.js +80 -38
  43. package/dist/cjs/providers/storage/StorageAdapter.d.ts +9 -7
  44. package/dist/cjs/providers/storage/StorageAdapter.js +27 -29
  45. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +2 -2
  46. package/dist/cjs/providers/storage/StorageContentWriter.js +5 -5
  47. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  48. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  49. package/dist/cjs/providers/storage/StorjAdapter.d.ts +5 -4
  50. package/dist/cjs/providers/storage/StorjAdapter.js +15 -9
  51. package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  52. package/dist/cjs/providers/storage/StorjCredentialsManager.js +86 -0
  53. package/dist/cjs/providers/storage/StorjStorageProvider.js +2 -2
  54. package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
  55. package/dist/cjs/providers/storage/fs-storage-provider.js +143 -0
  56. package/dist/cjs/providers/storage/getStorageProvider.js +4 -1
  57. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  58. package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
  59. package/dist/cjs/providers/storage/types.d.ts +22 -0
  60. package/dist/cjs/staticModels/LoaderSecretsPublicKeys.js +3 -3
  61. package/dist/cjs/staticModels/LoaderSessions.d.ts +2 -2
  62. package/dist/cjs/staticModels/LoaderSessions.js +5 -5
  63. package/dist/cjs/staticModels/OfferResources.d.ts +2 -1
  64. package/dist/cjs/staticModels/OfferResources.js +24 -8
  65. package/dist/cjs/staticModels/Offers.js +7 -2
  66. package/dist/cjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  67. package/dist/cjs/staticModels/OffersStorageAllocated.js +10 -10
  68. package/dist/cjs/staticModels/OffersStorageRequests.js +4 -3
  69. package/dist/cjs/staticModels/Orders.d.ts +5 -4
  70. package/dist/cjs/staticModels/Orders.js +7 -6
  71. package/dist/cjs/staticModels/SecretRequests.d.ts +1 -1
  72. package/dist/cjs/staticModels/SecretRequests.js +14 -7
  73. package/dist/cjs/staticModels/TeeOffers.d.ts +0 -2
  74. package/dist/cjs/staticModels/TeeOffers.js +5 -38
  75. package/dist/cjs/tee/QuoteParser.d.ts +61 -6
  76. package/dist/cjs/tee/QuoteParser.js +248 -29
  77. package/dist/cjs/tee/QuoteValidator.d.ts +11 -0
  78. package/dist/cjs/tee/QuoteValidator.js +131 -34
  79. package/dist/cjs/tee/TeeBlockVerifier.d.ts +3 -4
  80. package/dist/cjs/tee/TeeBlockVerifier.js +2 -8
  81. package/dist/cjs/tee/errors.d.ts +6 -3
  82. package/dist/cjs/tee/errors.js +9 -5
  83. package/dist/cjs/tee/types.d.ts +50 -9
  84. package/dist/cjs/tee/types.js +32 -1
  85. package/dist/cjs/types/DistributedSecretStorage.d.ts +7 -0
  86. package/dist/cjs/types/Offer.d.ts +20 -5
  87. package/dist/cjs/types/Offer.js +10 -2
  88. package/dist/cjs/types/OfferVersion.d.ts +13 -0
  89. package/dist/cjs/types/OfferVersion.js +9 -0
  90. package/dist/cjs/types/Order.d.ts +8 -2
  91. package/dist/cjs/types/Order.js +3 -1
  92. package/dist/cjs/types/SlotInfo.d.ts +1 -0
  93. package/dist/cjs/types/Superpro.d.ts +2 -1
  94. package/dist/cjs/types/Superpro.js +2 -1
  95. package/dist/cjs/types/TeeOfferInfo.d.ts +2 -1
  96. package/dist/cjs/types/index.d.ts +1 -0
  97. package/dist/cjs/types/index.js +2 -1
  98. package/dist/cjs/types/storage/StorageAccess.d.ts +3 -3
  99. package/dist/cjs/utils/CryptoKeysTransformer.d.ts +7 -1
  100. package/dist/cjs/utils/CryptoKeysTransformer.js +66 -7
  101. package/dist/cjs/utils/NonceTracker.js +1 -1
  102. package/dist/cjs/utils/helper.d.ts +7 -1
  103. package/dist/cjs/utils/helper.js +87 -2
  104. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +17 -0
  105. package/dist/cjs/utils/helpers/OrderArgsHelper.js +87 -0
  106. package/dist/cjs/utils/helpers/index.d.ts +2 -0
  107. package/dist/cjs/utils/helpers/index.js +3 -1
  108. package/dist/cjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  109. package/dist/cjs/utils/helpers/uploadObjectToStorage.js +55 -0
  110. package/dist/cjs/utils/schema-validators/index.d.ts +1 -0
  111. package/dist/cjs/utils/schema-validators/index.js +6 -0
  112. package/dist/cjs/utils/schema-validators/validator.d.ts +7 -0
  113. package/dist/cjs/utils/schema-validators/validator.js +49 -0
  114. package/dist/mjs/RIGenerator.d.ts +2 -0
  115. package/dist/mjs/RIGenerator.js +6 -4
  116. package/dist/mjs/TIIGenerator.d.ts +2 -1
  117. package/dist/mjs/TIIGenerator.js +13 -3
  118. package/dist/mjs/TeeInputGeneratorBase.d.ts +1 -1
  119. package/dist/mjs/TeeInputGeneratorBase.js +20 -32
  120. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  121. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  122. package/dist/mjs/analytics/transports/AxiosTransport.js +1 -1
  123. package/dist/mjs/config.d.ts +0 -1
  124. package/dist/mjs/config.js +1 -2
  125. package/dist/mjs/constants.d.ts +5 -4
  126. package/dist/mjs/constants.js +30 -6
  127. package/dist/mjs/contracts/abi.d.ts +766 -104
  128. package/dist/mjs/contracts/abi.js +968 -119
  129. package/dist/mjs/crypto/index.d.ts +1 -0
  130. package/dist/mjs/crypto/index.js +2 -1
  131. package/dist/mjs/errors/base.error.d.ts +3 -0
  132. package/dist/mjs/errors/base.error.js +15 -0
  133. package/dist/mjs/errors/index.d.ts +2 -0
  134. package/dist/mjs/errors/index.js +3 -0
  135. package/dist/mjs/errors/not-found.error.d.ts +3 -0
  136. package/dist/mjs/errors/not-found.error.js +4 -0
  137. package/dist/mjs/errors/utils.d.ts +1 -0
  138. package/dist/mjs/errors/utils.js +18 -0
  139. package/dist/mjs/index.d.ts +9 -1
  140. package/dist/mjs/index.js +9 -2
  141. package/dist/mjs/models/Offer.d.ts +38 -6
  142. package/dist/mjs/models/Offer.js +120 -16
  143. package/dist/mjs/models/Order.d.ts +2 -90
  144. package/dist/mjs/models/Order.js +20 -91
  145. package/dist/mjs/models/Provider.js +1 -1
  146. package/dist/mjs/models/TCB.js +13 -5
  147. package/dist/mjs/models/TeeOffer.d.ts +35 -13
  148. package/dist/mjs/models/TeeOffer.js +113 -41
  149. package/dist/mjs/proto/Compression.d.ts +1 -1
  150. package/dist/mjs/proto/TRI.d.ts +41 -6
  151. package/dist/mjs/proto/TRI.js +18 -1
  152. package/dist/mjs/proto/TeeProperties.d.ts +5 -5
  153. package/dist/mjs/providers/storage/IStorageProvider.d.ts +1 -1
  154. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +8 -7
  155. package/dist/mjs/providers/storage/S3StorageProvider.js +77 -38
  156. package/dist/mjs/providers/storage/StorageAdapter.d.ts +9 -7
  157. package/dist/mjs/providers/storage/StorageAdapter.js +27 -29
  158. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +2 -2
  159. package/dist/mjs/providers/storage/StorageContentWriter.js +5 -5
  160. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  161. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  162. package/dist/mjs/providers/storage/StorjAdapter.d.ts +5 -4
  163. package/dist/mjs/providers/storage/StorjAdapter.js +15 -9
  164. package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  165. package/dist/mjs/providers/storage/StorjCredentialsManager.js +82 -0
  166. package/dist/mjs/providers/storage/StorjStorageProvider.js +2 -2
  167. package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
  168. package/dist/mjs/providers/storage/fs-storage-provider.js +113 -0
  169. package/dist/mjs/providers/storage/getStorageProvider.js +4 -1
  170. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  171. package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
  172. package/dist/mjs/providers/storage/types.d.ts +22 -0
  173. package/dist/mjs/staticModels/LoaderSecretsPublicKeys.js +4 -4
  174. package/dist/mjs/staticModels/LoaderSessions.d.ts +2 -2
  175. package/dist/mjs/staticModels/LoaderSessions.js +6 -6
  176. package/dist/mjs/staticModels/OfferResources.d.ts +2 -1
  177. package/dist/mjs/staticModels/OfferResources.js +25 -9
  178. package/dist/mjs/staticModels/Offers.js +7 -2
  179. package/dist/mjs/staticModels/OffersStorageAllocated.d.ts +1 -2
  180. package/dist/mjs/staticModels/OffersStorageAllocated.js +11 -11
  181. package/dist/mjs/staticModels/OffersStorageRequests.js +5 -4
  182. package/dist/mjs/staticModels/Orders.d.ts +5 -4
  183. package/dist/mjs/staticModels/Orders.js +7 -6
  184. package/dist/mjs/staticModels/SecretRequests.d.ts +1 -1
  185. package/dist/mjs/staticModels/SecretRequests.js +15 -8
  186. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -2
  187. package/dist/mjs/staticModels/TeeOffers.js +5 -38
  188. package/dist/mjs/store.js +2 -2
  189. package/dist/mjs/tee/QuoteParser.d.ts +61 -6
  190. package/dist/mjs/tee/QuoteParser.js +245 -28
  191. package/dist/mjs/tee/QuoteValidator.d.ts +11 -0
  192. package/dist/mjs/tee/QuoteValidator.js +131 -34
  193. package/dist/mjs/tee/TeeBlockVerifier.d.ts +3 -4
  194. package/dist/mjs/tee/TeeBlockVerifier.js +2 -8
  195. package/dist/mjs/tee/errors.d.ts +6 -3
  196. package/dist/mjs/tee/errors.js +7 -4
  197. package/dist/mjs/tee/types.d.ts +50 -9
  198. package/dist/mjs/tee/types.js +28 -2
  199. package/dist/mjs/types/DistributedSecretStorage.d.ts +7 -0
  200. package/dist/mjs/types/Offer.d.ts +20 -5
  201. package/dist/mjs/types/Offer.js +9 -1
  202. package/dist/mjs/types/OfferVersion.d.ts +13 -0
  203. package/dist/mjs/types/OfferVersion.js +6 -0
  204. package/dist/mjs/types/Order.d.ts +8 -2
  205. package/dist/mjs/types/Order.js +3 -1
  206. package/dist/mjs/types/SlotInfo.d.ts +1 -0
  207. package/dist/mjs/types/Superpro.d.ts +2 -1
  208. package/dist/mjs/types/Superpro.js +2 -1
  209. package/dist/mjs/types/TeeOfferInfo.d.ts +2 -1
  210. package/dist/mjs/types/index.d.ts +1 -0
  211. package/dist/mjs/types/index.js +2 -1
  212. package/dist/mjs/types/storage/StorageAccess.d.ts +3 -3
  213. package/dist/mjs/utils/CryptoKeysTransformer.d.ts +7 -1
  214. package/dist/mjs/utils/CryptoKeysTransformer.js +66 -7
  215. package/dist/mjs/utils/NonceTracker.js +1 -1
  216. package/dist/mjs/utils/helper.d.ts +7 -1
  217. package/dist/mjs/utils/helper.js +80 -1
  218. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +17 -0
  219. package/dist/mjs/utils/helpers/OrderArgsHelper.js +80 -0
  220. package/dist/mjs/utils/helpers/index.d.ts +2 -0
  221. package/dist/mjs/utils/helpers/index.js +3 -1
  222. package/dist/mjs/utils/helpers/uploadObjectToStorage.d.ts +13 -0
  223. package/dist/mjs/utils/helpers/uploadObjectToStorage.js +48 -0
  224. package/dist/mjs/utils/schema-validators/index.d.ts +1 -0
  225. package/dist/mjs/utils/schema-validators/index.js +2 -0
  226. package/dist/mjs/utils/schema-validators/validator.d.ts +7 -0
  227. package/dist/mjs/utils/schema-validators/validator.js +45 -0
  228. package/package.json +6 -5
@@ -1,2 +1,3 @@
1
1
  import Crypto from './Crypto.js';
2
2
  export default Crypto;
3
+ export * from './types.js';
@@ -1,8 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
5
19
  Object.defineProperty(exports, "__esModule", { value: true });
6
20
  const Crypto_js_1 = __importDefault(require("./Crypto.js"));
7
21
  exports.default = Crypto_js_1.default;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNERBQWlDO0FBQ2pDLGtCQUFlLG1CQUFNLENBQUMifQ==
22
+ __exportStar(require("./types.js"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBaUM7QUFDakMsa0JBQWUsbUJBQU0sQ0FBQztBQUN0Qiw2Q0FBMkIifQ==
@@ -0,0 +1,3 @@
1
+ export declare class BaseError extends Error {
2
+ constructor(error: unknown);
3
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseError = void 0;
4
+ const utils_js_1 = require("./utils.js");
5
+ class BaseError extends Error {
6
+ constructor(error) {
7
+ const message = (0, utils_js_1.getErrorMessage)(error);
8
+ super(message);
9
+ Object.setPrototypeOf(this, new.target.prototype);
10
+ if (Error.captureStackTrace) {
11
+ Error.captureStackTrace(this, this.constructor);
12
+ }
13
+ else {
14
+ throw new Error('captureStackTrace does not exist');
15
+ }
16
+ }
17
+ }
18
+ exports.BaseError = BaseError;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lcnJvcnMvYmFzZS5lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBNkM7QUFFN0MsTUFBYSxTQUFVLFNBQVEsS0FBSztJQUNsQyxZQUFZLEtBQWM7UUFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBQSwwQkFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBWEQsOEJBV0MifQ==
@@ -0,0 +1,2 @@
1
+ export { BaseError } from './base.error.js';
2
+ export { NotFoundError } from './not-found.error.js';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotFoundError = exports.BaseError = void 0;
4
+ var base_error_js_1 = require("./base.error.js");
5
+ Object.defineProperty(exports, "BaseError", { enumerable: true, get: function () { return base_error_js_1.BaseError; } });
6
+ var not_found_error_js_1 = require("./not-found.error.js");
7
+ Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return not_found_error_js_1.NotFoundError; } });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE0QztBQUFuQywwR0FBQSxTQUFTLE9BQUE7QUFDbEIsMkRBQXFEO0FBQTVDLG1IQUFBLGFBQWEsT0FBQSJ9
@@ -0,0 +1,3 @@
1
+ import { BaseError } from './base.error.js';
2
+ export declare class NotFoundError extends BaseError {
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotFoundError = void 0;
4
+ const base_error_js_1 = require("./base.error.js");
5
+ class NotFoundError extends base_error_js_1.BaseError {
6
+ }
7
+ exports.NotFoundError = NotFoundError;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWZvdW5kLmVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9ycy9ub3QtZm91bmQuZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTRDO0FBRTVDLE1BQWEsYUFBYyxTQUFRLHlCQUFTO0NBQUc7QUFBL0Msc0NBQStDIn0=
@@ -0,0 +1 @@
1
+ export declare const getErrorMessage: (error: unknown) => string;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getErrorMessage = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const getErrorMessage = (error) => {
9
+ if (typeof error === 'string') {
10
+ return error;
11
+ }
12
+ const allowedErrorProperties = ['message', 'stack'];
13
+ if (lodash_1.default.isObject(error)) {
14
+ for (const field of allowedErrorProperties) {
15
+ const value = lodash_1.default.get(error, field);
16
+ if (typeof value === 'string') {
17
+ return value;
18
+ }
19
+ }
20
+ return lodash_1.default.toString(error);
21
+ }
22
+ return `Unknown error`;
23
+ };
24
+ exports.getErrorMessage = getErrorMessage;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3JzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUF1QjtBQUVoQixNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWMsRUFBVSxFQUFFO0lBQ3hELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRCxJQUFJLGdCQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdEIsS0FBSyxNQUFNLEtBQUssSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1lBQzNDLE1BQU0sS0FBSyxHQUFHLGdCQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBZlcsUUFBQSxlQUFlLG1CQWUxQiJ9
@@ -3,6 +3,7 @@ export * from './connectors/BlockchainConnector.js';
3
3
  export { Config } from './connectors/BaseConnector.js';
4
4
  export { default as BlockchainEventsListener } from './connectors/BlockchainEventsListener.js';
5
5
  export { default as Crypto } from './crypto/index.js';
6
+ export * from './crypto/index.js';
6
7
  export { default as TIIGenerator } from './TIIGenerator.js';
7
8
  export * from './TIIGenerator.js';
8
9
  export { default as RIGenerator } from './RIGenerator.js';
@@ -56,6 +57,7 @@ export * as ChunkedStorageProvider from './providers/storage/ChunksDownloadDecor
56
57
  export { default as StorjAdapter, StorjConfig } from './providers/storage/StorjAdapter.js';
57
58
  export { default as StorageMetadataReader, StorageMetadataReaderConfig, } from './providers/storage/StorageMetadataReader.js';
58
59
  export { default as StorageKeyValueAdapter } from './providers/storage/StorageKeyValueAdapter.js';
60
+ export { IStorageKeyValueAdapter, IStorageAdapter } from './providers/storage/types.js';
59
61
  export { default as StorageAdapter, CacheEvents, StorageAdapterConfig, } from './providers/storage/StorageAdapter.js';
60
62
  export { default as StorageContentWriter, StorageContentWriterConfig, ContentWriterType, } from './providers/storage/StorageContentWriter.js';
61
63
  export { default as StorageFileAccess } from './types/storage/StorageFileAccess.js';
@@ -63,12 +65,16 @@ export { default as StorageObject } from './types/storage/StorageObject.js';
63
65
  export { default as StorageAccess } from './types/storage/StorageAccess.js';
64
66
  export { default as getStorageProvider } from './providers/storage/getStorageProvider.js';
65
67
  export { default as IStorageProvider } from './providers/storage/IStorageProvider.js';
68
+ export { parseStorageCredentials } from './providers/storage/parseStorageCredentials.js';
69
+ export { CredentialsPermissions, StorjCredentialsManager, } from './providers/storage/StorjCredentialsManager.js';
66
70
  export * from './utils/CryptoKeysTransformer.js';
67
71
  export * as helpers from './utils/helpers/index.js';
68
72
  export * as constants from './constants.js';
69
73
  export { Web3TransactionRevertedByEvmError } from './utils/TxManager.js';
70
74
  import './polyfills.js';
71
- export { TeeSgxParser } from './tee/QuoteParser.js';
75
+ export * from './tee/errors.js';
76
+ export { QuoteType } from './tee/types.js';
77
+ export { TeeSgxParser, TeeTdxParser, TeeParser } from './tee/QuoteParser.js';
72
78
  export { QuoteValidator } from './tee/QuoteValidator.js';
73
79
  export * from './tee/statuses.js';
74
80
  export { TeeBlockVerifier } from './tee/TeeBlockVerifier.js';
@@ -79,3 +85,5 @@ export { default as BrowserEventProvider } from './analytics/eventProviders/Brow
79
85
  export { default as AxiosTransport } from './analytics/transports/AxiosTransport.js';
80
86
  export { default as FetchTransport } from './analytics/transports/FetchTransport.js';
81
87
  export * from './utils/cache/index.js';
88
+ export * from './errors/index.js';
89
+ export * from './utils/schema-validators/index.js';
package/dist/cjs/index.js CHANGED
@@ -29,7 +29,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.FetchTransport = exports.AxiosTransport = exports.BrowserEventProvider = exports.NodeEventProvider = exports.Analytics = exports.TeeBlockVerifier = exports.QuoteValidator = exports.TeeSgxParser = exports.Web3TransactionRevertedByEvmError = exports.constants = exports.helpers = exports.getStorageProvider = exports.ContentWriterType = exports.StorageContentWriter = exports.CacheEvents = exports.StorageAdapter = exports.StorageKeyValueAdapter = exports.StorageMetadataReader = exports.StorjAdapter = exports.ChunkedStorageProvider = exports.TCB = exports.Offer = exports.TeeOffer = exports.Provider = exports.Order = exports.SecretRequests = exports.OffersStorageRequests = exports.OffersStorageAllocated = exports.OfferResources = exports.LoaderSecretsPublicKeys = exports.LoaderSessions = exports.Deposits = exports.Marks = exports.Superpro = exports.SuperproToken = exports.ProviderRegistry = exports.TeeOffers = exports.Offers = exports.ActiveOffers = exports.ActiveOrders = exports.Orders = exports.Consensus = exports.RIGenerator = exports.TIIGenerator = exports.Crypto = exports.BlockchainEventsListener = exports.BlockchainConnector = void 0;
32
+ exports.NodeEventProvider = exports.Analytics = exports.TeeBlockVerifier = exports.QuoteValidator = exports.TeeParser = exports.TeeTdxParser = exports.TeeSgxParser = exports.QuoteType = exports.Web3TransactionRevertedByEvmError = exports.constants = exports.helpers = exports.StorjCredentialsManager = exports.CredentialsPermissions = exports.parseStorageCredentials = exports.getStorageProvider = exports.ContentWriterType = exports.StorageContentWriter = exports.CacheEvents = exports.StorageAdapter = exports.StorageKeyValueAdapter = exports.StorageMetadataReader = exports.StorjAdapter = exports.ChunkedStorageProvider = exports.TCB = exports.Offer = exports.TeeOffer = exports.Provider = exports.Order = exports.SecretRequests = exports.OffersStorageRequests = exports.OffersStorageAllocated = exports.OfferResources = exports.LoaderSecretsPublicKeys = exports.LoaderSessions = exports.Deposits = exports.Marks = exports.Superpro = exports.SuperproToken = exports.ProviderRegistry = exports.TeeOffers = exports.Offers = exports.ActiveOffers = exports.ActiveOrders = exports.Orders = exports.Consensus = exports.RIGenerator = exports.TIIGenerator = exports.Crypto = exports.BlockchainEventsListener = exports.BlockchainConnector = void 0;
33
+ exports.FetchTransport = exports.AxiosTransport = exports.BrowserEventProvider = void 0;
33
34
  var BlockchainConnector_js_1 = require("./connectors/BlockchainConnector.js");
34
35
  Object.defineProperty(exports, "BlockchainConnector", { enumerable: true, get: function () { return __importDefault(BlockchainConnector_js_1).default; } });
35
36
  __exportStar(require("./connectors/BlockchainConnector.js"), exports);
@@ -37,6 +38,7 @@ var BlockchainEventsListener_js_1 = require("./connectors/BlockchainEventsListen
37
38
  Object.defineProperty(exports, "BlockchainEventsListener", { enumerable: true, get: function () { return __importDefault(BlockchainEventsListener_js_1).default; } });
38
39
  var index_js_1 = require("./crypto/index.js");
39
40
  Object.defineProperty(exports, "Crypto", { enumerable: true, get: function () { return __importDefault(index_js_1).default; } });
41
+ __exportStar(require("./crypto/index.js"), exports);
40
42
  var TIIGenerator_js_1 = require("./TIIGenerator.js");
41
43
  Object.defineProperty(exports, "TIIGenerator", { enumerable: true, get: function () { return __importDefault(TIIGenerator_js_1).default; } });
42
44
  __exportStar(require("./TIIGenerator.js"), exports);
@@ -125,14 +127,24 @@ Object.defineProperty(exports, "StorageContentWriter", { enumerable: true, get:
125
127
  Object.defineProperty(exports, "ContentWriterType", { enumerable: true, get: function () { return StorageContentWriter_js_1.ContentWriterType; } });
126
128
  var getStorageProvider_js_1 = require("./providers/storage/getStorageProvider.js");
127
129
  Object.defineProperty(exports, "getStorageProvider", { enumerable: true, get: function () { return __importDefault(getStorageProvider_js_1).default; } });
130
+ var parseStorageCredentials_js_1 = require("./providers/storage/parseStorageCredentials.js");
131
+ Object.defineProperty(exports, "parseStorageCredentials", { enumerable: true, get: function () { return parseStorageCredentials_js_1.parseStorageCredentials; } });
132
+ var StorjCredentialsManager_js_1 = require("./providers/storage/StorjCredentialsManager.js");
133
+ Object.defineProperty(exports, "CredentialsPermissions", { enumerable: true, get: function () { return StorjCredentialsManager_js_1.CredentialsPermissions; } });
134
+ Object.defineProperty(exports, "StorjCredentialsManager", { enumerable: true, get: function () { return StorjCredentialsManager_js_1.StorjCredentialsManager; } });
128
135
  __exportStar(require("./utils/CryptoKeysTransformer.js"), exports);
129
136
  exports.helpers = __importStar(require("./utils/helpers/index.js"));
130
137
  exports.constants = __importStar(require("./constants.js"));
131
138
  var TxManager_js_1 = require("./utils/TxManager.js");
132
139
  Object.defineProperty(exports, "Web3TransactionRevertedByEvmError", { enumerable: true, get: function () { return TxManager_js_1.Web3TransactionRevertedByEvmError; } });
133
140
  require("./polyfills.js");
141
+ __exportStar(require("./tee/errors.js"), exports);
142
+ var types_js_1 = require("./tee/types.js");
143
+ Object.defineProperty(exports, "QuoteType", { enumerable: true, get: function () { return types_js_1.QuoteType; } });
134
144
  var QuoteParser_js_1 = require("./tee/QuoteParser.js");
135
145
  Object.defineProperty(exports, "TeeSgxParser", { enumerable: true, get: function () { return QuoteParser_js_1.TeeSgxParser; } });
146
+ Object.defineProperty(exports, "TeeTdxParser", { enumerable: true, get: function () { return QuoteParser_js_1.TeeTdxParser; } });
147
+ Object.defineProperty(exports, "TeeParser", { enumerable: true, get: function () { return QuoteParser_js_1.TeeParser; } });
136
148
  var QuoteValidator_js_1 = require("./tee/QuoteValidator.js");
137
149
  Object.defineProperty(exports, "QuoteValidator", { enumerable: true, get: function () { return QuoteValidator_js_1.QuoteValidator; } });
138
150
  __exportStar(require("./tee/statuses.js"), exports);
@@ -150,4 +162,6 @@ Object.defineProperty(exports, "AxiosTransport", { enumerable: true, get: functi
150
162
  var FetchTransport_js_1 = require("./analytics/transports/FetchTransport.js");
151
163
  Object.defineProperty(exports, "FetchTransport", { enumerable: true, get: function () { return __importDefault(FetchTransport_js_1).default; } });
152
164
  __exportStar(require("./utils/cache/index.js"), exports);
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4RUFBcUY7QUFBNUUsOElBQUEsT0FBTyxPQUF1QjtBQUV2QyxzRUFBb0Q7QUFJcEQsd0ZBQStGO0FBQXRGLHdKQUFBLE9BQU8sT0FBNEI7QUFFNUMsOENBQXNEO0FBQTdDLG1IQUFBLE9BQU8sT0FBVTtBQUUxQixxREFBNEQ7QUFBbkQsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyxvREFBa0M7QUFFbEMsbURBQTBEO0FBQWpELDhIQUFBLE9BQU8sT0FBZTtBQUMvQixvREFBa0M7QUFFbEMsNERBQW1FO0FBQTFELDBIQUFBLE9BQU8sT0FBYTtBQUM3Qiw4REFBNEM7QUFFNUMsc0RBQTZEO0FBQXBELG9IQUFBLE9BQU8sT0FBVTtBQUMxQiwyREFBeUM7QUFFekMsa0VBQXlFO0FBQWhFLGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMsaUVBQStDO0FBRS9DLGtFQUF5RTtBQUFoRSxnSUFBQSxPQUFPLE9BQWdCO0FBQ2hDLGlFQUErQztBQUUvQyxzREFBNkQ7QUFBcEQsb0hBQUEsT0FBTyxPQUFVO0FBQzFCLDJEQUF5QztBQUV6Qyw0REFBbUU7QUFBMUQsMEhBQUEsT0FBTyxPQUFhO0FBQzdCLDhEQUE0QztBQUU1QywwRUFBaUY7QUFBeEUsd0lBQUEsT0FBTyxPQUFvQjtBQUNwQyxxRUFBbUQ7QUFFbkQsb0VBQTJFO0FBQWxFLGtJQUFBLE9BQU8sT0FBaUI7QUFDakMsa0VBQWdEO0FBRWhELDBEQUFpRTtBQUF4RCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsNkRBQTJDO0FBRTNDLG9EQUEyRDtBQUFsRCxrSEFBQSxPQUFPLE9BQVM7QUFDekIsMERBQXdDO0FBRXhDLDBEQUFpRTtBQUF4RCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsNkRBQTJDO0FBRTNDLHNFQUE2RTtBQUFwRSxvSUFBQSxPQUFPLE9BQWtCO0FBQ2xDLG1FQUFpRDtBQUVqRCx3RkFBK0Y7QUFBdEYsc0pBQUEsT0FBTyxPQUEyQjtBQUMzQyw0RUFBMEQ7QUFFMUQsc0VBQTZFO0FBQXBFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMsbUVBQWlEO0FBRWpELHNGQUE2RjtBQUFwRixvSkFBQSxPQUFPLE9BQTBCO0FBQzFDLDJFQUF5RDtBQUV6RCxvRkFBMkY7QUFBbEYsa0pBQUEsT0FBTyxPQUF5QjtBQUN6QywwRUFBd0Q7QUFFeEQsc0VBQTZFO0FBQXBFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMsbUVBQWlEO0FBRWpELDhDQUFxRDtBQUE1QyxrSEFBQSxPQUFPLE9BQVM7QUFDekIsb0RBQWtDO0FBRWxDLG9EQUEyRDtBQUFsRCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsdURBQXFDO0FBRXJDLG9EQUEyRDtBQUFsRCx3SEFBQSxPQUFPLE9BQVk7QUFDNUIsdURBQXFDO0FBRXJDLDhDQUFxRDtBQUE1QyxrSEFBQSxPQUFPLE9BQVM7QUFDekIsb0RBQWtDO0FBRWxDLDBDQUFpRDtBQUF4Qyw4R0FBQSxPQUFPLE9BQU87QUFDdkIsa0RBQWdDO0FBRWhDLG1EQUFpQztBQUVqQyx5R0FBeUY7QUFDekYsdUVBQTJGO0FBQWxGLGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMseUZBR3NEO0FBRnBELGtKQUFBLE9BQU8sT0FBeUI7QUFHbEMsMkZBQWtHO0FBQXpGLG9KQUFBLE9BQU8sT0FBMEI7QUFDMUMsMkVBSStDO0FBSDdDLG9JQUFBLE9BQU8sT0FBa0I7QUFDekIsZ0hBQUEsV0FBVyxPQUFBO0FBR2IsdUZBSXFEO0FBSG5ELGdKQUFBLE9BQU8sT0FBd0I7QUFFL0IsNEhBQUEsaUJBQWlCLE9BQUE7QUFNbkIsbUZBQTBGO0FBQWpGLDRJQUFBLE9BQU8sT0FBc0I7QUFHdEMsbUVBQWlEO0FBQ2pELG9FQUFvRDtBQUNwRCw0REFBNEM7QUFFNUMscURBQXlFO0FBQWhFLGlJQUFBLGlDQUFpQyxPQUFBO0FBRTFDLDBCQUF3QjtBQUV4Qix1REFBb0Q7QUFBM0MsOEdBQUEsWUFBWSxPQUFBO0FBQ3JCLDZEQUF5RDtBQUFoRCxtSEFBQSxjQUFjLE9BQUE7QUFDdkIsb0RBQWtDO0FBQ2xDLGlFQUE2RDtBQUFwRCx1SEFBQSxnQkFBZ0IsT0FBQTtBQUV6Qix1REFBcUM7QUFDckMseURBQWdFO0FBQXZELDBIQUFBLE9BQU8sT0FBYTtBQUM3Qix3RkFBK0Y7QUFBdEYsMElBQUEsT0FBTyxPQUFxQjtBQUNyQyw4RkFBcUc7QUFBNUYsZ0pBQUEsT0FBTyxPQUF3QjtBQUN4Qyw4RUFBcUY7QUFBNUUsb0lBQUEsT0FBTyxPQUFrQjtBQUNsQyw4RUFBcUY7QUFBNUUsb0lBQUEsT0FBTyxPQUFrQjtBQUNsQyx5REFBdUMifQ==
165
+ __exportStar(require("./errors/index.js"), exports);
166
+ __exportStar(require("./utils/schema-validators/index.js"), exports);
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOEVBQXFGO0FBQTVFLDhJQUFBLE9BQU8sT0FBdUI7QUFFdkMsc0VBQW9EO0FBSXBELHdGQUErRjtBQUF0Rix3SkFBQSxPQUFPLE9BQTRCO0FBRTVDLDhDQUFzRDtBQUE3QyxtSEFBQSxPQUFPLE9BQVU7QUFDMUIsb0RBQWtDO0FBRWxDLHFEQUE0RDtBQUFuRCxnSUFBQSxPQUFPLE9BQWdCO0FBQ2hDLG9EQUFrQztBQUVsQyxtREFBMEQ7QUFBakQsOEhBQUEsT0FBTyxPQUFlO0FBQy9CLG9EQUFrQztBQUVsQyw0REFBbUU7QUFBMUQsMEhBQUEsT0FBTyxPQUFhO0FBQzdCLDhEQUE0QztBQUU1QyxzREFBNkQ7QUFBcEQsb0hBQUEsT0FBTyxPQUFVO0FBQzFCLDJEQUF5QztBQUV6QyxrRUFBeUU7QUFBaEUsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyxpRUFBK0M7QUFFL0Msa0VBQXlFO0FBQWhFLGdJQUFBLE9BQU8sT0FBZ0I7QUFDaEMsaUVBQStDO0FBRS9DLHNEQUE2RDtBQUFwRCxvSEFBQSxPQUFPLE9BQVU7QUFDMUIsMkRBQXlDO0FBRXpDLDREQUFtRTtBQUExRCwwSEFBQSxPQUFPLE9BQWE7QUFDN0IsOERBQTRDO0FBRTVDLDBFQUFpRjtBQUF4RSx3SUFBQSxPQUFPLE9BQW9CO0FBQ3BDLHFFQUFtRDtBQUVuRCxvRUFBMkU7QUFBbEUsa0lBQUEsT0FBTyxPQUFpQjtBQUNqQyxrRUFBZ0Q7QUFFaEQsMERBQWlFO0FBQXhELHdIQUFBLE9BQU8sT0FBWTtBQUM1Qiw2REFBMkM7QUFFM0Msb0RBQTJEO0FBQWxELGtIQUFBLE9BQU8sT0FBUztBQUN6QiwwREFBd0M7QUFFeEMsMERBQWlFO0FBQXhELHdIQUFBLE9BQU8sT0FBWTtBQUM1Qiw2REFBMkM7QUFFM0Msc0VBQTZFO0FBQXBFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMsbUVBQWlEO0FBRWpELHdGQUErRjtBQUF0RixzSkFBQSxPQUFPLE9BQTJCO0FBQzNDLDRFQUEwRDtBQUUxRCxzRUFBNkU7QUFBcEUsb0lBQUEsT0FBTyxPQUFrQjtBQUNsQyxtRUFBaUQ7QUFFakQsc0ZBQTZGO0FBQXBGLG9KQUFBLE9BQU8sT0FBMEI7QUFDMUMsMkVBQXlEO0FBRXpELG9GQUEyRjtBQUFsRixrSkFBQSxPQUFPLE9BQXlCO0FBQ3pDLDBFQUF3RDtBQUV4RCxzRUFBNkU7QUFBcEUsb0lBQUEsT0FBTyxPQUFrQjtBQUNsQyxtRUFBaUQ7QUFFakQsOENBQXFEO0FBQTVDLGtIQUFBLE9BQU8sT0FBUztBQUN6QixvREFBa0M7QUFFbEMsb0RBQTJEO0FBQWxELHdIQUFBLE9BQU8sT0FBWTtBQUM1Qix1REFBcUM7QUFFckMsb0RBQTJEO0FBQWxELHdIQUFBLE9BQU8sT0FBWTtBQUM1Qix1REFBcUM7QUFFckMsOENBQXFEO0FBQTVDLGtIQUFBLE9BQU8sT0FBUztBQUN6QixvREFBa0M7QUFFbEMsMENBQWlEO0FBQXhDLDhHQUFBLE9BQU8sT0FBTztBQUN2QixrREFBZ0M7QUFFaEMsbURBQWlDO0FBRWpDLHlHQUF5RjtBQUN6Rix1RUFBMkY7QUFBbEYsZ0lBQUEsT0FBTyxPQUFnQjtBQUNoQyx5RkFHc0Q7QUFGcEQsa0pBQUEsT0FBTyxPQUF5QjtBQUdsQywyRkFBa0c7QUFBekYsb0pBQUEsT0FBTyxPQUEwQjtBQUUxQywyRUFJK0M7QUFIN0Msb0lBQUEsT0FBTyxPQUFrQjtBQUN6QixnSEFBQSxXQUFXLE9BQUE7QUFHYix1RkFJcUQ7QUFIbkQsZ0pBQUEsT0FBTyxPQUF3QjtBQUUvQiw0SEFBQSxpQkFBaUIsT0FBQTtBQU1uQixtRkFBMEY7QUFBakYsNElBQUEsT0FBTyxPQUFzQjtBQUV0Qyw2RkFBeUY7QUFBaEYscUlBQUEsdUJBQXVCLE9BQUE7QUFDaEMsNkZBR3dEO0FBRnRELG9JQUFBLHNCQUFzQixPQUFBO0FBQ3RCLHFJQUFBLHVCQUF1QixPQUFBO0FBR3pCLG1FQUFpRDtBQUNqRCxvRUFBb0Q7QUFDcEQsNERBQTRDO0FBRTVDLHFEQUF5RTtBQUFoRSxpSUFBQSxpQ0FBaUMsT0FBQTtBQUUxQywwQkFBd0I7QUFFeEIsa0RBQWdDO0FBQ2hDLDJDQUEyQztBQUFsQyxxR0FBQSxTQUFTLE9BQUE7QUFDbEIsdURBQTZFO0FBQXBFLDhHQUFBLFlBQVksT0FBQTtBQUFFLDhHQUFBLFlBQVksT0FBQTtBQUFFLDJHQUFBLFNBQVMsT0FBQTtBQUM5Qyw2REFBeUQ7QUFBaEQsbUhBQUEsY0FBYyxPQUFBO0FBQ3ZCLG9EQUFrQztBQUNsQyxpRUFBNkQ7QUFBcEQsdUhBQUEsZ0JBQWdCLE9BQUE7QUFFekIsdURBQXFDO0FBQ3JDLHlEQUFnRTtBQUF2RCwwSEFBQSxPQUFPLE9BQWE7QUFDN0Isd0ZBQStGO0FBQXRGLDBJQUFBLE9BQU8sT0FBcUI7QUFDckMsOEZBQXFHO0FBQTVGLGdKQUFBLE9BQU8sT0FBd0I7QUFDeEMsOEVBQXFGO0FBQTVFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMsOEVBQXFGO0FBQTVFLG9JQUFBLE9BQU8sT0FBa0I7QUFDbEMseURBQXVDO0FBQ3ZDLG9EQUFrQztBQUNsQyxxRUFBbUQifQ==
@@ -1,4 +1,4 @@
1
- import { SlotInfo, OptionInfo, SlotUsage, Origins, OfferInfo, OfferType, ValueOfferSlot, TransactionOptions, BlockchainId, TokenAmount } from '../types/index.js';
1
+ import { SlotInfo, OptionInfo, SlotUsage, Origins, OfferInfo, OfferType, ValueOfferSlot, TransactionOptions, BlockchainId, ValueOfferRestrictionsSpecification, TokenAmount, OfferVersionInfo, OfferVersion } from '../types/index.js';
2
2
  declare class Offer {
3
3
  private static contract;
4
4
  private logger;
@@ -12,13 +12,17 @@ declare class Offer {
12
12
  minDeposit?: TokenAmount;
13
13
  constructor(offerId: BlockchainId);
14
14
  /**
15
- * Function for fetching offer status from blockchain
15
+ * Checks if the offer is enabled
16
16
  */
17
17
  isEnabled(): Promise<boolean>;
18
18
  /**
19
- * Function for fetching offer status from blockchain
19
+ * Checks if the offer is base image
20
20
  */
21
21
  isBaseImage(): Promise<boolean>;
22
+ /**
23
+ * Checks if the offer has public data
24
+ */
25
+ isOfferPublic(): Promise<boolean>;
22
26
  /**
23
27
  * Updates name in offer info
24
28
  * @param name - new name
@@ -38,8 +42,11 @@ declare class Offer {
38
42
  */
39
43
  setInfo(newInfo: OfferInfo, transactionOptions?: TransactionOptions): Promise<void>;
40
44
  /**
41
- * Function for fetching offer info from blockchain
45
+ * Updates offer restrictions
46
+ * @param restrictions - new offer restrictions
47
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
42
48
  */
49
+ setRestrictions(restrictions: ValueOfferRestrictionsSpecification, transactionOptions?: TransactionOptions): Promise<void>;
43
50
  getInfo(): Promise<OfferInfo>;
44
51
  /**
45
52
  * Function for fetching offer provider from blockchain (works for TEE and Value offers)
@@ -53,6 +60,10 @@ declare class Offer {
53
60
  * Function for fetching TEE offer provider authority account from blockchain
54
61
  */
55
62
  getProviderAuthority(): Promise<string>;
63
+ /**
64
+ * Function for fetching TEE offer provider action account from blockchain
65
+ */
66
+ getProviderActionAccount(): Promise<string>;
56
67
  /**
57
68
  * Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
58
69
  */
@@ -65,6 +76,14 @@ declare class Offer {
65
76
  * Function for fetching cheapest value offer from blockchain
66
77
  */
67
78
  getCheapestPrice(): Promise<TokenAmount>;
79
+ /**
80
+ * Returns the offer version info.
81
+ */
82
+ getVersion(version: number): Promise<OfferVersion>;
83
+ /**
84
+ * Returns the offer version info.
85
+ */
86
+ getVersionCount(): Promise<number>;
68
87
  isOfferExists(): Promise<boolean>;
69
88
  private checkIfOfferExistsWithInterval;
70
89
  /**
@@ -85,7 +104,6 @@ declare class Offer {
85
104
  * Function for fetching offer slots info from blockchain
86
105
  * @param begin - The first element of range.
87
106
  * @param end - One past the final element in the range.
88
- * @returns {Promise<ValueOfferSlot[]>}
89
107
  */
90
108
  getSlots(begin?: number, end?: number): Promise<ValueOfferSlot[]>;
91
109
  /**
@@ -110,6 +128,20 @@ declare class Offer {
110
128
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
111
129
  */
112
130
  deleteSlot(slotId: BlockchainId, transactionOptions?: TransactionOptions): Promise<void>;
131
+ /**
132
+ * Function for add a new version to the value offer.
133
+ * @param newVersion - Version number
134
+ * @param versionInfo - Version info
135
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
136
+ */
137
+ setNewVersion(newVersion: number, versionInfo: OfferVersionInfo, transactionOptions?: TransactionOptions): Promise<void>;
138
+ /**
139
+ * Functcion for deletion the version from the value offer.
140
+ * @param newVersion - Version number
141
+ * @param versionInfo - Version info
142
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
143
+ */
144
+ deleteVersion(version: number, transactionOptions?: TransactionOptions): Promise<void>;
113
145
  /**
114
146
  * Function for disabling offer
115
147
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
@@ -124,7 +156,7 @@ declare class Offer {
124
156
  * Checks if passed offer match restrictions in this offer
125
157
  * @param offerId - id of offer what needs to be checked
126
158
  */
127
- isRestrictionsPermitThatOffer(offerId: BlockchainId): Promise<boolean>;
159
+ isRestrictionsPermitThatOffer(offerId: BlockchainId, offerVersion?: number): Promise<boolean>;
128
160
  /**
129
161
  * Checks if this offer contains restrictions of a certain type
130
162
  * @param type - type of offer which needs to be checked
@@ -43,22 +43,29 @@ class Offer {
43
43
  });
44
44
  }
45
45
  /**
46
- * Function for fetching offer status from blockchain
46
+ * Checks if the offer is enabled
47
47
  */
48
48
  isEnabled() {
49
49
  return Offer.contract.methods.isOfferEnabled(this.id).call();
50
50
  }
51
51
  /**
52
- * Function for fetching offer status from blockchain
52
+ * Checks if the offer is base image
53
53
  */
54
54
  async isBaseImage() {
55
55
  const info = this.offerInfo ?? (await this.getInfo());
56
- if (info.offerType !== index_js_2.OfferType.Solution || !Boolean(info.resultResource)) {
56
+ if (info.offerType !== index_js_2.OfferType.Solution) {
57
57
  return false;
58
58
  }
59
- const isRestrictedBySolution = await this.isRestrictedByOfferType(index_js_2.OfferType.Solution);
59
+ const isRestrictedBySolution = this.offerInfo?.restrictions.types.includes(index_js_2.OfferType.Solution);
60
60
  return !isRestrictedBySolution;
61
61
  }
62
+ /**
63
+ * Checks if the offer has public data
64
+ */
65
+ async isOfferPublic() {
66
+ const info = this.offerInfo ?? (await this.getInfo());
67
+ return Boolean(info.resultResource);
68
+ }
62
69
  /**
63
70
  * Updates name in offer info
64
71
  * @param name - new name
@@ -88,21 +95,36 @@ class Offer {
88
95
  */
89
96
  async setInfo(newInfo, transactionOptions) {
90
97
  (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
91
- const { restrictions, ...restInfo } = newInfo;
92
- await TxManager_js_1.default.execute(Offer.contract.methods.setValueOfferInfo(this.id, restInfo, restrictions), transactionOptions);
98
+ const { restrictions, linkage, ...restInfo } = newInfo;
99
+ await TxManager_js_1.default.execute(Offer.contract.methods.setValueOfferInfo(this.id, {
100
+ ...restInfo,
101
+ linkage_DEPRECATED: linkage,
102
+ }), transactionOptions);
103
+ await TxManager_js_1.default.execute(Offer.contract.methods.setValueOfferRestrictionsSpecification(this.id, restrictions), transactionOptions);
93
104
  if (this.offerInfo)
94
105
  this.offerInfo = newInfo;
95
106
  }
96
107
  /**
97
- * Function for fetching offer info from blockchain
108
+ * Updates offer restrictions
109
+ * @param restrictions - new offer restrictions
110
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
98
111
  */
112
+ async setRestrictions(restrictions, transactionOptions) {
113
+ (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
114
+ await TxManager_js_1.default.execute(Offer.contract.methods.setValueOfferRestrictionsSpecification(this.id, restrictions), transactionOptions);
115
+ if (this.offerInfo)
116
+ this.offerInfo.restrictions = restrictions;
117
+ }
99
118
  async getInfo() {
100
119
  if (!(await this.checkIfOfferExistsWithInterval())) {
101
120
  throw Error(`Offer ${this.id} does not exist`);
102
121
  }
103
122
  const { info } = await Offer.contract.methods.getValueOffer(this.id).call();
104
- this.offerInfo = (0, helper_js_1.cleanWeb3Data)(info);
105
- const offerRestrictions = await Offer.contract.methods.getOfferInitialRestrictions(this.id).call();
123
+ const { linkage_DEPRECATED, ...restInfo } = info;
124
+ this.offerInfo = (0, helper_js_1.cleanWeb3Data)({ ...restInfo, linkage: linkage_DEPRECATED });
125
+ const offerRestrictions = await Offer.contract.methods
126
+ .getOfferRestrictionsSpecification(this.id)
127
+ .call();
106
128
  this.offerInfo.restrictions = (0, helper_js_1.cleanWeb3Data)(offerRestrictions);
107
129
  return this.offerInfo;
108
130
  }
@@ -127,6 +149,12 @@ class Offer {
127
149
  this.providerAuthority = await Offer.contract.methods.getOfferProviderAuthority(this.id).call();
128
150
  return this.providerAuthority;
129
151
  }
152
+ /**
153
+ * Function for fetching TEE offer provider action account from blockchain
154
+ */
155
+ getProviderActionAccount() {
156
+ return Offer.contract.methods.getOfferProviderActionAccount(this.id).call();
157
+ }
130
158
  /**
131
159
  * Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
132
160
  */
@@ -159,6 +187,21 @@ class Offer {
159
187
  .call()
160
188
  .then((price) => (0, helper_js_1.convertBigIntToString)(price));
161
189
  }
190
+ /**
191
+ * Returns the offer version info.
192
+ */
193
+ async getVersion(version) {
194
+ return await Offer.contract.methods
195
+ .getOfferVersion(this.id, version)
196
+ .call()
197
+ .then((offerVersion) => (0, helper_js_1.cleanWeb3Data)(offerVersion));
198
+ }
199
+ /**
200
+ * Returns the offer version info.
201
+ */
202
+ async getVersionCount() {
203
+ return await Offer.contract.methods.getOfferVersionsCount(this.id).call();
204
+ }
162
205
  isOfferExists() {
163
206
  return Offer.contract.methods.isOfferExists(this.id).call();
164
207
  }
@@ -203,7 +246,6 @@ class Offer {
203
246
  * Function for fetching offer slots info from blockchain
204
247
  * @param begin - The first element of range.
205
248
  * @param end - One past the final element in the range.
206
- * @returns {Promise<ValueOfferSlot[]>}
207
249
  */
208
250
  async getSlots(begin = 0, end = 999999) {
209
251
  const slotsCount = Number(await Offer.contract.methods.getValueOfferSlotsCount(this.id).call());
@@ -242,7 +284,9 @@ class Offer {
242
284
  async updateSlot(slotId, newSlotInfo, newOptionInfo, newUsage, transactionOptions) {
243
285
  (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
244
286
  newSlotInfo = (0, helper_js_1.packSlotInfo)(newSlotInfo, await TeeOffers_js_1.default.getDenominator());
245
- await TxManager_js_1.default.execute(Offer.contract.methods.updateValueOfferSlot(this.id, slotId, newSlotInfo, (0, helper_js_1.convertOptionInfoToRaw)(newOptionInfo), newUsage), transactionOptions);
287
+ await TxManager_js_1.default.execute(Offer.contract.methods.updateValueOfferSlotInfo(this.id, slotId, newSlotInfo), transactionOptions);
288
+ await TxManager_js_1.default.execute(Offer.contract.methods.updateValueOfferSlotOption(this.id, slotId, (0, helper_js_1.convertOptionInfoToRaw)(newOptionInfo)), transactionOptions);
289
+ await TxManager_js_1.default.execute(Offer.contract.methods.updateValueOfferSlotUsage(this.id, slotId, newUsage), transactionOptions);
246
290
  }
247
291
  /**
248
292
  * Function for delete slot usage from offer
@@ -253,6 +297,28 @@ class Offer {
253
297
  (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
254
298
  await TxManager_js_1.default.execute(Offer.contract.methods.deleteValueOfferSlot(this.id, slotId), transactionOptions);
255
299
  }
300
+ /**
301
+ * Function for add a new version to the value offer.
302
+ * @param newVersion - Version number
303
+ * @param versionInfo - Version info
304
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
305
+ */
306
+ async setNewVersion(newVersion, versionInfo, transactionOptions) {
307
+ (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
308
+ const transactionCall = Offer.contract.methods.setOfferNewVersion(this.id, newVersion, versionInfo);
309
+ await TxManager_js_1.default.execute(transactionCall, transactionOptions);
310
+ }
311
+ /**
312
+ * Functcion for deletion the version from the value offer.
313
+ * @param newVersion - Version number
314
+ * @param versionInfo - Version info
315
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
316
+ */
317
+ async deleteVersion(version, transactionOptions) {
318
+ (0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
319
+ const transactionCall = Offer.contract.methods.deleteOfferVersion(this.id, version);
320
+ await TxManager_js_1.default.execute(transactionCall, transactionOptions);
321
+ }
256
322
  /**
257
323
  * Function for disabling offer
258
324
  * @param transactionOptions - object what contains alternative action account or gas limit (optional)
@@ -273,8 +339,10 @@ class Offer {
273
339
  * Checks if passed offer match restrictions in this offer
274
340
  * @param offerId - id of offer what needs to be checked
275
341
  */
276
- isRestrictionsPermitThatOffer(offerId) {
277
- return Offer.contract.methods.isOfferRestrictionsPermitOtherOffer(this.id, offerId).call();
342
+ isRestrictionsPermitThatOffer(offerId, offerVersion = constants_js_1.DEFAULT_OFFER_VERSION) {
343
+ return Offer.contract.methods
344
+ .isOfferRestrictionsPermitOtherOffer(this.id, offerId, offerVersion)
345
+ .call();
278
346
  }
279
347
  /**
280
348
  * Checks if this offer contains restrictions of a certain type
@@ -296,6 +364,12 @@ __decorate([
296
364
  __metadata("design:paramtypes", []),
297
365
  __metadata("design:returntype", Promise)
298
366
  ], Offer.prototype, "isBaseImage", null);
367
+ __decorate([
368
+ (0, helper_js_1.incrementMethodCall)(),
369
+ __metadata("design:type", Function),
370
+ __metadata("design:paramtypes", []),
371
+ __metadata("design:returntype", Promise)
372
+ ], Offer.prototype, "isOfferPublic", null);
299
373
  __decorate([
300
374
  (0, helper_js_1.incrementMethodCall)(),
301
375
  __metadata("design:type", Function),
@@ -320,6 +394,12 @@ __decorate([
320
394
  __metadata("design:paramtypes", []),
321
395
  __metadata("design:returntype", Promise)
322
396
  ], Offer.prototype, "getProviderAuthority", null);
397
+ __decorate([
398
+ (0, helper_js_1.incrementMethodCall)(),
399
+ __metadata("design:type", Function),
400
+ __metadata("design:paramtypes", []),
401
+ __metadata("design:returntype", Promise)
402
+ ], Offer.prototype, "getProviderActionAccount", null);
323
403
  __decorate([
324
404
  (0, helper_js_1.incrementMethodCall)(),
325
405
  __metadata("design:type", Function),
@@ -338,6 +418,18 @@ __decorate([
338
418
  __metadata("design:paramtypes", []),
339
419
  __metadata("design:returntype", Promise)
340
420
  ], Offer.prototype, "getCheapestPrice", null);
421
+ __decorate([
422
+ (0, helper_js_1.incrementMethodCall)(),
423
+ __metadata("design:type", Function),
424
+ __metadata("design:paramtypes", [Number]),
425
+ __metadata("design:returntype", Promise)
426
+ ], Offer.prototype, "getVersion", null);
427
+ __decorate([
428
+ (0, helper_js_1.incrementMethodCall)(),
429
+ __metadata("design:type", Function),
430
+ __metadata("design:paramtypes", []),
431
+ __metadata("design:returntype", Promise)
432
+ ], Offer.prototype, "getVersionCount", null);
341
433
  __decorate([
342
434
  (0, helper_js_1.incrementMethodCall)(),
343
435
  __metadata("design:type", Function),
@@ -365,7 +457,19 @@ __decorate([
365
457
  __decorate([
366
458
  (0, helper_js_1.incrementMethodCall)(),
367
459
  __metadata("design:type", Function),
368
- __metadata("design:paramtypes", [String]),
460
+ __metadata("design:paramtypes", [Number, Object, Object]),
461
+ __metadata("design:returntype", Promise)
462
+ ], Offer.prototype, "setNewVersion", null);
463
+ __decorate([
464
+ (0, helper_js_1.incrementMethodCall)(),
465
+ __metadata("design:type", Function),
466
+ __metadata("design:paramtypes", [Number, Object]),
467
+ __metadata("design:returntype", Promise)
468
+ ], Offer.prototype, "deleteVersion", null);
469
+ __decorate([
470
+ (0, helper_js_1.incrementMethodCall)(),
471
+ __metadata("design:type", Function),
472
+ __metadata("design:paramtypes", [String, Number]),
369
473
  __metadata("design:returntype", Promise)
370
474
  ], Offer.prototype, "isRestrictionsPermitThatOffer", null);
371
475
  __decorate([
@@ -375,4 +479,4 @@ __decorate([
375
479
  __metadata("design:returntype", Promise)
376
480
  ], Offer.prototype, "isRestrictedByOfferType", null);
377
481
  exports.default = Offer;
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkRBQXNDO0FBQ3RDLGtEQVM0QjtBQUM1QixxREFBNkQ7QUFDN0QsZ0RBYTJCO0FBQzNCLGtEQUEwRDtBQUMxRCxnRkFBcUQ7QUFDckQseUVBQThDO0FBQzlDLHdEQUE0RDtBQUM1RCxrREFBaUc7QUFFakcsTUFBTSxLQUFLO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFDdEMsTUFBTSxDQUFvQjtJQUUzQixTQUFTLENBQWE7SUFDdEIsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBYTtJQUNqQixpQkFBaUIsQ0FBVTtJQUMzQixPQUFPLENBQVc7SUFDbEIsRUFBRSxDQUFlO0lBQ2pCLE9BQU8sQ0FBVztJQUNsQixVQUFVLENBQWU7SUFFaEMsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdBQUcsOEJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsU0FBUyxFQUFFLE9BQU87WUFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLFNBQVM7UUFDZCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBRVUsQUFBTixLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLElB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
482
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL09mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRUEsNkRBQXNDO0FBQ3RDLGtEQVM0QjtBQUM1QixxREFBNkQ7QUFDN0QsZ0RBZTJCO0FBQzNCLGtEQUEwRDtBQUMxRCxnRkFBcUQ7QUFDckQseUVBQThDO0FBQzlDLHdEQUE0RDtBQUM1RCxrREFJeUI7QUFFekIsTUFBTSxLQUFLO0lBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFDdEMsTUFBTSxDQUFvQjtJQUUzQixTQUFTLENBQWE7SUFDdEIsUUFBUSxDQUFVO0lBQ2xCLElBQUksQ0FBYTtJQUNqQixpQkFBaUIsQ0FBVTtJQUMzQixPQUFPLENBQVc7SUFDbEIsRUFBRSxDQUFlO0lBQ2pCLE9BQU8sQ0FBVztJQUNsQixVQUFVLENBQWU7SUFFaEMsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxRQUFRLEdBQUcsOEJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQVUsQ0FBQyxLQUFLLENBQUM7WUFDN0IsU0FBUyxFQUFFLE9BQU87WUFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUVJLFNBQVM7UUFDZCxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBRVUsQUFBTixLQUFLLENBQUMsV0FBVztRQUN0QixNQUFNLElB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