sliftutils 1.7.103 → 1.7.104

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.
@@ -0,0 +1,109 @@
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "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.readStorageLogFile = exports.listStorageLogFiles = exports.logStorageError = exports.logSyncEvent = exports.logMutation = exports.LOGS_FOLDER_NAME = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const caching_1 = require("socket-function/src/caching");
10
+ const StreamingLogs_1 = require("../StreamingLogs");
11
+ const serverConfig_1 = require("./serverConfig");
12
+ const certs_1 = require("../../misc/https/certs");
13
+ // The storage server's operation log: every mutation (never the data itself - just what happened, to what, when, how big, and who asked), every error, and the synchronization key points, streamed as JSON lines into <storage folder>/logs (see StreamingLogs for the file lifecycle). Everything here is a safe no-op on processes that have no storage folder - logging must never be the thing that breaks a request.
14
+ exports.LOGS_FOLDER_NAME = "logs";
15
+ const getLogs = (0, caching_1.lazy)(() => {
16
+ var _a;
17
+ let folder;
18
+ try {
19
+ folder = path_1.default.join((0, serverConfig_1.getStorageFolder)(), exports.LOGS_FOLDER_NAME);
20
+ }
21
+ catch (_b) {
22
+ return undefined;
23
+ }
24
+ let threadId;
25
+ try {
26
+ threadId = (0, certs_1.getOwnThreadId)(((_a = (0, serverConfig_1.getStorageServerConfigOptional)()) === null || _a === void 0 ? void 0 : _a.rootDomain) || "");
27
+ }
28
+ catch (_c) {
29
+ threadId = undefined;
30
+ }
31
+ hookErrorLogging();
32
+ return new StreamingLogs_1.StreamingLogs({ folder, threadId });
33
+ });
34
+ function firstExternalIPv4() {
35
+ for (let addresses of Object.values(os_1.default.networkInterfaces())) {
36
+ for (let address of addresses || []) {
37
+ if (address.family === "IPv4" && !address.internal)
38
+ return address.address;
39
+ }
40
+ }
41
+ return undefined;
42
+ }
43
+ // Computed once: none of it changes over a process's lifetime
44
+ const baseFields = (0, caching_1.lazy)(() => {
45
+ var _a;
46
+ return ({
47
+ pid: process.pid,
48
+ entryPoint: process.argv[1],
49
+ ip: firstExternalIPv4(),
50
+ domain: (_a = (0, serverConfig_1.getStorageServerConfigOptional)()) === null || _a === void 0 ? void 0 : _a.domain,
51
+ });
52
+ });
53
+ function write(kind, entry) {
54
+ let logs = getLogs();
55
+ if (!logs)
56
+ return;
57
+ logs.log({ kind, time: Date.now(), ...baseFields(), ...entry });
58
+ }
59
+ /** One mutation the server performed: set/del/move/undelete/setLarge/routingConfig, plus the per-file synchronization writes ("sync get"/"sync set"). Sizes and times, never the data. internal marks writes pushed by a peer's synchronization rather than a client. */
60
+ function logMutation(entry) {
61
+ write("mutation", entry);
62
+ }
63
+ exports.logMutation = logMutation;
64
+ /** A synchronization key point: scans and full syncs starting/finishing, reconciles, boundary scans - what an operator greps for to see whether the fleet is converging. */
65
+ function logSyncEvent(entry) {
66
+ write("sync", entry);
67
+ }
68
+ exports.logSyncEvent = logSyncEvent;
69
+ function logStorageError(message) {
70
+ write("error", { message });
71
+ }
72
+ exports.logStorageError = logStorageError;
73
+ // Everything console.errored also lands in the log stream (with a reentrancy guard: a failure INSIDE logging must not log itself forever)
74
+ let writingError = false;
75
+ const hookErrorLogging = (0, caching_1.lazy)(() => {
76
+ let original = console.error.bind(console);
77
+ console.error = (...args) => {
78
+ original(...args);
79
+ if (writingError)
80
+ return;
81
+ writingError = true;
82
+ try {
83
+ logStorageError(args.map(x => { var _a; return typeof x === "string" && x || ((_a = x === null || x === void 0 ? void 0 : x.stack) !== null && _a !== void 0 ? _a : JSON.stringify(x)); }).join(" ").slice(0, 5000));
84
+ }
85
+ catch (_a) { }
86
+ finally {
87
+ writingError = false;
88
+ }
89
+ };
90
+ });
91
+ /** The log files this server holds - see StreamingLogs.listFiles. Empty on processes with no storage folder. */
92
+ async function listStorageLogFiles() {
93
+ let logs = getLogs();
94
+ if (!logs)
95
+ return [];
96
+ return await logs.listFiles();
97
+ }
98
+ exports.listStorageLogFiles = listStorageLogFiles;
99
+ /** One log file's bytes, always LZ4-compressed - see StreamingLogs.readFileCompressed (decode with decodeLogFile). */
100
+ async function readStorageLogFile(name) {
101
+ let logs = getLogs();
102
+ if (!logs) {
103
+ throw new Error(`This process has no storage folder, so it has no logs to read`);
104
+ }
105
+ return await logs.readFileCompressed(name);
106
+ }
107
+ exports.readStorageLogFile = readStorageLogFile;
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZUxvZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdG9yYWdlTG9ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLHlEQUFtRDtBQUNuRCxvREFBOEQ7QUFDOUQsaURBQWtGO0FBQ2xGLGtEQUF3RDtBQUV4RCwyWkFBMlo7QUFFOVksUUFBQSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFdkMsTUFBTSxPQUFPLEdBQUcsSUFBQSxjQUFJLEVBQUMsR0FBOEIsRUFBRTs7SUFDakQsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSwrQkFBZ0IsR0FBRSxFQUFFLHdCQUFnQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLFdBQU0sQ0FBQztRQUNMLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLFFBQTRCLENBQUM7SUFDakMsSUFBSSxDQUFDO1FBQ0QsUUFBUSxHQUFHLElBQUEsc0JBQWMsRUFBQyxDQUFBLE1BQUEsSUFBQSw2Q0FBOEIsR0FBRSwwQ0FBRSxVQUFVLEtBQUksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUFDLFdBQU0sQ0FBQztRQUNMLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFDekIsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxJQUFJLDZCQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsaUJBQWlCO0lBQ3RCLEtBQUssSUFBSSxTQUFTLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDMUQsS0FBSyxJQUFJLE9BQU8sSUFBSSxTQUFTLElBQUksRUFBRSxFQUFFLENBQUM7WUFDbEMs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QUpELGtEQUlDO0FBRUQsc0hBQXNIO0FBQy9HLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUFZO0lBQ2pELElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBTkQsZ0RBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgbGF6eSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2NhY2hpbmdcIjtcbmltcG9ydCB7IFN0cmVhbWluZ0xvZ3MsIExvZ0ZpbGVJbmZvIH0gZnJvbSBcIi4uL1N0cmVhbWluZ0xvZ3NcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2VGb2xkZXIsIGdldFN0b3JhZ2VTZXJ2ZXJDb25maWdPcHRpb25hbCB9IGZyb20gXCIuL3NlcnZlckNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0T3duVGhyZWFkSWQgfSBmcm9tIFwiLi4vLi4vbWlzYy9odHRwcy9jZXJ0c1wiO1xuXG4vLyBUaGUgc3RvcmFnZSBzZXJ2ZXIncyBvcGVyYXRpb24gbG9nOiBldmVyeSBtdXRhdGlvbiAobmV2ZXIgdGhlIGRhdGEgaXRzZWxmIC0ganVzdCB3aGF0IGhhcHBlbmVkLCB0byB3aGF0LCB3aGVuLCBob3cgYmlnLCBhbmQgd2hvIGFza2VkKSwgZXZlcnkgZXJyb3IsIGFuZCB0aGUgc3luY2hyb25pemF0aW9uIGtleSBwb2ludHMsIHN0cmVhbWVkIGFzIEpTT04gbGluZXMgaW50byA8c3RvcmFnZSBmb2xkZXI+L2xvZ3MgKHNlZSBTdHJlYW1pbmdMb2dzIGZvciB0aGUgZmlsZSBsaWZlY3ljbGUpLiBFdmVyeXRoaW5nIGhlcmUgaXMgYSBzYWZlIG5vLW9wIG9uIHByb2Nlc3NlcyB0aGF0IGhhdmUgbm8gc3RvcmFnZSBmb2xkZXIgLSBsb2dnaW5nIG11c3QgbmV2ZXIgYmUgdGhlIHRoaW5nIHRoYXQgYnJlYWtzIGEgcmVxdWVzdC5cblxuZXhwb3J0IGNvbnN0IExPR1NfRk9MREVSX05BTUUgPSBcImxvZ3NcIjtcblxuY29uc3QgZ2V0TG9ncyA9IGxhenkoKCk6IFN0cmVhbWluZ0xvZ3MgfCB1bmRlZmluZWQgPT4ge1xuICAgIGxldCBmb2xkZXI6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBmb2xkZXIgPSBwYXRoLmpvaW4oZ2V0U3RvcmFnZUZvbGRlcigpLCBMT0dTX0ZPTERFUl9OQU1FKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbGV0IHRocmVhZElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgICAgdGhyZWFkSWQgPSBnZXRPd25UaHJlYWRJZChnZXRTdG9yYWdlU2VydmVyQ29uZmlnT3B0aW9uYWwoKT8ucm9vdERvbWFpbiB8fCBcIlwiKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhyZWFkSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGhvb2tFcnJvckxvZ2dpbmcoKTtcbiAgICByZXR1cm4gbmV3IFN0cmVhbWluZ0xvZ3MoeyBmb2xkZXIsIHRocmVhZElkIH0pO1xufSk7XG5cbmZ1bmN0aW9uIGZpcnN0RXh0ZXJuYWxJUHY0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgZm9yIChsZXQgYWRkcmVzc2VzIG9mIE9iamVjdC52YWx1ZXMob3MubmV0d29ya0ludGVyZmFjZXMoKSkpIHtcbiAgICAgICAgZm9yIChsZXQgYWRkcmVzcyBvZiBhZGRyZXNzZXMgfHwgW10pIHtcbiAgICAgICAgICAgIGlmIChhZGRyZXNzLmZhbWlseSA9PT0gXCJJUHY0XCIgJiYgIWFkZHJlc3MuaW50ZXJuYWwpIHJldHVybiBhZGRyZXNzLmFkZHJlc3M7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8gQ29tcHV0ZWQgb25jZTogbm9uZSBvZiBpdCBjaGFuZ2VzIG92ZXIgYSBwcm9jZXNzJ3MgbGlmZXRpbWVcbmNvbnN0IGJhc2VGaWVsZHMgPSBsYXp5KCgpID0+ICh7XG4gICAgcGlkOiBwcm9jZXNzLnBpZCxcbiAgICBlbnRyeVBvaW50OiBwcm9jZXNzLmFyZ3ZbMV0sXG4gICAgaXA6IGZpcnN0RXh0ZXJuYWxJUHY0KCksXG4gICAgZG9tYWluOiBnZXRTdG9yYWdlU2VydmVyQ29uZmlnT3B0aW9uYWwoKT8uZG9tYWluLFxufSkpO1xuXG5mdW5jdGlvbiB3cml0ZShraW5kOiBzdHJpbmcsIGVudHJ5OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSk6IHZvaWQge1xuICAgIGxldCBsb2dzID0gZ2V0TG9ncygpO1xuICAgIGlmICghbG9ncykgcmV0dXJuO1xuICAgIGxvZ3MubG9nKHsga2luZCwgdGltZTogRGF0ZS5ub3coKSwgLi4uYmFzZUZpZWxkcygpLCAuLi5lbnRyeSB9KTtcbn1cblxuLyoqIE9uZSBtdXRhdGlvbiB0aGUgc2VydmVyIHBlcmZvcm1lZDogc2V0L2RlbC9tb3ZlL3VuZGVsZXRlL3NldExhcmdlL3JvdXRpbmdDb25maWcsIHBsdXMgdGhlIHBlci1maWxlIHN5bmNocm9uaXphdGlvbiB3cml0ZXMgKFwic3luYyBnZXRcIi9cInN5bmMgc2V0XCIpLiBTaXplcyBhbmQgdGltZXMsIG5ldmVyIHRoZSBkYXRhLiBpbnRlcm5hbCBtYXJrcyB3cml0ZXMgcHVzaGVkIGJ5IGEgcGVlcidzIHN5bmNocm9uaXphdGlvbiByYXRoZXIgdGhhbiBhIGNsaWVudC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dNdXRhdGlvbihlbnRyeTogeyBvcDogc3RyaW5nOyBhY2NvdW50OiBzdHJpbmc7IGJ1Y2tldE5hbWU6IHN0cmluZzsgc3RvcmU/OiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgdG9QYXRoPzogc3RyaW5nOyBzaXplPzogbnVtYmVyOyB3cml0ZVRpbWU/OiBudW1iZXI7IGNhbGxlcklkPzogc3RyaW5nOyBpbnRlcm5hbD86IGJvb2xlYW4gfSk6IHZvaWQge1xuICAgIHdyaXRlKFwibXV0YXRpb25cIiwgZW50cnkpO1xufVxuXG4vKiogQSBzeW5jaHJvbml6YXRpb24ga2V5IHBvaW50OiBzY2FucyBhbmQgZnVsbCBzeW5jcyBzdGFydGluZy9maW5pc2hpbmcsIHJlY29uY2lsZXMsIGJvdW5kYXJ5IHNjYW5zIC0gd2hhdCBhbiBvcGVyYXRvciBncmVwcyBmb3IgdG8gc2VlIHdoZXRoZXIgdGhlIGZsZWV0IGlzIGNvbnZlcmdpbmcuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nU3luY0V2ZW50KGVudHJ5OiB7IGV2ZW50OiBzdHJpbmc7IHN0b3JlOiBzdHJpbmc7IHNvdXJjZT86IHN0cmluZzsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KTogdm9pZCB7XG4gICAgd3JpdGUoXCJzeW5jXCIsIGVudHJ5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ1N0b3JhZ2VFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB3cml0ZShcImVycm9yXCIsIHsgbWVzc2FnZSB9KTtcbn1cblxuLy8gRXZlcnl0aGluZyBjb25zb2xlLmVycm9yZWQgYWxzbyBsYW5kcyBpbiB0aGUgbG9nIHN0cmVhbSAod2l0aCBhIHJlZW50cmFuY3kgZ3VhcmQ6IGEgZmFpbHVyZSBJTlNJREUgbG9nZ2luZyBtdXN0IG5vdCBsb2cgaXRzZWxmIGZvcmV2ZXIpXG5sZXQgd3JpdGluZ0Vycm9yID0gZmFsc2U7XG5jb25zdCBob29rRXJyb3JMb2dnaW5nID0gbGF6eSgoKSA9PiB7XG4gICAgbGV0IG9yaWdpbmFsID0gY29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO1xuICAgIGNvbnNvbGUuZXJyb3IgPSAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIG9yaWdpbmFsKC4uLmFyZ3MpO1xuICAgICAgICBpZiAod3JpdGluZ0Vycm9yKSByZXR1cm47XG4gICAgICAgIHdyaXRpbmdFcnJvciA9IHRydWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2dTdG9yYWdlRXJyb3IoYXJncy5tYXAoeCA9PiB0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiAmJiB4IHx8ICgoeCBhcyBFcnJvcik/LnN0YWNrID8/IEpTT04uc3RyaW5naWZ5KHgpKSkuam9pbihcIiBcIikuc2xpY2UoMCwgNTAwMCkpO1xuICAgICAgICB9IGNhdGNoIHsgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHdyaXRpbmdFcnJvciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfTtcbn0pO1xuXG4vKiogVGhlIGxvZyBmaWxlcyB0aGlzIHNlcnZlciBob2xkcyAtIHNlZSBTdHJlYW1pbmdMb2dzLmxpc3RGaWxlcy4gRW1wdHkgb24gcHJvY2Vzc2VzIHdpdGggbm8gc3RvcmFnZSBmb2xkZXIuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFN0b3JhZ2VMb2dGaWxlcygpOiBQcm9taXNlPExvZ0ZpbGVJbmZvW10+IHtcbiAgICBsZXQgbG9ncyA9IGdldExvZ3MoKTtcbiAgICBpZiAoIWxvZ3MpIHJldHVybiBbXTtcbiAgICByZXR1cm4gYXdhaXQgbG9ncy5saXN0RmlsZXMoKTtcbn1cblxuLyoqIE9uZSBsb2cgZmlsZSdzIGJ5dGVzLCBhbHdheXMgTFo0LWNvbXByZXNzZWQgLSBzZWUgU3RyZWFtaW5nTG9ncy5yZWFkRmlsZUNvbXByZXNzZWQgKGRlY29kZSB3aXRoIGRlY29kZUxvZ0ZpbGUpLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRTdG9yYWdlTG9nRmlsZShuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIGxldCBsb2dzID0gZ2V0TG9ncygpO1xuICAgIGlmICghbG9ncykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoaXMgcHJvY2VzcyBoYXMgbm8gc3RvcmFnZSBmb2xkZXIsIHNvIGl0IGhhcyBubyBsb2dzIHRvIHJlYWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IGxvZ3MucmVhZEZpbGVDb21wcmVzc2VkKG5hbWUpO1xufVxuIl19
109
+ /* _JS_SOURCE_HASH = "367fa81a3392273b281481b840017152af22d1dd26c478d4a5b06d737c8dff25"; */
package/yarn.lock CHANGED
@@ -1937,10 +1937,10 @@ slash@^3.0.0:
1937
1937
  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1938
1938
  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1939
1939
 
1940
- socket-function@^1.2.30:
1941
- version "1.2.30"
1942
- resolved "https://registry.yarnpkg.com/socket-function/-/socket-function-1.2.30.tgz#95979b29a322c7e8d184ce7219310820d00cd042"
1943
- integrity sha512-A69c6ejRICUQXjC/3S3S2cd7CpoUjR1jjenPIEMA5b6G7xfUdQQqVM51hvxH73qDY/QhGV2UyZTDmlmgPh+f+g==
1940
+ socket-function@^1.2.31:
1941
+ version "1.2.31"
1942
+ resolved "https://registry.yarnpkg.com/socket-function/-/socket-function-1.2.31.tgz#b9ced45d5c99c310ecbf775d13a731e2aefff8e2"
1943
+ integrity sha512-TBAHfSS2iapdweD6sOt2wRvynlrZ9B9EYSYBpm1x84hgbn/xWJRu1yL3e4uHeC07Fun4l8+meUEM6nZkujls0A==
1944
1944
  dependencies:
1945
1945
  "@types/pako" "^2.0.3"
1946
1946
  "@types/ws" "^8.5.3"