@super-protocol/sdk-js 2.2.0-beta.7 → 2.2.0-beta.70

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 (155) hide show
  1. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  2. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  3. package/dist/cjs/config.d.ts +0 -1
  4. package/dist/cjs/config.js +1 -2
  5. package/dist/cjs/constants.d.ts +3 -4
  6. package/dist/cjs/constants.js +5 -7
  7. package/dist/cjs/contracts/abi.d.ts +279 -26
  8. package/dist/cjs/contracts/abi.js +357 -33
  9. package/dist/cjs/crypto/index.d.ts +1 -0
  10. package/dist/cjs/crypto/index.js +16 -1
  11. package/dist/cjs/errors/base.error.d.ts +3 -0
  12. package/dist/cjs/errors/base.error.js +19 -0
  13. package/dist/cjs/errors/index.d.ts +2 -0
  14. package/dist/cjs/errors/index.js +8 -0
  15. package/dist/cjs/errors/not-found.error.d.ts +3 -0
  16. package/dist/cjs/errors/not-found.error.js +8 -0
  17. package/dist/cjs/errors/utils.d.ts +1 -0
  18. package/dist/cjs/errors/utils.js +25 -0
  19. package/dist/cjs/index.d.ts +7 -1
  20. package/dist/cjs/index.js +14 -2
  21. package/dist/cjs/models/Offer.js +6 -4
  22. package/dist/cjs/models/TCB.js +13 -5
  23. package/dist/cjs/models/TeeOffer.d.ts +3 -3
  24. package/dist/cjs/models/TeeOffer.js +15 -12
  25. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +7 -6
  26. package/dist/cjs/providers/storage/S3StorageProvider.js +35 -19
  27. package/dist/cjs/providers/storage/StorageAdapter.d.ts +9 -7
  28. package/dist/cjs/providers/storage/StorageAdapter.js +27 -29
  29. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +2 -2
  30. package/dist/cjs/providers/storage/StorageContentWriter.js +5 -5
  31. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  32. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  33. package/dist/cjs/providers/storage/StorjAdapter.d.ts +5 -4
  34. package/dist/cjs/providers/storage/StorjAdapter.js +15 -9
  35. package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  36. package/dist/cjs/providers/storage/StorjCredentialsManager.js +86 -0
  37. package/dist/cjs/providers/storage/StorjStorageProvider.js +2 -2
  38. package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
  39. package/dist/cjs/providers/storage/fs-storage-provider.js +139 -0
  40. package/dist/cjs/providers/storage/getStorageProvider.js +4 -1
  41. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  42. package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
  43. package/dist/cjs/providers/storage/types.d.ts +22 -0
  44. package/dist/cjs/staticModels/LoaderSecretsPublicKeys.d.ts +1 -1
  45. package/dist/cjs/staticModels/LoaderSecretsPublicKeys.js +9 -5
  46. package/dist/cjs/staticModels/LoaderSessions.d.ts +3 -3
  47. package/dist/cjs/staticModels/LoaderSessions.js +11 -7
  48. package/dist/cjs/staticModels/OfferResources.d.ts +2 -2
  49. package/dist/cjs/staticModels/OfferResources.js +20 -10
  50. package/dist/cjs/staticModels/OffersStorageAllocated.d.ts +2 -3
  51. package/dist/cjs/staticModels/OffersStorageAllocated.js +15 -11
  52. package/dist/cjs/staticModels/OffersStorageRequests.d.ts +1 -1
  53. package/dist/cjs/staticModels/OffersStorageRequests.js +10 -5
  54. package/dist/cjs/staticModels/SecretRequests.d.ts +2 -2
  55. package/dist/cjs/staticModels/SecretRequests.js +19 -10
  56. package/dist/cjs/staticModels/TeeOffers.d.ts +0 -2
  57. package/dist/cjs/staticModels/TeeOffers.js +1 -32
  58. package/dist/cjs/tee/QuoteParser.d.ts +61 -6
  59. package/dist/cjs/tee/QuoteParser.js +248 -29
  60. package/dist/cjs/tee/QuoteValidator.d.ts +1 -0
  61. package/dist/cjs/tee/QuoteValidator.js +53 -28
  62. package/dist/cjs/tee/TeeBlockVerifier.d.ts +4 -4
  63. package/dist/cjs/tee/TeeBlockVerifier.js +16 -7
  64. package/dist/cjs/tee/types.d.ts +50 -9
  65. package/dist/cjs/tee/types.js +32 -1
  66. package/dist/cjs/types/DistributedSecretStorage.d.ts +7 -0
  67. package/dist/cjs/types/Superpro.d.ts +2 -1
  68. package/dist/cjs/types/Superpro.js +2 -1
  69. package/dist/cjs/types/storage/StorageAccess.d.ts +3 -3
  70. package/dist/cjs/utils/CryptoKeysTransformer.d.ts +8 -1
  71. package/dist/cjs/utils/CryptoKeysTransformer.js +70 -7
  72. package/dist/cjs/utils/helper.d.ts +7 -1
  73. package/dist/cjs/utils/helper.js +85 -2
  74. package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +5 -0
  75. package/dist/cjs/utils/helpers/OrderArgsHelper.js +25 -0
  76. package/dist/cjs/utils/helpers/index.d.ts +1 -0
  77. package/dist/cjs/utils/helpers/index.js +2 -1
  78. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +1 -0
  79. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +3 -3
  80. package/dist/mjs/config.d.ts +0 -1
  81. package/dist/mjs/config.js +1 -2
  82. package/dist/mjs/constants.d.ts +3 -4
  83. package/dist/mjs/constants.js +4 -6
  84. package/dist/mjs/contracts/abi.d.ts +279 -26
  85. package/dist/mjs/contracts/abi.js +357 -33
  86. package/dist/mjs/crypto/index.d.ts +1 -0
  87. package/dist/mjs/crypto/index.js +2 -1
  88. package/dist/mjs/errors/base.error.d.ts +3 -0
  89. package/dist/mjs/errors/base.error.js +15 -0
  90. package/dist/mjs/errors/index.d.ts +2 -0
  91. package/dist/mjs/errors/index.js +3 -0
  92. package/dist/mjs/errors/not-found.error.d.ts +3 -0
  93. package/dist/mjs/errors/not-found.error.js +4 -0
  94. package/dist/mjs/errors/utils.d.ts +1 -0
  95. package/dist/mjs/errors/utils.js +18 -0
  96. package/dist/mjs/index.d.ts +7 -1
  97. package/dist/mjs/index.js +7 -2
  98. package/dist/mjs/models/Offer.js +6 -4
  99. package/dist/mjs/models/TCB.js +13 -5
  100. package/dist/mjs/models/TeeOffer.d.ts +3 -3
  101. package/dist/mjs/models/TeeOffer.js +16 -13
  102. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +7 -6
  103. package/dist/mjs/providers/storage/S3StorageProvider.js +32 -19
  104. package/dist/mjs/providers/storage/StorageAdapter.d.ts +9 -7
  105. package/dist/mjs/providers/storage/StorageAdapter.js +27 -29
  106. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +2 -2
  107. package/dist/mjs/providers/storage/StorageContentWriter.js +5 -5
  108. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +8 -5
  109. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +30 -16
  110. package/dist/mjs/providers/storage/StorjAdapter.d.ts +5 -4
  111. package/dist/mjs/providers/storage/StorjAdapter.js +15 -9
  112. package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  113. package/dist/mjs/providers/storage/StorjCredentialsManager.js +82 -0
  114. package/dist/mjs/providers/storage/StorjStorageProvider.js +2 -2
  115. package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
  116. package/dist/mjs/providers/storage/fs-storage-provider.js +112 -0
  117. package/dist/mjs/providers/storage/getStorageProvider.js +4 -1
  118. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +5 -0
  119. package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
  120. package/dist/mjs/providers/storage/types.d.ts +22 -0
  121. package/dist/mjs/staticModels/LoaderSecretsPublicKeys.d.ts +1 -1
  122. package/dist/mjs/staticModels/LoaderSecretsPublicKeys.js +10 -6
  123. package/dist/mjs/staticModels/LoaderSessions.d.ts +3 -3
  124. package/dist/mjs/staticModels/LoaderSessions.js +12 -8
  125. package/dist/mjs/staticModels/OfferResources.d.ts +2 -2
  126. package/dist/mjs/staticModels/OfferResources.js +21 -11
  127. package/dist/mjs/staticModels/OffersStorageAllocated.d.ts +2 -3
  128. package/dist/mjs/staticModels/OffersStorageAllocated.js +16 -12
  129. package/dist/mjs/staticModels/OffersStorageRequests.d.ts +1 -1
  130. package/dist/mjs/staticModels/OffersStorageRequests.js +11 -6
  131. package/dist/mjs/staticModels/SecretRequests.d.ts +2 -2
  132. package/dist/mjs/staticModels/SecretRequests.js +20 -11
  133. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -2
  134. package/dist/mjs/staticModels/TeeOffers.js +1 -32
  135. package/dist/mjs/tee/QuoteParser.d.ts +61 -6
  136. package/dist/mjs/tee/QuoteParser.js +245 -28
  137. package/dist/mjs/tee/QuoteValidator.d.ts +1 -0
  138. package/dist/mjs/tee/QuoteValidator.js +54 -29
  139. package/dist/mjs/tee/TeeBlockVerifier.d.ts +4 -4
  140. package/dist/mjs/tee/TeeBlockVerifier.js +16 -7
  141. package/dist/mjs/tee/types.d.ts +50 -9
  142. package/dist/mjs/tee/types.js +28 -2
  143. package/dist/mjs/types/DistributedSecretStorage.d.ts +7 -0
  144. package/dist/mjs/types/Superpro.d.ts +2 -1
  145. package/dist/mjs/types/Superpro.js +2 -1
  146. package/dist/mjs/types/storage/StorageAccess.d.ts +3 -3
  147. package/dist/mjs/utils/CryptoKeysTransformer.d.ts +8 -1
  148. package/dist/mjs/utils/CryptoKeysTransformer.js +70 -7
  149. package/dist/mjs/utils/helper.d.ts +7 -1
  150. package/dist/mjs/utils/helper.js +78 -1
  151. package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +5 -0
  152. package/dist/mjs/utils/helpers/OrderArgsHelper.js +18 -0
  153. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  154. package/dist/mjs/utils/helpers/index.js +2 -1
  155. package/package.json +4 -4
