mediafuse 0.2.1 → 0.2.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/dist/cli/index.js CHANGED
@@ -2,24 +2,38 @@
2
2
  import { parseArgs } from "node:util";
3
3
  import { readFileSync, existsSync } from "node:fs";
4
4
  import { resolve, dirname, join } from "node:path";
5
- import { resolveManifest } from "./resolve.js";
5
+ import { resolveManifest, findManifestEntry } from "./resolve.js";
6
6
  import { startServer } from "./server.js";
7
- const USAGE = `Usage: mediafuse [-p path ...] [--port N] [manifest.json]
7
+ import { resolveRef, setCacheDir } from "./remote.js";
8
+ const USAGE = `Usage: mediafuse [-p path ...] [--port N] [source]
8
9
 
9
10
  Serve a MediaFuse manifest and its plugins locally.
10
11
 
11
- If no manifest is given, checks mediafuse.manifest in package.json,
12
+ Source can be:
13
+ manifest.json Local manifest file
14
+ ./path/to/dir Local directory containing manifest.json
15
+ owner/repo GitHub repo (shorthand)
16
+ github:owner/repo GitHub repo
17
+ codeberg:owner/repo Codeberg repo
18
+ gitlab:owner/repo GitLab repo
19
+ https://github.com/o/r Full URL to any Git repo
20
+
21
+ If no source is given, checks mediafuse.manifest in package.json,
12
22
  then falls back to manifest.json in the current directory.
13
23
 
14
24
  Options:
15
25
  -p, --plugin path Plugin search path (repeatable)
16
- Can be a directory or a single file
26
+ Can be a directory, file, or remote repo
17
27
  --port N Port to listen on (default: 8000)
