termbeam 1.22.2 → 1.22.3
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/CHANGELOG.md +7 -0
- package/README.md +2 -0
- package/package.json +14 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.22.3] - 2026-04-26
|
|
4
|
+
|
|
5
|
+
- fix(site): auto-detect Cloudflare Pages build target (@dorlugasigal)
|
|
6
|
+
- ci(site): restore Cloudflare Pages deploy workflow (@dorlugasigal)
|
|
7
|
+
- ci(site): merge GitHub Pages and Cloudflare Pages into one workflow (@dorlugasigal)
|
|
8
|
+
- chore(ci): enforce 92% coverage gate (#212) (@dorlugasigal)
|
|
9
|
+
|
|
3
10
|
## [1.22.2] - 2026-04-26
|
|
4
11
|
|
|
5
12
|
- fix(site): repair mobile feature card rendering (@dorlugasigal)
|
package/README.md
CHANGED
|
@@ -137,6 +137,8 @@ The installer checks for [PM2](https://pm2.keymetrics.io/) (and offers to instal
|
|
|
137
137
|
|
|
138
138
|
For systemd, launchd, and Windows Task Scheduler setup, see the [Running in Background docs](https://dorlugasigal.github.io/TermBeam/running-in-background/).
|
|
139
139
|
|
|
140
|
+
> 💡 **Keep the host awake** so the service stays reachable while you're away. macOS: pair with [Amphetamine](https://apps.apple.com/app/amphetamine/id937984704) (process trigger on `node`) or wrap with `caffeinate -dims`. Windows: enable [PowerToys Awake](https://learn.microsoft.com/windows/powertoys/) and disable network adapter power saving. Linux: use `systemd-inhibit` in your unit file. See [Keeping the Host Awake](https://dorlugasigal.github.io/TermBeam/running-in-background/#keeping-the-host-awake-) for the full setup.
|
|
141
|
+
|
|
140
142
|
## Security
|
|
141
143
|
|
|
142
144
|
TermBeam auto-generates a password and creates a secure tunnel by default, binding to `127.0.0.1` (localhost only). Auth uses httpOnly cookies with 24-hour expiry, login is rate-limited to 5 attempts per minute, QR codes contain single-use share tokens (5-min expiry), and security headers (X-Frame-Options, CSP, nosniff) are set on all responses.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "termbeam",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.3",
|
|
4
4
|
"description": "Beam your terminal to any device — mobile-optimized web terminal with multi-session support",
|
|
5
5
|
"main": "src/server/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"start": "node bin/termbeam.js",
|
|
11
11
|
"dev": "node bin/termbeam.js --generate-password",
|
|
12
|
-
"test": "node -e \"const{execFileSync:r}=require('child_process'),{readdirSync:d,statSync:s}=require('fs'),{join:j}=require('path');function f(p){let a=[];for(const e of d(p)){const c=j(p,e);s(c).isDirectory()?a.push(...f(c)):e.endsWith('.test.js')&&!e.startsWith('e2e-')&&e!=='devtunnel-install.test.js'&&a.push(c)}return a}r(process.execPath,['--test','--test-timeout=
|
|
13
|
-
"test:coverage": "c8 --
|
|
12
|
+
"test": "node -e \"const{execFileSync:r}=require('child_process'),{readdirSync:d,statSync:s}=require('fs'),{join:j}=require('path');function f(p){let a=[];for(const e of d(p)){const c=j(p,e);s(c).isDirectory()?a.push(...f(c)):e.endsWith('.test.js')&&!e.startsWith('e2e-')&&e!=='devtunnel-install.test.js'&&a.push(c)}return a}r(process.execPath,['--test','--test-timeout=180000',...f('test')],{stdio:'inherit'})\"",
|
|
13
|
+
"test:coverage": "c8 --reporter=text --reporter=lcov --reporter=json-summary --reporter=json node -e \"const{execFileSync:r}=require('child_process'),{readdirSync:d,statSync:s}=require('fs'),{join:j}=require('path');function f(p){let a=[];for(const e of d(p)){const c=j(p,e);s(c).isDirectory()?a.push(...f(c)):e.endsWith('.test.js')&&!e.startsWith('e2e-')&&e!=='devtunnel-install.test.js'&&a.push(c)}return a}r(process.execPath,['--test','--test-timeout=180000','--test-reporter=spec','--test-reporter-destination=stdout',...f('test')],{stdio:'inherit'})\"",
|
|
14
14
|
"prepare": "husky",
|
|
15
15
|
"format": "prettier --write .",
|
|
16
16
|
"lint": "node --check src/server/*.js src/cli/*.js src/tunnel/*.js src/utils/*.js bin/*.js",
|
|
@@ -84,6 +84,17 @@
|
|
|
84
84
|
"optionalDependencies": {
|
|
85
85
|
"better-sqlite3": "^12.8.0"
|
|
86
86
|
},
|
|
87
|
+
"c8": {
|
|
88
|
+
"check-coverage": true,
|
|
89
|
+
"lines": 92,
|
|
90
|
+
"functions": 92,
|
|
91
|
+
"branches": 85,
|
|
92
|
+
"statements": 92,
|
|
93
|
+
"exclude": [
|
|
94
|
+
"src/tunnel/",
|
|
95
|
+
"test"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
87
98
|
"devDependencies": {
|
|
88
99
|
"@eslint/js": "^10.0.1",
|
|
89
100
|
"@playwright/test": "^1.58.2",
|