fwdcast 1.2.0 → 1.2.2
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 +79 -22
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,63 +1,120 @@
|
|
|
1
1
|
# fwdcast
|
|
2
2
|
|
|
3
|
-
Temporary file sharing -
|
|
3
|
+
**Temporary file sharing** - Stream local files as a public website without uploading anything.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
9
|
-
- **VS Code-style UI** - Beautiful dark theme file browser
|
|
10
|
-
- **File preview** - View text
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
7
|
+
- 🚀 **Instant sharing** - Get a public URL in seconds
|
|
8
|
+
- 📁 **No upload** - Files stream directly from your machine
|
|
9
|
+
- 🎨 **VS Code-style UI** - Beautiful dark theme file browser
|
|
10
|
+
- 👁️ **File preview** - View text, code, and images in-browser
|
|
11
|
+
- 📥 **ZIP download** - Download entire directories with one click
|
|
12
|
+
- 🔒 **Password protection** - Secure your share with a password
|
|
13
|
+
- 📱 **QR code** - Easy mobile sharing with terminal QR code
|
|
14
|
+
- 📊 **Live stats** - View count and bandwidth in real-time
|
|
15
|
+
- ⏱️ **Custom duration** - Sessions from 1-120 minutes
|
|
16
|
+
- 🚫 **Exclude files** - Skip .git, node_modules, etc.
|
|
13
17
|
|
|
14
18
|
## Installation
|
|
15
19
|
|
|
20
|
+
### Using npx (no install required)
|
|
16
21
|
```bash
|
|
17
|
-
|
|
22
|
+
npx fwdcast
|
|
18
23
|
```
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
### Global install
|
|
22
26
|
```bash
|
|
23
|
-
|
|
27
|
+
npm install -g fwdcast
|
|
28
|
+
fwdcast
|
|
24
29
|
```
|
|
25
30
|
|
|
26
31
|
## Usage
|
|
27
32
|
|
|
28
|
-
Share
|
|
29
|
-
|
|
33
|
+
### Basic - Share current directory
|
|
30
34
|
```bash
|
|
31
35
|
fwdcast
|
|
32
36
|
```
|
|
33
37
|
|
|
34
|
-
Share a specific
|
|
35
|
-
|
|
38
|
+
### Share a specific folder
|
|
36
39
|
```bash
|
|
37
40
|
fwdcast /path/to/folder
|
|
38
41
|
```
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
### Password protect your share
|
|
44
|
+
```bash
|
|
45
|
+
fwdcast -p mysecretpassword
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Show QR code for mobile
|
|
49
|
+
```bash
|
|
50
|
+
fwdcast -q
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Custom session duration (60 minutes)
|
|
54
|
+
```bash
|
|
55
|
+
fwdcast -d 60
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Exclude additional files/folders
|
|
59
|
+
```bash
|
|
60
|
+
fwdcast -e .git node_modules dist
|
|
61
|
+
```
|
|
41
62
|
|
|
63
|
+
### Use a custom relay server
|
|
42
64
|
```bash
|
|
43
65
|
fwdcast --relay wss://your-relay.com/ws
|
|
44
66
|
```
|
|
45
67
|
|
|
68
|
+
### Combine options
|
|
69
|
+
```bash
|
|
70
|
+
fwdcast ~/Documents -p secret123 -d 60 -q
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## CLI Options
|
|
74
|
+
|
|
75
|
+
| Option | Description | Default |
|
|
76
|
+
|--------|-------------|---------|
|
|
77
|
+
| `-p, --password <pass>` | Require password to access | None |
|
|
78
|
+
| `-d, --duration <mins>` | Session duration (1-120) | 30 |
|
|
79
|
+
| `-q, --qr` | Show QR code in terminal | false |
|
|
80
|
+
| `-e, --exclude <patterns>` | Exclude files/folders | See below |
|
|
81
|
+
| `-r, --relay <url>` | Custom relay server | Public relay |
|
|
82
|
+
|
|
83
|
+
### Default Excludes
|
|
84
|
+
These are always excluded: `.git`, `node_modules`, `.DS_Store`, `__pycache__`, `.env`
|
|
85
|
+
|
|
46
86
|
## How It Works
|
|
47
87
|
|
|
48
|
-
1. fwdcast scans your
|
|
49
|
-
2.
|
|
50
|
-
3.
|
|
51
|
-
4.
|
|
52
|
-
5.
|
|
88
|
+
1. **You run fwdcast** - CLI scans your directory and connects to relay
|
|
89
|
+
2. **Get a URL** - Relay assigns a unique session URL
|
|
90
|
+
3. **Share the URL** - Anyone with the link can browse your files
|
|
91
|
+
4. **Files stream on-demand** - When someone requests a file, it streams from your machine
|
|
92
|
+
5. **Session ends** - When you stop the CLI or session expires, files become inaccessible
|
|
93
|
+
|
|
94
|
+
## Live Stats
|
|
95
|
+
|
|
96
|
+
While sharing, fwdcast shows real-time statistics:
|
|
97
|
+
```
|
|
98
|
+
[2 viewers] Total: 15.3 MB | Requests: 42 | 1.2 MB/s
|
|
99
|
+
```
|
|
53
100
|
|
|
54
101
|
## Limits
|
|
55
102
|
|
|
56
103
|
- Maximum total size: 500 MB
|
|
57
104
|
- Maximum file size: 100 MB per file
|
|
58
|
-
- Session duration:
|
|
105
|
+
- Session duration: 1-120 minutes (default: 30)
|
|
59
106
|
- Maximum concurrent viewers: 3
|
|
60
107
|
|
|
108
|
+
## Security Considerations
|
|
109
|
+
|
|
110
|
+
- **Password protection** - Add `-p` flag to require authentication
|
|
111
|
+
- **Temporary by design** - Sessions auto-expire, reducing exposure window
|
|
112
|
+
- **No persistence** - Nothing is stored on the relay server
|
|
113
|
+
- **Path traversal protection** - CLI validates all file paths
|
|
114
|
+
- **Default excludes** - Sensitive files like `.env` are excluded by default
|
|
115
|
+
|
|
116
|
+
**⚠️ Warning**: Without a password, anyone with your session URL can access your shared files.
|
|
117
|
+
|
|
61
118
|
## Self-Hosting
|
|
62
119
|
|
|
63
120
|
You can run your own relay server. See the [relay documentation](https://github.com/vamsiy/fwdcast/tree/main/relay) for setup instructions.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fwdcast",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"description": "Temporary file sharing - stream local files as a public website without uploading",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
11
|
"dist/**/*",
|
|
12
|
-
"scripts/**/*"
|
|
12
|
+
"scripts/**/*",
|
|
13
|
+
"README.md"
|
|
13
14
|
],
|
|
14
15
|
"scripts": {
|
|
15
16
|
"build": "tsc",
|