@super-protocol/sdk-js 0.13.6-beta.1 → 0.13.6-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.ts CHANGED
@@ -59,4 +59,5 @@ export { default as StorageObject } from "./types/storage/StorageObject";
59
59
  export { default as StorageAccess } from "./types/storage/StorageAccess";
60
60
  export { default as getStorageProvider } from "./providers/storage/getStorageProvider";
61
61
  export { default as IStorageProvider } from "./providers/storage/IStorageProvider";
62
+ export * from "./providers/storage/StorjS3StorageProvider";
62
63
  export * as helpers from "./utils/helpers";
package/build/index.js CHANGED
@@ -106,4 +106,5 @@ __exportStar(require("./types/Origins"), exports);
106
106
  exports.ChunkedStorageProvider = __importStar(require("./providers/storage/ChunksDownloadDecorator"));
107
107
  var getStorageProvider_1 = require("./providers/storage/getStorageProvider");
108
108
  Object.defineProperty(exports, "getStorageProvider", { enumerable: true, get: function () { return __importDefault(getStorageProvider_1).default; } });
109
+ __exportStar(require("./providers/storage/StorjS3StorageProvider"), exports);
109
110
  exports.helpers = __importStar(require("./utils/helpers"));
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import { S3 } from "aws-sdk";
3
+ export interface ObjectMetadata {
4
+ name: string;
5
+ size: number;
6
+ createdAt: Date;
7
+ }
8
+ export type S3ClientConfig = {
9
+ accessKeyId: string;
10
+ secretAccessKey: string;
11
+ endpoint: string;
12
+ bucket: string;
13
+ };
14
+ export declare class StorjS3StorageProvider {
15
+ private readonly s3Client;
16
+ private readonly bucket;
17
+ constructor(storageAccess: S3ClientConfig);
18
+ private storageUpload;
19
+ private storageDelete;
20
+ private storageDownload;
21
+ private storageListFiles;
22
+ uploadFile(key: string, value: Buffer): Promise<void>;
23
+ deleteFile(key: string): Promise<void>;
24
+ downloadFile(key: string): Promise<S3.Body>;
25
+ listObjects(key: string): Promise<ObjectMetadata[]>;
26
+ }
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.StorjS3StorageProvider = void 0;
40
+ var aws_sdk_1 = require("aws-sdk");
41
+ // TODO add streams support https://superprotocol.atlassian.net/browse/SP-3203
42
+ var StorjS3StorageProvider = /** @class */ (function () {
43
+ function StorjS3StorageProvider(storageAccess) {
44
+ var accessKeyId = storageAccess.accessKeyId, secretAccessKey = storageAccess.secretAccessKey, endpoint = storageAccess.endpoint, bucket = storageAccess.bucket;
45
+ if (!accessKeyId)
46
+ throw new Error("Access key id is undefined");
47
+ if (!secretAccessKey)
48
+ throw new Error("Secret access is undefined");
49
+ if (!endpoint)
50
+ throw new Error("Endpoint is undefined");
51
+ if (!bucket)
52
+ throw new Error("Bucket is undefined");
53
+ this.bucket = bucket;
54
+ this.s3Client = new aws_sdk_1.S3({
55
+ credentials: {
56
+ accessKeyId: accessKeyId,
57
+ secretAccessKey: secretAccessKey,
58
+ },
59
+ endpoint: endpoint,
60
+ s3ForcePathStyle: true,
61
+ signatureVersion: "v4",
62
+ httpOptions: { timeout: 0 },
63
+ });
64
+ }
65
+ StorjS3StorageProvider.prototype.storageUpload = function (remotePath, value) {
66
+ return __awaiter(this, void 0, void 0, function () {
67
+ var result;
68
+ return __generator(this, function (_a) {
69
+ switch (_a.label) {
70
+ case 0: return [4 /*yield*/, this.s3Client
71
+ .putObject({
72
+ ACL: "public-read",
73
+ Body: value,
74
+ Bucket: this.bucket,
75
+ Key: remotePath,
76
+ })
77
+ .promise()];
78
+ case 1:
79
+ result = _a.sent();
80
+ if (result.$response.error) {
81
+ throw result.$response.error;
82
+ }
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ });
87
+ };
88
+ StorjS3StorageProvider.prototype.storageDelete = function (key) {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ var deleteResult;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0: return [4 /*yield*/, this.s3Client
94
+ .deleteObject({
95
+ Bucket: this.bucket,
96
+ Key: key,
97
+ })
98
+ .promise()];
99
+ case 1:
100
+ deleteResult = _a.sent();
101
+ if (deleteResult.$response.error) {
102
+ throw deleteResult.$response.error;
103
+ }
104
+ return [2 /*return*/];
105
+ }
106
+ });
107
+ });
108
+ };
109
+ StorjS3StorageProvider.prototype.storageDownload = function (filepath) {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ var downloadStream;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0: return [4 /*yield*/, this.s3Client
115
+ .getObject({
116
+ Bucket: this.bucket,
117
+ Key: filepath,
118
+ })
119
+ .promise()];
120
+ case 1:
121
+ downloadStream = _a.sent();
122
+ if (downloadStream.$response.error) {
123
+ throw downloadStream.$response.error;
124
+ }
125
+ return [2 /*return*/, downloadStream.Body || Buffer.from([])];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ StorjS3StorageProvider.prototype.storageListFiles = function (key) {
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ var prefix, listObjects, result;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0:
136
+ prefix = key.endsWith("/") ? key : "".concat(key, "/");
137
+ return [4 /*yield*/, this.s3Client
138
+ .listObjectsV2({
139
+ Bucket: this.bucket,
140
+ Prefix: prefix,
141
+ })
142
+ .promise()];
143
+ case 1:
144
+ listObjects = _a.sent();
145
+ result = [];
146
+ if (listObjects.Contents) {
147
+ result = listObjects.Contents.map(function (object) { return ({
148
+ name: object.Key || "",
149
+ createdAt: object.LastModified || new Date(),
150
+ size: object.Size || 0,
151
+ }); });
152
+ }
153
+ return [2 /*return*/, result];
154
+ }
155
+ });
156
+ });
157
+ };
158
+ StorjS3StorageProvider.prototype.uploadFile = function (key, value) {
159
+ return __awaiter(this, void 0, void 0, function () {
160
+ return __generator(this, function (_a) {
161
+ return [2 /*return*/, this.storageUpload(key, value)];
162
+ });
163
+ });
164
+ };
165
+ StorjS3StorageProvider.prototype.deleteFile = function (key) {
166
+ return __awaiter(this, void 0, void 0, function () {
167
+ return __generator(this, function (_a) {
168
+ return [2 /*return*/, this.storageDelete(key)];
169
+ });
170
+ });
171
+ };
172
+ StorjS3StorageProvider.prototype.downloadFile = function (key) {
173
+ return __awaiter(this, void 0, void 0, function () {
174
+ return __generator(this, function (_a) {
175
+ return [2 /*return*/, this.storageDownload(key)];
176
+ });
177
+ });
178
+ };
179
+ StorjS3StorageProvider.prototype.listObjects = function (key) {
180
+ return __awaiter(this, void 0, void 0, function () {
181
+ return __generator(this, function (_a) {
182
+ return [2 /*return*/, this.storageListFiles(key)];
183
+ });
184
+ });
185
+ };
186
+ return StorjS3StorageProvider;
187
+ }());
188
+ exports.StorjS3StorageProvider = StorjS3StorageProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-protocol/sdk-js",
3
- "version": "0.13.6-beta.1",
3
+ "version": "0.13.6-beta.2",
4
4
  "main": "build/index.js",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -55,6 +55,7 @@
55
55
  "@super-protocol/dto-js": "0.0.24",
56
56
  "@super-protocol/tee-lib": "^0.1.2",
57
57
  "@super-protocol/uplink-nodejs": "1.2.16",
58
+ "aws-sdk": "^2.1418.0",
58
59
  "ethers": "^5.5.3",
59
60
  "hybrid-crypto-js": "^0.2.4",
60
61
  "lodash": "^4.17.21",