@dignetwork/dig-sdk 0.0.1-alpha.14 → 0.0.1-alpha.141
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/dist/DataIntegrityTree/DataIntegrityTree.d.ts +11 -2
- package/dist/DataIntegrityTree/DataIntegrityTree.d.ts.map +1 -1
- package/dist/DataIntegrityTree/DataIntegrityTree.js +106 -15
- package/dist/DigNetwork/ContentServer.d.ts +12 -5
- package/dist/DigNetwork/ContentServer.d.ts.map +1 -1
- package/dist/DigNetwork/ContentServer.js +172 -24
- package/dist/DigNetwork/DigNetwork.d.ts +6 -9
- package/dist/DigNetwork/DigNetwork.d.ts.map +1 -1
- package/dist/DigNetwork/DigNetwork.js +137 -189
- package/dist/DigNetwork/DigPeer.d.ts +8 -3
- package/dist/DigNetwork/DigPeer.d.ts.map +1 -1
- package/dist/DigNetwork/DigPeer.js +68 -115
- package/dist/DigNetwork/IncentiveServer.d.ts.map +1 -1
- package/dist/DigNetwork/IncentiveServer.js +6 -5
- package/dist/DigNetwork/PropagationServer.d.ts +83 -33
- package/dist/DigNetwork/PropagationServer.d.ts.map +1 -1
- package/dist/DigNetwork/PropagationServer.js +605 -356
- package/dist/blockchain/DataStore.d.ts +25 -7
- package/dist/blockchain/DataStore.d.ts.map +1 -1
- package/dist/blockchain/DataStore.js +114 -159
- package/dist/blockchain/DataStoreSerializer.d.ts +1 -1
- package/dist/blockchain/DataStoreSerializer.d.ts.map +1 -1
- package/dist/blockchain/FullNodePeer.d.ts +120 -18
- package/dist/blockchain/FullNodePeer.d.ts.map +1 -1
- package/dist/blockchain/FullNodePeer.js +441 -146
- package/dist/blockchain/ServerCoin.d.ts +13 -5
- package/dist/blockchain/ServerCoin.d.ts.map +1 -1
- package/dist/blockchain/ServerCoin.js +90 -28
- package/dist/blockchain/StoreMonitorRegistry.d.ts +85 -0
- package/dist/blockchain/StoreMonitorRegistry.d.ts.map +1 -0
- package/dist/blockchain/StoreMonitorRegistry.js +242 -0
- package/dist/blockchain/Wallet.d.ts +2 -2
- package/dist/blockchain/Wallet.d.ts.map +1 -1
- package/dist/blockchain/Wallet.js +50 -18
- package/dist/blockchain/coins.d.ts +1 -2
- package/dist/blockchain/coins.d.ts.map +1 -1
- package/dist/blockchain/coins.js +1 -55
- package/dist/blockchain/index.d.ts +1 -0
- package/dist/blockchain/index.d.ts.map +1 -1
- package/dist/blockchain/index.js +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/ContentScanner.d.ts +63 -0
- package/dist/utils/ContentScanner.d.ts.map +1 -0
- package/dist/utils/ContentScanner.js +175 -0
- package/dist/utils/Environment.d.ts +21 -0
- package/dist/utils/Environment.d.ts.map +1 -0
- package/dist/utils/Environment.js +92 -0
- package/dist/utils/FileCache.d.ts +1 -1
- package/dist/utils/FileCache.d.ts.map +1 -1
- package/dist/utils/FileCache.js +2 -2
- package/dist/utils/FileTransfer.d.ts +47 -0
- package/dist/utils/FileTransfer.d.ts.map +1 -0
- package/dist/utils/FileTransfer.js +209 -0
- package/dist/utils/NconfManager.js +2 -1
- package/dist/utils/StoreArchiveManager.d.ts +45 -0
- package/dist/utils/StoreArchiveManager.d.ts.map +1 -0
- package/dist/utils/StoreArchiveManager.js +153 -0
- package/dist/utils/config.d.ts +4 -3
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -7
- package/dist/utils/directoryUtils.d.ts.map +1 -1
- package/dist/utils/directoryUtils.js +9 -8
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/merkle.d.ts +2 -0
- package/dist/utils/merkle.d.ts.map +1 -0
- package/dist/utils/merkle.js +28 -0
- package/dist/utils/network.d.ts +1 -0
- package/dist/utils/network.d.ts.map +1 -1
- package/dist/utils/network.js +38 -11
- package/dist/utils/promiseUtils.d.ts +17 -0
- package/dist/utils/promiseUtils.d.ts.map +1 -0
- package/dist/utils/promiseUtils.js +38 -0
- package/dist/utils/ssl.js +2 -2
- package/package.json +17 -5
- package/dist/utils/deltaUtils.d.ts +0 -2
- package/dist/utils/deltaUtils.d.ts.map +0 -1
- package/dist/utils/deltaUtils.js +0 -83
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Readable } from "stream";
|
|
2
|
+
export declare class FileTransfer {
|
|
3
|
+
private static certPath;
|
|
4
|
+
private static keyPath;
|
|
5
|
+
constructor();
|
|
6
|
+
/** ------------------------ UPLOAD FUNCTIONALITY ------------------------ **/
|
|
7
|
+
/**
|
|
8
|
+
* Upload a file to the server using a stream.
|
|
9
|
+
* @param filePath - Local path of the file.
|
|
10
|
+
* @param uploadUrl - Server URL to upload the file.
|
|
11
|
+
* @param headers - Additional headers for the request.
|
|
12
|
+
* @returns Promise<void>
|
|
13
|
+
*/
|
|
14
|
+
uploadFile(filePath: string, uploadUrl: string, headers: Record<string, string>): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Perform a POST request.
|
|
17
|
+
* @param url - The URL to POST to.
|
|
18
|
+
* @param data - Data to send.
|
|
19
|
+
* @param headers - Headers for the POST request.
|
|
20
|
+
* @returns Promise<void>
|
|
21
|
+
*/
|
|
22
|
+
postRequest(url: string, data: string, headers: Record<string, string>): Promise<void>;
|
|
23
|
+
/** ------------------------ DOWNLOAD FUNCTIONALITY ------------------------ **/
|
|
24
|
+
/**
|
|
25
|
+
* Download data from a URL.
|
|
26
|
+
* @param url - The URL to download data from.
|
|
27
|
+
* @returns Promise<string>
|
|
28
|
+
*/
|
|
29
|
+
downloadData(url: string): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Stream data from a URL.
|
|
32
|
+
* @param url - The URL to stream data from.
|
|
33
|
+
* @returns Promise<Readable>
|
|
34
|
+
*/
|
|
35
|
+
streamData(url: string): Promise<Readable>;
|
|
36
|
+
/** ------------------------ HEAD REQUEST FUNCTIONALITY ------------------------ **/
|
|
37
|
+
/**
|
|
38
|
+
* Perform a HEAD request to check if a resource exists on the server.
|
|
39
|
+
* @param url - The URL to check.
|
|
40
|
+
* @returns Promise<{ success: boolean; headers?: Record<string, string> }>
|
|
41
|
+
*/
|
|
42
|
+
headRequest(url: string): Promise<{
|
|
43
|
+
success: boolean;
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=FileTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTransfer.d.ts","sourceRoot":"","sources":["../../src/utils/FileTransfer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAS;;IAU/B,8EAA8E;IAE9E;;;;;;OAMG;IACU,UAAU,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IA0ChB;;;;;;OAMG;IACU,WAAW,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;IAsChB,gFAAgF;IAEhF;;;;OAIG;IACU,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0CvD;;;;OAIG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuCvD,oFAAoF;IAEpF;;;;OAIG;IACU,WAAW,CACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CA8BnE"}
|
|
@@ -0,0 +1,209 @@
|
|
|
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.FileTransfer = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const https_1 = __importDefault(require("https"));
|
|
9
|
+
const url_1 = require("url");
|
|
10
|
+
const ssl_1 = require("../utils/ssl");
|
|
11
|
+
class FileTransfer {
|
|
12
|
+
constructor() {
|
|
13
|
+
if (!FileTransfer.certPath || !FileTransfer.keyPath) {
|
|
14
|
+
const { certPath, keyPath } = (0, ssl_1.getOrCreateSSLCerts)();
|
|
15
|
+
FileTransfer.certPath = certPath;
|
|
16
|
+
FileTransfer.keyPath = keyPath;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** ------------------------ UPLOAD FUNCTIONALITY ------------------------ **/
|
|
20
|
+
/**
|
|
21
|
+
* Upload a file to the server using a stream.
|
|
22
|
+
* @param filePath - Local path of the file.
|
|
23
|
+
* @param uploadUrl - Server URL to upload the file.
|
|
24
|
+
* @param headers - Additional headers for the request.
|
|
25
|
+
* @returns Promise<void>
|
|
26
|
+
*/
|
|
27
|
+
async uploadFile(filePath, uploadUrl, headers) {
|
|
28
|
+
const fileStream = fs_1.default.createReadStream(filePath);
|
|
29
|
+
const fileSize = fs_1.default.statSync(filePath).size;
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const url = new url_1.URL(uploadUrl);
|
|
32
|
+
const options = {
|
|
33
|
+
hostname: url.hostname,
|
|
34
|
+
port: url.port || 443,
|
|
35
|
+
path: url.pathname,
|
|
36
|
+
method: "PUT",
|
|
37
|
+
headers: {
|
|
38
|
+
...headers,
|
|
39
|
+
"Content-Type": "application/octet-stream",
|
|
40
|
+
"Content-Length": fileSize,
|
|
41
|
+
},
|
|
42
|
+
key: fs_1.default.readFileSync(FileTransfer.keyPath),
|
|
43
|
+
cert: fs_1.default.readFileSync(FileTransfer.certPath),
|
|
44
|
+
rejectUnauthorized: false,
|
|
45
|
+
};
|
|
46
|
+
const req = https_1.default.request(options, (res) => {
|
|
47
|
+
if (res.statusCode === 200) {
|
|
48
|
+
resolve();
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
reject(new Error(`Upload failed with status ${res.statusCode}: ${res.statusMessage}`));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
req.on("error", (err) => reject(err));
|
|
55
|
+
fileStream.pipe(req);
|
|
56
|
+
fileStream.on("error", (err) => reject(err));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Perform a POST request.
|
|
61
|
+
* @param url - The URL to POST to.
|
|
62
|
+
* @param data - Data to send.
|
|
63
|
+
* @param headers - Headers for the POST request.
|
|
64
|
+
* @returns Promise<void>
|
|
65
|
+
*/
|
|
66
|
+
async postRequest(url, data, headers) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
const urlObj = new url_1.URL(url);
|
|
69
|
+
const options = {
|
|
70
|
+
hostname: urlObj.hostname,
|
|
71
|
+
port: urlObj.port || 443,
|
|
72
|
+
path: urlObj.pathname,
|
|
73
|
+
method: "POST",
|
|
74
|
+
headers: {
|
|
75
|
+
...headers,
|
|
76
|
+
"Content-Type": "application/json",
|
|
77
|
+
"Content-Length": Buffer.byteLength(data),
|
|
78
|
+
},
|
|
79
|
+
key: fs_1.default.readFileSync(FileTransfer.keyPath),
|
|
80
|
+
cert: fs_1.default.readFileSync(FileTransfer.certPath),
|
|
81
|
+
rejectUnauthorized: false,
|
|
82
|
+
};
|
|
83
|
+
const req = https_1.default.request(options, (res) => {
|
|
84
|
+
if (res.statusCode === 200) {
|
|
85
|
+
resolve();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
reject(new Error(`POST request failed with status ${res.statusCode}: ${res.statusMessage}`));
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
req.on("error", (err) => reject(err));
|
|
92
|
+
req.write(data);
|
|
93
|
+
req.end();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** ------------------------ DOWNLOAD FUNCTIONALITY ------------------------ **/
|
|
97
|
+
/**
|
|
98
|
+
* Download data from a URL.
|
|
99
|
+
* @param url - The URL to download data from.
|
|
100
|
+
* @returns Promise<string>
|
|
101
|
+
*/
|
|
102
|
+
async downloadData(url) {
|
|
103
|
+
return new Promise((resolve, reject) => {
|
|
104
|
+
const urlObj = new url_1.URL(url);
|
|
105
|
+
const options = {
|
|
106
|
+
hostname: urlObj.hostname,
|
|
107
|
+
port: urlObj.port || 443,
|
|
108
|
+
path: urlObj.pathname + urlObj.search,
|
|
109
|
+
method: "GET",
|
|
110
|
+
key: fs_1.default.readFileSync(FileTransfer.keyPath),
|
|
111
|
+
cert: fs_1.default.readFileSync(FileTransfer.certPath),
|
|
112
|
+
rejectUnauthorized: false,
|
|
113
|
+
};
|
|
114
|
+
const req = https_1.default.request(options, (res) => {
|
|
115
|
+
let data = "";
|
|
116
|
+
if (res.statusCode === 200) {
|
|
117
|
+
res.on("data", (chunk) => (data += chunk));
|
|
118
|
+
res.on("end", () => resolve(data));
|
|
119
|
+
}
|
|
120
|
+
else if (res.statusCode === 301 || res.statusCode === 302) {
|
|
121
|
+
const redirectUrl = res.headers.location;
|
|
122
|
+
if (redirectUrl) {
|
|
123
|
+
this.downloadData(redirectUrl).then(resolve).catch(reject);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
reject(new Error("Redirected without a location header"));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
reject(new Error(`Failed to retrieve data from ${url}. Status code: ${res.statusCode}`));
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
req.on("error", (error) => reject(error));
|
|
134
|
+
req.end();
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Stream data from a URL.
|
|
139
|
+
* @param url - The URL to stream data from.
|
|
140
|
+
* @returns Promise<Readable>
|
|
141
|
+
*/
|
|
142
|
+
async streamData(url) {
|
|
143
|
+
return new Promise((resolve, reject) => {
|
|
144
|
+
const urlObj = new url_1.URL(url);
|
|
145
|
+
const options = {
|
|
146
|
+
hostname: urlObj.hostname,
|
|
147
|
+
port: urlObj.port || 443,
|
|
148
|
+
path: urlObj.pathname + urlObj.search,
|
|
149
|
+
method: "GET",
|
|
150
|
+
key: fs_1.default.readFileSync(FileTransfer.keyPath),
|
|
151
|
+
cert: fs_1.default.readFileSync(FileTransfer.certPath),
|
|
152
|
+
rejectUnauthorized: false,
|
|
153
|
+
};
|
|
154
|
+
const req = https_1.default.request(options, (res) => {
|
|
155
|
+
if (res.statusCode === 200) {
|
|
156
|
+
resolve(res); // Return the readable stream
|
|
157
|
+
}
|
|
158
|
+
else if (res.statusCode === 301 || res.statusCode === 302) {
|
|
159
|
+
const redirectUrl = res.headers.location;
|
|
160
|
+
if (redirectUrl) {
|
|
161
|
+
this.streamData(redirectUrl).then(resolve).catch(reject);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
reject(new Error("Redirected without a location header"));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
reject(new Error(`Failed to retrieve stream from ${url}. Status code: ${res.statusCode}`));
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
req.on("error", (error) => reject(error));
|
|
172
|
+
req.end();
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/** ------------------------ HEAD REQUEST FUNCTIONALITY ------------------------ **/
|
|
176
|
+
/**
|
|
177
|
+
* Perform a HEAD request to check if a resource exists on the server.
|
|
178
|
+
* @param url - The URL to check.
|
|
179
|
+
* @returns Promise<{ success: boolean; headers?: Record<string, string> }>
|
|
180
|
+
*/
|
|
181
|
+
async headRequest(url) {
|
|
182
|
+
return new Promise((resolve, reject) => {
|
|
183
|
+
const urlObj = new url_1.URL(url);
|
|
184
|
+
const options = {
|
|
185
|
+
hostname: urlObj.hostname,
|
|
186
|
+
port: urlObj.port || 443,
|
|
187
|
+
path: urlObj.pathname,
|
|
188
|
+
method: "HEAD",
|
|
189
|
+
key: fs_1.default.readFileSync(FileTransfer.keyPath),
|
|
190
|
+
cert: fs_1.default.readFileSync(FileTransfer.certPath),
|
|
191
|
+
rejectUnauthorized: false,
|
|
192
|
+
};
|
|
193
|
+
const req = https_1.default.request(options, (res) => {
|
|
194
|
+
if (res.statusCode === 200) {
|
|
195
|
+
resolve({
|
|
196
|
+
success: true,
|
|
197
|
+
headers: res.headers,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
resolve({ success: false });
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
req.on("error", (err) => reject(err));
|
|
205
|
+
req.end();
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.FileTransfer = FileTransfer;
|
|
@@ -8,7 +8,8 @@ const nconf_1 = __importDefault(require("nconf"));
|
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const config_1 = require("./config");
|
|
11
|
-
const
|
|
11
|
+
const Environment_1 = require("./Environment");
|
|
12
|
+
const CONF_FOLDER_PATH = Environment_1.Environment.DIG_FOLDER_PATH || config_1.USER_DIR_PATH;
|
|
12
13
|
class NconfManager {
|
|
13
14
|
constructor(relativePath) {
|
|
14
15
|
this.configFilePath = path_1.default.join(CONF_FOLDER_PATH, relativePath);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class for managing file archiving, extraction, and working with the 'data' folder.
|
|
3
|
+
*/
|
|
4
|
+
declare class StoreArchiveManager {
|
|
5
|
+
private archivePath;
|
|
6
|
+
private outputStream;
|
|
7
|
+
/**
|
|
8
|
+
* Constructor that initializes the FileArchiveManager with a given path.
|
|
9
|
+
* @param archivePath - The path where the archive will be created.
|
|
10
|
+
*/
|
|
11
|
+
constructor(archivePath: string);
|
|
12
|
+
/**
|
|
13
|
+
* Creates the archive at the specified path.
|
|
14
|
+
* @returns Promise<void>
|
|
15
|
+
*/
|
|
16
|
+
createArchive(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Streams a file into the archive.
|
|
19
|
+
* @param filePath - The file to add to the archive.
|
|
20
|
+
* @param fileNameInArchive - The name the file should have inside the archive.
|
|
21
|
+
* @returns Promise<void>
|
|
22
|
+
*/
|
|
23
|
+
addFileToArchive(filePath: string, fileNameInArchive: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Extracts a file from the archive to a specified directory.
|
|
26
|
+
* @param extractToPath - The path where the file should be extracted.
|
|
27
|
+
* @returns Promise<void>
|
|
28
|
+
*/
|
|
29
|
+
extractArchive(extractToPath: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Merges another archive into the current one.
|
|
32
|
+
* Extracts files from the given archive and adds them into the current archive.
|
|
33
|
+
* @param archiveToMergePath - The path of the archive to be merged.
|
|
34
|
+
* @returns Promise<void>
|
|
35
|
+
*/
|
|
36
|
+
mergeArchive(archiveToMergePath: string): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Adds extracted files to the current archive.
|
|
39
|
+
* @param extractedFolderPath - The path of the folder containing extracted files.
|
|
40
|
+
* @returns Promise<void>
|
|
41
|
+
*/
|
|
42
|
+
private addExtractedFilesToArchive;
|
|
43
|
+
}
|
|
44
|
+
export default StoreArchiveManager;
|
|
45
|
+
//# sourceMappingURL=StoreArchiveManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreArchiveManager.d.ts","sourceRoot":"","sources":["../../src/utils/StoreArchiveManager.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,cAAM,mBAAmB;IACrB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAwB;IAE5C;;;OAGG;gBACS,WAAW,EAAE,MAAM;IAK/B;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB3C;;;;;OAKG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzF;;;;OAIG;IACU,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;;;;OAKG;IACU,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpE;;;;OAIG;YACW,0BAA0B;CAkB3C;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
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
|
+
const fs = __importStar(require("fs"));
|
|
27
|
+
const path = __importStar(require("path"));
|
|
28
|
+
const archiver = __importStar(require("archiver"));
|
|
29
|
+
const unzipper = __importStar(require("unzipper"));
|
|
30
|
+
/**
|
|
31
|
+
* Class for managing file archiving, extraction, and working with the 'data' folder.
|
|
32
|
+
*/
|
|
33
|
+
class StoreArchiveManager {
|
|
34
|
+
/**
|
|
35
|
+
* Constructor that initializes the FileArchiveManager with a given path.
|
|
36
|
+
* @param archivePath - The path where the archive will be created.
|
|
37
|
+
*/
|
|
38
|
+
constructor(archivePath) {
|
|
39
|
+
this.archivePath = archivePath;
|
|
40
|
+
this.outputStream = null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Creates the archive at the specified path.
|
|
44
|
+
* @returns Promise<void>
|
|
45
|
+
*/
|
|
46
|
+
async createArchive() {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
this.outputStream = fs.createWriteStream(this.archivePath);
|
|
49
|
+
// @ts-ignore
|
|
50
|
+
const archive = archiver('zip', {
|
|
51
|
+
zlib: { level: 9 }
|
|
52
|
+
});
|
|
53
|
+
this.outputStream.on('close', () => {
|
|
54
|
+
console.log(`${archive.pointer()} total bytes`);
|
|
55
|
+
console.log('Archive has been finalized and output file descriptor has closed.');
|
|
56
|
+
resolve();
|
|
57
|
+
});
|
|
58
|
+
archive.on('error', (err) => {
|
|
59
|
+
reject(err);
|
|
60
|
+
});
|
|
61
|
+
archive.pipe(this.outputStream);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Streams a file into the archive.
|
|
66
|
+
* @param filePath - The file to add to the archive.
|
|
67
|
+
* @param fileNameInArchive - The name the file should have inside the archive.
|
|
68
|
+
* @returns Promise<void>
|
|
69
|
+
*/
|
|
70
|
+
async addFileToArchive(filePath, fileNameInArchive) {
|
|
71
|
+
if (!this.outputStream) {
|
|
72
|
+
throw new Error('Archive not yet created.');
|
|
73
|
+
}
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
const archive = archiver('zip', { zlib: { level: 9 } });
|
|
77
|
+
const fileStream = fs.createReadStream(filePath);
|
|
78
|
+
archive.append(fileStream, { name: fileNameInArchive });
|
|
79
|
+
archive.finalize();
|
|
80
|
+
archive.on('finish', resolve);
|
|
81
|
+
archive.on('error', reject);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Extracts a file from the archive to a specified directory.
|
|
86
|
+
* @param extractToPath - The path where the file should be extracted.
|
|
87
|
+
* @returns Promise<void>
|
|
88
|
+
*/
|
|
89
|
+
async extractArchive(extractToPath) {
|
|
90
|
+
return new Promise((resolve, reject) => {
|
|
91
|
+
fs.createReadStream(this.archivePath)
|
|
92
|
+
.pipe(unzipper.Extract({ path: extractToPath }))
|
|
93
|
+
.on('close', resolve)
|
|
94
|
+
.on('error', reject);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Merges another archive into the current one.
|
|
99
|
+
* Extracts files from the given archive and adds them into the current archive.
|
|
100
|
+
* @param archiveToMergePath - The path of the archive to be merged.
|
|
101
|
+
* @returns Promise<void>
|
|
102
|
+
*/
|
|
103
|
+
async mergeArchive(archiveToMergePath) {
|
|
104
|
+
if (!this.outputStream) {
|
|
105
|
+
throw new Error('Archive not yet created.');
|
|
106
|
+
}
|
|
107
|
+
return new Promise((resolve, reject) => {
|
|
108
|
+
const tempExtractPath = path.join(__dirname, 'tempExtract');
|
|
109
|
+
// Ensure the temp directory exists
|
|
110
|
+
if (!fs.existsSync(tempExtractPath)) {
|
|
111
|
+
fs.mkdirSync(tempExtractPath);
|
|
112
|
+
}
|
|
113
|
+
// Step 1: Extract the contents of the archive to be merged
|
|
114
|
+
fs.createReadStream(archiveToMergePath)
|
|
115
|
+
.pipe(unzipper.Extract({ path: tempExtractPath }))
|
|
116
|
+
.on('close', async () => {
|
|
117
|
+
try {
|
|
118
|
+
// Step 2: Read the extracted files and add them to the current archive
|
|
119
|
+
await this.addExtractedFilesToArchive(tempExtractPath);
|
|
120
|
+
// Clean up: Delete the temporary directory
|
|
121
|
+
fs.rmSync(tempExtractPath, { recursive: true, force: true });
|
|
122
|
+
resolve();
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
reject(error);
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
.on('error', reject);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Adds extracted files to the current archive.
|
|
133
|
+
* @param extractedFolderPath - The path of the folder containing extracted files.
|
|
134
|
+
* @returns Promise<void>
|
|
135
|
+
*/
|
|
136
|
+
async addExtractedFilesToArchive(extractedFolderPath) {
|
|
137
|
+
const files = fs.readdirSync(extractedFolderPath);
|
|
138
|
+
for (const file of files) {
|
|
139
|
+
const fullFilePath = path.join(extractedFolderPath, file);
|
|
140
|
+
const stat = fs.statSync(fullFilePath);
|
|
141
|
+
if (stat.isFile()) {
|
|
142
|
+
const relativePath = path.relative(extractedFolderPath, fullFilePath);
|
|
143
|
+
// Add the file into the current archive
|
|
144
|
+
await this.addFileToArchive(fullFilePath, relativePath);
|
|
145
|
+
}
|
|
146
|
+
else if (stat.isDirectory()) {
|
|
147
|
+
// Recursively add files from nested directories
|
|
148
|
+
await this.addExtractedFilesToArchive(fullFilePath);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.default = StoreArchiveManager;
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DigConfig } from "../types";
|
|
2
2
|
export declare const NETWORK_AGG_SIG_DATA = "ccd5bb71183532bff220ba46c268991a3ff07eb358e8255a65c30a2dce0e5fbb";
|
|
3
|
+
export declare const MAIN_NET_GENISES_CHALLENGE = "ccd5bb71183532bff220ba46c268991a3ff07eb358e8255a65c30a2dce0e5fbb";
|
|
3
4
|
export declare const MIN_HEIGHT = 5777842;
|
|
4
5
|
export declare const MIN_HEIGHT_HEADER_HASH = "b29a4daac2434fd17a36e15ba1aac5d65012d4a66f99bed0bf2b5342e92e562c";
|
|
5
6
|
export declare const DIG_FOLDER_PATH: string;
|
|
6
7
|
export declare const STORE_PATH: string;
|
|
7
8
|
export declare const USER_DIR_PATH: string;
|
|
8
9
|
export declare const CONFIG_FILE_PATH: string;
|
|
9
|
-
export declare const getManifestFilePath: (storeId: string) => string;
|
|
10
10
|
export declare const getHeightFilePath: (storeId: string) => string;
|
|
11
11
|
export declare const createInitialConfig: () => void;
|
|
12
12
|
export declare const setRemote: (remote: string) => void;
|
|
@@ -20,9 +20,10 @@ export declare const getCoinState: (storeId: string) => {
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
|
-
* Retrieves
|
|
23
|
+
* Retrieves the list of valid store folders.
|
|
24
|
+
* If the STORE_PATH directory does not exist, it is created.
|
|
24
25
|
*
|
|
25
|
-
* @returns {string[]} An array of valid folder names.
|
|
26
|
+
* @returns {string[]} An array of valid store folder names.
|
|
26
27
|
*/
|
|
27
28
|
export declare const getStoresList: () => string[];
|
|
28
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAMrC,eAAO,MAAM,oBAAoB,qEACmC,CAAC;AAErE,eAAO,MAAM,0BAA0B,qEAAuB,CAAC;AAE/D,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,sBAAsB,qEACiC,CAAC;AAErE,eAAO,MAAM,eAAe,QACqC,CAAC;AAElE,eAAO,MAAM,UAAU,QAAuC,CAAC;AAE/D,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAE9E,eAAO,MAAM,iBAAiB,YAAa,MAAM,KAAG,MACL,CAAC;AAEhD,eAAO,MAAM,mBAAmB,QAAO,IAItC,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,KAAG,IAQ1C,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,MAAM,KAAG,IAQhD,CAAC;AAqBF,eAAO,MAAM,YAAY,YACd,MAAM,KACd;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CAYH,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,EAYtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAkC9D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,YAAa,MAAM,KAAG,SAS/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,SAoBjD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,YACjB,MAAM,OACV,MAAM,SACJ,GAAG,KACT,IAMF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,YAAa,MAAM,OAAO,MAAM,KAAG,IAcjE,CAAC"}
|
package/dist/utils/config.js
CHANGED
|
@@ -26,20 +26,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.deleteDigConfigKey = exports.setDigConfigKey = exports.ensureDigConfig = exports.loadDigConfig = exports.getActiveStoreId = exports.getStoresList = exports.getCoinState = exports.setActiveStore = exports.setRemote = exports.createInitialConfig = exports.getHeightFilePath = exports.
|
|
29
|
+
exports.deleteDigConfigKey = exports.setDigConfigKey = exports.ensureDigConfig = exports.loadDigConfig = exports.getActiveStoreId = exports.getStoresList = exports.getCoinState = exports.setActiveStore = exports.setRemote = exports.createInitialConfig = exports.getHeightFilePath = exports.CONFIG_FILE_PATH = exports.USER_DIR_PATH = exports.STORE_PATH = exports.DIG_FOLDER_PATH = exports.MIN_HEIGHT_HEADER_HASH = exports.MIN_HEIGHT = exports.MAIN_NET_GENISES_CHALLENGE = exports.NETWORK_AGG_SIG_DATA = void 0;
|
|
30
30
|
const fs = __importStar(require("fs"));
|
|
31
31
|
const path = __importStar(require("path"));
|
|
32
32
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
33
33
|
const os_1 = __importDefault(require("os"));
|
|
34
|
+
const Environment_1 = require("./Environment");
|
|
34
35
|
exports.NETWORK_AGG_SIG_DATA = "ccd5bb71183532bff220ba46c268991a3ff07eb358e8255a65c30a2dce0e5fbb";
|
|
36
|
+
exports.MAIN_NET_GENISES_CHALLENGE = exports.NETWORK_AGG_SIG_DATA;
|
|
35
37
|
exports.MIN_HEIGHT = 5777842;
|
|
36
38
|
exports.MIN_HEIGHT_HEADER_HASH = "b29a4daac2434fd17a36e15ba1aac5d65012d4a66f99bed0bf2b5342e92e562c";
|
|
37
|
-
exports.DIG_FOLDER_PATH =
|
|
39
|
+
exports.DIG_FOLDER_PATH = Environment_1.Environment.DIG_FOLDER_PATH || path.join(process.cwd(), ".dig");
|
|
38
40
|
exports.STORE_PATH = path.join(exports.DIG_FOLDER_PATH, "stores");
|
|
39
41
|
exports.USER_DIR_PATH = path.join(os_1.default.homedir(), ".dig");
|
|
40
42
|
exports.CONFIG_FILE_PATH = path.join(exports.DIG_FOLDER_PATH, "dig.config.json");
|
|
41
|
-
const getManifestFilePath = (storeId) => path.join(exports.STORE_PATH, storeId, "manifest.dat");
|
|
42
|
-
exports.getManifestFilePath = getManifestFilePath;
|
|
43
43
|
const getHeightFilePath = (storeId) => path.join(exports.STORE_PATH, storeId, "height.json");
|
|
44
44
|
exports.getHeightFilePath = getHeightFilePath;
|
|
45
45
|
const createInitialConfig = () => {
|
|
@@ -94,11 +94,16 @@ const getCoinState = (storeId) => {
|
|
|
94
94
|
};
|
|
95
95
|
exports.getCoinState = getCoinState;
|
|
96
96
|
/**
|
|
97
|
-
* Retrieves
|
|
97
|
+
* Retrieves the list of valid store folders.
|
|
98
|
+
* If the STORE_PATH directory does not exist, it is created.
|
|
98
99
|
*
|
|
99
|
-
* @returns {string[]} An array of valid folder names.
|
|
100
|
+
* @returns {string[]} An array of valid store folder names.
|
|
100
101
|
*/
|
|
101
102
|
const getStoresList = () => {
|
|
103
|
+
// Check if the STORE_PATH exists, create it if not
|
|
104
|
+
if (!fs.existsSync(exports.STORE_PATH)) {
|
|
105
|
+
fs.mkdirSync(exports.STORE_PATH, { recursive: true });
|
|
106
|
+
}
|
|
102
107
|
const folders = fs.readdirSync(exports.STORE_PATH);
|
|
103
108
|
return folders.filter((folder) => /^[a-f0-9]{64}$/.test(folder) &&
|
|
104
109
|
fs.lstatSync(path.join(exports.STORE_PATH, folder)).isDirectory());
|
|
@@ -123,7 +128,7 @@ const getActiveStoreId = async () => {
|
|
|
123
128
|
return Buffer.from(config.active_store, "hex");
|
|
124
129
|
}
|
|
125
130
|
const validFolders = (0, exports.getStoresList)();
|
|
126
|
-
if (validFolders.length === 1 ||
|
|
131
|
+
if (validFolders.length === 1 || Environment_1.Environment.REMOTE_NODE) {
|
|
127
132
|
// If only one valid folder exists, set it as the active_store and return it
|
|
128
133
|
config.active_store = validFolders[0];
|
|
129
134
|
fs.writeFileSync(configFilePath, JSON.stringify(config, null, 4));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directoryUtils.d.ts","sourceRoot":"","sources":["../../src/utils/directoryUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"directoryUtils.d.ts","sourceRoot":"","sources":["../../src/utils/directoryUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA+BzD,eAAO,MAAM,YAAY,cACZ,iBAAiB,WACnB,MAAM,YACN,MAAM,KACd,OAAO,CAAC,IAAI,CA4Cd,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAiBxD,CAAC"}
|
|
@@ -32,22 +32,23 @@ const fs = __importStar(require("fs"));
|
|
|
32
32
|
const ignore_1 = __importDefault(require("ignore"));
|
|
33
33
|
// Custom concurrency handler
|
|
34
34
|
const limitConcurrency = async (concurrencyLimit, tasks) => {
|
|
35
|
-
const results = [];
|
|
36
35
|
const executing = [];
|
|
37
36
|
for (const task of tasks) {
|
|
38
37
|
const p = task();
|
|
39
|
-
|
|
38
|
+
// Add the new task to the executing array
|
|
39
|
+
executing.push(p);
|
|
40
|
+
// When a task completes, remove it from the executing array
|
|
41
|
+
const cleanup = p.finally(() => {
|
|
42
|
+
executing.splice(executing.indexOf(cleanup), 1);
|
|
43
|
+
});
|
|
40
44
|
// Once the limit is reached, wait for one to complete
|
|
41
45
|
if (executing.length >= concurrencyLimit) {
|
|
46
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
42
47
|
await Promise.race(executing);
|
|
43
48
|
}
|
|
44
|
-
// Add the new task to the executing array
|
|
45
|
-
executing.push(p);
|
|
46
|
-
// When a task completes, remove it from the executing array
|
|
47
|
-
p.finally(() => executing.splice(executing.indexOf(p), 1));
|
|
48
49
|
}
|
|
49
50
|
// Wait for all remaining tasks to complete
|
|
50
|
-
return Promise.all(
|
|
51
|
+
return Promise.all(executing);
|
|
51
52
|
};
|
|
52
53
|
const addDirectory = async (datalayer, dirPath, baseDir = dirPath) => {
|
|
53
54
|
const ig = (0, ignore_1.default)();
|
|
@@ -77,7 +78,7 @@ const addDirectory = async (datalayer, dirPath, baseDir = dirPath) => {
|
|
|
77
78
|
const stream = fs.createReadStream(filePath);
|
|
78
79
|
datalayer
|
|
79
80
|
.upsertKey(stream, Buffer.from(relativePath).toString("hex"))
|
|
80
|
-
.then(resolve)
|
|
81
|
+
.then(() => resolve())
|
|
81
82
|
.catch(reject);
|
|
82
83
|
}));
|
|
83
84
|
}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './config';
|
|
2
2
|
export * from './connectionUtils';
|
|
3
3
|
export * from './credentialsUtils';
|
|
4
|
-
export * from './deltaUtils';
|
|
5
4
|
export * from './directoryUtils';
|
|
6
5
|
export * from './encryption';
|
|
7
6
|
export * from './FileCache';
|
|
@@ -11,4 +10,6 @@ export * from './network';
|
|
|
11
10
|
export * from './spinnerUtils';
|
|
12
11
|
export * from './ssl';
|
|
13
12
|
export * from './validationUtils';
|
|
13
|
+
export * from './Environment';
|
|
14
|
+
export * from './promiseUtils';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./config"), exports);
|
|
18
18
|
__exportStar(require("./connectionUtils"), exports);
|
|
19
19
|
__exportStar(require("./credentialsUtils"), exports);
|
|
20
|
-
__exportStar(require("./deltaUtils"), exports);
|
|
21
20
|
__exportStar(require("./directoryUtils"), exports);
|
|
22
21
|
__exportStar(require("./encryption"), exports);
|
|
23
22
|
__exportStar(require("./FileCache"), exports);
|
|
@@ -27,3 +26,5 @@ __exportStar(require("./network"), exports);
|
|
|
27
26
|
__exportStar(require("./spinnerUtils"), exports);
|
|
28
27
|
__exportStar(require("./ssl"), exports);
|
|
29
28
|
__exportStar(require("./validationUtils"), exports);
|
|
29
|
+
__exportStar(require("./Environment"), exports);
|
|
30
|
+
__exportStar(require("./promiseUtils"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../../src/utils/merkle.ts"],"names":[],"mappings":"AAIA,wBAAsB,oBAAoB,CACtC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA6BlB"}
|