28
+ --data D Directory for cloned repos and fetched files (default: system temp)
29
+ --cache Enable browser caching (sends Cache-Control: public, max-age=300)
18
30
  -h, --help Show this help`;
19
31
  const { values, positionals } = parseArgs({
20
32
  options: {
21
33
  plugin: { type: "string", short: "p", multiple: true, default: [] },
22
34
  port: { type: "string", default: "8000" },
35
+ "data": { type: "string" },
36
+ cache: { type: "boolean", default: false },
23
37
  help: { type: "boolean", short: "h", default: false },
24
38
  },
25
39
  allowPositionals: true,
@@ -32,21 +46,25 @@ if (positionals.length > 1) {
32
46
  console.error(USAGE);
33
47
  process.exit(1);
34
48
  }
35
- const manifestPath = positionals.length === 1
36
- ? resolve(positionals[0])
37
- : findManifest();
38
- if (!existsSync(manifestPath)) {
39
- console.error(`Manifest not found: ${manifestPath}`);
40
- process.exit(1);
49
+ async function main() {
50
+ if (values["data"]) {
51
+ setCacheDir(values["data"]);
52
+ }
53
+ const manifestPath = positionals.length === 1
54
+ ? await resolveRef(positionals[0], findManifestEntry)
55
+ : findManifestLocal();
56
+ if (!existsSync(manifestPath)) {
57
+ console.error(`Manifest not found: ${manifestPath}`);
58
+ process.exit(1);
59
+ }
60
+ const manifestDir = dirname(manifestPath);
61
+ const manifestData = JSON.parse(readFileSync(manifestPath, "utf-8"));
62
+ const port = parseInt(values.port, 10);
63
+ const searchPaths = await Promise.all(values.plugin.map(async (p) => resolve(await resolveRef(p))));
64
+ const resolved = await resolveManifest(manifestData, manifestDir, searchPaths);
65
+ startServer(resolved, port, { cache: values.cache });
41
66
  }
42
- const manifestDir = dirname(manifestPath);
43
- const manifestData = JSON.parse(readFileSync(manifestPath, "utf-8"));
44
- const port = parseInt(values.port, 10);
45
- const searchPaths = values.plugin.map((p) => resolve(p));
46
- const resolved = resolveManifest(manifestData, manifestDir, searchPaths, port);
47
- startServer(resolved, port);
48
- function findManifest() {
49
- // Check package.json for mediafuse.manifest
67
+ function findManifestLocal() {
50
68
  const pkgPath = join(process.cwd(), "package.json");
51
69
  if (existsSync(pkgPath)) {
52
70
  const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
@@ -54,11 +72,14 @@ function findManifest() {
54
72
  if (manifestRef)
55
73
  return resolve(process.cwd(), manifestRef);
56
74
  }
57
- // Fall back to manifest.json in cwd
58
75
  const defaultPath = join(process.cwd(), "manifest.json");
59
76
  if (existsSync(defaultPath))
60
77
  return defaultPath;
61
78
  console.error("No manifest found. Provide a path, set mediafuse.manifest in package.json, or add a manifest.json");
62
79
  process.exit(1);
63
80
  }
81
+ main().catch((err) => {
82
+ console.error(err instanceof Error ? err.message : err);
83
+ process.exit(1);
84
+ });
64
85
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export declare function setCacheDir(dir: string): void;
2
+ export interface RemoteRef {
3
+ host: string;
4
+ owner: string;
5
+ repo: string;
6
+ url: string;
7
+ }
8
+ export declare function parseRemoteRef(input: string): RemoteRef | null;
9
+ export declare function materializeRemote(ref: RemoteRef): Promise<string>;
10
+ export type EntryFinder = (dir: string) => string | null;
11
+ /**
12
+ * Resolve any input reference to a local file path.
13
+ *
14
+ * Handles: remote refs (owner/repo, github:owner/repo, full git URLs),
15
+ * plain URLs (CDN links), and local paths.
16
+ *
17
+ * When findEntry is provided and the result is a directory,
18
+ * it's called to locate the relevant file within it.
19
+ */
20
+ export declare function resolveRef(input: string, findEntry?: EntryFinder): Promise<string>;
21
+ export declare function resolveSource(input: string): Promise<string>;
22
+ export declare function findManifestInDir(dir: string): string | null;
23
+ export declare function fetchRemoteFile(url: string): Promise<string>;
24
+ //# sourceMappingURL=remote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/cli/remote.ts"],"names":[],"mappings":"AAUA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE7C;AAgBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAqB9D;AA0DD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAuCvE;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,WAAW,GACtB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AASD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI5D;AAQD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BlE"}
@@ -0,0 +1,199 @@
1
+ import { execFile as execFileCb } from "node:child_process";
2
+ import { mkdirSync, existsSync, statSync, writeFileSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join, basename } from "node:path";
5
+ import { promisify } from "node:util";
6
+ const execFile = promisify(execFileCb);
7
+ let cacheDir = tmpdir();
8
+ export function setCacheDir(dir) {
9
+ cacheDir = dir;
10
+ }
11
+ const HOSTS = {
12
+ "github.com": "https://github.com",
13
+ "codeberg.org": "https://codeberg.org",
14
+ "gitlab.com": "https://gitlab.com",
15
+ "bitbucket.org": "https://bitbucket.org",
16
+ };
17
+ const PREFIXES = {
18
+ github: "github.com",
19
+ codeberg: "codeberg.org",
20
+ gitlab: "gitlab.com",
21
+ bitbucket: "bitbucket.org",
22
+ };
23
+ export function parseRemoteRef(input) {
24
+ if (input.startsWith("https://")) {
25
+ return parseUrl(input);
26
+ }
27
+ const colonIdx = input.indexOf(":");
28
+ if (colonIdx > 0 && !input.includes("/", 0) || colonIdx > 0 && colonIdx < input.indexOf("/")) {
29
+ const prefix = input.slice(0, colonIdx);
30
+ const host = PREFIXES[prefix];
31
+ if (host) {
32
+ return parseOwnerRepo(host, input.slice(colonIdx + 1));
33
+ }
34
+ }
35
+ if (isLocalPath(input))
36
+ return null;
37
+ if (isBareShorthand(input)) {
38
+ return parseOwnerRepo("github.com", input);
39
+ }
40
+ return null;
41
+ }
42
+ function parseUrl(url) {
43
+ let parsed;
44
+ try {
45
+ parsed = new URL(url);
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ const segments = parsed.pathname.replace(/^\//, "").replace(/\.git$/, "").split("/");
51
+ if (segments.length < 2)
52
+ return null;
53
+ const host = parsed.hostname;
54
+ const base = HOSTS[host] ?? `https://${host}`;
55
+ // Only treat as a git repo if the path looks like owner/repo (2 segments)
56
+ // not a deep file path like /gh/user/repo@v/plugins/file.js
57
+ if (segments.length !== 2)
58
+ return null;
59
+ const [owner, repo] = segments;
60
+ return { host, owner, repo, url: `${base}/${owner}/${repo}.git` };
61
+ }
62
+ function parseOwnerRepo(host, ref) {
63
+ const cleaned = ref.replace(/\.git$/, "");
64
+ const parts = cleaned.split("/");
65
+ if (parts.length < 2)
66
+ return null;
67
+ const [owner, repo] = parts;
68
+ if (!owner || !repo)
69
+ return null;
70
+ const base = HOSTS[host] ?? `https://${host}`;
71
+ return { host, owner, repo, url: `${base}/${owner}/${repo}.git` };
72
+ }
73
+ function isLocalPath(input) {
74
+ if (input.startsWith("./") || input.startsWith("../") || input.startsWith("/"))
75
+ return true;
76
+ if (/^[a-zA-Z]:[/\\]/.test(input))
77
+ return true;
78
+ if (input.includes("\\"))
79
+ return true;
80
+ if (!input.includes("/"))
81
+ return true;
82
+ return false;
83
+ }
84
+ function isBareShorthand(input) {
85
+ const slashes = input.split("/").length - 1;
86
+ if (slashes !== 1)
87
+ return false;
88
+ if (input.includes("..") || input.includes("."))
89
+ return false;
90
+ return true;
91
+ }
92
+ const REFRESH_INTERVAL = 30000;
93
+ const lastChecked = new Map();
94
+ function repoDir(ref) {
95
+ return join(cacheDir, "repos", ref.host, ref.owner, ref.repo);
96
+ }
97
+ export async function materializeRemote(ref) {
98
+ const dir = repoDir(ref);
99
+ const now = Date.now();
100
+ const last = lastChecked.get(ref.url);
101
+ if (last && now - last < REFRESH_INTERVAL) {
102
+ return dir;
103
+ }
104
+ const gitEnv = { ...process.env, GIT_TERMINAL_PROMPT: "0", GIT_ASKPASS: "" };
105
+ if (existsSync(join(dir, ".git"))) {
106
+ lastChecked.set(ref.url, now);
107
+ try {
108
+ await execFile("git", ["pull", "--ff-only"], {
109
+ cwd: dir,
110
+ env: gitEnv,
111
+ timeout: 30000,
112
+ });
113
+ }
114
+ catch {
115
+ // pull failed (offline, force-pushed, etc.) — use what we have
116
+ }
117
+ return dir;
118
+ }
119
+ mkdirSync(dir, { recursive: true });
120
+ try {
121
+ await execFile("git", ["clone", "--depth", "1", ref.url, dir], {
122
+ env: gitEnv,
123
+ timeout: 30000,
124
+ });
125
+ }
126
+ catch (err) {
127
+ const msg = err instanceof Error ? err.stderr || err.message : String(err);
128
+ throw new Error(`Failed to clone ${ref.url}: ${msg}`);
129
+ }
130
+ lastChecked.set(ref.url, now);
131
+ return dir;
132
+ }
133
+ /**
134
+ * Resolve any input reference to a local file path.
135
+ *
136
+ * Handles: remote refs (owner/repo, github:owner/repo, full git URLs),
137
+ * plain URLs (CDN links), and local paths.
138
+ *
139
+ * When findEntry is provided and the result is a directory,
140
+ * it's called to locate the relevant file within it.
141
+ */
142
+ export async function resolveRef(input, findEntry) {
143
+ const ref = parseRemoteRef(input);
144
+ if (ref) {
145
+ const dir = await materializeRemote(ref);
146
+ return findEntry ? requireEntry(findEntry, dir, ref.url) : dir;
147
+ }
148
+ if (input.startsWith("https://") || input.startsWith("http://")) {
149
+ return fetchRemoteFile(input);
150
+ }
151
+ if (findEntry && existsSync(input) && statSync(input).isDirectory()) {
152
+ return requireEntry(findEntry, input, input);
153
+ }
154
+ return input;
155
+ }
156
+ function requireEntry(findEntry, dir, source) {
157
+ const entry = findEntry(dir);
158
+ if (!entry)
159
+ throw new Error(`No entry found in ${source}`);
160
+ return entry;
161
+ }
162
+ // Back-compat aliases — these are thin wrappers around resolveRef
163
+ export async function resolveSource(input) {
164
+ return resolveRef(input);
165
+ }
166
+ export function findManifestInDir(dir) {
167
+ const manifestJson = join(dir, "manifest.json");
168
+ if (existsSync(manifestJson))
169
+ return manifestJson;
170
+ return null;
171
+ }
172
+ function fetchDir(url) {
173
+ const parsed = new URL(url);
174
+ const pathPart = parsed.pathname.replace(/^\//, "").replace(/\//g, "_");
175
+ return join(cacheDir, "fetch", parsed.hostname, pathPart);
176
+ }
177
+ export async function fetchRemoteFile(url) {
178
+ const dir = fetchDir(url);
179
+ const filename = basename(new URL(url).pathname) || "index.js";
180
+ const filePath = join(dir, filename);
181
+ const now = Date.now();
182
+ const last = lastChecked.get(url);
183
+ if (last && now - last < REFRESH_INTERVAL && existsSync(filePath)) {
184
+ return filePath;
185
+ }
186
+ mkdirSync(dir, { recursive: true });
187
+ const response = await fetch(url);
188
+ if (!response.ok) {
189
+ if (existsSync(filePath)) {
190
+ lastChecked.set(url, now);
191
+ return filePath;
192
+ }
193
+ throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`);
194
+ }
195
+ writeFileSync(filePath, await response.text());
196
+ lastChecked.set(url, now);
197
+ return filePath;
198
+ }
199
+ //# sourceMappingURL=remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/cli/remote.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,7 @@ export interface ResolvedManifest {
10
10
  plugins: ResolvedPlugin[];
11
11
  staticRoot: string;
12
12
  }
13
- export declare function resolveManifest(raw: PluginManifest, manifestDir: string, searchPaths: string[], port: number): ResolvedManifest;
13
+ export declare function resolveManifest(raw: PluginManifest, manifestDir: string, searchPaths: string[]): Promise<ResolvedManifest>;
14
+ export declare function findManifestEntry(dir: string): string | null;
15
+ export declare function findPluginEntry(dir: string): string | null;
14
16
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,EAAE,MAAM,GACX,gBAAgB,CAuBlB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG/D,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAsB,eAAe,CACnC,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB1D"}
@@ -1,36 +1,65 @@
1
1
  import { readFileSync, existsSync, statSync, readdirSync } from "node:fs";
2
2
  import { resolve, dirname, basename, join, relative, sep } from "node:path";
3
- export function resolveManifest(raw, manifestDir, searchPaths, port) {
4
- const baseUrl = `http://localhost:${port}`;
3
+ import { resolveRef } from "./remote.js";
4
+ export async function resolveManifest(raw, manifestDir, searchPaths) {
5
5
  const discovered = discoverPlugins(searchPaths);
6
6
  const entries = normalizeEntries(raw.plugins);
7
- const plugins = entries.map((entry, i) => {
8
- const filePath = resolvePluginSrc(entry, manifestDir, discovered);
7
+ const plugins = await Promise.all(entries.map(async (entry, i) => {
8
+ const filePath = await resolvePluginSrc(entry, manifestDir, discovered);
9
9
  const localDir = dirname(filePath);
10
10
  const filename = basename(filePath);
11
11
  const mergedEntry = mergeMetadata(entry, filePath, discovered);
12
- mergedEntry.src = `${baseUrl}/p/${i}/${filename}`;
12
+ mergedEntry.src = `/${i}/${filename}`;
13
13
  return { entry: mergedEntry, localDir, filename, index: i };
14
- });
15
- const config = rewriteConfigPaths(raw.config || {}, manifestDir, baseUrl);
14
+ }));
15
+ const config = rewriteConfigPaths(raw.config || {}, manifestDir);
16
16
  return {
17
17
  manifest: { ...raw, plugins: plugins.map((p) => p.entry), config },
18
18
  plugins,
19
19
  staticRoot: manifestDir,
20
20
  };
21
21
  }
22
+ // -- Entry finders (used as strategies for resolveRef) -----------------------
23
+ export function findManifestEntry(dir) {
24
+ const pkgPath = join(dir, "package.json");
25
+ if (existsSync(pkgPath)) {
26
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
27
+ const ref = pkg.mediafuse?.manifest;
28
+ if (ref)
29
+ return resolve(dir, ref);
30
+ }
31
+ const manifestJson = join(dir, "manifest.json");
32
+ if (existsSync(manifestJson))
33
+ return manifestJson;
34
+ return null;
35
+ }
36
+ export function findPluginEntry(dir) {
37
+ const pkgPath = join(dir, "package.json");
38
+ if (existsSync(pkgPath)) {
39
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
40
+ const plugins = pkg.mediafuse?.plugins;
41
+ if (typeof plugins === "string")
42
+ return resolve(dir, plugins);
43
+ if (Array.isArray(plugins) && plugins.length > 0)
44
+ return resolve(dir, plugins[0]);
45
+ if (pkg.main)
46
+ return resolve(dir, pkg.main);
47
+ }
48
+ for (const name of ["index.js", "index.ts"]) {
49
+ const candidate = resolve(dir, name);
50
+ if (existsSync(candidate))
51
+ return candidate;
52
+ }
53
+ // Not a single-plugin dir — scan subdirectories for the first plugin
54
+ const scanned = scanDir(dir);
55
+ if (scanned.length > 0)
56
+ return scanned[0].src;
57
+ return null;
58
+ }
59
+ // -- Plugin discovery (for -p search paths) ----------------------------------
22
60
  const SKIP_DIRS = new Set([
23
61
  "node_modules", ".git", ".hg", ".svn", "dist", "build", "coverage",
24
62
  ]);
25
- /**
26
- * Walk search paths and discover plugins.
27
- *
28
- * For each -p path:
29
- * - If it's a file, register it directly
30
- * - If it's a directory with a package.json that has a mediafuse field, register it
31
- * - Otherwise, scan subdirectories (skipping node_modules etc.) until
32
- * package.jsons with mediafuse fields are found
33
- */
34
63
  function discoverPlugins(searchPaths) {
35
64
  const found = new Map();
36
65
  for (const searchPath of searchPaths) {
@@ -76,11 +105,9 @@ function readPluginsFromPackage(dir, pkgPath) {
76
105
  if (!plugins)
77
106
  return [];
78
107
  const pkgName = pkg.name || basename(dir);
79
- // String shorthand: mediafuse.plugins: "./src/index.ts"
80
108
  if (typeof plugins === "string") {
81
109
  return [{ name: pkgName, src: resolve(dir, plugins) }];
82
110
  }
83
- // List: mediafuse.plugins: ["./src/index.ts", "./src/other.ts"]
84
111
  if (Array.isArray(plugins)) {
85
112
  return plugins.map((p, i) => ({
86
113
  name: i === 0 ? pkgName : `${pkgName}/${basename(p, ".ts").replace(/\.js$/, "")}`,
@@ -89,23 +116,28 @@ function readPluginsFromPackage(dir, pkgPath) {
89
116
  }
90
117
  return [];
91
118
  }
119
+ // -- Plugin source resolution ------------------------------------------------
92
120
  function normalizeEntries(plugins) {
93
121
  return plugins.map((p) => (typeof p === "string" ? { src: p } : { ...p }));
94
122
  }
95
- function resolvePluginSrc(entry, manifestDir, discovered) {
123
+ async function resolvePluginSrc(entry, manifestDir, discovered) {
96
124
  const src = entry.src;
125
+ // Check discovered plugins from search paths first — local overrides remote
126
+ const match = findDiscovered(src, entry, discovered);
127
+ if (match)
128
+ return match.src;
129
+ // Try resolveRef — handles remote refs, URLs, and local dirs
130
+ const resolved = await resolveRef(src, findPluginEntry);
131
+ if (resolved !== src)
132
+ return resolved;
97
133
  // Relative or absolute path
98
134
  if (src.startsWith("./") || src.startsWith("../") || src.startsWith("/")) {
99
- const resolved = resolve(manifestDir, src);
100
- if (!existsSync(resolved)) {
101
- throw new Error(`Plugin file not found: ${src} (resolved to ${resolved})`);
135
+ const abs = resolve(manifestDir, src);
136
+ if (!existsSync(abs)) {
137
+ throw new Error(`Plugin file not found: ${src} (resolved to ${abs})`);
102
138
  }
103
- return resolved;
139
+ return abs;
104
140
  }
105
- // Check discovered plugins from search paths
106
- const match = findDiscovered(src, entry, discovered);
107
- if (match)
108
- return match.src;
109
141
  // File in manifest dir
110
142
  if (existsSync(resolve(manifestDir, src))) {
111
143
  return resolve(manifestDir, src);
@@ -114,25 +146,23 @@ function resolvePluginSrc(entry, manifestDir, discovered) {
114
146
  return resolveFromNodeModules(src, manifestDir);
115
147
  }
116
148
  function findDiscovered(src, entry, discovered) {
117
- // Exact name match
118
149
  if (entry.name && discovered.has(entry.name)) {
119
150
  return discovered.get(entry.name);
120
151
  }
121
- // Package/subplugin reference: "mediafuse-plugins/p5" → look up "p5"
122
152
  const slash = src.lastIndexOf("/");
123
153
  if (slash >= 0) {
124
154
  const subName = src.slice(slash + 1);
125
155
  if (discovered.has(subName))
126
156
  return discovered.get(subName);
127
157
  }
128
- // Full src as key
129
158
  if (discovered.has(src))
130
159
  return discovered.get(src);
131
- // Package name match (e.g., "@mediafuse/p5")
160
+ const srcBasename = basename(src.split("?")[0]).replace(/\.[^.]+$/, "");
161
+ if (srcBasename && discovered.has(srcBasename))
162
+ return discovered.get(srcBasename);
132
163
  for (const plugin of discovered.values()) {
133
164
  if (plugin.name === src)
134
165
  return plugin;
135
- // Match scoped package short name: "@mediafuse/p5" matches "p5"
136
166
  const scopedSlash = plugin.name.lastIndexOf("/");
137
167
  if (scopedSlash >= 0) {
138
168
  const shortName = plugin.name.slice(scopedSlash + 1);
@@ -148,21 +178,11 @@ function resolveFromNodeModules(ref, from) {
148
178
  const pkgName = parts[0].startsWith("@")
149
179
  ? parts.slice(0, 2).join("/")
150
180
  : parts[0];
151
- const subPlugin = parts.slice(pkgName.split("/").length).join("/") || null;
152
181
  const pkgDir = findPackageDir(pkgName, from);
153
- const pkg = JSON.parse(readFileSync(join(pkgDir, "package.json"), "utf-8"));
154
- const mediafuse = pkg.mediafuse;
155
- const plugins = mediafuse?.plugins;
156
- if (plugins) {
157
- if (typeof plugins === "string") {
158
- return resolve(pkgDir, plugins);
159
- }
160
- if (Array.isArray(plugins) && plugins.length > 0) {
161
- return resolve(pkgDir, plugins[0]);
162
- }
163
- }
164
- const main = pkg.main || "index.js";
165
- return resolve(pkgDir, main);
182
+ const entry = findPluginEntry(pkgDir);
183
+ if (entry)
184
+ return entry;
185
+ throw new Error(`No plugin entry found in ${pkgDir}`);
166
186
  }
167
187
  function findPackageDir(name, from) {
168
188
  let dir = resolve(from);
@@ -185,7 +205,7 @@ function mergeMetadata(entry, _resolvedPath, discovered) {
185
205
  }
186
206
  return merged;
187
207
  }
188
- function rewriteConfigPaths(config, manifestDir, baseUrl) {
208
+ function rewriteConfigPaths(config, manifestDir) {
189
209
  return walkValues(config, (value) => {
190
210
  if (typeof value !== "string")
191
211
  return value;
@@ -193,7 +213,7 @@ function rewriteConfigPaths(config, manifestDir, baseUrl) {
193
213
  return value;
194
214
  const abs = resolve(manifestDir, value);
195
215
  const rel = relative(manifestDir, abs).split(sep).join("/");
196
- return `${baseUrl}/${rel}`;
216
+ return `/${rel}`;
197
217
  });
198
218
  }
199
219
  function walkValues(obj, transform) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/cli/resolve.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import type { ResolvedManifest } from "./resolve.js";
2
- export declare function startServer(resolved: ResolvedManifest, port: number): void;
2
+ export interface ServerOptions {
3
+ cache?: boolean;
4
+ }
5
+ export declare function startServer(resolved: ResolvedManifest, port: number, options?: ServerOptions): void;
3
6
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA4BrD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA2E1E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAqCrD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI,CAkIvG"}
@@ -1,7 +1,9 @@
1
1
  import { createServer } from "node:http";
2
2
  import { readFileSync, createReadStream, existsSync } from "node:fs";
3
- import { extname, resolve, sep } from "node:path";
3
+ import { extname, resolve, dirname, basename, sep } from "node:path";
4
+ import { createHash } from "node:crypto";
4
5
  import { transform } from "esbuild";
6
+ import { resolveRef } from "./remote.js";
5
7
  const MIME = {
6
8
  ".js": "application/javascript",
7
9
  ".mjs": "application/javascript",
@@ -26,9 +28,94 @@ const MIME = {
26
28
  ".txt": "text/plain",
27
29
  };
28
30
  const TS_EXTENSIONS = new Set([".ts", ".tsx"]);
29
- export function startServer(resolved, port) {
31
+ function baseUrl(req, port) {
32
+ const host = req.headers.host || `localhost:${port}`;
33
+ const proto = req.headers["x-forwarded-proto"] || "http";
34
+ return `${proto}://${host}`;
35
+ }
36
+ export function startServer(resolved, port, options = {}) {
37
+ const cacheControl = options.cache ? "public, max-age=300" : "no-store";
30
38
  const { manifest, plugins, staticRoot } = resolved;
31
- const manifestJson = JSON.stringify(manifest, null, 2);
39
+ // Dynamic resolution: maps hash IDs to local directories
40
+ const dynMap = new Map();
41
+ function dynId(specifier) {
42
+ return createHash("sha256").update(specifier).digest("hex").slice(0, 12);
43
+ }
44
+ const routes = [
45
+ [/^\/$/, (req, res) => {
46
+ const base = baseUrl(req, port);
47
+ const rewritten = rewriteManifestUrls(manifest, base);
48
+ res.setHeader("Content-Type", "application/json");
49
+ res.writeHead(200);
50
+ res.end(JSON.stringify(rewritten, null, 2));
51
+ }],
52
+ [/^\/_resolve$/, async (req, res) => {
53
+ const url = new URL(req.url || "/", `http://localhost:${port}`);
54
+ const src = url.searchParams.get("src");
55
+ if (!src) {
56
+ res.writeHead(400);
57
+ res.end(JSON.stringify({ error: "Missing src parameter" }));
58
+ return;
59
+ }
60
+ try {
61
+ const filePath = await resolveRef(src);
62
+ const id = dynId(src);
63
+ const localDir = dirname(filePath);
64
+ const filename = basename(filePath);
65
+ dynMap.set(id, { localDir, filename });
66
+ const base = baseUrl(req, port);
67
+ const resolvedUrl = `${base}/_dyn/${id}/${filename}`;
68
+ res.setHeader("Content-Type", "application/json");
69
+ res.writeHead(200);
70
+ res.end(JSON.stringify({ url: resolvedUrl }));
71
+ }
72
+ catch (err) {
73
+ const msg = err instanceof Error ? err.message : String(err);
74
+ res.writeHead(500);
75
+ res.end(JSON.stringify({ error: msg }));
76
+ }
77
+ }],
78
+ [/^\/_dyn\/([a-f0-9]+)\/(.+)$/, async (_req, res, match) => {
79
+ const entry = dynMap.get(match[1]);
80
+ if (!entry) {
81
+ res.writeHead(404);
82
+ res.end("Not found");
83
+ return;
84
+ }
85
+ const filePath = safePath(entry.localDir, match[2]);
86
+ if (!filePath) {
87
+ res.writeHead(403);
88
+ res.end("Forbidden");
89
+ return;
90
+ }
91
+ await serveFile(filePath, res);
92
+ }],
93
+ [/^\/(\d+)\/(.+)$/, async (_req, res, match) => {
94
+ const idx = parseInt(match[1], 10);
95
+ const plugin = plugins[idx];
96
+ if (!plugin) {
97
+ res.writeHead(404);
98
+ res.end("Plugin not found");
99
+ return;
100
+ }
101
+ const filePath = safePath(plugin.localDir, match[2]);
102
+ if (!filePath) {
103
+ res.writeHead(403);
104
+ res.end("Forbidden");
105
+ return;
106
+ }
107
+ await serveFile(filePath, res);
108
+ }],
109
+ [/^\/(.+)$/, async (_req, res, match) => {
110
+ const filePath = safePath(staticRoot, match[1]);
111
+ if (!filePath) {
112
+ res.writeHead(403);
113
+ res.end("Forbidden");
114
+ return;
115
+ }
116
+ await serveFile(filePath, res);
117
+ }],
118
+ ];
32
119
  const server = createServer(async (req, res) => {
33
120
  res.setHeader("Access-Control-Allow-Origin", "*");
34
121
  res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
@@ -43,55 +130,36 @@ export function startServer(resolved, port) {
43
130
  res.end("Method not allowed");
44
131
  return;
45
132
  }
46
- res.setHeader("Cache-Control", "no-store");
133
+ res.setHeader("Cache-Control", cacheControl);
47
134
  const url = new URL(req.url || "/", `http://localhost:${port}`);
48
135
  const pathname = decodeURIComponent(url.pathname);
49
- if (pathname === "/manifest.json") {
50
- res.setHeader("Content-Type", "application/json");
51
- res.writeHead(200);
52
- res.end(manifestJson);
53
- return;
54
- }
55
- const pluginMatch = pathname.match(/^\/p\/(\d+)\/(.+)$/);
56
- if (pluginMatch) {
57
- const idx = parseInt(pluginMatch[1], 10);
58
- const plugin = plugins[idx];
59
- if (!plugin) {
60
- res.writeHead(404);
61
- res.end("Plugin not found");
136
+ for (const [pattern, handler] of routes) {
137
+ const match = pattern.exec(pathname);
138
+ if (match) {
139
+ await handler(req, res, match);
62
140
  return;
63
141
  }
64
- const filePath = safePath(plugin.localDir, pluginMatch[2]);
65
- if (!filePath) {
66
- res.writeHead(403);
67
- res.end("Forbidden");
68
- return;
69
- }
70
- await serveFile(filePath, res);
71
- return;
72
142
  }
73
- if (pathname === "/") {
74
- res.writeHead(404);
75
- res.end("Not found");
76
- return;
77
- }
78
- const filePath = safePath(staticRoot, pathname.slice(1));
79
- if (!filePath) {
80
- res.writeHead(403);
81
- res.end("Forbidden");
82
- return;
83
- }
84
- await serveFile(filePath, res);
143
+ res.writeHead(404);
144
+ res.end("Not found");
85
145
  });
86
146
  server.listen(port, () => {
87
147
  console.log(`mediafuse serving on http://localhost:${port}`);
88
- console.log(`manifest: http://localhost:${port}/manifest.json`);
89
148
  for (const plugin of plugins) {
90
149
  const name = plugin.entry.name || `plugin-${plugin.index}`;
91
150
  console.log(`${name}: ${plugin.entry.src}`);
92
151
  }
93
152
  });
94
153
  }
154
+ function rewriteManifestUrls(manifest, base) {
155
+ return {
156
+ ...manifest,
157
+ plugins: manifest.plugins.map((p) => ({
158
+ ...p,
159
+ src: `${base}${p.src}`,
160
+ })),
161
+ };
162
+ }
95
163
  function safePath(root, requested) {
96
164
  const resolved = resolve(root, requested);
97
165
  const normalizedRoot = resolve(root) + sep;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export type { DefinePluginFn, SetupFn } from "./define-plugin.js";
2
- export type { StoredMessage, MessageOf, PluginType, PluginEnvironment, PluginEvent, PluginEventMap, CreateContext, PluginHandlers, RegisterOptions, PluginEntry, BlockPosition, BlockCondition, BlockConditions, BlockAnimation, Block, PluginManifest, RegisterFn, PluginContext, } from "./types.js";
2
+ export type { StoredMessage, MessageOf, PluginType, PluginEnvironment, PluginEvent, PluginEventMap, CreateContext, PluginHandlers, RegisterOptions, PluginEntry, BlockPosition, BlockCondition, BlockConditions, BlockAnimation, BlockTypeRenderer, Block, PluginManifest, RegisterFn, RegisterBlockTypeFn, LoadType, LoadResult, LoadFn, PluginContext, } from "./types.js";
3
+ export { createLoader } from "./loader.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,KAAK,EACL,cAAc,EACd,UAAU,EACV,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EACV,aAAa,EACb,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,KAAK,EACL,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export { createLoader } from "./loader.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LoadFn } from "./types.js";
2
+ export declare function createLoader(serverBase: string): LoadFn;
3
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,YAAY,CAAC;AAkBnD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA6BvD"}
package/dist/loader.js ADDED
@@ -0,0 +1,46 @@
1
+ const SOURCE_EXTENSIONS = new Set([".js", ".mjs", ".ts", ".tsx"]);
2
+ const JSON_EXTENSIONS = new Set([".json"]);
3
+ const CSS_EXTENSIONS = new Set([".css"]);
4
+ function inferType(url) {
5
+ const pathname = new URL(url).pathname;
6
+ const dot = pathname.lastIndexOf(".");
7
+ if (dot < 0)
8
+ return "source";
9
+ const ext = pathname.slice(dot);
10
+ if (SOURCE_EXTENSIONS.has(ext))
11
+ return "source";
12
+ if (JSON_EXTENSIONS.has(ext))
13
+ return "json";
14
+ if (CSS_EXTENSIONS.has(ext))
15
+ return "css";
16
+ return "url";
17
+ }
18
+ export function createLoader(serverBase) {
19
+ return async (specifier, type) => {
20
+ const res = await fetch(`${serverBase}/_resolve?src=${encodeURIComponent(specifier)}`);
21
+ if (!res.ok) {
22
+ const body = await res.json().catch(() => ({ error: "Resolution failed" }));
23
+ throw new Error(body.error || `Failed to resolve: ${specifier}`);
24
+ }
25
+ const { url } = await res.json();
26
+ const resolved = type || inferType(url);
27
+ switch (resolved) {
28
+ case "source":
29
+ return await import(/* @vite-ignore */ url);
30
+ case "json": {
31
+ const jsonRes = await fetch(url);
32
+ return await jsonRes.json();
33
+ }
34
+ case "css": {
35
+ const link = document.createElement("link");
36
+ link.rel = "stylesheet";
37
+ link.href = url;
38
+ document.head.appendChild(link);
39
+ return url;
40
+ }
41
+ case "url":
42
+ return url;
43
+ }
44
+ };
45
+ }
46
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzC,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE7B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,UAAkB;IAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,iBAAiB,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QAExC,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,MAAM,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,OAAO,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC;YACD,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;gBACxB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,KAAK;gBACR,OAAO,GAAG,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
package/dist/testing.js CHANGED
@@ -44,7 +44,7 @@ export function createTestHarness(plugin, options = {}) {
44
44
  };
45
45
  const definePlugin = (name, setup) => {
46
46
  capturedName = name;
47
- setup({ register, manifest });
47
+ setup({ register, registerBlockType: () => { }, manifest, load: () => Promise.reject(new Error("load() not available in tests")) });
48
48
  };
49
49
  const pluginFn = typeof plugin === "function" ? plugin : plugin.default;
50
50
  pluginFn(definePlugin);
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -68,10 +68,10 @@ export interface BlockAnimation {
68
68
  exit?: string;
69
69
  duration?: number;
70
70
  }
71
+ export type BlockTypeRenderer<T = unknown> = (options: Record<string, unknown>, context: Record<string, unknown>) => T;
71
72
  export interface Block {
72
73
  id: string;
73
- type: "iframe" | "template";
74
- provider?: string;
74
+ type: string;
75
75
  position?: BlockPosition;
76
76
  options: Record<string, unknown>;
77
77
  conditions?: BlockConditions;
@@ -84,8 +84,14 @@ export interface PluginManifest {
84
84
  config: Record<string, unknown>;
85
85
  }
86
86
  export type RegisterFn = (type: PluginType, handlers: PluginHandlers, options?: RegisterOptions) => boolean;
87
+ export type RegisterBlockTypeFn = (subtype: string, renderer: BlockTypeRenderer) => void;
88
+ export type LoadType = "source" | "json" | "css" | "url";
89
+ export type LoadResult<T extends LoadType | undefined = undefined> = T extends "source" ? Record<string, unknown> : T extends "json" ? unknown : T extends "css" ? string : T extends "url" ? string : Record<string, unknown> | string | unknown;
90
+ export type LoadFn = <T extends LoadType | undefined = undefined>(specifier: string, type?: T) => Promise<LoadResult<T>>;
87
91
  export interface PluginContext {
88
92
  register: RegisterFn;
93
+ registerBlockType: RegisterBlockTypeFn;
89
94
  manifest: PluginManifest;
95
+ load: LoadFn;
90
96
  }
91
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediafuse",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Plugin SDK for MediaFuse stream overlays",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",