@@ -9,28 +9,35 @@ const getStorageProvider_js_1 = __importDefault(require("./getStorageProvider.js
9
9
  const logger_js_1 = __importDefault(require("../../logger.js"));
10
10
  const Crypto_js_1 = __importDefault(require("../../crypto/Crypto.js"));
11
11
  class StorageKeyValueAdapter {
12
+ hasEncryption;
12
13
  storageProvider;
13
14
  logger;
14
15
  constructor(storageAccess, config) {
15
- if (!storageAccess?.credentials)
16
+ if (!storageAccess?.credentials) {
16
17
  throw new Error('Credentials is empty');
17
- const { showLogs = true } = config || {};
18
+ }
19
+ const { showLogs = true, hasEncryption = true } = config || {};
20
+ this.hasEncryption = hasEncryption;
18
21
  this.logger = showLogs ? logger_js_1.default.child({ class: StorageKeyValueAdapter.name }) : null;
19
22
  this.storageProvider = (0, getStorageProvider_js_1.default)(storageAccess);
20
23
  }
21
24
  async decrypt(encryption, key) {
22
- if (!encryption)
25
+ if (!encryption) {
23
26
  return null;
24
- if (!key)
27
+ }
28
+ if (!key) {
25
29
  throw new Error('Key cannot be empty!');
30
+ }
26
31
  encryption.key = key;
27
32
  return JSON.parse(await Crypto_js_1.default.decrypt(encryption));
28
33
  }
29
- async encrypt(data, key) {
30
- if (data === undefined)
34
+ encrypt(data, key) {
35
+ if (data === undefined) {
31
36
  throw new Error('Data cannot be empty!');
32
- if (!key)
37
+ }
38
+ if (!key) {
33
39
  throw new Error('Private cannot be empty!');
40
+ }
34
41
  return Crypto_js_1.default.encrypt(JSON.stringify(data), {
35
42
  algo: dto_js_1.CryptoAlgorithm.AES,
36
43
  encoding: dto_js_1.Encoding.base64,
@@ -53,8 +60,11 @@ class StorageKeyValueAdapter {
53
60
  });
54
61
  }
55
62
  async storageUpload(key, value, privateKey) {
63
+ if (this.hasEncryption && !privateKey) {
64
+ throw new Error('Invalid private key');
65
+ }
56
66
  try {
57
- const encryptedValue = await this.encrypt(value, privateKey);
67
+ const encryptedValue = this.hasEncryption && privateKey ? await this.encrypt(value, privateKey) : value;
58
68
  const buffer = Buffer.from(JSON.stringify(encryptedValue));
59
69
  await this.storageProvider.uploadFile(stream_1.Readable.from(buffer), key, buffer.byteLength);
60
70
  this.logger?.info({ data: key }, 'Success uploading to storage');
@@ -75,13 +85,17 @@ class StorageKeyValueAdapter {
75
85
  }
76
86
  }
77
87
  async storageDownload(key, privateKey) {
88
+ if (this.hasEncryption && !privateKey) {
89
+ throw new Error('Invalid private key');
90
+ }
78
91
  try {
79
92
  const downloaded = await this.downloadFromStorage(key);
80
93
  this.logger?.info({ key }, 'Success download data from storage');
81
- if (!downloaded)
94
+ if (!downloaded) {
82
95
  return null;
83
- const decryptedValue = await this.decrypt(JSON.parse(downloaded), privateKey);
84
- return decryptedValue;
96
+ }
97
+ const value = JSON.parse(downloaded);
98
+ return this.hasEncryption && privateKey ? await this.decrypt(value, privateKey) : value;
85
99
  }
86
100
  catch (err) {
87
101
  this.logger?.info({
@@ -108,18 +122,18 @@ class StorageKeyValueAdapter {
108
122
  throw err;
109
123
  }
110
124
  }
111
- async set(key, value, privateKey) {
125
+ set(key, value, privateKey) {
112
126
  return this.storageUpload(key, value, privateKey);
113
127
  }
114
- async delete(key) {
128
+ delete(key) {
115
129
  return this.storageDelete(key);
116
130
  }
117
- async get(key, privateKey) {
131
+ get(key, privateKey) {
118
132
  return this.storageDownload(key, privateKey);
119
133
  }
120
- async listFiles(key) {
134
+ listFiles(key) {
121
135
  return this.storageListFiles(key);
122
136
  }
123
137
  }
124
138
  exports.default = StorageKeyValueAdapter;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWtDO0FBQ2xDLG1EQUF1RjtBQUd2RixvRkFBeUQ7QUFFekQsZ0VBQWlEO0FBQ2pELHVFQUE0QztBQU01QyxNQUFxQixzQkFBc0I7SUFDeEIsZUFBZSxDQUFtQjtJQUNsQyxNQUFNLENBQWlCO0lBRXhDLFlBQVksYUFBNEIsRUFBRSxNQUFxQztRQUM3RSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekUsTUFBTSxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFBLCtCQUFrQixFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsR0FBVztRQUN0RCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRWxELFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBRXJCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLG1CQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFD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
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWtDO0FBQ2xDLG1EQUF1RjtBQUd2RixvRkFBeUQ7QUFFekQsZ0VBQWlEO0FBQ2pELHVFQUE0QztBQVE1QyxNQUFxQixzQkFBc0I7SUFHeEIsYUFBYSxDQUFVO0lBQ3ZCLGVBQWUsQ0FBbUI7SUFDbEMsTUFBTSxDQUFpQjtJQUV4QyxZQUFZLGFBQTRCLEVBQUUsTUFBcUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFBLCtCQUFrQixFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsR0FBVztRQUN6RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxz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
@@ -1,19 +1,20 @@
1
1
  /// <reference types="node" />
2
2
  import StorageAccess from '../../types/storage/StorageAccess.js';
3
3
  import { StorageAdapterConfig, CacheEvents } from './StorageAdapter.js';
4
+ import { StorjCredentials } from '@super-protocol/dto-js';
4
5
  export type StorjConfig = StorageAdapterConfig;
5
6
  export default class StorjAdapter<V extends object> {
6
7
  private storageAdapter;
7
8
  private readonly logger?;
8
- constructor(storageAccess: StorageAccess, config: StorjConfig);
9
+ constructor(storageAccess: StorageAccess<StorjCredentials>, config: StorjConfig);
9
10
  subscribe(cb: (props: {
10
11
  type: CacheEvents;
11
12
  message: unknown;
12
- }) => void): Promise<() => Promise<void>>;
13
+ }) => void): () => void;
13
14
  get(key: string, encryptionKey: Buffer): Promise<(V | null)[] | null>;
14
15
  has(key: string): Promise<boolean>;
15
- set(key: string, value: V, encryptionKey: Buffer): Promise<void>;
16
- del(key: string): Promise<void>;
16
+ set(key: string, value: V, encryptionKey: Buffer): void;
17
+ del(key: string): void;
17
18
  stop(): void;
18
19
  shutdown(): Promise<void>;
19
20
  }
@@ -18,30 +18,36 @@ class StorjAdapter {
18
18
  return this.storageAdapter?.subscribe(cb);
19
19
  }
20
20
  async get(key, encryptionKey) {
21
- return this.storageAdapter.get(key, encryptionKey).catch((err) => {
21
+ try {
22
+ return await this.storageAdapter.get(key, encryptionKey);
23
+ }
24
+ catch (err) {
22
25
  const message = err.message?.toLowerCase() || '';
23
26
  if (message.includes('object not found') || message.includes('object has been deleted')) {
24
27
  this.logger?.info({ key }, 'Object not found');
25
28
  return null;
26
29
  }
27
30
  throw err;
28
- });
31
+ }
29
32
  }
30
- async has(key) {
33
+ has(key) {
31
34
  return this.storageAdapter.has(key);
32
35
  }
33
- async set(key, value, encryptionKey) {
34
- return this.storageAdapter.set(key, value, encryptionKey).catch((err) => {
36
+ set(key, value, encryptionKey) {
37
+ try {
38
+ this.storageAdapter.set(key, value, encryptionKey);
39
+ }
40
+ catch (err) {
35
41
  const message = err.message?.toLowerCase() || '';
36
42
  if (message.includes('object has been deleted')) {
37
43
  this.logger?.info({ key }, 'Object has been deleted');
38
44
  return;
39
45
  }
40
46
  throw err;
41
- });
47
+ }
42
48
  }
43
- async del(key) {
44
- return this.storageAdapter.delete(key);
49
+ del(key) {
50
+ this.storageAdapter.delete(key);
45
51
  }
46
52
  stop() {
47
53
  this.storageAdapter.stop();
@@ -51,4 +57,4 @@ class StorjAdapter {
51
57
  }
52
58
  }
53
59
  exports.default = StorjAdapter;
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL1N0b3JqQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGdFQUFpRDtBQUNqRCw0RUFBd0Y7QUFJeEYsTUFBcUIsWUFBWTtJQUN2QixjQUFjLENBQW9CO0lBQ3pCLE1BQU0sQ0FBaUI7SUFDeEMsWUFBWSxhQUE0QixFQUFFLE1BQW1CO1FBQzNELE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksMkJBQWMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBQ00sU0FBUyxDQUFDLEVBQTREO1FBQzNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLGFBQXFCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVUsRUFBRSxFQUFFO1lBQ3RFLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2pELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO2dCQUN4RixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7Z0JBRS9DLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVEsRUFBRSxhQUFxQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBVSxFQUFFLEVBQUU7WUFDN0UsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDakQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUV0RCxPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNNLElBQUk7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDTSxLQUFLLENBQUMsUUFBUTtRQUNuQixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBOUNELCtCQThDQyJ9
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL1N0b3JqQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGdFQUFpRDtBQUNqRCw0RUFBd0Y7QUFLeEYsTUFBcUIsWUFBWTtJQUN2QixjQUFjLENBQW9CO0lBQ3pCLE1BQU0sQ0FBaUI7SUFFeEMsWUFBWSxhQUE4QyxFQUFFLE1BQW1CO1FBQzdFLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksMkJBQWMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQTREO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLGFBQXFCO1FBQzFDLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLE9BQU8sR0FBSSxHQUFhLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM1RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDeEYsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUUvQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVEsRUFBRSxhQUFxQjtRQUM5QyxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsTUFBTSxPQUFPLEdBQUksR0FBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDNUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO2dCQUV0RCxPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBMURELCtCQTBEQyJ9
@@ -0,0 +1,24 @@
1
+ import { S3Credentials, StorjCredentials, StringifiedCredentials } from '@super-protocol/dto-js';
2
+ export declare enum CredentialsPermissions {
3
+ read = 0,
4
+ write = 1,
5
+ list = 2,
6
+ delete = 3
7
+ }
8
+ export declare class StorjCredentialsManager {
9
+ private accessToken;
10
+ private bucket;
11
+ private access?;
12
+ private project?;
13
+ constructor(storageConfig: Pick<StorjCredentials, 'token' | 'bucket'>);
14
+ getStorageId(entity: string, entityId: string): string;
15
+ create(): Promise<void>;
16
+ acquireCredentials(permissions: CredentialsPermissions[], prefix: string): Promise<StringifiedCredentials<StorjCredentials>>;
17
+ acquireS3Credentials(permissions: CredentialsPermissions[], prefix: string): Promise<S3Credentials>;
18
+ getS3Credentials(stringifiedCredentials: StringifiedCredentials): Promise<S3Credentials>;
19
+ getS3Credentials(storjCredentials: StorjCredentials): Promise<S3Credentials>;
20
+ revokeCredentials(credentialString: StringifiedCredentials<StorjCredentials>): Promise<void>;
21
+ private lazyStorj;
22
+ private lazyAccess;
23
+ private lazyProject;
24
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorjCredentialsManager = exports.CredentialsPermissions = void 0;
4
+ var CredentialsPermissions;
5
+ (function (CredentialsPermissions) {
6
+ CredentialsPermissions[CredentialsPermissions["read"] = 0] = "read";
7
+ CredentialsPermissions[CredentialsPermissions["write"] = 1] = "write";
8
+ CredentialsPermissions[CredentialsPermissions["list"] = 2] = "list";
9
+ CredentialsPermissions[CredentialsPermissions["delete"] = 3] = "delete";
10
+ })(CredentialsPermissions || (exports.CredentialsPermissions = CredentialsPermissions = {}));
11
+ class StorjCredentialsManager {
12
+ accessToken;
13
+ bucket;
14
+ access;
15
+ project;
16
+ constructor(storageConfig) {
17
+ this.accessToken = storageConfig.token;
18
+ this.bucket = storageConfig.bucket;
19
+ }
20
+ getStorageId(entity, entityId) {
21
+ return `${entity}_${entityId}`;
22
+ }
23
+ async create() {
24
+ const project = await this.lazyProject();
25
+ await project.ensureBucket(this.bucket);
26
+ }
27
+ async acquireCredentials(permissions, prefix) {
28
+ const readPerm = permissions.includes(CredentialsPermissions.read), writePerm = permissions.includes(CredentialsPermissions.write), listPerm = permissions.includes(CredentialsPermissions.list), deletePerm = permissions.includes(CredentialsPermissions.delete);
29
+ const storj = await this.lazyStorj();
30
+ const perm = new storj.Permission(readPerm, writePerm, deletePerm, listPerm, 0, 0);
31
+ const sharePrefix = new storj.SharePrefix(this.bucket, prefix + '/');
32
+ const access = await this.lazyAccess();
33
+ const share = await access.share(perm, [sharePrefix], 1);
34
+ return JSON.stringify({
35
+ bucket: this.bucket,
36
+ prefix: prefix + '/',
37
+ token: await share.serialize(),
38
+ });
39
+ }
40
+ async acquireS3Credentials(permissions, prefix) {
41
+ const storjCreds = await this.acquireCredentials(permissions, prefix);
42
+ return this.getS3Credentials(storjCreds);
43
+ }
44
+ async getS3Credentials(creds) {
45
+ const storjCredentials = typeof creds === 'string' ? JSON.parse(creds) : creds;
46
+ const access = await this.lazyAccess();
47
+ const s3Credentials = await access.registerS3Credentials(storjCredentials.token);
48
+ return {
49
+ accessKeyId: s3Credentials.accessKeyId,
50
+ secretKey: s3Credentials.secretKey,
51
+ endpoint: s3Credentials.endpoint,
52
+ bucket: storjCredentials.bucket,
53
+ prefix: storjCredentials.prefix,
54
+ };
55
+ }
56
+ async revokeCredentials(credentialString) {
57
+ const credentials = JSON.parse(credentialString);
58
+ const storj = await this.lazyStorj();
59
+ const uplink = new storj.Uplink();
60
+ const access = await uplink.parseAccess(credentials.token);
61
+ const project = await this.lazyProject();
62
+ await project.revokeAccess(access);
63
+ }
64
+ async lazyStorj() {
65
+ return await require('@super-protocol/uplink-nodejs');
66
+ }
67
+ async lazyAccess() {
68
+ if (this.access) {
69
+ return this.access;
70
+ }
71
+ const storj = await this.lazyStorj();
72
+ const uplink = new storj.Uplink();
73
+ this.access = await uplink.parseAccess(this.accessToken);
74
+ return this.access;
75
+ }
76
+ async lazyProject() {
77
+ if (this.project) {
78
+ return this.project;
79
+ }
80
+ const access = await this.lazyAccess();
81
+ this.project = await access.openProject();
82
+ return this.project;
83
+ }
84
+ }
85
+ exports.StorjCredentialsManager = StorjCredentialsManager;
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpDcmVkZW50aWFsc01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmpDcmVkZW50aWFsc01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0EsSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQ2hDLG1FQUFJLENBQUE7SUFDSixxRUFBSyxDQUFBO0lBQ0wsbUVBQUksQ0FBQTtJQUNKLHVFQUFNLENBQUE7QUFDUixDQUFDLEVBTFcsc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFLakM7QUFFRCxNQUFhLHVCQUF1QjtJQUMxQixXQUFXLENBQVM7SUFDcEIsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFVO0lBQ2hCLE9BQU8sQ0FBVztJQUUxQixZQUFZLGFBQXlEO1FBQ25FLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsUUFBZ0I7UUFDM0MsT0FBTyxHQUFHLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQ3RCLFdBQXFDLEVBQ3JDLE1BQWM7UUFFZCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUNoRSxTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFDOUQsUUFB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
@@ -100,7 +100,7 @@ class StorJStorageProvider {
100
100
  for (const key in Object.keys(objects)) {
101
101
  const value = objects[key];
102
102
  result.push({
103
- name: value.key,
103
+ name: value.key.substring(this.prefix.length),
104
104
  size: value.system.content_length,
105
105
  isFolder: value.is_prefix == 1,
106
106
  childrenCount: value.custom.count,
@@ -142,4 +142,4 @@ class StorJStorageProvider {
142
142
  }
143
143
  }
144
144
  exports.default = StorJStorageProvider;
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpTdG9yYWdlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmpTdG9yYWdlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSxtQ0FBZ0M7QUFFaEMscURBQWlEO0FBRWpELG9EQUE0QjtBQUM1QixnRUFBcUM7QUFFckMsTUFBcUIsb0JBQW9CO0lBQ3ZDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNO0lBRXJDLE1BQU0sQ0FBUztJQUNmLE1BQU0sQ0FBUztJQUNmLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVU7SUFDakIsUUFBUSxDQUFXO0lBQ25CLE1BQU0sQ0FBTztJQUNiLGlCQUFpQixDQUFVO0lBRW5DLFlBQVksV0FBZ0IsRUFBRSxpQkFBMEI7UUFDdEQsSUFBSSxDQUFDLElBQUEsb0JBQVEsR0FBRSxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxp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
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmpTdG9yYWdlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvU3RvcmpTdG9yYWdlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSxtQ0FBZ0M7QUFFaEMscURBQWlEO0FBRWpELG9EQUE0QjtBQUM1QixnRUFBcUM7QUFFckMsTUFBcUIsb0JBQW9CO0lBQ3ZDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNO0lBRXJDLE1BQU0sQ0FBUztJQUNmLE1BQU0sQ0FBUztJQUNmLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVU7SUFDakIsUUFBUSxDQUFXO0lBQ25CLE1BQU0sQ0FBTztJQUNiLGlCQUFpQixDQUFVO0lBRW5DLFlBQVksV0FBZ0IsRUFBRSxpQkFBMEI7UUFDdEQsSUFBSSxDQUFDLElBQUEsb0JBQVEsR0FBRSxFQUFFLENBQUM7WUFDaEIsTUFBTSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxp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
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'stream';
3
+ import StorageObject from '../../types/storage/StorageObject.js';
4
+ import IStorageProvider, { DownloadConfig } from './IStorageProvider.js';
5
+ import { FSCredentials } from '@super-protocol/dto-js';
6
+ export declare class FSStorageProvider implements IStorageProvider {
7
+ private readonly bucket;
8
+ private readonly prefix;
9
+ constructor(credentials: FSCredentials);
10
+ private getFullPath;
11
+ private writeWithProgress;
12
+ uploadFile(inputStream: Readable, remotePath: string, contentLength: number, progressListener?: ((total: number, current: number) => void) | undefined): Promise<void>;
13
+ downloadFile(remotePath: string, config: DownloadConfig, progressListener?: ((total: number, current: number) => void) | undefined): Promise<Readable>;
14
+ deleteObject(remotePath: string): Promise<void>;
15
+ private ensureDirectoryExists;
16
+ listObjects(remotePath: string): Promise<StorageObject[]>;
17
+ getObjectSize(remotePath: string): Promise<number>;
18
+ getLastModified(remotePath: string): Promise<Date | null>;
19
+ }
@@ -0,0 +1,139 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FSStorageProvider = void 0;
27
+ const node_fs_1 = require("node:fs");
28
+ const path = __importStar(require("node:path"));
29
+ const promises_1 = require("node:fs/promises");
30
+ const promises_2 = require("fs/promises");
31
+ const index_js_1 = require("../../errors/index.js");
32
+ class FSStorageProvider {
33
+ bucket;
34
+ prefix;
35
+ constructor(credentials) {
36
+ this.bucket = credentials.bucket;
37
+ this.prefix = credentials.prefix;
38
+ }
39
+ getFullPath(remotePath) {
40
+ return path.join(this.bucket, this.prefix, remotePath);
41
+ }
42
+ writeWithProgress(inputStream, outputStream, contentLength, progressListener) {
43
+ let bytesWritten = 0;
44
+ return new Promise((resolve, reject) => {
45
+ outputStream.on('close', resolve).on('error', reject);
46
+ inputStream
47
+ .once('data', (chunk) => {
48
+ const canContinue = outputStream.write(chunk);
49
+ if (!canContinue) {
50
+ inputStream.pause();
51
+ outputStream.once('drain', inputStream.resume.bind(inputStream));
52
+ bytesWritten += chunk.length;
53
+ if (!!progressListener) {
54
+ progressListener(contentLength, bytesWritten);
55
+ }
56
+ }
57
+ })
58
+ .on('end', () => {
59
+ outputStream.end();
60
+ })
61
+ .on('error', reject);
62
+ });
63
+ }
64
+ async uploadFile(inputStream, remotePath, contentLength, progressListener) {
65
+ if (!inputStream) {
66
+ throw new Error('Input stream is undefined');
67
+ }
68
+ const fullPath = this.getFullPath(remotePath);
69
+ await this.ensureDirectoryExists(path.dirname(fullPath));
70
+ const outputStream = (0, node_fs_1.createWriteStream)(fullPath);
71
+ await this.writeWithProgress(inputStream, outputStream, contentLength, progressListener);
72
+ }
73
+ async downloadFile(remotePath, config, progressListener) {
74
+ const offset = config.offset ?? 0;
75
+ const filePath = this.getFullPath(remotePath);
76
+ let stats;
77
+ try {
78
+ stats = await (0, promises_1.stat)(filePath);
79
+ }
80
+ catch {
81
+ throw new index_js_1.NotFoundError(`File does not exist: ${filePath}`);
82
+ }
83
+ const total = offset + (config.length ?? 0) || stats.size;
84
+ let current = offset;
85
+ const readStream = (0, node_fs_1.createReadStream)(filePath, {
86
+ start: offset,
87
+ end: total,
88
+ });
89
+ readStream.on('data', (chunk) => {
90
+ current += chunk.length;
91
+ if (progressListener) {
92
+ progressListener(total, current);
93
+ }
94
+ });
95
+ return readStream;
96
+ }
97
+ async deleteObject(remotePath) {
98
+ await (0, promises_1.rm)(this.getFullPath(remotePath), { force: true });
99
+ }
100
+ async ensureDirectoryExists(directory, createIfNotExists = true) {
101
+ try {
102
+ await (0, promises_2.access)(directory, promises_2.constants.F_OK);
103
+ }
104
+ catch (error) {
105
+ if (createIfNotExists) {
106
+ await (0, promises_2.mkdir)(directory, { recursive: true });
107
+ }
108
+ else {
109
+ throw new index_js_1.NotFoundError(`Directory does not exist: ${directory}`);
110
+ }
111
+ }
112
+ }
113
+ async listObjects(remotePath) {
114
+ const fullPath = this.getFullPath(remotePath);
115
+ await this.ensureDirectoryExists(fullPath);
116
+ const dirents = await (0, promises_1.readdir)(fullPath, { withFileTypes: true });
117
+ return Promise.all(dirents.map(async (dirent) => {
118
+ const direntPath = path.join(fullPath, dirent.name);
119
+ const direntStat = await (0, promises_1.stat)(direntPath);
120
+ return {
121
+ name: dirent.name,
122
+ size: direntStat.size,
123
+ isFolder: dirent.isDirectory(),
124
+ createdAt: direntStat.birthtime,
125
+ ...(dirent.isDirectory() && { childrenCount: (await (0, promises_1.readdir)(direntPath)).length }),
126
+ };
127
+ }));
128
+ }
129
+ async getObjectSize(remotePath) {
130
+ const fileStat = await (0, promises_1.stat)(this.getFullPath(remotePath));
131
+ return fileStat.size;
132
+ }
133
+ async getLastModified(remotePath) {
134
+ const fileStat = await (0, promises_1.stat)(this.getFullPath(remotePath));
135
+ return fileStat.mtime;
136
+ }
137
+ }
138
+ exports.FSStorageProvider = FSStorageProvider;
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtc3RvcmFnZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9mcy1zdG9yYWdlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EscUNBQXFFO0FBRXJFLGdEQUFrQztBQUVsQywrQ0FBcUQ7QUFDckQsMENBQXVFO0FBQ3ZFLG9EQUFzRDtBQUV0RCxNQUFhLGlCQUFpQjtJQUNYLE1BQU0sQ0FBUztJQUNmLE1BQU0sQ0FBUztJQUVoQyxZQUFZLFdBQTBCO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxVQUFrQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxpQkFBaUIsQ0FDdkIsV0FBcUIsRUFDckIsWUFBc0IsRUFDdEIsYUFBcUIsRUFDckIsZ0JBQTJEO1FBRTNELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUVyQixPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEQsV0FBVztpQkFDUixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxXQUFX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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const dto_js_1 = require("@super-protocol/dto-js");
7
7
  const StorjStorageProvider_js_1 = __importDefault(require("./StorjStorageProvider.js"));
8
8
  const S3StorageProvider_js_1 = require("./S3StorageProvider.js");
9
+ const fs_storage_provider_js_1 = require("./fs-storage-provider.js");
9
10
  exports.default = (storageAccess) => {
10
11
  const key = storageAccess.storageType;
11
12
  switch (key) {
@@ -13,8 +14,10 @@ exports.default = (storageAccess) => {
13
14
  return new StorjStorageProvider_js_1.default(storageAccess.credentials, storageAccess.maximumConcurrent);
14
15
  case dto_js_1.StorageType.S3:
15
16
  return new S3StorageProvider_js_1.S3StorageProvider(storageAccess.credentials);
17
+ case dto_js_1.StorageType.FS:
18
+ return new fs_storage_provider_js_1.FSStorageProvider(storageAccess.credentials);
16
19
  default:
17
20
  throw Error(`Unsupported storageType ${key}`);
18
21
  }
19
22
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3RvcmFnZVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL2dldFN0b3JhZ2VQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1EQUFxRDtBQUdyRCx3RkFBNkQ7QUFDN0QsaUVBQTJEO0FBRTNELGtCQUFlLENBQUMsYUFBNEIsRUFBb0IsRUFBRTtJQUNoRSxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsV0FBMEIsQ0FBQztJQUNyRCxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ1osS0FBSyxvQkFBVyxDQUFDLEtBQUs7WUFDcEIsT0FBTyxJQUFJLGlDQUFvQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUYsS0FBSyxvQkFBVyxDQUFDLEVBQUU7WUFDakIsT0FBTyxJQUFJLHdDQUFpQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRDtZQUNFLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7QUFDSCxDQUFDLENBQUMifQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0U3RvcmFnZVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9zdG9yYWdlL2dldFN0b3JhZ2VQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1EQUFtRjtBQUduRix3RkFBNkQ7QUFDN0QsaUVBQTJEO0FBQzNELHFFQUE2RDtBQUU3RCxrQkFBZSxDQUFDLGFBQTRCLEVBQW9CLEVBQUU7SUFDaEUsTUFBTSxHQUFHLEdBQUcsYUFBYSxDQUFDLFdBQTBCLENBQUM7SUFDckQsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNaLEtBQUssb0JBQVcsQ0FBQyxLQUFLO1lBQ3BCLE9BQU8sSUFBSSxpQ0FBb0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlGLEtBQUssb0JBQVcsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSx3Q0FBaUIsQ0FBQyxhQUFhLENBQUMsV0FBNEIsQ0FBQyxDQUFDO1FBQzNFLEtBQUssb0JBQVcsQ0FBQyxFQUFFO1lBQ2pCLE9BQU8sSUFBSSwwQ0FBaUIsQ0FBQyxhQUFhLENBQUMsV0FBNEIsQ0FBQyxDQUFDO1FBQzNFO1lBQ0UsTUFBTSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUMsQ0FBQyJ9
@@ -0,0 +1,5 @@
1
+ import { StorageAccessCredentials } from '@super-protocol/dto-js';
2
+ import { S3Credentials, StorageCredentials, StorageType, StorjCredentials } from '@super-protocol/dto-js';
3
+ type StorageCredentialsType<T extends StorageType | unknown> = T extends StorageType.StorJ ? StorageCredentials<StorjCredentials> : T extends StorageType.S3 ? StorageCredentials<S3Credentials> : StorageCredentials<StorageAccessCredentials>;
4
+ export declare const parseStorageCredentials: <T extends unknown = unknown>(decryptedCredentials: string) => StorageCredentialsType<T>;
5
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseStorageCredentials = void 0;
4
+ const tryParseJson = (probablyJson) => {
5
+ try {
6
+ return JSON.parse(probablyJson);
7
+ }
8
+ catch {
9
+ return probablyJson;
10
+ }
11
+ };
12
+ const parseStorageCredentials = (decryptedCredentials) => {
13
+ const credentials = JSON.parse(decryptedCredentials);
14
+ return {
15
+ storageType: credentials.storageType,
16
+ downloadCredentials: tryParseJson(credentials.downloadCredentials),
17
+ uploadCredentials: tryParseJson(credentials.uploadCredentials),
18
+ };
19
+ };
20
+ exports.parseStorageCredentials = parseStorageCredentials;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTdG9yYWdlQ3JlZGVudGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvcGFyc2VTdG9yYWdlQ3JlZGVudGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBY0EsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFvQixFQUFpQyxFQUFFO0lBQzNFLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQUMsTUFBTyxDQUFDO1FBQ1IsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVLLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsb0JBQTRCLEVBQ0QsRUFBRTtJQUM3QixNQUFNLFdBQVcsR0FBK0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRWpGLE9BQU87UUFDTCxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7UUFDcEMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQztRQUNsRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDO0tBQ2xDLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBVlcsUUFBQSx1QkFBdUIsMkJBVWxDIn0=
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ import { CacheEvents, StorageObject } from '../../index.js';
1
3
  export interface CacheRecord<V> {
2
4
  value: V | null;
3
5
  modifiedTs: number;
@@ -5,3 +7,23 @@ export interface CacheRecord<V> {
5
7
  export interface Performance {
6
8
  now(): number;
7
9
  }
10
+ export interface IStorageKeyValueAdapter<V extends object> {
11
+ set(key: string, value: V | null, privateKey?: string): Promise<void>;
12
+ delete(key: string): Promise<void>;
13
+ get(key: string, privateKey?: string): Promise<V | null>;
14
+ listFiles(key: string): Promise<StorageObject[]>;
15
+ }
16
+ export interface IStorageAdapter<V extends object> {
17
+ has(key: string): Promise<boolean>;
18
+ set(key: string, value: V, encryptionKeyBuffer?: Buffer): void;
19
+ delete(key: string): void;
20
+ run(): void;
21
+ clear(): void;
22
+ get(key: string, encryptionKeyBuffer?: Buffer): Promise<(V | null)[] | null>;
23
+ stop(): void;
24
+ subscribe(cb: (props: {
25
+ type: CacheEvents;
26
+ message: unknown;
27
+ }) => void): () => void;
28
+ shutdown(): Promise<void>;
29
+ }
@@ -1,7 +1,7 @@
1
1
  import { BlockInfo, BlockchainId, TransactionOptions, LoaderSecretPublicKey, PublicKey, Signature } from '../types/index.js';
2
2
  declare class LoaderSecretPublicKeys {
3
3
  private static readonly logger;
4
- static get(teeOfferId: BlockchainId): Promise<LoaderSecretPublicKey>;
4
+ static get(teeOfferId: BlockchainId): Promise<LoaderSecretPublicKey | undefined>;
5
5
  static set(teeOfferId: BlockchainId, signature: Signature, secretPublicKey: PublicKey, signedTime: number, transactionOptions?: TransactionOptions): Promise<void>;
6
6
  static onLoaderSecretPublicKeySessionUpdated(callback: onLoaderSecretPublicKeySessionUpdatedCallback): () => void;
7
7
  }