@buildinternet/uploads 0.7.0 → 0.9.0
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 -4
- package/dist/cli-args.d.ts +17 -2
- package/dist/cli-args.js +50 -5
- package/dist/cli.d.ts +5 -0
- package/dist/cli.js +67 -24
- package/dist/client.d.ts +69 -0
- package/dist/client.js +99 -5
- package/dist/commands/install.js +110 -52
- package/dist/commands/invite.d.ts +10 -0
- package/dist/commands/invite.js +102 -0
- package/dist/commands/login.d.ts +15 -0
- package/dist/commands/login.js +17 -9
- package/dist/commands.d.ts +4 -0
- package/dist/commands.js +287 -17
- package/dist/config-file.d.ts +3 -1
- package/dist/config-file.js +10 -0
- package/dist/config.js +6 -3
- package/dist/errors.d.ts +1 -1
- package/dist/github-gh.d.ts +7 -0
- package/dist/github-gh.js +24 -0
- package/dist/github.d.ts +15 -0
- package/dist/github.js +31 -7
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -1
- package/dist/mcp/args.d.ts +17 -0
- package/dist/mcp/args.js +42 -0
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/tools.js +121 -21
- package/dist/metadata.d.ts +32 -0
- package/dist/metadata.js +102 -0
- package/dist/public-urls.d.ts +18 -0
- package/dist/public-urls.js +68 -0
- package/package.json +1 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side dual-host helpers (published package; no @uploads/storage dep).
|
|
3
|
+
* Keep behavior aligned with packages/storage.
|
|
4
|
+
*
|
|
5
|
+
* `UPLOADS_EMBED_PUBLIC_BASE_URL`: unset = default twin; empty = disable; URL = override.
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_EMBED_PUBLIC_BASE_URL = "https://embed.uploads.sh";
|
|
8
|
+
const DEFAULT_EMBEDDABLE_HOSTS = new Set(["storage.uploads.sh", "store.uploads.sh"]);
|
|
9
|
+
export function embedBaseUrlFromEnv(env = process.env) {
|
|
10
|
+
if (!Object.prototype.hasOwnProperty.call(env, "UPLOADS_EMBED_PUBLIC_BASE_URL")) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
return env.UPLOADS_EMBED_PUBLIC_BASE_URL ?? "";
|
|
14
|
+
}
|
|
15
|
+
export function resolveEmbedBaseUrl(publicBaseUrl, embedBaseUrl) {
|
|
16
|
+
if (embedBaseUrl != null) {
|
|
17
|
+
const trimmed = embedBaseUrl.trim();
|
|
18
|
+
return trimmed ? trimmed.replace(/\/$/, "") : null;
|
|
19
|
+
}
|
|
20
|
+
if (!publicBaseUrl)
|
|
21
|
+
return null;
|
|
22
|
+
try {
|
|
23
|
+
const host = new URL(publicBaseUrl).hostname.toLowerCase();
|
|
24
|
+
if (DEFAULT_EMBEDDABLE_HOSTS.has(host))
|
|
25
|
+
return DEFAULT_EMBED_PUBLIC_BASE_URL;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
export function embedUrlFromPublic(publicObjectUrl, opts = {}) {
|
|
33
|
+
if (!publicObjectUrl)
|
|
34
|
+
return null;
|
|
35
|
+
let publicBaseUrl = opts.publicBaseUrl ?? null;
|
|
36
|
+
if (!publicBaseUrl) {
|
|
37
|
+
try {
|
|
38
|
+
const u = new URL(publicObjectUrl);
|
|
39
|
+
if (DEFAULT_EMBEDDABLE_HOSTS.has(u.hostname.toLowerCase())) {
|
|
40
|
+
publicBaseUrl = `${u.protocol}//${u.host}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const embedBase = resolveEmbedBaseUrl(publicBaseUrl, opts.embedBaseUrl);
|
|
48
|
+
if (!embedBase || !publicBaseUrl)
|
|
49
|
+
return null;
|
|
50
|
+
const stableBase = publicBaseUrl.replace(/\/$/, "");
|
|
51
|
+
if (publicObjectUrl === stableBase || publicObjectUrl.startsWith(`${stableBase}/`)) {
|
|
52
|
+
return `${embedBase}${publicObjectUrl.slice(stableBase.length)}`;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/** Prefer API `embedUrl`; otherwise derive (incl. env override). */
|
|
57
|
+
export function resolveEmbedUrl(publicObjectUrl, apiEmbedUrl, opts = {}) {
|
|
58
|
+
if (apiEmbedUrl)
|
|
59
|
+
return apiEmbedUrl;
|
|
60
|
+
const embedBaseUrl = opts.embedBaseUrl !== undefined ? opts.embedBaseUrl : embedBaseUrlFromEnv();
|
|
61
|
+
return embedUrlFromPublic(publicObjectUrl, { ...opts, embedBaseUrl });
|
|
62
|
+
}
|
|
63
|
+
/** Prefer embed host for GitHub markdown; fall back to stable public URL. */
|
|
64
|
+
export function urlForGithubEmbed(publicObjectUrl, apiEmbedUrl, opts = {}) {
|
|
65
|
+
if (!publicObjectUrl)
|
|
66
|
+
return null;
|
|
67
|
+
return resolveEmbedUrl(publicObjectUrl, apiEmbedUrl, opts) ?? publicObjectUrl;
|
|
68
|
+
}
|