sliftutils 1.7.70 → 1.7.72
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/treeSummary.ts.cache +2 -2
- package/index.d.ts +505 -257
- package/misc/dist/environment.ts.cache +2 -2
- package/misc/dist/getSecret.ts.cache +2 -2
- package/misc/dist/strings.ts.cache +2 -2
- package/misc/dist/zip.ts.cache +2 -2
- package/misc/https/dist/certs.ts.cache +2 -2
- package/misc/https/dist/hostServer.ts.cache +5 -2
- package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
- package/package.json +1 -1
- package/render-utils/dist/observer.tsx.cache +2 -2
- package/spec.txt +10 -0
- package/storage/ArchivesDisk.d.ts +4 -13
- package/storage/ArchivesDisk.ts +6 -4
- package/storage/BulkDatabase2/dist/BulkDatabaseBase.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseFormat.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseMerge.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/BulkDatabaseReader.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/LoadedIndex.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/WriteOverlay.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/blockCache.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/mergeLock.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/mergeMarkers.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/streamLog.ts.cache +2 -2
- package/storage/BulkDatabase2/dist/syncClient.ts.cache +2 -2
- package/storage/IArchives.d.ts +14 -10
- package/storage/IArchives.ts +16 -4
- package/storage/backblaze.d.ts +3 -9
- package/storage/backblaze.ts +22 -19
- package/storage/dist/ArchivesDisk.ts.cache +6 -3
- package/storage/dist/FileFolderAPI.tsx.cache +2 -2
- package/storage/dist/IArchives.ts.cache +18 -4
- package/storage/dist/IndexedDBFileFolderAPI.ts.cache +2 -2
- package/storage/dist/JSONStorage.ts.cache +2 -2
- package/storage/dist/PendingManager.tsx.cache +2 -2
- package/storage/dist/TransactionStorage.ts.cache +2 -2
- package/storage/dist/backblaze.ts.cache +36 -27
- package/storage/dist/fileSystemPointer.ts.cache +2 -2
- package/storage/dist/remoteFileStorage.ts.cache +2 -2
- package/storage/remoteStorage/ArchivesRemote.d.ts +5 -9
- package/storage/remoteStorage/ArchivesRemote.ts +25 -20
- package/storage/remoteStorage/ArchivesUrl.d.ts +3 -9
- package/storage/remoteStorage/ArchivesUrl.ts +7 -5
- package/storage/remoteStorage/accessPage.tsx +4 -4
- package/storage/remoteStorage/accessStats.d.ts +2 -0
- package/storage/remoteStorage/accessStats.ts +32 -0
- package/storage/remoteStorage/blobStore.d.ts +193 -88
- package/storage/remoteStorage/blobStore.ts +535 -400
- package/storage/remoteStorage/bucketDisk.d.ts +18 -0
- package/storage/remoteStorage/bucketDisk.ts +66 -0
- package/storage/remoteStorage/createArchives.d.ts +4 -10
- package/storage/remoteStorage/createArchives.ts +102 -63
- package/storage/remoteStorage/dist/ArchivesRemote.ts.cache +29 -20
- package/storage/remoteStorage/dist/ArchivesUrl.ts.cache +8 -5
- package/storage/remoteStorage/dist/accessPage.tsx.cache +6 -6
- package/storage/remoteStorage/dist/accessStats.ts.cache +39 -4
- package/storage/remoteStorage/dist/blobStore.ts.cache +517 -375
- package/storage/remoteStorage/dist/bucketDisk.ts.cache +72 -0
- package/storage/remoteStorage/dist/cliArgs.ts.cache +2 -2
- package/storage/remoteStorage/dist/createArchives.ts.cache +112 -58
- package/storage/remoteStorage/dist/deployTakeover.ts.cache +2 -2
- package/storage/remoteStorage/dist/intermediateSources.ts.cache +13 -13
- package/storage/remoteStorage/dist/remoteConfig.ts.cache +19 -3
- package/storage/remoteStorage/dist/serverConfig.ts.cache +116 -0
- package/storage/remoteStorage/dist/sourceWrapper.ts.cache +7 -6
- package/storage/remoteStorage/dist/sourcesList.ts.cache +6 -3
- package/storage/remoteStorage/dist/storageClientController.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageController.ts.cache +224 -191
- package/storage/remoteStorage/dist/storageServer.ts.cache +9 -9
- package/storage/remoteStorage/dist/storageServerState.ts.cache +330 -567
- package/storage/remoteStorage/dist/storePlan.ts.cache +149 -0
- package/storage/remoteStorage/dist/validation.ts.cache +40 -0
- package/storage/remoteStorage/grantAccessCli.ts +1 -1
- package/storage/remoteStorage/intermediateSources.d.ts +3 -5
- package/storage/remoteStorage/intermediateSources.ts +14 -16
- package/storage/remoteStorage/remoteConfig.d.ts +2 -2
- package/storage/remoteStorage/remoteConfig.ts +19 -3
- package/storage/remoteStorage/serverConfig.d.ts +27 -0
- package/storage/remoteStorage/serverConfig.ts +109 -0
- package/storage/remoteStorage/sourceWrapper.d.ts +3 -3
- package/storage/remoteStorage/sourceWrapper.ts +7 -6
- package/storage/remoteStorage/sourcesList.ts +3 -0
- package/storage/remoteStorage/storageController.d.ts +118 -36
- package/storage/remoteStorage/storageController.ts +166 -168
- package/storage/remoteStorage/storageServer.ts +1 -1
- package/storage/remoteStorage/storageServerState.d.ts +52 -63
- package/storage/remoteStorage/storageServerState.ts +340 -584
- package/storage/remoteStorage/storePlan.d.ts +34 -0
- package/storage/remoteStorage/storePlan.ts +166 -0
- package/storage/remoteStorage/validation.d.ts +4 -0
- package/storage/remoteStorage/validation.ts +31 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
6
|
+
//exports.getDiskInfo = exports.getRoutingFileResult = exports.readRoutingFromDisk = exports.readRoutingFile = exports.getBucketFolder = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const remoteConfig_1 = require("./remoteConfig");
|
|
10
|
+
const serverConfig_1 = require("./serverConfig");
|
|
11
|
+
// The on-disk layout of buckets, and the direct-disk reads of the files that exist outside every store: the per-route folder naming and the routing file.
|
|
12
|
+
/** Each ROUTE gets its own folder: the bucket name plus the route range. One store serves exactly one route, so different shards of the same bucket - even across processes on different ports of the same machine - never share a folder and can never mix their data. No route (or the full route) keeps the plain folder, which is also where the routing file always lives. */
|
|
13
|
+
function getRouteFolderSuffix(route) {
|
|
14
|
+
if (!route || route[0] === 0 && route[1] === 1)
|
|
15
|
+
return "";
|
|
16
|
+
return `-route-${route[0]}-${route[1]}`;
|
|
17
|
+
}
|
|
18
|
+
function getBucketFolder(account, bucketName, route) {
|
|
19
|
+
return path_1.default.join((0, serverConfig_1.getStorageServerConfig)().folder, "buckets2", account, bucketName + getRouteFolderSuffix(route));
|
|
20
|
+
}
|
|
21
|
+
exports.getBucketFolder = getBucketFolder;
|
|
22
|
+
/** The routing file is ours, on our own disk, at a path we know - so it is read directly. Going through an ArchivesDisk would construct a whole store (handle cache sweep loop, uploads-folder cleanup) just to read one file. */
|
|
23
|
+
function getRoutingFilePath(folder) {
|
|
24
|
+
return path_1.default.join(folder, "files", remoteConfig_1.ROUTING_FILE);
|
|
25
|
+
}
|
|
26
|
+
async function readRoutingFile(folder) {
|
|
27
|
+
try {
|
|
28
|
+
return await fs_1.default.promises.readFile(getRoutingFilePath(folder));
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (e.code === "ENOENT")
|
|
32
|
+
return undefined;
|
|
33
|
+
throw e;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.readRoutingFile = readRoutingFile;
|
|
37
|
+
async function readRoutingFromDisk(account, bucketName) {
|
|
38
|
+
let data = await readRoutingFile(getBucketFolder(account, bucketName));
|
|
39
|
+
if (!data)
|
|
40
|
+
return undefined;
|
|
41
|
+
return (0, remoteConfig_1.parseRoutingData)(data);
|
|
42
|
+
}
|
|
43
|
+
exports.readRoutingFromDisk = readRoutingFromDisk;
|
|
44
|
+
/** The routing file lives ONLY in the plain (routeless) bucket folder - it is what DEFINES the per-route stores, so it cannot live inside any of them. Served directly for reads (the stores never hold it). */
|
|
45
|
+
async function getRoutingFileResult(account, bucketName) {
|
|
46
|
+
let filePath = getRoutingFilePath(getBucketFolder(account, bucketName));
|
|
47
|
+
try {
|
|
48
|
+
let data = await fs_1.default.promises.readFile(filePath);
|
|
49
|
+
let stats = await fs_1.default.promises.stat(filePath);
|
|
50
|
+
return { data, writeTime: stats.mtimeMs, size: data.length };
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
if (e.code === "ENOENT")
|
|
54
|
+
return undefined;
|
|
55
|
+
throw e;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.getRoutingFileResult = getRoutingFileResult;
|
|
59
|
+
async function getDiskInfo(folder) {
|
|
60
|
+
let stats = await fs_1.default.promises.statfs(folder);
|
|
61
|
+
let blockSize = Number(stats.bsize);
|
|
62
|
+
let totalBytes = Number(stats.blocks) * blockSize;
|
|
63
|
+
return {
|
|
64
|
+
totalBytes,
|
|
65
|
+
// Matches the server's own low-space check: what an unprivileged process can actually use
|
|
66
|
+
freeBytes: Number(stats.bavail) * blockSize,
|
|
67
|
+
usedBytes: totalBytes - Number(stats.bfree) * blockSize,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
exports.getDiskInfo = getDiskInfo;
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1Y2tldERpc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDRDQUFvQjtBQUVwQixpREFBZ0U7QUFDaEUsaURBQXdEO0FBRXhELDBKQUEwSjtBQUUxSixtWEFBbVg7QUFDblgsU0FBUyxvQkFBb0IsQ0FBQyxLQUFtQztJQUM3RCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxRCxPQUFPLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFDRCxTQUFnQixlQUFlLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsS0FBd0I7SUFDekYsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUEscUNBQXNCLEdBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNySCxDQUFDO0FBRkQsMENBRUM7QUFFRCxrT0FBa087QUFDbE8sU0FBUyxrQkFBa0IsQ0FBQyxNQUFjO0lBQ3RDLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLDJCQUFZLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBQ00sS0FBSyxVQUFVLGVBQWUsQ0FBQyxNQUFjO0lBQ2hELElBQUksQ0FBQztRQUNELE9BQU8sTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsSUFBSyxDQUF1QixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDakUsTUFBTSxDQUFDLENBQUM7SUFDWixDQUFDO0FBQ0wsQ0FBQztBQVBELDBDQU9DO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxVQUFrQjtJQUN6RSxJQUFJLElBQUksR0FBRyxNQUFNLGVBQWUsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdkUsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM1QixPQUFPLElBQUEsK0JBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUpELGtEQUlDO0FBRUQsZ05BQWdOO0FBQ3pNLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxPQUFlLEVBQUUsVUFBa0I7SUFDMUUsSUFBSSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLElBQUksQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLE1BQU0sWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsSUFBSSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxJQUFLLENBQXVCLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNqRSxNQUFNLENBQUMsQ0FBQztJQUNaLENBQUM7QUFDTCxDQUFDO0FBVkQsb0RBVUM7QUFRTSxLQUFLLFVBQVUsV0FBVyxDQUFDLE1BQWM7SUFDNUMsSUFBSSxLQUFLLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxJQUFJLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ2xELE9BQU87UUFDSCxVQUFVO1FBQ1YsMEZBQTBGO1FBQzFGLFNBQVMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVM7UUFDM0MsU0FBUyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVM7S0FDMUQsQ0FBQztBQUNOLENBQUM7QUFWRCxrQ0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBSZW1vdGVDb25maWcgfSBmcm9tIFwiLi4vSUFyY2hpdmVzXCI7XG5pbXBvcnQgeyBST1VUSU5HX0ZJTEUsIHBhcnNlUm91dGluZ0RhdGEgfSBmcm9tIFwiLi9yZW1vdGVDb25maWdcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWcgfSBmcm9tIFwiLi9zZXJ2ZXJDb25maWdcIjtcblxuLy8gVGhlIG9uLWRpc2sgbGF5b3V0IG9mIGJ1Y2tldHMsIGFuZCB0aGUgZGlyZWN0LWRpc2sgcmVhZHMgb2YgdGhlIGZpbGVzIHRoYXQgZXhpc3Qgb3V0c2lkZSBldmVyeSBzdG9yZTogdGhlIHBlci1yb3V0ZSBmb2xkZXIgbmFtaW5nIGFuZCB0aGUgcm91dGluZyBmaWxlLlxuXG4vKiogRWFjaCBST1VURSBnZXRzIGl0cyBvd24gZm9sZGVyOiB0aGUgYnVja2V0IG5hbWUgcGx1cyB0aGUgcm91dGUgcmFuZ2UuIE9uZSBzdG9yZSBzZXJ2ZXMgZXhhY3RseSBvbmUgcm91dGUsIHNvIGRpZmZlcmVudCBzaGFyZHMgb2YgdGhlIHNhbWUgYnVja2V0IC0gZXZlbiBhY3Jvc3MgcHJvY2Vzc2VzIG9uIGRpZmZlcmVudCBwb3J0cyBvZiB0aGUgc2FtZSBtYWNoaW5lIC0gbmV2ZXIgc2hhcmUgYSBmb2xkZXIgYW5kIGNhbiBuZXZlciBtaXggdGhlaXIgZGF0YS4gTm8gcm91dGUgKG9yIHRoZSBmdWxsIHJvdXRlKSBrZWVwcyB0aGUgcGxhaW4gZm9sZGVyLCB3aGljaCBpcyBhbHNvIHdoZXJlIHRoZSByb3V0aW5nIGZpbGUgYWx3YXlzIGxpdmVzLiAqL1xuZnVuY3Rpb24gZ2V0Um91dGVGb2xkZXJTdWZmaXgocm91dGU6IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghcm91dGUgfHwgcm91dGVbMF0gPT09IDAgJiYgcm91dGVbMV0gPT09IDEpIHJldHVybiBcIlwiO1xuICAgIHJldHVybiBgLXJvdXRlLSR7cm91dGVbMF19LSR7cm91dGVbMV19YDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRCdWNrZXRGb2xkZXIoYWNjb3VudDogc3RyaW5nLCBidWNrZXROYW1lOiBzdHJpbmcsIHJvdXRlPzogW251bWJlciwgbnVtYmVyXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBhdGguam9pbihnZXRTdG9yYWdlU2VydmVyQ29uZmlnKCkuZm9sZGVyLCBcImJ1Y2tldHMyXCIsIGFjY291bnQsIGJ1Y2tldE5hbWUgKyBnZXRSb3V0ZUZvbGRlclN1ZmZpeChyb3V0ZSkpO1xufVxuXG4vKiogVGhlIHJvdXRpbmcgZmlsZSBpcyBvdXJzLCBvbiBvdXIgb3duIGRpc2ssIGF0IGEgcGF0aCB3ZSBrbm93IC0gc28gaXQgaXMgcmVhZCBkaXJlY3RseS4gR29pbmcgdGhyb3VnaCBhbiBBcmNoaXZlc0Rpc2sgd291bGQgY29uc3RydWN0IGEgd2hvbGUgc3RvcmUgKGhhbmRsZSBjYWNoZSBzd2VlcCBsb29wLCB1cGxvYWRzLWZvbGRlciBjbGVhbnVwKSBqdXN0IHRvIHJlYWQgb25lIGZpbGUuICovXG5mdW5jdGlvbiBnZXRSb3V0aW5nRmlsZVBhdGgoZm9sZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBwYXRoLmpvaW4oZm9sZGVyLCBcImZpbGVzXCIsIFJPVVRJTkdfRklMRSk7XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFJvdXRpbmdGaWxlKGZvbGRlcjogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXIgfCB1bmRlZmluZWQ+IHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoZ2V0Um91dGluZ0ZpbGVQYXRoKGZvbGRlcikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgaWYgKChlIGFzIHsgY29kZT86IHN0cmluZyB9KS5jb2RlID09PSBcIkVOT0VOVFwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB0aHJvdyBlO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRSb3V0aW5nRnJvbURpc2soYWNjb3VudDogc3RyaW5nLCBidWNrZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPFJlbW90ZUNvbmZpZyB8IHVuZGVmaW5lZD4ge1xuICAgIGxldCBkYXRhID0gYXdhaXQgcmVhZFJvdXRpbmdGaWxlKGdldEJ1Y2tldEZvbGRlcihhY2NvdW50LCBidWNrZXROYW1lKSk7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBwYXJzZVJvdXRpbmdEYXRhKGRhdGEpO1xufVxuXG4vKiogVGhlIHJvdXRpbmcgZmlsZSBsaXZlcyBPTkxZIGluIHRoZSBwbGFpbiAocm91dGVsZXNzKSBidWNrZXQgZm9sZGVyIC0gaXQgaXMgd2hhdCBERUZJTkVTIHRoZSBwZXItcm91dGUgc3RvcmVzLCBzbyBpdCBjYW5ub3QgbGl2ZSBpbnNpZGUgYW55IG9mIHRoZW0uIFNlcnZlZCBkaXJlY3RseSBmb3IgcmVhZHMgKHRoZSBzdG9yZXMgbmV2ZXIgaG9sZCBpdCkuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um91dGluZ0ZpbGVSZXN1bHQoYWNjb3VudDogc3RyaW5nLCBidWNrZXROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHsgZGF0YTogQnVmZmVyOyB3cml0ZVRpbWU6IG51bWJlcjsgc2l6ZTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+IHtcbiAgICBsZXQgZmlsZVBhdGggPSBnZXRSb3V0aW5nRmlsZVBhdGgoZ2V0QnVja2V0Rm9sZGVyKGFjY291bnQsIGJ1Y2tldE5hbWUpKTtcbiAgICB0cnkge1xuICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKGZpbGVQYXRoKTtcbiAgICAgICAgbGV0IHN0YXRzID0gYXdhaXQgZnMucHJvbWlzZXMuc3RhdChmaWxlUGF0aCk7XG4gICAgICAgIHJldHVybiB7IGRhdGEsIHdyaXRlVGltZTogc3RhdHMubXRpbWVNcywgc2l6ZTogZGF0YS5sZW5ndGggfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmICgoZSBhcyB7IGNvZGU/OiBzdHJpbmcgfSkuY29kZSA9PT0gXCJFTk9FTlRcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgZTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIEJ1Y2tldERpc2tJbmZvID0ge1xuICAgIHRvdGFsQnl0ZXM6IG51bWJlcjtcbiAgICBmcmVlQnl0ZXM6IG51bWJlcjtcbiAgICB1c2VkQnl0ZXM6IG51bWJlcjtcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREaXNrSW5mbyhmb2xkZXI6IHN0cmluZyk6IFByb21pc2U8QnVja2V0RGlza0luZm8+IHtcbiAgICBsZXQgc3RhdHMgPSBhd2FpdCBmcy5wcm9taXNlcy5zdGF0ZnMoZm9sZGVyKTtcbiAgICBsZXQgYmxvY2tTaXplID0gTnVtYmVyKHN0YXRzLmJzaXplKTtcbiAgICBsZXQgdG90YWxCeXRlcyA9IE51bWJlcihzdGF0cy5ibG9ja3MpICogYmxvY2tTaXplO1xuICAgIHJldHVybiB7XG4gICAgICAgIHRvdGFsQnl0ZXMsXG4gICAgICAgIC8vIE1hdGNoZXMgdGhlIHNlcnZlcidzIG93biBsb3ctc3BhY2UgY2hlY2s6IHdoYXQgYW4gdW5wcml2aWxlZ2VkIHByb2Nlc3MgY2FuIGFjdHVhbGx5IHVzZVxuICAgICAgICBmcmVlQnl0ZXM6IE51bWJlcihzdGF0cy5iYXZhaWwpICogYmxvY2tTaXplLFxuICAgICAgICB1c2VkQnl0ZXM6IHRvdGFsQnl0ZXMgLSBOdW1iZXIoc3RhdHMuYmZyZWUpICogYmxvY2tTaXplLFxuICAgIH07XG59XG4iXX0=
|
|
72
|
+
/* _JS_SOURCE_HASH = "3f285af8e7d0f9783e26192c2c64419d5c66e572ee84a79b836f2661c1eb8db8"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.getArg = void 0;
|
|
4
4
|
function getArg(name) {
|
|
@@ -13,4 +13,4 @@ function getArg(name) {
|
|
|
13
13
|
}
|
|
14
14
|
exports.getArg = getArg;
|
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpQXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsaUFyZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsTUFBTSxDQUFDLElBQVk7SUFDL0IsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLElBQUksS0FBSyxHQUFHLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNoQyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBUkQsd0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0QXJnKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGluZGV4ID0gcHJvY2Vzcy5hcmd2LmluZGV4T2YoYC0tJHtuYW1lfWApO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiB1bmRlZmluZWQ7XG4gICAgbGV0IHZhbHVlID0gcHJvY2Vzcy5hcmd2W2luZGV4ICsgMV07XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5zdGFydHNXaXRoKFwiLS1cIikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHZhbHVlIGZvciAtLSR7bmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIl19
|
|
16
|
-
/* _JS_SOURCE_HASH = "
|
|
16
|
+
/* _JS_SOURCE_HASH = "2fb99e82c6bd77c34cdd980906b23b0c3f643bfc07d3973fdb4bc8f917781717"; */
|