@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 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
@@ -0,0 +1,2 @@
1
+ import cjsModule from './index.js';
2
+ export const { startClient } = cjsModule;
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
@@ -0,0 +1,9 @@
1
+ const server = require('./server');
2
+ const client = require('./client');
3
+ const utils = require('./utils');
4
+
5
+ module.exports = {
6
+ ...server,
7
+ ...client,
8
+ ...utils
9
+ };
package/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ export * from './server/index.mjs';
2
+ export * from './client/index.mjs';
3
+ export * from './utils/index.mjs';
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ testEnvironment: 'node',
3
+ testTimeout: 30000,
4
+ verbose: true,
5
+ };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@remotelinker/reverse-ws-tunnel",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "",
5
- "main": "index.js",
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
- "./server": "./server/index.js",
26
- "./client": "./client/index.js",
27
- "./utils": "./utils/index.js"
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>",
@@ -0,0 +1,2 @@
1
+ import cjsModule from './index.js';
2
+ export const { startWebSocketServer, setLogContext } = cjsModule;
@@ -0,0 +1,2 @@
1
+ import cjsModule from './index.js';
2
+ export const { setLogLevel, getLogLevel, loadConfig } = cjsModule;