pinggy 0.4.9 → 0.5.0
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/CLAUDE.md +112 -0
- package/README.md +214 -97
- package/dist/TunnelManager-OPUMAZFX.js +11 -0
- package/dist/TunnelTui-QZEWWH2H.js +1338 -0
- package/dist/{chunk-3RTRUYNW.js → chunk-7G6SJEEA.js} +35 -7
- package/dist/chunk-BFARGPGP.js +164 -0
- package/dist/chunk-DLNUDW6G.js +1690 -0
- package/dist/chunk-FVLXFHBL.js +2157 -0
- package/dist/chunk-GBYF2H4H.js +77 -0
- package/dist/chunk-HUP6YWH6.js +269 -0
- package/dist/chunk-MT44NAXX.js +36 -0
- package/dist/chunk-UB26QJ4T.js +10 -0
- package/dist/chunk-YJQC6LQN.js +3407 -0
- package/dist/configStore-TSGRNOE3.js +42 -0
- package/dist/daemonChild-E2CORSSB.js +24 -0
- package/dist/daemonConfig-G6S46GPJ.js +9 -0
- package/dist/index.cjs +5153 -1596
- package/dist/index.d.cts +473 -13
- package/dist/index.d.ts +473 -13
- package/dist/index.js +12 -5
- package/dist/ipcClient-LZQCCNMR.js +6 -0
- package/dist/main-F4U5R4SW.js +42 -0
- package/dist/workers/file_serve_worker.cjs +70 -21
- package/dist/workers/file_serve_worker.js +15 -9
- package/eslint.config.js +27 -0
- package/package.json +8 -4
- package/dist/chunk-YFTL44B3.js +0 -2857
- package/dist/main-4WTJG54V.js +0 -2925
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
runDaemonChild
|
|
4
|
+
} from "./chunk-YJQC6LQN.js";
|
|
5
|
+
import {
|
|
6
|
+
RemoteManagementUnauthorizedError,
|
|
7
|
+
TunnelOperations,
|
|
8
|
+
closeRemoteManagement,
|
|
9
|
+
ensureDaemonRunning,
|
|
10
|
+
getActiveTunnelSummaries,
|
|
11
|
+
getDaemonInfo,
|
|
12
|
+
getInProcessDaemonHandle,
|
|
13
|
+
getRemoteManagementState,
|
|
14
|
+
initiateRemoteManagement,
|
|
15
|
+
isDaemonRunning
|
|
16
|
+
} from "./chunk-FVLXFHBL.js";
|
|
17
|
+
import "./chunk-MT44NAXX.js";
|
|
18
|
+
import "./chunk-BFARGPGP.js";
|
|
19
|
+
import "./chunk-HUP6YWH6.js";
|
|
20
|
+
import {
|
|
21
|
+
TunnelManager
|
|
22
|
+
} from "./chunk-DLNUDW6G.js";
|
|
23
|
+
import "./chunk-UB26QJ4T.js";
|
|
24
|
+
import {
|
|
25
|
+
enablePackageLogging
|
|
26
|
+
} from "./chunk-7G6SJEEA.js";
|
|
27
|
+
import "./chunk-GBYF2H4H.js";
|
|
28
|
+
export {
|
|
29
|
+
RemoteManagementUnauthorizedError,
|
|
30
|
+
TunnelManager,
|
|
31
|
+
TunnelOperations,
|
|
32
|
+
closeRemoteManagement,
|
|
33
|
+
enablePackageLogging,
|
|
34
|
+
ensureDaemonRunning,
|
|
35
|
+
getActiveTunnelSummaries,
|
|
36
|
+
getDaemonInfo,
|
|
37
|
+
getInProcessDaemonHandle,
|
|
38
|
+
getRemoteManagementState,
|
|
39
|
+
initiateRemoteManagement,
|
|
40
|
+
isDaemonRunning,
|
|
41
|
+
runDaemonChild
|
|
42
|
+
};
|
|
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __esm = (fn, res) => function __init() {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
};
|
|
8
11
|
var __copyProps = (to, from, except, desc) => {
|
|
9
12
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
13
|
for (let key of __getOwnPropNames(from))
|
|
@@ -22,17 +25,66 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
25
|
mod
|
|
23
26
|
));
|
|
24
27
|
|
|
28
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
29
|
+
var init_cjs_shims = __esm({
|
|
30
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
31
|
+
"use strict";
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// src/logger.ts
|
|
36
|
+
function getLogger() {
|
|
37
|
+
if (!_logger) {
|
|
38
|
+
_logger = import_winston.default.createLogger({ level: "info", silent: true });
|
|
39
|
+
}
|
|
40
|
+
return _logger;
|
|
41
|
+
}
|
|
42
|
+
var import_winston, import_fs, import_path, import_pinggy, _currentLevel, _logger, logger;
|
|
43
|
+
var init_logger = __esm({
|
|
44
|
+
"src/logger.ts"() {
|
|
45
|
+
"use strict";
|
|
46
|
+
init_cjs_shims();
|
|
47
|
+
import_winston = __toESM(require("winston"), 1);
|
|
48
|
+
import_fs = __toESM(require("fs"), 1);
|
|
49
|
+
import_path = __toESM(require("path"), 1);
|
|
50
|
+
import_pinggy = require("@pinggy/pinggy");
|
|
51
|
+
_currentLevel = process.env.PINGGY_LOG_LEVEL || "info";
|
|
52
|
+
_logger = null;
|
|
53
|
+
logger = getLogger();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
// src/workers/fileServerMessages.ts
|
|
58
|
+
var FileServerMessage;
|
|
59
|
+
var init_fileServerMessages = __esm({
|
|
60
|
+
"src/workers/fileServerMessages.ts"() {
|
|
61
|
+
"use strict";
|
|
62
|
+
init_cjs_shims();
|
|
63
|
+
FileServerMessage = {
|
|
64
|
+
Started: "started",
|
|
65
|
+
Warning: "warning",
|
|
66
|
+
Error: "error"
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
25
71
|
// src/workers/file_serve_worker.ts
|
|
72
|
+
init_cjs_shims();
|
|
26
73
|
var import_worker_threads = require("worker_threads");
|
|
27
74
|
|
|
28
75
|
// src/utils/FileServer.ts
|
|
76
|
+
init_cjs_shims();
|
|
29
77
|
var import_http = require("http");
|
|
30
78
|
var import_promises = require("fs/promises");
|
|
31
79
|
var import_fs2 = require("fs");
|
|
32
80
|
var import_path2 = require("path");
|
|
33
81
|
var import_url = require("url");
|
|
34
82
|
|
|
83
|
+
// node_modules/mime/dist/src/index.js
|
|
84
|
+
init_cjs_shims();
|
|
85
|
+
|
|
35
86
|
// node_modules/mime/dist/types/other.js
|
|
87
|
+
init_cjs_shims();
|
|
36
88
|
var types = {
|
|
37
89
|
"application/prs.cww": ["cww"],
|
|
38
90
|
"application/prs.xsf+xml": ["xsf"],
|
|
@@ -754,6 +806,7 @@ Object.freeze(types);
|
|
|
754
806
|
var other_default = types;
|
|
755
807
|
|
|
756
808
|
// node_modules/mime/dist/types/standard.js
|
|
809
|
+
init_cjs_shims();
|
|
757
810
|
var types2 = {
|
|
758
811
|
"application/andrew-inset": ["ez"],
|
|
759
812
|
"application/appinstaller": ["appinstaller"],
|
|
@@ -1122,6 +1175,7 @@ Object.freeze(types2);
|
|
|
1122
1175
|
var standard_default = types2;
|
|
1123
1176
|
|
|
1124
1177
|
// node_modules/mime/dist/src/Mime.js
|
|
1178
|
+
init_cjs_shims();
|
|
1125
1179
|
var __classPrivateFieldGet = function(receiver, state, kind, f) {
|
|
1126
1180
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
1127
1181
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
@@ -1212,21 +1266,11 @@ var Mime_default = Mime;
|
|
|
1212
1266
|
// node_modules/mime/dist/src/index.js
|
|
1213
1267
|
var src_default = new Mime_default(standard_default, other_default)._freeze();
|
|
1214
1268
|
|
|
1215
|
-
// src/
|
|
1216
|
-
|
|
1217
|
-
var import_fs = __toESM(require("fs"), 1);
|
|
1218
|
-
var import_path = __toESM(require("path"), 1);
|
|
1219
|
-
var import_pinggy = require("@pinggy/pinggy");
|
|
1220
|
-
var _logger = null;
|
|
1221
|
-
function getLogger() {
|
|
1222
|
-
if (!_logger) {
|
|
1223
|
-
_logger = import_winston.default.createLogger({ level: "info", silent: true });
|
|
1224
|
-
}
|
|
1225
|
-
return _logger;
|
|
1226
|
-
}
|
|
1227
|
-
var logger = getLogger();
|
|
1269
|
+
// src/utils/FileServer.ts
|
|
1270
|
+
init_logger();
|
|
1228
1271
|
|
|
1229
1272
|
// src/utils/htmlTemplates.ts
|
|
1273
|
+
init_cjs_shims();
|
|
1230
1274
|
function directoryListingHtml(relativePath, list) {
|
|
1231
1275
|
return `
|
|
1232
1276
|
<html>
|
|
@@ -1428,7 +1472,7 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1428
1472
|
} catch (err) {
|
|
1429
1473
|
logger.debug("Error in handling request", err);
|
|
1430
1474
|
res.statusCode = 500;
|
|
1431
|
-
res.end(`Internal Server Error: ${err.message}`);
|
|
1475
|
+
res.end(`Internal Server Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
1432
1476
|
}
|
|
1433
1477
|
});
|
|
1434
1478
|
await new Promise((resolve2, reject) => {
|
|
@@ -1447,7 +1491,12 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1447
1491
|
}
|
|
1448
1492
|
|
|
1449
1493
|
// src/workers/file_serve_worker.ts
|
|
1450
|
-
(
|
|
1494
|
+
init_logger();
|
|
1495
|
+
init_fileServerMessages();
|
|
1496
|
+
function post(msg) {
|
|
1497
|
+
import_worker_threads.parentPort?.postMessage(msg);
|
|
1498
|
+
}
|
|
1499
|
+
void (async () => {
|
|
1451
1500
|
try {
|
|
1452
1501
|
const { dir, forwarding } = import_worker_threads.workerData;
|
|
1453
1502
|
logger.debug("file_serve_worker received workerData", { dir, forwarding: JSON.stringify(forwarding) });
|
|
@@ -1463,11 +1512,11 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1463
1512
|
logger.debug("file_serve_worker resolved port", { portNum, defaultPort: portNum ?? 8080 });
|
|
1464
1513
|
const result = await startFileServer(dir, portNum);
|
|
1465
1514
|
logger.info("file_serve_worker static file server started", { dir, port: portNum ?? 8080 });
|
|
1466
|
-
|
|
1515
|
+
post({ type: FileServerMessage.Started, portNum });
|
|
1467
1516
|
if (result.hasInvalidPath && result.error) {
|
|
1468
1517
|
logger.warn("file_serve_worker invalid path warning", { message: result.error.message, code: result.error.code });
|
|
1469
|
-
|
|
1470
|
-
type:
|
|
1518
|
+
post({
|
|
1519
|
+
type: FileServerMessage.Warning,
|
|
1471
1520
|
message: result.error.message,
|
|
1472
1521
|
code: result.error.code
|
|
1473
1522
|
});
|
|
@@ -1475,11 +1524,11 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1475
1524
|
} catch (err) {
|
|
1476
1525
|
console.log(err);
|
|
1477
1526
|
if (err instanceof FileServerError) {
|
|
1478
|
-
|
|
1527
|
+
post({ type: FileServerMessage.Error, error: err.message, code: err.code });
|
|
1479
1528
|
} else if (err instanceof Error) {
|
|
1480
|
-
|
|
1529
|
+
post({ type: FileServerMessage.Error, error: err.message });
|
|
1481
1530
|
} else {
|
|
1482
|
-
|
|
1531
|
+
post({ type: FileServerMessage.Error, error: String(err) });
|
|
1483
1532
|
}
|
|
1484
1533
|
logger.debug("Error in FileServer thread", err);
|
|
1485
1534
|
process.exit(1);
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FileServerMessage
|
|
3
|
+
} from "../chunk-UB26QJ4T.js";
|
|
1
4
|
import {
|
|
2
5
|
logger
|
|
3
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-7G6SJEEA.js";
|
|
4
7
|
|
|
5
8
|
// src/workers/file_serve_worker.ts
|
|
6
9
|
import { parentPort, workerData } from "worker_threads";
|
|
@@ -1394,7 +1397,7 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1394
1397
|
} catch (err) {
|
|
1395
1398
|
logger.debug("Error in handling request", err);
|
|
1396
1399
|
res.statusCode = 500;
|
|
1397
|
-
res.end(`Internal Server Error: ${err.message}`);
|
|
1400
|
+
res.end(`Internal Server Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
1398
1401
|
}
|
|
1399
1402
|
});
|
|
1400
1403
|
await new Promise((resolve2, reject) => {
|
|
@@ -1413,7 +1416,10 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1413
1416
|
}
|
|
1414
1417
|
|
|
1415
1418
|
// src/workers/file_serve_worker.ts
|
|
1416
|
-
|
|
1419
|
+
function post(msg) {
|
|
1420
|
+
parentPort?.postMessage(msg);
|
|
1421
|
+
}
|
|
1422
|
+
void (async () => {
|
|
1417
1423
|
try {
|
|
1418
1424
|
const { dir, forwarding } = workerData;
|
|
1419
1425
|
logger.debug("file_serve_worker received workerData", { dir, forwarding: JSON.stringify(forwarding) });
|
|
@@ -1429,11 +1435,11 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1429
1435
|
logger.debug("file_serve_worker resolved port", { portNum, defaultPort: portNum ?? 8080 });
|
|
1430
1436
|
const result = await startFileServer(dir, portNum);
|
|
1431
1437
|
logger.info("file_serve_worker static file server started", { dir, port: portNum ?? 8080 });
|
|
1432
|
-
|
|
1438
|
+
post({ type: FileServerMessage.Started, portNum });
|
|
1433
1439
|
if (result.hasInvalidPath && result.error) {
|
|
1434
1440
|
logger.warn("file_serve_worker invalid path warning", { message: result.error.message, code: result.error.code });
|
|
1435
|
-
|
|
1436
|
-
type:
|
|
1441
|
+
post({
|
|
1442
|
+
type: FileServerMessage.Warning,
|
|
1437
1443
|
message: result.error.message,
|
|
1438
1444
|
code: result.error.code
|
|
1439
1445
|
});
|
|
@@ -1441,11 +1447,11 @@ async function startFileServer(dirPath, port = 8080) {
|
|
|
1441
1447
|
} catch (err) {
|
|
1442
1448
|
console.log(err);
|
|
1443
1449
|
if (err instanceof FileServerError) {
|
|
1444
|
-
|
|
1450
|
+
post({ type: FileServerMessage.Error, error: err.message, code: err.code });
|
|
1445
1451
|
} else if (err instanceof Error) {
|
|
1446
|
-
|
|
1452
|
+
post({ type: FileServerMessage.Error, error: err.message });
|
|
1447
1453
|
} else {
|
|
1448
|
-
|
|
1454
|
+
post({ type: FileServerMessage.Error, error: String(err) });
|
|
1449
1455
|
}
|
|
1450
1456
|
logger.debug("Error in FileServer thread", err);
|
|
1451
1457
|
process.exit(1);
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import tseslint from "@typescript-eslint/eslint-plugin";
|
|
2
|
+
import parser from "@typescript-eslint/parser";
|
|
3
|
+
|
|
4
|
+
export default [
|
|
5
|
+
{
|
|
6
|
+
ignores: ["**/_tests_/**"],
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
files: ["**/*.ts"],
|
|
10
|
+
languageOptions: {
|
|
11
|
+
parser,
|
|
12
|
+
parserOptions: {
|
|
13
|
+
project: "./tsconfig.json",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
"@typescript-eslint": tseslint,
|
|
18
|
+
},
|
|
19
|
+
rules: {
|
|
20
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
21
|
+
"@typescript-eslint/no-floating-promises": "error",
|
|
22
|
+
"@typescript-eslint/await-thenable": "error",
|
|
23
|
+
"@typescript-eslint/require-await": "warn",
|
|
24
|
+
"no-duplicate-imports": "error",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pinggy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Create secure, shareable tunnels to your localhost and manage them from the command line. ",
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
"pinggy": "dist/index.cjs"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
+
"lint": "eslint src --ext .ts",
|
|
14
15
|
"build:tsc": "tsc",
|
|
15
|
-
"build": "tsup",
|
|
16
|
+
"build": "npm run lint && tsup",
|
|
16
17
|
"start": "node dist/index.js",
|
|
17
18
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
|
|
18
19
|
"bump": "node scripts/bumpVersion.js --bump && npm install",
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
]
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
|
-
"@pinggy/pinggy": "^0.4.
|
|
55
|
+
"@pinggy/pinggy": "^0.4.8",
|
|
55
56
|
"blessed": "^0.1.81",
|
|
56
57
|
"clipboardy": "^5.0.0",
|
|
57
58
|
"mime": "^4.1.0",
|
|
@@ -68,7 +69,10 @@
|
|
|
68
69
|
"@types/qrcode": "^1.5.6",
|
|
69
70
|
"@types/qrcode-terminal": "^0.12.2",
|
|
70
71
|
"@types/ws": "^8.18.1",
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "^8.60.0",
|
|
73
|
+
"@typescript-eslint/parser": "^8.60.0",
|
|
71
74
|
"@yao-pkg/pkg": "^6.11.0",
|
|
75
|
+
"eslint": "^10.4.0",
|
|
72
76
|
"jest": "^30.1.2",
|
|
73
77
|
"ts-jest": "^29.4.1",
|
|
74
78
|
"ts-node": "^10.9.2",
|
|
@@ -80,4 +84,4 @@
|
|
|
80
84
|
"type": "git",
|
|
81
85
|
"url": "git+https://github.com/Pinggy-io/cli-js.git"
|
|
82
86
|
}
|
|
83
|
-
}
|
|
87
|
+
}
|