fileport-gateway 0.1.5 → 0.1.7
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 +15 -3
- package/dist/cli.js +24 -16
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +3 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/gateway.js +4 -4
- package/dist/gateway.js.map +1 -1
- package/dist/network.d.ts +4 -1
- package/dist/network.js +26 -8
- package/dist/network.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/ui.js +3 -3
- package/docs/NETWORK_AND_CLI.md +23 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,6 +30,7 @@ The npm package includes the checksum-verified official Dufs 0.46.0 Linux x86_64
|
|
|
30
30
|
## Run
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
+
# Direct LAN advertisement (default mode):
|
|
33
34
|
export FILEPORT_PUBLIC_BASE_URL="http://<devbox-ip>:7892"
|
|
34
35
|
fileport serve
|
|
35
36
|
```
|
|
@@ -42,11 +43,22 @@ fileport ls
|
|
|
42
43
|
fileport revoke <share-id>
|
|
43
44
|
```
|
|
44
45
|
|
|
45
|
-
Fileport provides HTTP only. The listener defaults to `0.0.0.0:7892`; generated URLs default to the default-route LAN IPv4, not `127.0.0.1`.
|
|
46
|
+
The Fileport origin listener provides HTTP only. The listener defaults to `0.0.0.0:7892`; generated URLs default to the default-route LAN IPv4, not `127.0.0.1`.
|
|
47
|
+
|
|
48
|
+
Direct mode (the default) requires a configured hostname to resolve entirely to local, listener-covered addresses. For a reverse proxy or tunnel that terminates public HTTPS and forwards to the local HTTP listener, use proxy mode:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
fileport config set --host 127.0.0.1 \
|
|
52
|
+
--public-url https://files.example.com \
|
|
53
|
+
--public-mode proxy
|
|
54
|
+
fileport stop # if a daemon is already running
|
|
55
|
+
fileport doctor --json # starts are explicit; doctor validates configuration
|
|
56
|
+
fileport share ./report.md --readonly
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Proxy mode treats `public.url` as the externally advertised URL. DNS is reported for diagnostics but is not required to resolve to a local interface, and the public port does not need to equal the origin listener port. Fileport does not configure or verify the reverse proxy itself; verify the resulting capability URL end to end.
|
|
46
60
|
|
|
47
61
|
```bash
|
|
48
|
-
fileport doctor --json
|
|
49
|
-
fileport config set --public-url http://files.example.com:7892
|
|
50
62
|
fileport --help
|
|
51
63
|
fileport share --help
|
|
52
64
|
``` Agent control is available only through `$FILEPORT_STATE_DIR/control.sock` (0600).
|
package/dist/cli.js
CHANGED
|
@@ -26,10 +26,10 @@ Commands:
|
|
|
26
26
|
config Show or update persistent configuration
|
|
27
27
|
|
|
28
28
|
Safety defaults:
|
|
29
|
-
Shares are read-only unless --rw is explicit.
|
|
30
|
-
Without public.url, Fileport advertises the default-route LAN IPv4.
|
|
31
|
-
|
|
32
|
-
and covered by the listener. Capability URLs are secrets; do not publish them.
|
|
29
|
+
Shares are read-only unless --rw is explicit. The origin listener is HTTP-only;
|
|
30
|
+
proxy mode may advertise external HTTPS. Without public.url, Fileport advertises the default-route LAN IPv4.
|
|
31
|
+
Direct-mode hostnames are issued only when every A/AAAA address is local
|
|
32
|
+
and covered by the listener; proxy mode supports external HTTPS endpoints. Capability URLs are secrets; do not publish them.
|
|
33
33
|
|
|
34
34
|
Agent output:
|
|
35
35
|
--json writes one JSON object to stdout; diagnostics go to stderr.
|
|
@@ -43,22 +43,22 @@ Examples:
|
|
|
43
43
|
fileport share ./report.md --readonly
|
|
44
44
|
fileport share ./report.md --rw --expire 2h --json
|
|
45
45
|
fileport doctor --json
|
|
46
|
-
fileport config set --public-url
|
|
46
|
+
fileport config set --public-url https://files.example.com --public-mode proxy
|
|
47
47
|
|
|
48
48
|
Environment:
|
|
49
|
-
FILEPORT_HOST, FILEPORT_PORT, FILEPORT_PUBLIC_BASE_URL,
|
|
49
|
+
FILEPORT_HOST, FILEPORT_PORT, FILEPORT_PUBLIC_BASE_URL, FILEPORT_PUBLIC_MODE,
|
|
50
50
|
FILEPORT_STATE_DIR, FILEPORT_CONFIG_FILE, FILEPORT_DUFS_BIN
|
|
51
51
|
|
|
52
52
|
Run 'fileport <command> --help' for command details.`;
|
|
53
53
|
const HELP = {
|
|
54
|
-
serve: `Usage: fileport serve [--host HOST] [--port PORT] [--public-url URL] [--json]\n\nStart the Gateway. --host controls listening; --public-url only controls advertised URLs.\nDefault bind: 0.0.0.0:7892.
|
|
54
|
+
serve: `Usage: fileport serve [--host HOST] [--port PORT] [--public-url URL] [--public-mode direct|proxy] [--json]\n\nStart the Gateway. --host controls listening; --public-url only controls advertised URLs.\nDefault bind: 0.0.0.0:7892. Direct hostnames are DNS-validated as all-local; proxy mode supports HTTPS reverse proxies and tunnels.\n--json emits one readiness object; long-running diagnostics use stderr.`,
|
|
55
55
|
share: `Usage: fileport share <path> [--readonly|--rw] [--expire 2h] [--json]\n\nCreate an opaque capability URL. Default: --readonly. --rw permits strict,\nversioned, existing-file-only text saves. Expiry units: m, h, d, w.\nThe capability URL is a secret. Default stdout is only the URL.`,
|
|
56
56
|
ls: `Usage: fileport ls [--json]\n\nList non-expired shares. Human mode prints a compact table; JSON mode emits {shares:[...]}.`,
|
|
57
57
|
revoke: `Usage: fileport revoke <share-id> [--json]\n\nImmediately revoke a capability. JSON mode emits {ok,id}. Exit 6 if absent.`,
|
|
58
58
|
status: `Usage: fileport status [--json]\n\nShow daemon PID, bind address, advertised address, and active share count.`,
|
|
59
59
|
stop: `Usage: fileport stop [--json]\n\nGracefully stop the user-scoped Gateway and its Dufs workers.`,
|
|
60
60
|
doctor: `Usage: fileport doctor [--json]\n\nShow a runtime snapshot of interfaces, selected LAN IPv4, public URL, DNS/CNAME\nresolution, local matches, and warnings. Does not create a share.`,
|
|
61
|
-
config: `Usage:\n fileport config show [--json]\n fileport config set [--host H] [--port N] [--public-url URL]\n fileport config unset --public-url\n\nPersistent file: ~/.config/fileport/config.json (0700 directory, 0600 file).\nPriority: command flags > environment > config file > defaults. Restart after changes.`
|
|
61
|
+
config: `Usage:\n fileport config show [--json]\n fileport config set [--host H] [--port N] [--public-url URL] [--public-mode direct|proxy]\n fileport config unset --public-url\n\nPersistent file: ~/.config/fileport/config.json (0700 directory, 0600 file).\nPriority: command flags > environment > config file > defaults. Restart after changes.`
|
|
62
62
|
};
|
|
63
63
|
class CliError extends Error {
|
|
64
64
|
exitCode;
|
|
@@ -108,7 +108,7 @@ catch (error) {
|
|
|
108
108
|
if (error instanceof CliError)
|
|
109
109
|
throw error;
|
|
110
110
|
} await fs.mkdir(config.stateDir, { recursive: true, mode: 0o700 }); const executable = fileURLToPath(import.meta.url), child = spawn(process.execPath, [executable, "serve"], { detached: true, stdio: "ignore", env: process.env }); child.unref(); await waitForControl(socket); return { config, socket }; }
|
|
111
|
-
function overrides(args) { return { host: option(args, "--host"), port: option(args, "--port") ? Number(option(args, "--port")) : undefined, publicBaseUrl: option(args, "--public-url") }; }
|
|
111
|
+
function overrides(args) { return { host: option(args, "--host"), port: option(args, "--port") ? Number(option(args, "--port")) : undefined, publicBaseUrl: option(args, "--public-url"), publicMode: option(args, "--public-mode") }; }
|
|
112
112
|
let jsonRequested = false;
|
|
113
113
|
async function main() {
|
|
114
114
|
const argv = process.argv.slice(2), command = argv[0];
|
|
@@ -130,7 +130,7 @@ async function main() {
|
|
|
130
130
|
}
|
|
131
131
|
const asJson = jsonFlag(args);
|
|
132
132
|
if (command === "serve") {
|
|
133
|
-
assertOnlyFlags(args, new Set(["--json", "--host", "--port", "--public-url"]), new Set(["--host", "--port", "--public-url"]));
|
|
133
|
+
assertOnlyFlags(args, new Set(["--json", "--host", "--port", "--public-url", "--public-mode"]), new Set(["--host", "--port", "--public-url", "--public-mode"]));
|
|
134
134
|
const config = loadConfig(process.env, overrides(args)), gateway = new Gateway(config);
|
|
135
135
|
try {
|
|
136
136
|
await gateway.start();
|
|
@@ -227,7 +227,7 @@ async function main() {
|
|
|
227
227
|
throw new CliError("gateway is not running", 5);
|
|
228
228
|
const gateway = new Gateway(config);
|
|
229
229
|
try {
|
|
230
|
-
const result = await gateway.addressResolver.inspect({ host: config.host, port: config.port, publicBaseUrl: config.publicBaseUrl }, true).then(s => ({ bind: { host: config.host, port: config.port }, ...s }));
|
|
230
|
+
const result = await gateway.addressResolver.inspect({ host: config.host, port: config.port, publicBaseUrl: config.publicBaseUrl, publicMode: config.publicMode }, true).then(s => ({ bind: { host: config.host, port: config.port }, ...s }));
|
|
231
231
|
output(result, asJson, JSON.stringify(result, null, 2));
|
|
232
232
|
}
|
|
233
233
|
catch (error) {
|
|
@@ -257,9 +257,11 @@ async function main() {
|
|
|
257
257
|
return;
|
|
258
258
|
}
|
|
259
259
|
if (action === "set") {
|
|
260
|
-
const host = option(args, "--host"), port = option(args, "--port"), publicUrl = option(args, "--public-url");
|
|
261
|
-
if (!host && !port && !publicUrl)
|
|
262
|
-
throw new CliError("config set requires --host, --port, or --public-
|
|
260
|
+
const host = option(args, "--host"), port = option(args, "--port"), publicUrl = option(args, "--public-url"), publicMode = option(args, "--public-mode");
|
|
261
|
+
if (!host && !port && !publicUrl && !publicMode)
|
|
262
|
+
throw new CliError("config set requires --host, --port, --public-url, or --public-mode", 2);
|
|
263
|
+
if (publicMode && publicMode !== "direct" && publicMode !== "proxy")
|
|
264
|
+
throw new CliError("--public-mode must be direct or proxy", 2);
|
|
263
265
|
const next = { ...value, bind: { ...value.bind }, public: { ...value.public, dnsPolicy: "all-local" } };
|
|
264
266
|
if (host)
|
|
265
267
|
next.bind.host = host;
|
|
@@ -267,8 +269,14 @@ async function main() {
|
|
|
267
269
|
next.bind.port = Number(port);
|
|
268
270
|
if (publicUrl)
|
|
269
271
|
next.public.url = publicUrl;
|
|
270
|
-
|
|
271
|
-
|
|
272
|
+
if (publicMode)
|
|
273
|
+
next.public.mode = publicMode;
|
|
274
|
+
if (next.public.mode === "proxy")
|
|
275
|
+
delete next.public.dnsPolicy;
|
|
276
|
+
else
|
|
277
|
+
next.public.dnsPolicy = "all-local";
|
|
278
|
+
const checked = loadConfig({ ...process.env, FILEPORT_CONFIG_FILE: "/nonexistent" }, { host: next.bind?.host, port: next.bind?.port, publicBaseUrl: next.public?.url ?? undefined, publicMode: next.public?.mode });
|
|
279
|
+
await new PublicAddressResolver().inspect({ host: checked.host, port: checked.port, publicBaseUrl: checked.publicBaseUrl, publicMode: checked.publicMode }, true);
|
|
272
280
|
writeConfigFile(next, file);
|
|
273
281
|
output({ ok: true, file, config: next }, asJson, `updated ${file}; restart Fileport to apply`);
|
|
274
282
|
return;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FileportConfig } from "./types.js";
|
|
1
|
+
import type { FileportConfig, PublicUrlMode } from "./types.js";
|
|
2
2
|
export interface FileportConfigFile {
|
|
3
3
|
bind?: {
|
|
4
4
|
host?: string;
|
|
@@ -6,6 +6,7 @@ export interface FileportConfigFile {
|
|
|
6
6
|
};
|
|
7
7
|
public?: {
|
|
8
8
|
url?: string | null;
|
|
9
|
+
mode?: PublicUrlMode;
|
|
9
10
|
dnsPolicy?: "all-local";
|
|
10
11
|
};
|
|
11
12
|
}
|
|
@@ -13,6 +14,7 @@ export interface ConfigOverrides {
|
|
|
13
14
|
host?: string;
|
|
14
15
|
port?: number;
|
|
15
16
|
publicBaseUrl?: string;
|
|
17
|
+
publicMode?: PublicUrlMode;
|
|
16
18
|
}
|
|
17
19
|
export declare function configPath(env?: NodeJS.ProcessEnv): string;
|
|
18
20
|
export declare function readConfigFile(file?: string): FileportConfigFile;
|
package/dist/config.js
CHANGED
|
@@ -3,6 +3,13 @@ import os from "node:os";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { normalizePublicUrl } from "./network.js";
|
|
6
|
+
function validPublicMode(value) {
|
|
7
|
+
if (value === undefined || value === null || value === "")
|
|
8
|
+
return "direct";
|
|
9
|
+
if (value !== "direct" && value !== "proxy")
|
|
10
|
+
throw new Error(`invalid public mode: ${String(value)}`);
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
6
13
|
function validPort(value, fallback) {
|
|
7
14
|
if (value === undefined || value === null || value === "")
|
|
8
15
|
return fallback;
|
|
@@ -63,7 +70,8 @@ export function loadConfig(env = process.env, overrides = {}) {
|
|
|
63
70
|
const stateHome = env.XDG_STATE_HOME || path.join(os.homedir(), ".local", "state"), file = readConfigFile(configPath(env));
|
|
64
71
|
const publicRaw = overrides.publicBaseUrl ?? env.FILEPORT_PUBLIC_BASE_URL ?? file.public?.url ?? undefined;
|
|
65
72
|
const publicBaseUrl = publicRaw ? normalizePublicUrl(publicRaw).toString().replace(/\/$/, "") : undefined;
|
|
73
|
+
const publicMode = validPublicMode(overrides.publicMode ?? env.FILEPORT_PUBLIC_MODE ?? file.public?.mode);
|
|
66
74
|
const packagedDufs = fileURLToPath(new URL("../vendor/dufs", import.meta.url));
|
|
67
|
-
return { stateDir: path.resolve(env.FILEPORT_STATE_DIR || path.join(stateHome, "fileport")), host: overrides.host ?? env.FILEPORT_HOST ?? file.bind?.host ?? "0.0.0.0", port: validPort(overrides.port ?? env.FILEPORT_PORT ?? file.bind?.port, 7892), dufsBin: path.resolve(env.FILEPORT_DUFS_BIN || packagedDufs), publicBaseUrl, configFile: configPath(env) };
|
|
75
|
+
return { stateDir: path.resolve(env.FILEPORT_STATE_DIR || path.join(stateHome, "fileport")), host: overrides.host ?? env.FILEPORT_HOST ?? file.bind?.host ?? "0.0.0.0", port: validPort(overrides.port ?? env.FILEPORT_PORT ?? file.bind?.port, 7892), dufsBin: path.resolve(env.FILEPORT_DUFS_BIN || packagedDufs), publicBaseUrl, publicMode, configFile: configPath(env) };
|
|
68
76
|
}
|
|
69
77
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAMlD,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,KAAG,SAAS,IAAE,KAAK,KAAG,IAAI,IAAE,KAAK,KAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IACjE,IAAI,KAAK,KAAG,QAAQ,IAAE,KAAK,KAAG,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,QAAgB;IACjD,IAAI,KAAK,KAAG,SAAS,IAAE,KAAK,KAAG,IAAI,IAAE,KAAK,KAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAAC,MAAM,MAAM,GAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAE,MAAM,GAAC,CAAC,IAAE,MAAM,GAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAAC,OAAO,MAAM,CAAC;AAC1H,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,MAAsB,OAAO,CAAC,GAAG,IAAW,MAAM,IAAI,GAAC,GAAG,CAAC,eAAe,IAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC,UAAU,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACpO,MAAM,UAAU,cAAc,CAAC,IAAI,GAAC,UAAU,EAAE;IAC9C,IAAI,CAAC;QAAC,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,KAAK,IAAE,OAAO,KAAK,KAAG,QAAQ,IAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAC5K,OAAM,KAAK,EAAC,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAG,QAAQ;YAAE,OAAO,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,KAAK,YAAY,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;AAC7L,CAAC;AACD,MAAM,UAAU,eAAe,CAAC,KAAwB,EAAC,IAAI,GAAC,UAAU,EAAE;IACxE,MAAM,GAAG,GAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;IAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;IAAC,MAAM,IAAI,GAAC,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IAAC,IAAI,EAAmB,CAAC;IACvK,IAAI,CAAC;QAAC,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAC,EAAE,CAAC,aAAa,CAAC,EAAE,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAAC,EAAE,GAAC,SAAS,CAAC;QAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAC,IAAI,CAAC,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAC,MAAM,SAAS,GAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;QAAC,IAAG,CAAC;YAAA,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAAA,CAAC;gBAAO,CAAC;YAAA,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAAA,CAAC;IAAC,CAAC;YACrS,CAAC;QAAC,IAAG,EAAE,KAAG,SAAS;YAAC,IAAG,CAAC;gBAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAA,CAAC;YAAA,MAAK,CAAC,CAAA,CAAC;QAAC,IAAG,CAAC;YAAA,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAAA,CAAC;QAAA,MAAK,CAAC,CAAA,CAAC;IAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAsB,OAAO,CAAC,GAAG,EAAC,YAA0B,EAAE;IACvF,MAAM,SAAS,GAAC,GAAG,CAAC,cAAc,IAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAC,OAAO,CAAC,EAAE,IAAI,GAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACnH,MAAM,SAAS,GAAC,SAAS,CAAC,aAAa,IAAE,GAAG,CAAC,wBAAwB,IAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAE,SAAS,CAAC;IACnG,MAAM,aAAa,GAAC,SAAS,CAAA,CAAC,CAAA,kBAAkB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC;IACnG,MAAM,UAAU,GAAC,eAAe,CAAC,SAAS,CAAC,UAAU,IAAE,GAAG,CAAC,oBAAoB,IAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpG,MAAM,YAAY,GAAC,aAAa,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,EAAC,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAC,UAAU,CAAC,CAAC,EAAC,IAAI,EAAC,SAAS,CAAC,IAAI,IAAE,GAAG,CAAC,aAAa,IAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAE,SAAS,EAAC,IAAI,EAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAE,GAAG,CAAC,aAAa,IAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,CAAC,EAAC,OAAO,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAE,YAAY,CAAC,EAAC,aAAa,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,CAAC;AACnV,CAAC"}
|
package/dist/gateway.js
CHANGED
|
@@ -65,7 +65,7 @@ export class Gateway {
|
|
|
65
65
|
await this.lockFile.writeFile(`${process.pid}\n`);
|
|
66
66
|
await this.lockFile.sync();
|
|
67
67
|
await this.registry.load();
|
|
68
|
-
this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
|
|
68
|
+
this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
|
|
69
69
|
try {
|
|
70
70
|
await fs.unlink(this.controlSocket);
|
|
71
71
|
}
|
|
@@ -115,7 +115,7 @@ export class Gateway {
|
|
|
115
115
|
}
|
|
116
116
|
async probeListener() {
|
|
117
117
|
const primary = this.config.host === "0.0.0.0" ? "127.0.0.1" : this.config.host === "::" ? "::1" : this.config.host;
|
|
118
|
-
const advertised = this.publicSnapshot?.dns?.resolved ?? (this.publicSnapshot?.advertisedAddress?.kind === "configured-ip" || this.publicSnapshot?.advertisedAddress?.kind === "lan-ip" ? [this.publicSnapshot.advertisedAddress.host] : []);
|
|
118
|
+
const advertised = this.publicSnapshot?.publicMode === "proxy" ? [] : this.publicSnapshot?.dns?.resolved ?? (this.publicSnapshot?.advertisedAddress?.kind === "configured-ip" || this.publicSnapshot?.advertisedAddress?.kind === "lan-ip" ? [this.publicSnapshot.advertisedAddress.host] : []);
|
|
119
119
|
for (const host of [...new Set([primary, ...advertised])])
|
|
120
120
|
await this.probeHost(host);
|
|
121
121
|
}
|
|
@@ -123,7 +123,7 @@ export class Gateway {
|
|
|
123
123
|
async handleControl(req, res) {
|
|
124
124
|
const url = new URL(req.url || "/", "http://localhost");
|
|
125
125
|
if (req.method === "POST" && url.pathname === "/shares") {
|
|
126
|
-
const snapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
|
|
126
|
+
const snapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
|
|
127
127
|
if (!snapshot.publicBaseUrl)
|
|
128
128
|
throw new PublicAddressError("NO_LAN_ADDRESS", "no LAN IPv4 address found; connect a network or configure public.url");
|
|
129
129
|
this.publicSnapshot = snapshot;
|
|
@@ -135,7 +135,7 @@ export class Gateway {
|
|
|
135
135
|
return json(res, 200, { shares: this.registry.list() });
|
|
136
136
|
if (req.method === "GET" && url.pathname === "/doctor") {
|
|
137
137
|
try {
|
|
138
|
-
this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl }, true);
|
|
138
|
+
this.publicSnapshot = await this.addressResolver.inspect({ host: this.config.host, port: this.config.port, publicBaseUrl: this.config.publicBaseUrl, publicMode: this.config.publicMode }, true);
|
|
139
139
|
return json(res, 200, { bind: { host: this.config.host, port: this.config.port }, ...this.publicSnapshot });
|
|
140
140
|
}
|
|
141
141
|
catch (error) {
|
package/dist/gateway.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/network.d.ts
CHANGED
|
@@ -14,14 +14,16 @@ export interface DnsSnapshot {
|
|
|
14
14
|
localMatches: string[];
|
|
15
15
|
checkedAt: string;
|
|
16
16
|
}
|
|
17
|
+
export type PublicUrlMode = "direct" | "proxy";
|
|
17
18
|
export interface AdvertisedAddress {
|
|
18
|
-
kind: "lan-ip" | "configured-hostname" | "configured-ip" | "local-only";
|
|
19
|
+
kind: "lan-ip" | "configured-hostname" | "configured-ip" | "configured-proxy" | "local-only";
|
|
19
20
|
host: string;
|
|
20
21
|
validatedAt: string;
|
|
21
22
|
}
|
|
22
23
|
export interface PublicSnapshot {
|
|
23
24
|
status: "ok" | "degraded" | "local-only";
|
|
24
25
|
publicBaseUrl?: string;
|
|
26
|
+
publicMode?: PublicUrlMode;
|
|
25
27
|
selectedLanIp?: string;
|
|
26
28
|
candidates: AddressCandidate[];
|
|
27
29
|
advertisedAddress?: AdvertisedAddress;
|
|
@@ -59,6 +61,7 @@ export declare class PublicAddressResolver {
|
|
|
59
61
|
host: string;
|
|
60
62
|
port: number;
|
|
61
63
|
publicBaseUrl?: string;
|
|
64
|
+
publicMode?: PublicUrlMode;
|
|
62
65
|
}, fresh?: boolean): Promise<PublicSnapshot>;
|
|
63
66
|
}
|
|
64
67
|
export declare function normalizePublicUrl(value: string): URL;
|
package/dist/network.js
CHANGED
|
@@ -134,24 +134,42 @@ export class PublicAddressResolver {
|
|
|
134
134
|
let snapshot;
|
|
135
135
|
if (!input.publicBaseUrl) {
|
|
136
136
|
const selected = candidates.find(candidate => bindCovers(input.host, candidate.address));
|
|
137
|
-
snapshot = selected ? { status: "ok", publicBaseUrl: `http://${selected.address}:${input.port}`, selectedLanIp: selected.address, candidates, advertisedAddress: { kind: "lan-ip", host: selected.address, validatedAt: now.toISOString() }, warnings }
|
|
137
|
+
snapshot = selected ? { status: "ok", publicBaseUrl: `http://${selected.address}:${input.port}`, publicMode: "direct", selectedLanIp: selected.address, candidates, advertisedAddress: { kind: "lan-ip", host: selected.address, validatedAt: now.toISOString() }, warnings }
|
|
138
138
|
: { status: "local-only", publicBaseUrl: undefined, candidates, warnings: [candidates.length ? `bind host ${input.host} does not cover any LAN IPv4 candidate` : "no LAN IPv4 address found; connect a network or configure public.url"] };
|
|
139
139
|
}
|
|
140
140
|
else {
|
|
141
141
|
const url = normalizePublicUrl(input.publicBaseUrl);
|
|
142
|
-
const
|
|
143
|
-
if (url.port !== expectedPort)
|
|
144
|
-
throw new PublicAddressError("PUBLIC_PORT_MISMATCH", `public URL port ${url.port || 80} does not match listener port ${input.port}`);
|
|
142
|
+
const publicMode = input.publicMode ?? "direct";
|
|
145
143
|
const hostname = url.hostname.replace(/^\[|\]$/g, "");
|
|
146
144
|
const locals = localAddresses(this.adapter);
|
|
147
145
|
const ipKind = net.isIP(hostname);
|
|
146
|
+
if (publicMode === "proxy") {
|
|
147
|
+
let dns;
|
|
148
|
+
if (!ipKind) {
|
|
149
|
+
try {
|
|
150
|
+
const { addresses, chain } = await resolveAll(hostname, this.adapter);
|
|
151
|
+
dns = { hostname, cnameChain: chain, resolved: addresses, localMatches: addresses.filter(address => locals.has(address)), checkedAt: now.toISOString() };
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
warnings.push(`public proxy DNS check failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
snapshot = { status: warnings.length ? "degraded" : "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: "configured-proxy", host: hostname, validatedAt: now.toISOString() }, dns, warnings };
|
|
158
|
+
this.cache = { key, at: now.getTime(), snapshot };
|
|
159
|
+
return snapshot;
|
|
160
|
+
}
|
|
161
|
+
if (url.protocol !== "http:")
|
|
162
|
+
throw new PublicAddressError("DIRECT_URL_REQUIRES_HTTP", "direct public URL must use HTTP; use public mode proxy for an HTTPS reverse proxy or tunnel");
|
|
163
|
+
const expectedPort = input.port === 80 ? "" : String(input.port);
|
|
164
|
+
if (url.port !== expectedPort)
|
|
165
|
+
throw new PublicAddressError("PUBLIC_PORT_MISMATCH", `public URL port ${url.port || 80} does not match listener port ${input.port}`);
|
|
148
166
|
if (ipKind) {
|
|
149
167
|
const normalized = normalizeIp(hostname);
|
|
150
168
|
if (!locals.has(normalized))
|
|
151
169
|
throw new PublicAddressError("PUBLIC_IP_NOT_LOCAL", `public IP ${hostname} is not assigned to this machine`);
|
|
152
170
|
if (!bindCovers(input.host, normalized))
|
|
153
171
|
throw new PublicAddressError("PUBLIC_IP_NOT_BOUND", `bind host ${input.host} does not cover public IP ${hostname}`);
|
|
154
|
-
snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), candidates, advertisedAddress: { kind: normalized === "127.0.0.1" || normalized === "::1" ? "local-only" : "configured-ip", host: hostname, validatedAt: now.toISOString() }, warnings };
|
|
172
|
+
snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: normalized === "127.0.0.1" || normalized === "::1" ? "local-only" : "configured-ip", host: hostname, validatedAt: now.toISOString() }, warnings };
|
|
155
173
|
}
|
|
156
174
|
else {
|
|
157
175
|
const { addresses, chain } = await resolveAll(hostname, this.adapter), matches = addresses.filter(a => locals.has(a));
|
|
@@ -164,7 +182,7 @@ export class PublicAddressResolver {
|
|
|
164
182
|
const uncovered = addresses.filter(a => !bindCovers(input.host, a));
|
|
165
183
|
if (uncovered.length)
|
|
166
184
|
throw new PublicAddressError("DNS_NOT_BOUND", `bind host ${input.host} does not cover resolved addresses [${uncovered.join(", ")}]`);
|
|
167
|
-
snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), candidates, advertisedAddress: { kind: "configured-hostname", host: hostname, validatedAt: now.toISOString() }, dns: { hostname, cnameChain: chain, resolved: addresses, localMatches: matches, checkedAt: now.toISOString() }, warnings };
|
|
185
|
+
snapshot = { status: "ok", publicBaseUrl: url.toString().replace(/\/$/, ""), publicMode, candidates, advertisedAddress: { kind: "configured-hostname", host: hostname, validatedAt: now.toISOString() }, dns: { hostname, cnameChain: chain, resolved: addresses, localMatches: matches, checkedAt: now.toISOString() }, warnings };
|
|
168
186
|
}
|
|
169
187
|
}
|
|
170
188
|
this.cache = { key, at: now.getTime(), snapshot };
|
|
@@ -179,8 +197,8 @@ export function normalizePublicUrl(value) {
|
|
|
179
197
|
catch {
|
|
180
198
|
throw new PublicAddressError("INVALID_PUBLIC_URL", `invalid public URL: ${value}`);
|
|
181
199
|
}
|
|
182
|
-
if (url.protocol !== "http:")
|
|
183
|
-
throw new PublicAddressError("INVALID_PUBLIC_URL", "
|
|
200
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
201
|
+
throw new PublicAddressError("INVALID_PUBLIC_URL", "public URL must use HTTP or HTTPS");
|
|
184
202
|
if (url.username || url.password || url.search || url.hash)
|
|
185
203
|
throw new PublicAddressError("INVALID_PUBLIC_URL", "public URL must not contain userinfo, query, or fragment");
|
|
186
204
|
if (url.pathname !== "/" && url.pathname !== "")
|
package/dist/network.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AAwBzB,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAAwB;IAArB,YAAqB,IAAY,EAAE,OAAe;QAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAAhD,SAAI,GAAJ,IAAI,CAAQ;IAAqC,CAAC;CAAE;AAEzH,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnF,CAAC;AACD,SAAS,SAAS,CAAC,EAAU;IAC3B,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AACxF,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAY,IAAa,OAAO,kEAAkE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1I,SAAS,WAAW,CAAC,EAAU,IAAY,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEzF,MAAM,OAAO,oBAAoB;IAC/B,UAAU,KAAK,OAAO,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC/C,KAAK,CAAC,gBAAgB;QACpB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxI,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;IAC/B,CAAC;IACD,QAAQ,CAAC,QAAgB,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,QAAgB,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,YAAY,CAAC,QAAgB,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrE,GAAG,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;CAC7B;AAED,MAAM,UAAU,cAAc,CAAC,OAAuB;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAAE,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/H,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAuB;IACzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACnD,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC7E,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QACxM,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7H,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe;IACjD,MAAM,EAAE,GAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,KAAG,CAAC,IAAE,CAAC,KAAG,GAAG,IAAE,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,GAAG,CAAC,IAAE,CAAC,GAAC,GAAG,CAAC;IAAC,CAAC;IACjH,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,KAAG,IAAI,IAAE,EAAE,KAAG,KAAK,IAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,UAAU,CAAC,IAAY,EAAE,OAAe;IAC/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,OAAO,IAAI,KAAK,MAAM,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAuB;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAAC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACnG,KAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC;QACrB,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YAAC,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,GAAE,KAA+B,CAAC,IAAI,CAAC;YAAC,IAAI,CAAC,SAAS,EAAC,WAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;YAAC,MAAM,KAAK,CAAC;QAAC,CAAC;QACjN,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,8BAA8B,QAAQ,EAAE,CAAC,CAAC;QAClJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,GAAG,IAAI,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,mBAAmB,QAAQ,iBAAiB,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAuB;IACjE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC3F,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAsC,CAAC;QACvG,MAAM,IAAI,GAAI,MAAM,EAAE,MAA4C,EAAE,IAAI,IAAI,WAAW,CAAC;QACxF,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,6BAA6B,QAAQ,KAAK,IAAI,gCAAgC,CAAC,CAAC;IACpI,CAAC;IACD,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,CAAC;AAC3B,CAAC;AAED,MAAM,OAAO,qBAAqB;IAEH;IAAuE;IAD5F,KAAK,CAAkD;IAC/D,YAA6B,UAA0B,IAAI,oBAAoB,EAAE,EAAmB,QAAM,MAAM;QAAnF,YAAO,GAAP,OAAO,CAA6C;QAAmB,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpH,KAAK,CAAC,OAAO,CAAC,KAAsD,EAAE,KAAK,GAAC,KAAK;QAC/E,MAAM,GAAG,GAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,KAAG,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1G,MAAM,UAAU,GAAC,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAU,EAAE,CAAC;QACzE,IAAI,QAAwB,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAA,EAAE,CAAA,UAAU,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACpF,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,aAAa,EAAC,UAAU,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,EAAC,aAAa,EAAC,QAAQ,CAAC,OAAO,EAAC,UAAU,EAAC,iBAAiB,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,CAAC,OAAO,EAAC,WAAW,EAAC,GAAG,CAAC,WAAW,EAAE,EAAC,EAAC,QAAQ,EAAC;gBACnO,CAAC,CAAC,EAAC,MAAM,EAAC,YAAY,EAAC,aAAa,EAAC,SAAS,EAAC,UAAU,EAAC,QAAQ,EAAC,CAAC,UAAU,CAAC,MAAM,CAAA,CAAC,CAAA,aAAa,KAAK,CAAC,IAAI,wCAAwC,CAAA,CAAC,CAAA,sEAAsE,CAAC,EAAC,CAAC;QACnO,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAAC,MAAM,YAAY,GAAC,KAAK,CAAC,IAAI,KAAG,EAAE,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,IAAG,GAAG,CAAC,IAAI,KAAG,YAAY;gBAAE,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,EAAC,mBAAmB,GAAG,CAAC,IAAI,IAAE,EAAE,iCAAiC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,MAAM,QAAQ,GAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAC;YAAC,MAAM,MAAM,GAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAAC,MAAM,MAAM,GAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3Y,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,UAAU,GAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,qBAAqB,EAAE,aAAa,QAAQ,kCAAkC,CAAC,CAAC;gBAClL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,qBAAqB,EAAE,aAAa,KAAK,CAAC,IAAI,6BAA6B,QAAQ,EAAE,CAAC,CAAC;gBAC5J,QAAQ,GAAC,EAAC,MAAM,EAAC,IAAI,EAAC,aAAa,EAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,UAAU,EAAC,iBAAiB,EAAC,EAAC,IAAI,EAAC,UAAU,KAAG,WAAW,IAAE,UAAU,KAAG,KAAK,CAAA,CAAC,CAAA,YAAY,CAAA,CAAC,CAAA,eAAe,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,GAAG,CAAC,WAAW,EAAE,EAAC,EAAC,QAAQ,EAAC,CAAC;YAC3O,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAC,SAAS,EAAC,KAAK,EAAC,GAAC,MAAM,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5G,MAAM,WAAW,GAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,IAAG,WAAW,CAAC,MAAM;oBAAE,MAAM,IAAI,kBAAkB,CAAC,yBAAyB,EAAC,eAAe,QAAQ,yCAAyC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChP,MAAM,QAAQ,GAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,IAAI,QAAQ,CAAC,MAAM;oBAAE,MAAM,IAAI,kBAAkB,CAAC,mBAAmB,EAAE,eAAe,QAAQ,iBAAiB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxP,MAAM,SAAS,GAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,IAAI,SAAS,CAAC,MAAM;oBAAE,MAAM,IAAI,kBAAkB,CAAC,eAAe,EAAE,aAAa,KAAK,CAAC,IAAI,uCAAuC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3N,QAAQ,GAAC,EAAC,MAAM,EAAC,IAAI,EAAC,aAAa,EAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,UAAU,EAAC,iBAAiB,EAAC,EAAC,IAAI,EAAC,qBAAqB,EAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,EAAC,GAAG,CAAC,WAAW,EAAE,EAAC,EAAC,GAAG,EAAC,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,YAAY,EAAC,OAAO,EAAC,SAAS,EAAC,GAAG,CAAC,WAAW,EAAE,EAAC,EAAC,QAAQ,EAAC,CAAC;YAC3R,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAC,CAAC;QAAC,OAAO,QAAQ,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,GAAQ,CAAC;IAAC,IAAI,CAAC;QAAC,GAAG,GAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,uBAAuB,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IACvI,IAAI,GAAG,CAAC,QAAQ,KAAG,OAAO;QAAE,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,6BAA6B,CAAC,CAAC;IAC9G,IAAI,GAAG,CAAC,QAAQ,IAAE,GAAG,CAAC,QAAQ,IAAE,GAAG,CAAC,MAAM,IAAE,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,0DAA0D,CAAC,CAAC;IACrK,IAAI,GAAG,CAAC,QAAQ,KAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAG,EAAE;QAAE,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,oCAAoC,CAAC,CAAC;IACtI,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type ShareKind = "file" | "directory";
|
|
2
2
|
export type SharePermission = "ro" | "rw";
|
|
3
|
+
export type PublicUrlMode = "direct" | "proxy";
|
|
3
4
|
export interface Share {
|
|
4
5
|
id: string;
|
|
5
6
|
target: string;
|
|
@@ -15,5 +16,6 @@ export interface FileportConfig {
|
|
|
15
16
|
port: number;
|
|
16
17
|
dufsBin: string;
|
|
17
18
|
publicBaseUrl?: string;
|
|
19
|
+
publicMode: PublicUrlMode;
|
|
18
20
|
configFile: string;
|
|
19
21
|
}
|
package/dist/ui.js
CHANGED
|
@@ -3,15 +3,15 @@ export function previewHtml(share) {
|
|
|
3
3
|
return `<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>Fileport</title>
|
|
4
4
|
<style>:root{font:15px system-ui,sans-serif;color:#202124;background:#f6f7f9}*{box-sizing:border-box}body{margin:0}header{height:52px;display:flex;align-items:center;gap:12px;padding:0 18px;background:#fff;border-bottom:1px solid #dfe1e5}header strong{font-size:17px}.badge{font-size:12px;padding:3px 7px;border-radius:12px;background:#e8f0fe;color:#174ea6}main{max-width:1200px;margin:18px auto;padding:0 16px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.path{font-family:ui-monospace,monospace;overflow-wrap:anywhere}.status{margin-left:auto;color:#5f6368;font-size:13px}.panel{background:#fff;border:1px solid #dfe1e5;border-radius:10px;overflow:hidden;min-height:160px}.entry{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid #eee;color:#174ea6;text-decoration:none}.entry:hover{background:#f8faff}.content{padding:18px;overflow:auto}pre{margin:0;white-space:pre-wrap;word-break:break-word;font:13px/1.5 ui-monospace,SFMono-Regular,monospace}table{border-collapse:collapse;width:100%}td,th{border:1px solid #ddd;padding:6px;text-align:left}img{max-width:100%;height:auto}.error{color:#b3261e;padding:18px}button{border:1px solid #ccd;background:#fff;border-radius:6px;padding:6px 10px;cursor:pointer}button:disabled{opacity:.5}.save{background:#174ea6;color:#fff}textarea{width:100%;height:70vh;border:0;padding:16px;resize:vertical;font:13px/1.5 ui-monospace,SFMono-Regular,monospace}.markdown-body{font-size:16px;line-height:1.65;color:#1f2328}.markdown-body h1,.markdown-body h2,.markdown-body h3{line-height:1.25;margin:1.4em 0 .6em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #d8dee4}.markdown-body p{margin:.8em 0}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body li+li{margin-top:.25em}.markdown-body blockquote{margin:1em 0;padding:0 1em;color:#59636e;border-left:.25em solid #d0d7de}.markdown-body code{padding:.15em .35em;border-radius:4px;background:#eff1f3;font:85% ui-monospace,SFMono-Regular,monospace}.markdown-body pre{padding:16px;overflow:auto;background:#f6f8fa;border-radius:6px;white-space:pre}.markdown-body pre code{padding:0;background:transparent;font-size:100%}.markdown-body table{display:block;overflow:auto;margin:1em 0;border-spacing:0}.markdown-body th{font-weight:600;background:#f6f8fa}.markdown-body th,.markdown-body td{padding:6px 13px;border:1px solid #d0d7de}.markdown-body tr:nth-child(2n){background:#f6f8fa}.markdown-body a{color:#0969da;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body hr{height:.25em;border:0;background:#d0d7de}.markdown-body input[type=checkbox]{margin-right:.5em}</style></head><body>
|
|
5
5
|
<header><strong>Fileport</strong><span class="badge">${share.permission === "rw" ? "RW · saves modify the authoritative file" : "RO · read-only capability"}</span></header>
|
|
6
|
-
<main><div class="toolbar"><button id="up">Up</button><button id="edit" hidden>Edit</button><button id="save" class="save" hidden>Save</button><span class="path" id="path"></span><span class="status" id="status"></span></div><section class="panel" id="view"><div class="content">Loading…</div></section></main>
|
|
6
|
+
<main><div class="toolbar"><button id="up">Up</button><button id="edit" hidden>Edit</button><button id="save" class="save" hidden>Save</button><button id="download" hidden>Download</button><span class="path" id="path"></span><span class="status" id="status"></span></div><section class="panel" id="view"><div class="content">Loading…</div></section></main>
|
|
7
7
|
<script>const CONFIG=${config};
|
|
8
|
-
const view=document.getElementById('view'),pathLabel=document.getElementById('path'),up=document.getElementById('up'),edit=document.getElementById('edit'),save=document.getElementById('save'),status=document.getElementById('status');let active={path:'',text:'',version:'',editable:false,editing:false,type:''};
|
|
8
|
+
const view=document.getElementById('view'),pathLabel=document.getElementById('path'),up=document.getElementById('up'),edit=document.getElementById('edit'),save=document.getElementById('save'),downloadBtn=document.getElementById('download'),status=document.getElementById('status');let active={path:'',text:'',version:'',editable:false,editing:false,type:''};
|
|
9
9
|
const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
|
|
10
10
|
const enc=p=>p.split('/').filter(Boolean).map(encodeURIComponent).join('/');const fsUrl=p=>'/s/'+CONFIG.shareId+'/fs/'+enc(p);const apiUrl=(kind,p)=>'/s/'+CONFIG.shareId+'/api/'+kind+'/'+enc(p);const current=()=>new URL(location.href).searchParams.get('path')??CONFIG.initialPath;
|
|
11
11
|
function navigate(p){const u=new URL(location.href);p?u.searchParams.set('path',p):u.searchParams.delete('path');history.pushState({},'',u);render()}
|
|
12
12
|
function csv(text){const rows=text.trim().split(/\\r?\\n/).map(r=>r.split(','));return '<table>'+rows.map((r,i)=>'<tr>'+r.map(c=>'<'+(i?'td':'th')+'>'+esc(c)+'</'+(i?'td':'th')+'>').join('')+'</tr>').join('')+'</table>'}
|
|
13
13
|
async function sourceView(p,text,type){const ext=p.toLowerCase().split('.').pop();if(type.includes('text/html')||ext==='html'){const url=URL.createObjectURL(new Blob([text],{type:'text/html'}));view.innerHTML='<iframe sandbox="allow-scripts" style="width:100%;height:75vh;border:0" src="'+url+'"></iframe>';return}let formatted=text;if(ext==='json'){try{formatted=JSON.stringify(JSON.parse(text),null,2)}catch{}}if(ext==='md'||ext==='markdown'){const response=await fetch(apiUrl('render/markdown',p),{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({source:text})});const data=await response.json();if(!response.ok)throw new Error(data.error||'Markdown render failed');view.innerHTML='<article class="content markdown-body">'+data.html+'</article>';return}if(ext==='csv'||ext==='tsv'){view.innerHTML='<div class="content">'+(ext==='csv'?csv(formatted):csv(formatted.replaceAll('\\t',',')))+'</div>';return}view.innerHTML='<div class="content"><pre>'+esc(formatted)+'</pre></div>'}
|
|
14
|
-
async function showFile(p){const response=await fetch(fsUrl(p));if(!response.ok)throw new Error('HTTP '+response.status);const type=response.headers.get('content-type')||'';if(type.startsWith('image/')){const url=URL.createObjectURL(await response.blob());view.innerHTML='<div class="content"><img alt="preview" src="'+url+'"></div>';return}let text=await response.text(),version='',editable=false;if(CONFIG.permission==='rw'){const editResponse=await fetch(apiUrl('edit',p));if(editResponse.ok){const snapshot=await editResponse.json();text=snapshot.content;version=snapshot.version;editable=snapshot.editable===true}}active={path:p,text,version,editable,editing:false,type};await sourceView(p,text,type);edit.hidden=!active.editable;edit.onclick=()=>{active.editing=true;view.innerHTML='<textarea id="editor"></textarea>';document.getElementById('editor').value=active.text;edit.hidden=true;save.hidden=false;status.textContent='Unsaved changes'};save.onclick=async()=>{if(!confirm('Save changes to the authoritative file?'))return;save.disabled=true;const content=document.getElementById('editor').value,response=await fetch(apiUrl('save',active.path),{method:'PUT',headers:{'content-type':'application/json'},body:JSON.stringify({content,expectedVersion:active.version})}),data=await response.json();save.disabled=false;if(!response.ok){status.textContent='Save failed: '+data.error;return}active.text=content;active.version=data.version;active.editing=false;status.textContent='Saved';edit.hidden=false;save.hidden=true;await sourceView(active.path,active.text,active.type)}}
|
|
14
|
+
async function showFile(p){const response=await fetch(fsUrl(p));if(!response.ok)throw new Error('HTTP '+response.status);const type=response.headers.get('content-type')||'';if(type.startsWith('image/')){const url=URL.createObjectURL(await response.blob());view.innerHTML='<div class="content"><img alt="preview" src="'+url+'"></div>';return}let text=await response.text(),version='',editable=false;if(CONFIG.permission==='rw'){const editResponse=await fetch(apiUrl('edit',p));if(editResponse.ok){const snapshot=await editResponse.json();text=snapshot.content;version=snapshot.version;editable=snapshot.editable===true}}active={path:p,text,version,editable,editing:false,type};await sourceView(p,text,type);downloadBtn.hidden=false;downloadBtn.onclick=()=>{const a=document.createElement('a');a.href=fsUrl(p);a.download=p.split('/').pop()||'download';a.click()};edit.hidden=!active.editable;edit.onclick=()=>{active.editing=true;view.innerHTML='<textarea id="editor"></textarea>';document.getElementById('editor').value=active.text;edit.hidden=true;save.hidden=false;downloadBtn.hidden=true;status.textContent='Unsaved changes'};save.onclick=async()=>{if(!confirm('Save changes to the authoritative file?'))return;save.disabled=true;const content=document.getElementById('editor').value,response=await fetch(apiUrl('save',active.path),{method:'PUT',headers:{'content-type':'application/json'},body:JSON.stringify({content,expectedVersion:active.version})}),data=await response.json();save.disabled=false;if(!response.ok){status.textContent='Save failed: '+data.error;return}active.text=content;active.version=data.version;active.editing=false;status.textContent='Saved';edit.hidden=false;save.hidden=true;await sourceView(active.path,active.text,active.type)}}
|
|
15
15
|
async function showDirectory(p){const response=await fetch((p?fsUrl(p)+'/':fsUrl(''))+'?json');if(!response.ok)throw new Error('HTTP '+response.status);const data=await response.json(),entries=data.paths||[];view.innerHTML=entries.length?entries.map(item=>{const name=String(item.name),leaf=name.includes('/')?name.slice(name.lastIndexOf('/')+1):name,next=[p,leaf].filter(Boolean).join('/'),icon=item.path_type==='Dir'?'📁':'📄';return '<a class="entry" href="?path='+encodeURIComponent(next)+'" data-path="'+esc(next)+'"><span>'+icon+'</span><span>'+esc(leaf)+'</span></a>'}).join(''):'<div class="content">Empty directory</div>';view.querySelectorAll('[data-path]').forEach(a=>a.addEventListener('click',e=>{e.preventDefault();navigate(a.dataset.path)}))}
|
|
16
16
|
async function render(){const p=current();edit.hidden=true;save.hidden=true;status.textContent='';pathLabel.textContent='/'+p;up.disabled=!p||CONFIG.kind==='file';up.onclick=()=>navigate(p.split('/').slice(0,-1).join('/'));view.innerHTML='<div class="content">Loading…</div>';try{if(CONFIG.kind==='file')await showFile(CONFIG.initialPath);else{const probe=await fetch(fsUrl(p)+(p?'/':'')+'?json');if(probe.ok){const data=await probe.clone().json().catch(()=>null);if(data?.kind==='Index'){await showDirectory(p);return}}await showFile(p)}}catch(e){view.innerHTML='<div class="error">'+esc(e.message||e)+'</div>'}}
|
|
17
17
|
addEventListener('popstate',render);render();</script></body></html>`;
|
package/docs/NETWORK_AND_CLI.md
CHANGED
|
@@ -2,26 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
## Bind versus advertised URL
|
|
4
4
|
|
|
5
|
-
`bind.host`/`bind.port` control the HTTP listener. `public.url` controls only generated share URLs. A hostname is never passed to `listen()`.
|
|
5
|
+
`bind.host`/`bind.port` control the HTTP origin listener. `public.url` controls only generated share URLs. A hostname is never passed to `listen()`.
|
|
6
6
|
|
|
7
7
|
Priority: command flags > environment > `~/.config/fileport/config.json` > defaults.
|
|
8
8
|
|
|
9
|
+
Direct mode is the default and preserves the strict all-local DNS policy:
|
|
10
|
+
|
|
9
11
|
```json
|
|
10
12
|
{
|
|
11
13
|
"bind": { "host": "0.0.0.0", "port": 7892 },
|
|
12
|
-
"public": { "url": "http://files.example.com:7892", "dnsPolicy": "all-local" }
|
|
14
|
+
"public": { "url": "http://files.example.com:7892", "mode": "direct", "dnsPolicy": "all-local" }
|
|
13
15
|
}
|
|
14
16
|
```
|
|
15
17
|
|
|
18
|
+
Proxy mode is for a reverse proxy or tunnel that terminates public HTTP(S) and forwards to the Fileport HTTP listener:
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{
|
|
22
|
+
"bind": { "host": "127.0.0.1", "port": 7892 },
|
|
23
|
+
"public": { "url": "https://files.example.com", "mode": "proxy" }
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The corresponding CLI is `fileport config set --host 127.0.0.1 --public-url https://files.example.com --public-mode proxy`. Restart Fileport after changing persistent configuration.
|
|
28
|
+
|
|
16
29
|
The config directory is 0700 and file 0600. Restart Fileport after persistent config changes.
|
|
17
30
|
|
|
18
31
|
## Automatic LAN URL
|
|
19
32
|
|
|
20
33
|
Without `public.url`, Fileport selects a non-loopback IPv4 on the default-route interface, excluding link-local and common virtual interfaces. Private IPv4 is preferred. IPv6 is used only when explicitly configured. If no listener-covered LAN IPv4 exists, the daemon may run local-only but new shares fail closed.
|
|
21
34
|
|
|
22
|
-
##
|
|
35
|
+
## Direct mode: strict DNS policy
|
|
23
36
|
|
|
24
|
-
|
|
37
|
+
In direct mode, configured hostnames are resolved through CNAME (maximum eight hops), A, and AAAA. Every final address must:
|
|
25
38
|
|
|
26
39
|
1. be a shareable non-loopback address;
|
|
27
40
|
2. exist on a local network interface; and
|
|
@@ -29,6 +42,12 @@ Configured hostnames are resolved through CNAME (maximum eight hops), A, and AAA
|
|
|
29
42
|
|
|
30
43
|
Mixed local/remote DNS is rejected. Dual-stack DNS requires a dual-stack listener such as `bind.host="::"`. DNS is checked at startup and before each new share. Existing capabilities are not rewritten if DNS later drifts.
|
|
31
44
|
|
|
45
|
+
## Proxy mode
|
|
46
|
+
|
|
47
|
+
Proxy mode permits `http://` or `https://` public URLs whose hostname resolves to a remote proxy or CDN. It intentionally does not require the public URL's port or addresses to match the origin listener. DNS resolution is included in `doctor` output when available and degrades to a warning when unavailable.
|
|
48
|
+
|
|
49
|
+
This mode only changes URL advertisement; it does not create, authenticate, or health-check the proxy/tunnel. Bind the Fileport origin as narrowly as the proxy permits (normally `127.0.0.1`) and verify a generated capability URL through the public endpoint.
|
|
50
|
+
|
|
32
51
|
## Agent contract
|
|
33
52
|
|
|
34
53
|
All operational commands accept `--json`. In JSON mode stdout contains exactly one JSON object; diagnostics use stderr. Default `share` stdout remains the URL only.
|