@super-protocol/sdk-js 2.2.0-beta.75 → 2.2.0-beta.76
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
2
|
+
import stream from 'stream';
|
|
3
3
|
import StorageObject from '../../types/storage/StorageObject.js';
|
|
4
4
|
import IStorageProvider, { DownloadConfig } from './IStorageProvider.js';
|
|
5
5
|
import { FSCredentials } from '@super-protocol/dto-js';
|
|
@@ -9,8 +9,8 @@ export declare class FSStorageProvider implements IStorageProvider {
|
|
|
9
9
|
constructor(credentials: FSCredentials);
|
|
10
10
|
private getFullPath;
|
|
11
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>;
|
|
12
|
+
uploadFile(inputStream: stream.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<stream.Readable>;
|
|
14
14
|
deleteObject(remotePath: string): Promise<void>;
|
|
15
15
|
private ensureDirectoryExists;
|
|
16
16
|
listObjects(remotePath: string): Promise<StorageObject[]>;
|
|
@@ -22,12 +22,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.FSStorageProvider = void 0;
|
|
27
|
-
const
|
|
28
|
-
const path = __importStar(require("
|
|
29
|
-
const promises_1 = require("
|
|
30
|
-
const promises_2 = require("fs/promises");
|
|
30
|
+
const fs_1 = __importDefault(require("fs"));
|
|
31
|
+
const path = __importStar(require("path"));
|
|
32
|
+
const promises_1 = require("fs/promises");
|
|
31
33
|
const index_js_1 = require("../../errors/index.js");
|
|
32
34
|
class FSStorageProvider {
|
|
33
35
|
bucket;
|
|
@@ -67,7 +69,7 @@ class FSStorageProvider {
|
|
|
67
69
|
}
|
|
68
70
|
const fullPath = this.getFullPath(remotePath);
|
|
69
71
|
await this.ensureDirectoryExists(path.dirname(fullPath));
|
|
70
|
-
const outputStream =
|
|
72
|
+
const outputStream = fs_1.default.createWriteStream(fullPath);
|
|
71
73
|
await this.writeWithProgress(inputStream, outputStream, contentLength, progressListener);
|
|
72
74
|
}
|
|
73
75
|
async downloadFile(remotePath, config, progressListener) {
|
|
@@ -75,14 +77,14 @@ class FSStorageProvider {
|
|
|
75
77
|
const filePath = this.getFullPath(remotePath);
|
|
76
78
|
let stats;
|
|
77
79
|
try {
|
|
78
|
-
stats = await
|
|
80
|
+
stats = await fs_1.default.promises.stat(filePath);
|
|
79
81
|
}
|
|
80
82
|
catch {
|
|
81
83
|
throw new index_js_1.NotFoundError(`File does not exist: ${filePath}`);
|
|
82
84
|
}
|
|
83
85
|
const total = offset + (config.length ?? 0) || stats.size;
|
|
84
86
|
let current = offset;
|
|
85
|
-
const readStream =
|
|
87
|
+
const readStream = fs_1.default.createReadStream(filePath, {
|
|
86
88
|
start: offset,
|
|
87
89
|
end: total,
|
|
88
90
|
});
|
|
@@ -95,15 +97,15 @@ class FSStorageProvider {
|
|
|
95
97
|
return readStream;
|
|
96
98
|
}
|
|
97
99
|
async deleteObject(remotePath) {
|
|
98
|
-
await
|
|
100
|
+
await fs_1.default.promises.rm(this.getFullPath(remotePath), { force: true });
|
|
99
101
|
}
|
|
100
102
|
async ensureDirectoryExists(directory, createIfNotExists = true) {
|
|
101
103
|
try {
|
|
102
|
-
await (0,
|
|
104
|
+
await (0, promises_1.access)(directory, promises_1.constants.F_OK);
|
|
103
105
|
}
|
|
104
106
|
catch (error) {
|
|
105
107
|
if (createIfNotExists) {
|
|
106
|
-
await (0,
|
|
108
|
+
await (0, promises_1.mkdir)(directory, { recursive: true });
|
|
107
109
|
}
|
|
108
110
|
else {
|
|
109
111
|
throw new index_js_1.NotFoundError(`Directory does not exist: ${directory}`);
|
|
@@ -113,27 +115,29 @@ class FSStorageProvider {
|
|
|
113
115
|
async listObjects(remotePath) {
|
|
114
116
|
const fullPath = this.getFullPath(remotePath);
|
|
115
117
|
await this.ensureDirectoryExists(fullPath);
|
|
116
|
-
const dirents = await
|
|
118
|
+
const dirents = await fs_1.default.promises.readdir(fullPath, { withFileTypes: true });
|
|
117
119
|
return Promise.all(dirents.map(async (dirent) => {
|
|
118
120
|
const direntPath = path.join(fullPath, dirent.name);
|
|
119
|
-
const direntStat = await
|
|
121
|
+
const direntStat = await fs_1.default.promises.stat(direntPath);
|
|
120
122
|
return {
|
|
121
123
|
name: dirent.name,
|
|
122
124
|
size: direntStat.size,
|
|
123
125
|
isFolder: dirent.isDirectory(),
|
|
124
126
|
createdAt: direntStat.birthtime,
|
|
125
|
-
...(dirent.isDirectory() && {
|
|
127
|
+
...(dirent.isDirectory() && {
|
|
128
|
+
childrenCount: (await fs_1.default.promises.readdir(direntPath)).length,
|
|
129
|
+
}),
|
|
126
130
|
};
|
|
127
131
|
}));
|
|
128
132
|
}
|
|
129
133
|
async getObjectSize(remotePath) {
|
|
130
|
-
const fileStat = await
|
|
134
|
+
const fileStat = await fs_1.default.promises.stat(this.getFullPath(remotePath));
|
|
131
135
|
return fileStat.size;
|
|
132
136
|
}
|
|
133
137
|
async getLastModified(remotePath) {
|
|
134
|
-
const fileStat = await
|
|
138
|
+
const fileStat = await fs_1.default.promises.stat(this.getFullPath(remotePath));
|
|
135
139
|
return fileStat.mtime;
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
exports.FSStorageProvider = FSStorageProvider;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtc3RvcmFnZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9mcy1zdG9yYWdlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNENBQW9CO0FBQ3BCLDJDQUE2QjtBQUk3QiwwQ0FBdUU7QUFDdkUsb0RBQXNEO0FBRXRELE1BQWEsaUJBQWlCO0lBQ1gsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBRWhDLFlBQVksV0FBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixXQUE0QixFQUM1QixZQUE2QixFQUM3QixhQUFxQixFQUNyQixnQkFBMkQ7UUFFM0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxXQUFXO2lCQUNSLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
2
|
+
import stream from 'stream';
|
|
3
3
|
import StorageObject from '../../types/storage/StorageObject.js';
|
|
4
4
|
import IStorageProvider, { DownloadConfig } from './IStorageProvider.js';
|
|
5
5
|
import { FSCredentials } from '@super-protocol/dto-js';
|
|
@@ -9,8 +9,8 @@ export declare class FSStorageProvider implements IStorageProvider {
|
|
|
9
9
|
constructor(credentials: FSCredentials);
|
|
10
10
|
private getFullPath;
|
|
11
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>;
|
|
12
|
+
uploadFile(inputStream: stream.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<stream.Readable>;
|
|
14
14
|
deleteObject(remotePath: string): Promise<void>;
|
|
15
15
|
private ensureDirectoryExists;
|
|
16
16
|
listObjects(remotePath: string): Promise<StorageObject[]>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as path from '
|
|
3
|
-
import { readdir, rm, stat } from 'node:fs/promises';
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
4
3
|
import { access, constants as FS_CONSTANTS, mkdir } from 'fs/promises';
|
|
5
4
|
import { NotFoundError } from '../../errors/index.js';
|
|
6
5
|
export class FSStorageProvider {
|
|
@@ -41,7 +40,7 @@ export class FSStorageProvider {
|
|
|
41
40
|
}
|
|
42
41
|
const fullPath = this.getFullPath(remotePath);
|
|
43
42
|
await this.ensureDirectoryExists(path.dirname(fullPath));
|
|
44
|
-
const outputStream = createWriteStream(fullPath);
|
|
43
|
+
const outputStream = fs.createWriteStream(fullPath);
|
|
45
44
|
await this.writeWithProgress(inputStream, outputStream, contentLength, progressListener);
|
|
46
45
|
}
|
|
47
46
|
async downloadFile(remotePath, config, progressListener) {
|
|
@@ -49,14 +48,14 @@ export class FSStorageProvider {
|
|
|
49
48
|
const filePath = this.getFullPath(remotePath);
|
|
50
49
|
let stats;
|
|
51
50
|
try {
|
|
52
|
-
stats = await stat(filePath);
|
|
51
|
+
stats = await fs.promises.stat(filePath);
|
|
53
52
|
}
|
|
54
53
|
catch {
|
|
55
54
|
throw new NotFoundError(`File does not exist: ${filePath}`);
|
|
56
55
|
}
|
|
57
56
|
const total = offset + (config.length ?? 0) || stats.size;
|
|
58
57
|
let current = offset;
|
|
59
|
-
const readStream = createReadStream(filePath, {
|
|
58
|
+
const readStream = fs.createReadStream(filePath, {
|
|
60
59
|
start: offset,
|
|
61
60
|
end: total,
|
|
62
61
|
});
|
|
@@ -69,7 +68,7 @@ export class FSStorageProvider {
|
|
|
69
68
|
return readStream;
|
|
70
69
|
}
|
|
71
70
|
async deleteObject(remotePath) {
|
|
72
|
-
await rm(this.getFullPath(remotePath), { force: true });
|
|
71
|
+
await fs.promises.rm(this.getFullPath(remotePath), { force: true });
|
|
73
72
|
}
|
|
74
73
|
async ensureDirectoryExists(directory, createIfNotExists = true) {
|
|
75
74
|
try {
|
|
@@ -87,26 +86,28 @@ export class FSStorageProvider {
|
|
|
87
86
|
async listObjects(remotePath) {
|
|
88
87
|
const fullPath = this.getFullPath(remotePath);
|
|
89
88
|
await this.ensureDirectoryExists(fullPath);
|
|
90
|
-
const dirents = await readdir(fullPath, { withFileTypes: true });
|
|
89
|
+
const dirents = await fs.promises.readdir(fullPath, { withFileTypes: true });
|
|
91
90
|
return Promise.all(dirents.map(async (dirent) => {
|
|
92
91
|
const direntPath = path.join(fullPath, dirent.name);
|
|
93
|
-
const direntStat = await stat(direntPath);
|
|
92
|
+
const direntStat = await fs.promises.stat(direntPath);
|
|
94
93
|
return {
|
|
95
94
|
name: dirent.name,
|
|
96
95
|
size: direntStat.size,
|
|
97
96
|
isFolder: dirent.isDirectory(),
|
|
98
97
|
createdAt: direntStat.birthtime,
|
|
99
|
-
...(dirent.isDirectory() && {
|
|
98
|
+
...(dirent.isDirectory() && {
|
|
99
|
+
childrenCount: (await fs.promises.readdir(direntPath)).length,
|
|
100
|
+
}),
|
|
100
101
|
};
|
|
101
102
|
}));
|
|
102
103
|
}
|
|
103
104
|
async getObjectSize(remotePath) {
|
|
104
|
-
const fileStat = await stat(this.getFullPath(remotePath));
|
|
105
|
+
const fileStat = await fs.promises.stat(this.getFullPath(remotePath));
|
|
105
106
|
return fileStat.size;
|
|
106
107
|
}
|
|
107
108
|
async getLastModified(remotePath) {
|
|
108
|
-
const fileStat = await stat(this.getFullPath(remotePath));
|
|
109
|
+
const fileStat = await fs.promises.stat(this.getFullPath(remotePath));
|
|
109
110
|
return fileStat.mtime;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtc3RvcmFnZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9mcy1zdG9yYWdlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUk3QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxNQUFNLE9BQU8saUJBQWlCO0lBQ1gsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBRWhDLFlBQVksV0FBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRU8sV0FBVyxDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGlCQUFpQixDQUN2QixXQUE0QixFQUM1QixZQUE2QixFQUM3QixhQUFxQixFQUNyQixnQkFBMkQ7UUFFM0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRXJCLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxXQUFXO2lCQUNSLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FB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
|