@remotelinker/reverse-ws-tunnel 1.0.4 → 1.0.5
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/README.md +42 -0
- package/client/index.mjs +2 -0
- package/cookbook.md +14 -1
- package/index.cjs +9 -0
- package/index.mjs +3 -0
- package/jest.config.cjs +5 -0
- package/package.json +20 -5
- package/server/index.mjs +2 -0
- package/utils/index.mjs +2 -0
package/README.md
CHANGED
|
@@ -36,13 +36,39 @@ Reverse WebSocket Tunnel is a library that enables you to expose local services
|
|
|
36
36
|
npm install @remotelinker/reverse-ws-tunnel
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
+
## 📦 Module Compatibility
|
|
40
|
+
|
|
41
|
+
This library supports both **CommonJS** (`require()`) and **ES Modules** (`import`) for maximum compatibility:
|
|
42
|
+
|
|
43
|
+
### CommonJS (Traditional)
|
|
44
|
+
```javascript
|
|
45
|
+
const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
46
|
+
const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server');
|
|
47
|
+
const { loadConfig } = require('@remotelinker/reverse-ws-tunnel/utils');
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### ES Modules (Modern)
|
|
51
|
+
```javascript
|
|
52
|
+
import { startClient } from '@remotelinker/reverse-ws-tunnel/client';
|
|
53
|
+
import { startWebSocketServer } from '@remotelinker/reverse-ws-tunnel/server';
|
|
54
|
+
import { loadConfig } from '@remotelinker/reverse-ws-tunnel/utils';
|
|
55
|
+
```
|
|
56
|
+
|
|
39
57
|
## 🚀 Quick Start
|
|
40
58
|
|
|
41
59
|
### Server Setup
|
|
42
60
|
|
|
61
|
+
**CommonJS:**
|
|
43
62
|
```javascript
|
|
44
63
|
const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server');
|
|
64
|
+
```
|
|
45
65
|
|
|
66
|
+
**ES Modules:**
|
|
67
|
+
```javascript
|
|
68
|
+
import { startWebSocketServer } from '@remotelinker/reverse-ws-tunnel/server';
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
46
72
|
// Start the WebSocket tunnel server
|
|
47
73
|
startWebSocketServer({
|
|
48
74
|
port: 443,
|
|
@@ -54,9 +80,17 @@ startWebSocketServer({
|
|
|
54
80
|
|
|
55
81
|
### Client Setup
|
|
56
82
|
|
|
83
|
+
**CommonJS:**
|
|
57
84
|
```javascript
|
|
58
85
|
const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
86
|
+
```
|
|
59
87
|
|
|
88
|
+
**ES Modules:**
|
|
89
|
+
```javascript
|
|
90
|
+
import { startClient } from '@remotelinker/reverse-ws-tunnel/client';
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
60
94
|
// Connect to the tunnel server and expose local service
|
|
61
95
|
const client = startClient({
|
|
62
96
|
tunnelId: '1cf2755f-c151-4281-b3f0-55c399035f87',
|
|
@@ -96,8 +130,12 @@ _Configuration priority: JavaScript parameters > config.toml > environment varia
|
|
|
96
130
|
#### JavaScript API
|
|
97
131
|
|
|
98
132
|
```javascript
|
|
133
|
+
// CommonJS
|
|
99
134
|
const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server');
|
|
100
135
|
|
|
136
|
+
// ES Modules
|
|
137
|
+
// import { startWebSocketServer } from '@remotelinker/reverse-ws-tunnel/server';
|
|
138
|
+
|
|
101
139
|
startWebSocketServer({
|
|
102
140
|
port: 443, // WebSocket server port
|
|
103
141
|
host: '0.0.0.0', // Host to bind (optional)
|
|
@@ -138,8 +176,12 @@ npm run example:server
|
|
|
138
176
|
#### JavaScript API
|
|
139
177
|
|
|
140
178
|
```javascript
|
|
179
|
+
// CommonJS
|
|
141
180
|
const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
142
181
|
|
|
182
|
+
// ES Modules
|
|
183
|
+
// import { startClient } from '@remotelinker/reverse-ws-tunnel/client';
|
|
184
|
+
|
|
143
185
|
const client = startClient({
|
|
144
186
|
tunnelId: '1cf2755f-c151-4281-b3f0-55c399035f87', // Unique tunnel identifier (UUID)
|
|
145
187
|
wsUrl: 'wss://example.com/tunnel', // WebSocket server URL
|
package/client/index.mjs
ADDED
package/cookbook.md
CHANGED
|
@@ -48,7 +48,12 @@ npm install @remotelinker/reverse-ws-tunnel
|
|
|
48
48
|
|
|
49
49
|
**Step 3: Create tunnel configuration**
|
|
50
50
|
```javascript
|
|
51
|
-
// tunnel-config.js
|
|
51
|
+
// tunnel-config.js (CommonJS)
|
|
52
|
+
// const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
53
|
+
|
|
54
|
+
// tunnel-config.mjs (ES Modules)
|
|
55
|
+
// import { startClient } from '@remotelinker/reverse-ws-tunnel/client';
|
|
56
|
+
|
|
52
57
|
const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
53
58
|
|
|
54
59
|
const client = startClient({
|
|
@@ -261,6 +266,8 @@ const secureClient = startClient({
|
|
|
261
266
|
**Server-side SSL termination:**
|
|
262
267
|
```javascript
|
|
263
268
|
const https = require('https');
|
|
269
|
+
// const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server'); // CommonJS
|
|
270
|
+
// import { startWebSocketServer } from '@remotelinker/reverse-ws-tunnel/server'; // ES Modules
|
|
264
271
|
const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server');
|
|
265
272
|
|
|
266
273
|
const sslOptions = {
|
|
@@ -448,6 +455,8 @@ client.on('disconnected', (reason) => {
|
|
|
448
455
|
process.env.LOG_LEVEL = 'debug';
|
|
449
456
|
|
|
450
457
|
// Or programmatically
|
|
458
|
+
// const { setLogLevel } = require('@remotelinker/reverse-ws-tunnel/utils'); // CommonJS
|
|
459
|
+
// import { setLogLevel } from '@remotelinker/reverse-ws-tunnel/utils'; // ES Modules
|
|
451
460
|
const { setLogLevel } = require('@remotelinker/reverse-ws-tunnel/utils');
|
|
452
461
|
setLogLevel('trace');
|
|
453
462
|
```
|
|
@@ -486,6 +495,8 @@ clients.forEach((client, index) => {
|
|
|
486
495
|
|
|
487
496
|
```javascript
|
|
488
497
|
// Server-side auth validation
|
|
498
|
+
// const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server'); // CommonJS
|
|
499
|
+
// import { startWebSocketServer } from '@remotelinker/reverse-ws-tunnel/server'; // ES Modules
|
|
489
500
|
const { startWebSocketServer } = require('@remotelinker/reverse-ws-tunnel/server');
|
|
490
501
|
|
|
491
502
|
const authenticateTunnel = (headers) => {
|
|
@@ -512,6 +523,8 @@ startWebSocketServer({
|
|
|
512
523
|
```javascript
|
|
513
524
|
// Handle WebSocket connections through tunnel
|
|
514
525
|
const WebSocket = require('ws');
|
|
526
|
+
// const { startClient } = require('@remotelinker/reverse-ws-tunnel/client'); // CommonJS
|
|
527
|
+
// import { startClient } from '@remotelinker/reverse-ws-tunnel/client'; // ES Modules
|
|
515
528
|
const { startClient } = require('@remotelinker/reverse-ws-tunnel/client');
|
|
516
529
|
|
|
517
530
|
const client = startClient({
|
package/index.cjs
ADDED
package/index.mjs
ADDED
package/jest.config.cjs
ADDED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotelinker/reverse-ws-tunnel",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "index.
|
|
5
|
+
"main": "index.cjs",
|
|
6
6
|
"config": {
|
|
7
7
|
"dockerRegistry": {
|
|
8
8
|
"prod": "",
|
|
@@ -18,13 +18,28 @@
|
|
|
18
18
|
"docker:build": "cross-conf-env docker image build -f Dockerfile . -t $npm_package_config_dockerRegistry_prodremotelinker/reverse-ws-tunnel:$npm_package_version",
|
|
19
19
|
"docker:deploy": "docker-compose up -d",
|
|
20
20
|
"example:server": "node examples/server/server-example.js",
|
|
21
|
+
"example:server:esm": "node examples/server/server-example.mjs",
|
|
21
22
|
"example:client": "node examples/client/client-example.js",
|
|
23
|
+
"example:client:esm": "node examples/client/client-example.mjs",
|
|
22
24
|
"example:webserver": "node examples/webserver/webserver-example.js"
|
|
23
25
|
},
|
|
24
26
|
"exports": {
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
".": {
|
|
28
|
+
"import": "./index.mjs",
|
|
29
|
+
"require": "./index.cjs"
|
|
30
|
+
},
|
|
31
|
+
"./server": {
|
|
32
|
+
"import": "./server/index.mjs",
|
|
33
|
+
"require": "./server/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./client": {
|
|
36
|
+
"import": "./client/index.mjs",
|
|
37
|
+
"require": "./client/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./utils": {
|
|
40
|
+
"import": "./utils/index.mjs",
|
|
41
|
+
"require": "./utils/index.js"
|
|
42
|
+
}
|
|
28
43
|
},
|
|
29
44
|
"keywords": [],
|
|
30
45
|
"author": "Andrea Trentin <at30in@gmail.com>",
|
package/server/index.mjs
ADDED
package/utils/index.mjs
ADDED