@emkodev/emroute 1.12.0-beta.1 → 1.12.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/pipeline/pipeline.ts +13 -5
- package/dist/core/pipeline/pipeline.d.ts +1 -0
- package/dist/core/pipeline/pipeline.js +12 -5
- package/dist/core/pipeline/pipeline.js.map +1 -1
- package/dist/emroute.js +11 -6
- package/dist/emroute.js.map +3 -3
- package/dist/runtime/bun/fs/bun-fs.runtime.js +5 -13
- package/dist/runtime/bun/fs/bun-fs.runtime.js.map +1 -1
- package/dist/server/build.util.d.ts +9 -11
- package/dist/server/build.util.js +9 -111
- package/dist/server/build.util.js.map +1 -1
- package/package.json +1 -1
- package/runtime/bun/fs/bun-fs.runtime.ts +5 -12
- package/server/build.util.ts +9 -131
|
@@ -133,20 +133,28 @@ export class Pipeline {
|
|
|
133
133
|
// ── Widget manifest lookup ─────────────────────────────────────────
|
|
134
134
|
|
|
135
135
|
async findWidgetModulePath(name: string): Promise<string | undefined> {
|
|
136
|
+
return (await this.findWidgetEntry(name))?.modulePath;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
private async findWidgetEntry(name: string): Promise<WidgetManifestEntry | undefined> {
|
|
136
140
|
const response = await this.runtime.query(WIDGETS_MANIFEST_PATH);
|
|
137
141
|
if (response.status === 404) return undefined;
|
|
138
142
|
const entries: WidgetManifestEntry[] = await response.json();
|
|
139
|
-
return entries.find((e) => e.name === name)
|
|
143
|
+
return entries.find((e) => e.name === name);
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
/** Load a widget module by name — single load yields both component and files. */
|
|
143
147
|
async loadWidgetModule(name: string): Promise<{ component: WidgetComponent; files: FileContents } | undefined> {
|
|
144
|
-
const
|
|
145
|
-
if (!
|
|
146
|
-
const mod = await this.loadModule<Record<string, unknown>>(
|
|
148
|
+
const entry = await this.findWidgetEntry(name);
|
|
149
|
+
if (!entry) return undefined;
|
|
150
|
+
const mod = await this.loadModule<Record<string, unknown>>(entry.modulePath);
|
|
147
151
|
const component = this.extractWidgetComponent(mod);
|
|
148
152
|
if (!component) return undefined;
|
|
149
|
-
|
|
153
|
+
// Prefer __files inlined in the module (pre-built .js); fall back to
|
|
154
|
+
// loading companions from the manifest's file paths (on-the-fly .ts).
|
|
155
|
+
const inlined = this.getModuleFiles(mod);
|
|
156
|
+
const files = inlined ?? (entry.files ? await this.loadFiles(entry.files) : {});
|
|
157
|
+
return { component, files };
|
|
150
158
|
}
|
|
151
159
|
|
|
152
160
|
/** Load a widget by name — shorthand when only the component is needed. */
|
|
@@ -48,6 +48,7 @@ export declare class Pipeline {
|
|
|
48
48
|
getErrorHandler(): Promise<RouteConfig | undefined>;
|
|
49
49
|
buildRouteHierarchy(pattern: string): string[];
|
|
50
50
|
findWidgetModulePath(name: string): Promise<string | undefined>;
|
|
51
|
+
private findWidgetEntry;
|
|
51
52
|
/** Load a widget module by name — single load yields both component and files. */
|
|
52
53
|
loadWidgetModule(name: string): Promise<{
|
|
53
54
|
component: WidgetComponent;
|
|
@@ -106,22 +106,29 @@ export class Pipeline {
|
|
|
106
106
|
}
|
|
107
107
|
// ── Widget manifest lookup ─────────────────────────────────────────
|
|
108
108
|
async findWidgetModulePath(name) {
|
|
109
|
+
return (await this.findWidgetEntry(name))?.modulePath;
|
|
110
|
+
}
|
|
111
|
+
async findWidgetEntry(name) {
|
|
109
112
|
const response = await this.runtime.query(WIDGETS_MANIFEST_PATH);
|
|
110
113
|
if (response.status === 404)
|
|
111
114
|
return undefined;
|
|
112
115
|
const entries = await response.json();
|
|
113
|
-
return entries.find((e) => e.name === name)
|
|
116
|
+
return entries.find((e) => e.name === name);
|
|
114
117
|
}
|
|
115
118
|
/** Load a widget module by name — single load yields both component and files. */
|
|
116
119
|
async loadWidgetModule(name) {
|
|
117
|
-
const
|
|
118
|
-
if (!
|
|
120
|
+
const entry = await this.findWidgetEntry(name);
|
|
121
|
+
if (!entry)
|
|
119
122
|
return undefined;
|
|
120
|
-
const mod = await this.loadModule(
|
|
123
|
+
const mod = await this.loadModule(entry.modulePath);
|
|
121
124
|
const component = this.extractWidgetComponent(mod);
|
|
122
125
|
if (!component)
|
|
123
126
|
return undefined;
|
|
124
|
-
|
|
127
|
+
// Prefer __files inlined in the module (pre-built .js); fall back to
|
|
128
|
+
// loading companions from the manifest's file paths (on-the-fly .ts).
|
|
129
|
+
const inlined = this.getModuleFiles(mod);
|
|
130
|
+
const files = inlined ?? (entry.files ? await this.loadFiles(entry.files) : {});
|
|
131
|
+
return { component, files };
|
|
125
132
|
}
|
|
126
133
|
/** Load a widget by name — shorthand when only the component is needed. */
|
|
127
134
|
async loadWidget(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../core/pipeline/pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../core/pipeline/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/emroute.js
CHANGED
|
@@ -770,21 +770,26 @@ class Pipeline {
|
|
|
770
770
|
return hierarchy;
|
|
771
771
|
}
|
|
772
772
|
async findWidgetModulePath(name) {
|
|
773
|
+
return (await this.findWidgetEntry(name))?.modulePath;
|
|
774
|
+
}
|
|
775
|
+
async findWidgetEntry(name) {
|
|
773
776
|
const response = await this.runtime.query(WIDGETS_MANIFEST_PATH);
|
|
774
777
|
if (response.status === 404)
|
|
775
778
|
return;
|
|
776
779
|
const entries = await response.json();
|
|
777
|
-
return entries.find((e) => e.name === name)
|
|
780
|
+
return entries.find((e) => e.name === name);
|
|
778
781
|
}
|
|
779
782
|
async loadWidgetModule(name) {
|
|
780
|
-
const
|
|
781
|
-
if (!
|
|
783
|
+
const entry = await this.findWidgetEntry(name);
|
|
784
|
+
if (!entry)
|
|
782
785
|
return;
|
|
783
|
-
const mod = await this.loadModule(
|
|
786
|
+
const mod = await this.loadModule(entry.modulePath);
|
|
784
787
|
const component = this.extractWidgetComponent(mod);
|
|
785
788
|
if (!component)
|
|
786
789
|
return;
|
|
787
|
-
|
|
790
|
+
const inlined = this.getModuleFiles(mod);
|
|
791
|
+
const files = inlined ?? (entry.files ? await this.loadFiles(entry.files) : {});
|
|
792
|
+
return { component, files };
|
|
788
793
|
}
|
|
789
794
|
async loadWidget(name) {
|
|
790
795
|
return (await this.loadWidgetModule(name))?.component;
|
|
@@ -3550,5 +3555,5 @@ export {
|
|
|
3550
3555
|
BreadcrumbWidget
|
|
3551
3556
|
};
|
|
3552
3557
|
|
|
3553
|
-
//# debugId=
|
|
3558
|
+
//# debugId=9D7A4A39ADB77FE864756E2164756E21
|
|
3554
3559
|
//# sourceMappingURL=emroute.js.map
|
package/dist/emroute.js.map
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"/**\n * Route Trie\n *\n * Default RouteResolver implementation. O(depth) route matching over\n * the RouteNode tree.\n *\n * Walks the RouteNode tree directly — no conversion step, no internal state\n * beyond the tree reference. Each URL segment is matched in order:\n * static → dynamic (:param) → wildcard (:rest*). Backtracking handles\n * cases where a dynamic path leads to a dead end but a wildcard at an\n * ancestor would match.\n *\n * Static segment matching is case-sensitive, per RFC 3986.\n */\n/**\n * Default RouteResolver implementation.\n * Walks the RouteNode tree directly — no conversion, no Maps.\n */\nexport class RouteTrie {\n tree;\n constructor(tree) {\n this.tree = tree;\n }\n match(pathname) {\n pathname = this.normalizePath(pathname);\n if (pathname === '/') {\n if (this.tree.files || this.tree.redirect) {\n return { node: this.tree, pattern: '/', params: {} };\n }\n return undefined;\n }\n return this.walk(this.tree, this.splitSegments(pathname), 0, {}, '/');\n }\n findErrorBoundary(pathname) {\n pathname = this.normalizePath(pathname);\n if (pathname === '/')\n return this.tree.errorBoundary;\n return this.walkForBoundary(this.tree, this.splitSegments(pathname), 0, this.tree.errorBoundary);\n }\n findRoute(pattern) {\n if (pattern === '/') {\n return (this.tree.files || this.tree.redirect) ? this.tree : undefined;\n }\n const segments = this.splitSegments(pattern);\n let node = this.tree;\n for (const segment of segments) {\n let child;\n if (segment.startsWith(':') && segment.endsWith('*')) {\n child = node.wildcard?.child;\n }\n else if (segment.startsWith(':')) {\n child = node.dynamic?.child;\n }\n else {\n child = node.children?.[segment];\n }\n if (!child)\n return undefined;\n node = child;\n }\n return (node.files || node.redirect) ? node : undefined;\n }\n // ── Private helpers ─────────────────────────────────────────────────\n safeDecode(segment) {\n try {\n return decodeURIComponent(segment);\n }\n catch {\n return segment;\n }\n }\n splitSegments(pathname) {\n return pathname.substring(1).split('/');\n }\n normalizePath(pathname) {\n if (pathname.length > 1 && pathname.endsWith('/')) {\n pathname = pathname.slice(0, -1);\n }\n if (!pathname.startsWith('/')) {\n pathname = '/' + pathname;\n }\n return pathname;\n }\n walk(node, segments, index, params, pattern) {\n if (index === segments.length) {\n if (node.files || node.redirect) {\n return { node, pattern, params: { ...params } };\n }\n if (node.wildcard && (node.wildcard.child.files || node.wildcard.child.redirect)) {\n const wp = pattern === '/' ? `/:${node.wildcard.param}*` : `${pattern}/:${node.wildcard.param}*`;\n return {\n node: node.wildcard.child,\n pattern: wp,\n params: { ...params, [node.wildcard.param]: '' },\n };\n }\n return undefined;\n }\n const segment = segments[index];\n // Static\n const staticChild = node.children?.[segment];\n if (staticChild) {\n const childPattern = pattern === '/' ? `/${segment}` : `${pattern}/${segment}`;\n const result = this.walk(staticChild, segments, index + 1, params, childPattern);\n if (result)\n return result;\n }\n // Dynamic\n if (node.dynamic) {\n const { param, child } = node.dynamic;\n params[param] = this.safeDecode(segment);\n const childPattern = pattern === '/' ? `/:${param}` : `${pattern}/:${param}`;\n const result = this.walk(child, segments, index + 1, params, childPattern);\n if (result)\n return result;\n delete params[param];\n }\n // Wildcard\n if (node.wildcard && (node.wildcard.child.files || node.wildcard.child.redirect)) {\n const { param, child } = node.wildcard;\n let rest = this.safeDecode(segment);\n for (let i = index + 1; i < segments.length; i++) {\n rest += '/' + this.safeDecode(segments[i]);\n }\n const wp = pattern === '/' ? `/:${param}*` : `${pattern}/:${param}*`;\n return {\n node: child,\n pattern: wp,\n params: { ...params, [param]: rest },\n };\n }\n return undefined;\n }\n walkForBoundary(node, segments, index, deepest) {\n if (index === segments.length) {\n return node.errorBoundary ?? deepest;\n }\n const segment = segments[index];\n const staticChild = node.children?.[segment];\n if (staticChild) {\n return this.walkForBoundary(staticChild, segments, index + 1, staticChild.errorBoundary ?? deepest);\n }\n if (node.dynamic) {\n return this.walkForBoundary(node.dynamic.child, segments, index + 1, node.dynamic.child.errorBoundary ?? deepest);\n }\n if (node.wildcard) {\n return node.wildcard.child.errorBoundary ?? deepest;\n }\n return deepest;\n }\n}\n//# sourceMappingURL=route.trie.js.map",
|
|
11
11
|
"/**\n * Abstract Runtime\n *\n * Storage contract. Speaks Request/Response.\n * Concrete implementations decide how to store, cache, scan, and serve.\n *\n * Three access patterns:\n * - handle() — raw passthrough\n * - query() — read (Response or string)\n * - command() — write/delete\n */\n/** Well-known manifest paths (convention between Runtime and consumers). */\nexport const ROUTES_MANIFEST_PATH = '/routes.manifest.json';\nexport const WIDGETS_MANIFEST_PATH = '/widgets.manifest.json';\nexport const ELEMENTS_MANIFEST_PATH = '/elements.manifest.json';\nexport class Runtime {\n /** Dynamically import a module from storage. */\n loadModule(_path) {\n throw new Error(`loadModule not implemented for ${this.constructor.name}`);\n }\n /** Transpile TypeScript to JavaScript. */\n transpile(_source) {\n throw new Error(`transpile not implemented for ${this.constructor.name}`);\n }\n}\n//# sourceMappingURL=abstract.runtime.js.map",
|
|
12
12
|
"const noop = () => { };\n/** Default no-op logger. */\nexport const defaultLogger = { error: noop, warn: noop };\n/** @deprecated Pass `logger` in Emroute.create() config instead. This function is a no-op. */\nexport function setLogger(_logger) {\n console.warn('[emroute] setLogger() is deprecated. Pass `logger` in Emroute.create() config instead.');\n}\n//# sourceMappingURL=logger.type.js.map",
|
|
13
|
-
"/**\n * Pipeline\n *\n * Orchestration layer between Router, Runtime, and Component.\n *\n * Owns:\n * - Route matching (reads manifest from Runtime, walks RouteNode tree)\n * - Module loading (delegates to Runtime)\n * - Companion file reading (delegates to Runtime)\n * - ComponentContext building\n * - Route hierarchy construction\n *\n * Does NOT own:\n * - Rendering (that's Renderer)\n * - HTTP routing / base paths (that's Server)\n * - Storage I/O (that's Runtime)\n * - Navigation events (that's the browser adapter)\n */\nimport { RouteTrie } from \"../router/route.trie.js\";\nimport { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH } from \"../runtime/abstract.runtime.js\";\nimport { defaultLogger } from \"../type/logger.type.js\";\n/** Default root route — renders a slot for child routes. */\nexport const DEFAULT_ROOT_ROUTE = {\n pattern: '/',\n type: 'page',\n modulePath: '__default_root__',\n};\n/** Synthesize a RouteConfig from matched route data. */\nfunction toRouteConfig(node, pattern) {\n return {\n pattern,\n type: node.redirect ? 'redirect' : 'page',\n modulePath: node.redirect ?? node.files?.ts ?? node.files?.js ?? node.files?.html ?? node.files?.md ?? '',\n ...(node.files ? { files: node.files } : {}),\n };\n}\nexport class Pipeline {\n runtime;\n contextProvider;\n logger;\n moduleLoaders;\n constructor(options) {\n this.runtime = options.runtime;\n this.contextProvider = options.contextProvider;\n this.logger = options.logger ?? defaultLogger;\n this.moduleLoaders = options.moduleLoaders ?? {};\n }\n // ── Route resolver (from Runtime) ───────────────────────────────────\n async getResolver() {\n const response = await this.runtime.query(ROUTES_MANIFEST_PATH);\n const tree = response.status === 404 ? {} : await response.json();\n return new RouteTrie(tree);\n }\n // ── Matching ────────────────────────────────────────────────────────\n async match(url) {\n const resolver = await this.getResolver();\n const resolved = resolver.match(url.pathname);\n if (resolved) {\n return { route: toRouteConfig(resolved.node, resolved.pattern), params: resolved.params };\n }\n if (url.pathname === '/' || url.pathname === '') {\n return { route: DEFAULT_ROOT_ROUTE, params: {} };\n }\n return undefined;\n }\n async findRoute(pattern) {\n const resolver = await this.getResolver();\n const node = resolver.findRoute(pattern);\n if (!node)\n return undefined;\n return toRouteConfig(node, pattern);\n }\n async findErrorBoundary(pathname) {\n const resolver = await this.getResolver();\n const modulePath = resolver.findErrorBoundary(pathname);\n if (!modulePath)\n return undefined;\n return { pattern: pathname, modulePath };\n }\n async getStatusPage(status) {\n const resolver = await this.getResolver();\n const node = resolver.findRoute(`/${status}`);\n if (!node)\n return undefined;\n return toRouteConfig(node, `/${status}`);\n }\n async getErrorHandler() {\n const resolver = await this.getResolver();\n const modulePath = resolver.findErrorBoundary('/');\n if (!modulePath)\n return undefined;\n return { pattern: '/', type: 'error', modulePath };\n }\n // ── Route hierarchy ────────────────────────────────────────────────\n buildRouteHierarchy(pattern) {\n if (pattern === '/')\n return ['/'];\n const segments = pattern.split('/').filter(Boolean);\n const hierarchy = ['/'];\n let current = '';\n for (const segment of segments) {\n current += '/' + segment;\n hierarchy.push(current);\n }\n return hierarchy;\n }\n // ── Widget manifest lookup ─────────────────────────────────────────\n async findWidgetModulePath(name) {\n const response = await this.runtime.query(WIDGETS_MANIFEST_PATH);\n if (response.status === 404)\n return undefined;\n const entries = await response.json();\n return entries.find((e) => e.name === name)
|
|
13
|
+
"/**\n * Pipeline\n *\n * Orchestration layer between Router, Runtime, and Component.\n *\n * Owns:\n * - Route matching (reads manifest from Runtime, walks RouteNode tree)\n * - Module loading (delegates to Runtime)\n * - Companion file reading (delegates to Runtime)\n * - ComponentContext building\n * - Route hierarchy construction\n *\n * Does NOT own:\n * - Rendering (that's Renderer)\n * - HTTP routing / base paths (that's Server)\n * - Storage I/O (that's Runtime)\n * - Navigation events (that's the browser adapter)\n */\nimport { RouteTrie } from \"../router/route.trie.js\";\nimport { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH } from \"../runtime/abstract.runtime.js\";\nimport { defaultLogger } from \"../type/logger.type.js\";\n/** Default root route — renders a slot for child routes. */\nexport const DEFAULT_ROOT_ROUTE = {\n pattern: '/',\n type: 'page',\n modulePath: '__default_root__',\n};\n/** Synthesize a RouteConfig from matched route data. */\nfunction toRouteConfig(node, pattern) {\n return {\n pattern,\n type: node.redirect ? 'redirect' : 'page',\n modulePath: node.redirect ?? node.files?.ts ?? node.files?.js ?? node.files?.html ?? node.files?.md ?? '',\n ...(node.files ? { files: node.files } : {}),\n };\n}\nexport class Pipeline {\n runtime;\n contextProvider;\n logger;\n moduleLoaders;\n constructor(options) {\n this.runtime = options.runtime;\n this.contextProvider = options.contextProvider;\n this.logger = options.logger ?? defaultLogger;\n this.moduleLoaders = options.moduleLoaders ?? {};\n }\n // ── Route resolver (from Runtime) ───────────────────────────────────\n async getResolver() {\n const response = await this.runtime.query(ROUTES_MANIFEST_PATH);\n const tree = response.status === 404 ? {} : await response.json();\n return new RouteTrie(tree);\n }\n // ── Matching ────────────────────────────────────────────────────────\n async match(url) {\n const resolver = await this.getResolver();\n const resolved = resolver.match(url.pathname);\n if (resolved) {\n return { route: toRouteConfig(resolved.node, resolved.pattern), params: resolved.params };\n }\n if (url.pathname === '/' || url.pathname === '') {\n return { route: DEFAULT_ROOT_ROUTE, params: {} };\n }\n return undefined;\n }\n async findRoute(pattern) {\n const resolver = await this.getResolver();\n const node = resolver.findRoute(pattern);\n if (!node)\n return undefined;\n return toRouteConfig(node, pattern);\n }\n async findErrorBoundary(pathname) {\n const resolver = await this.getResolver();\n const modulePath = resolver.findErrorBoundary(pathname);\n if (!modulePath)\n return undefined;\n return { pattern: pathname, modulePath };\n }\n async getStatusPage(status) {\n const resolver = await this.getResolver();\n const node = resolver.findRoute(`/${status}`);\n if (!node)\n return undefined;\n return toRouteConfig(node, `/${status}`);\n }\n async getErrorHandler() {\n const resolver = await this.getResolver();\n const modulePath = resolver.findErrorBoundary('/');\n if (!modulePath)\n return undefined;\n return { pattern: '/', type: 'error', modulePath };\n }\n // ── Route hierarchy ────────────────────────────────────────────────\n buildRouteHierarchy(pattern) {\n if (pattern === '/')\n return ['/'];\n const segments = pattern.split('/').filter(Boolean);\n const hierarchy = ['/'];\n let current = '';\n for (const segment of segments) {\n current += '/' + segment;\n hierarchy.push(current);\n }\n return hierarchy;\n }\n // ── Widget manifest lookup ─────────────────────────────────────────\n async findWidgetModulePath(name) {\n return (await this.findWidgetEntry(name))?.modulePath;\n }\n async findWidgetEntry(name) {\n const response = await this.runtime.query(WIDGETS_MANIFEST_PATH);\n if (response.status === 404)\n return undefined;\n const entries = await response.json();\n return entries.find((e) => e.name === name);\n }\n /** Load a widget module by name — single load yields both component and files. */\n async loadWidgetModule(name) {\n const entry = await this.findWidgetEntry(name);\n if (!entry)\n return undefined;\n const mod = await this.loadModule(entry.modulePath);\n const component = this.extractWidgetComponent(mod);\n if (!component)\n return undefined;\n // Prefer __files inlined in the module (pre-built .js); fall back to\n // loading companions from the manifest's file paths (on-the-fly .ts).\n const inlined = this.getModuleFiles(mod);\n const files = inlined ?? (entry.files ? await this.loadFiles(entry.files) : {});\n return { component, files };\n }\n /** Load a widget by name — shorthand when only the component is needed. */\n async loadWidget(name) {\n return (await this.loadWidgetModule(name))?.component;\n }\n /** Extract a WidgetComponent from a loaded module's exports. */\n extractWidgetComponent(mod) {\n for (const value of Object.values(mod)) {\n if (!value)\n continue;\n if (typeof value === 'object' && 'getData' in value) {\n return value;\n }\n if (typeof value === 'function' && value.prototype?.getData) {\n return new value();\n }\n }\n return undefined;\n }\n // ── Module loading ─────────────────────────────────────────────────\n async loadModule(modulePath) {\n const loader = this.moduleLoaders[modulePath];\n if (loader) {\n return await loader();\n }\n const abs = modulePath.startsWith('/') ? modulePath : '/' + modulePath;\n return await this.runtime.loadModule(abs);\n }\n /**\n * Get inlined `__files` from a loaded module (merged module pattern).\n */\n getModuleFiles(mod) {\n if (!mod || typeof mod !== 'object')\n return undefined;\n const files = mod.__files;\n if (!files || typeof files !== 'object')\n return undefined;\n return files;\n }\n // ── File loading ───────────────────────────────────────────────────\n async loadFiles(files) {\n const load = async (path) => {\n const abs = path.startsWith('/') ? path : '/' + path;\n try {\n return await this.runtime.query(abs, { as: 'text' });\n }\n catch (e) {\n console.warn(`[Pipeline] Failed to load file ${path}:`, e instanceof Error ? e.message : e);\n return undefined;\n }\n };\n const [html, md, css] = await Promise.all([\n files.html ? load(files.html) : undefined,\n files.md ? load(files.md) : undefined,\n files.css ? load(files.css) : undefined,\n ]);\n const result = {};\n if (html !== undefined)\n result.html = html;\n if (md !== undefined)\n result.md = md;\n if (css !== undefined)\n result.css = css;\n return result;\n }\n // ── Context building ───────────────────────────────────────────────\n toRouteInfo(matched, url) {\n return { url, params: matched.params };\n }\n async buildContext(routeInfo, route, signal, isLeaf, loadedModule) {\n const rf = route.files;\n // Try inlined __files from merged module first\n const inlined = loadedModule ? this.getModuleFiles(loadedModule) : undefined;\n let files;\n if (inlined) {\n files = inlined;\n }\n else if (rf) {\n const filePaths = {};\n if (rf.html)\n filePaths.html = rf.html;\n if (rf.md)\n filePaths.md = rf.md;\n if (rf.css)\n filePaths.css = rf.css;\n files = await this.loadFiles(filePaths);\n }\n else {\n files = {};\n }\n const base = {\n ...routeInfo,\n pathname: routeInfo.url.pathname,\n searchParams: routeInfo.url.searchParams,\n files,\n ...(signal ? { signal } : {}),\n ...(isLeaf !== undefined ? { isLeaf } : {}),\n };\n return this.contextProvider ? this.contextProvider(base) : base;\n }\n}\n//# sourceMappingURL=pipeline.js.map",
|
|
14
14
|
"/**\n * Widget Resolve Utilities\n *\n * Server-side resolution of <widget-*> tags in HTML.\n * Calls getData() + renderHTML() on widgets and injects SSR hydration data.\n */\nimport { defaultLogger } from \"../type/logger.type.js\";\nimport { RESERVED_ATTRS, SSR_ATTR, scopeWidgetCss } from \"./html.util.js\";\n/** Maximum nesting depth for widgets to prevent infinite loops */\nexport const MAX_WIDGET_DEPTH = 10;\n/**\n * Recursively resolve widgets in content with depth limit.\n */\nexport async function resolveRecursively(content, parse, resolve, replace, depth = 0, logger = defaultLogger) {\n if (depth >= MAX_WIDGET_DEPTH) {\n logger.warn(`Widget nesting depth limit reached (${MAX_WIDGET_DEPTH}). ` +\n 'Possible circular dependency or excessive nesting.');\n return content;\n }\n const widgets = parse(content);\n if (widgets.length === 0)\n return content;\n const replacements = new Map();\n await Promise.all(widgets.map(async (widget) => {\n let rendered = await resolve(widget);\n rendered = await resolveRecursively(rendered, parse, resolve, replace, depth + 1, logger);\n replacements.set(widget, rendered);\n }));\n return replace(content, replacements);\n}\n/**\n * Resolve <widget-*> tags in HTML by calling getData() + renderHTML().\n */\nexport function resolveWidgetTags(html, getWidget, routeInfo, contextProvider, logger = defaultLogger) {\n const tagPattern = /<widget-(?<name>[a-z][a-z0-9-]*)(?<attrs>\\s[^>]*)?>(?<content>.*?)<\\/widget-\\k<name>>/gis;\n const wrappers = new Map();\n const ssrAttrPattern = new RegExp(`\\\\s${SSR_ATTR}(?:\\\\s|=|$)`);\n const parse = (content) => {\n const matches = content.matchAll(tagPattern).toArray();\n return matches.filter((match) => {\n const attrsString = match.groups.attrs || '';\n return !ssrAttrPattern.test(attrsString);\n });\n };\n const resolve = async (match) => {\n const widgetName = match.groups.name;\n const attrsString = match.groups.attrs?.trim() ?? '';\n try {\n const result = await getWidget(widgetName);\n if (!result)\n return match[0];\n const { component: widget, files } = result;\n const params = parseAttrsToParams(attrsString);\n const baseContext = {\n ...routeInfo,\n pathname: routeInfo.url.pathname,\n searchParams: routeInfo.url.searchParams,\n ...(files ? { files } : {}),\n };\n const context = contextProvider ? contextProvider(baseContext) : baseContext;\n const data = await widget.getData({ params, context });\n const hostStyle = '<style>:host { container-type: inline-size; content-visibility: auto; }</style>';\n const cssStyle = files?.css ? `<style>${scopeWidgetCss(files.css, widgetName)}</style>` : '';\n const rendered = hostStyle + cssStyle + widget.renderHTML({ data, params, context });\n wrappers.set(match, {\n tagName: `widget-${widgetName}`,\n attrs: attrsString ? ` ${attrsString}` : '',\n ssrData: widget.exposeSsrData ? escapeAttr(JSON.stringify(data)) : '',\n });\n return rendered;\n }\n catch (e) {\n logger.error(`[SSR HTML] Widget \"${widgetName}\" render failed`, e instanceof Error ? e : undefined);\n return match[0];\n }\n };\n const replace = (content, replacements) => {\n let result = content;\n const entries = [...replacements.entries()].sort((a, b) => b[0].index - a[0].index);\n for (const [match, innerHtml] of entries) {\n const start = match.index;\n const end = start + match[0].length;\n const wrap = wrappers.get(match);\n const lightDomData = wrap?.ssrData ? wrap.ssrData : '';\n const replacement = wrap\n ? `<${wrap.tagName}${wrap.attrs} ${SSR_ATTR}><template shadowrootmode=\"open\">${innerHtml}</template>${lightDomData}</${wrap.tagName}>`\n : innerHtml;\n result = result.slice(0, start) + replacement + result.slice(end);\n }\n return result;\n };\n return resolveRecursively(html, parse, resolve, replace, 0, logger);\n}\n/** Parse HTML attribute string into params object. */\nexport function parseAttrsToParams(attrsString) {\n const params = {};\n if (!attrsString)\n return params;\n const attrPattern = /(?<attr>[a-z][a-z0-9-]*)(?:=\"(?<dq>[^\"]*)\"|='(?<sq>[^']*)'|=(?<uq>[^\\s>]+))?/gi;\n for (const match of attrsString.matchAll(attrPattern)) {\n const { attr: attrName, dq, sq, uq } = match.groups;\n if (!attrName || RESERVED_ATTRS.has(attrName))\n continue;\n const key = attrName.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n const rawValue = dq ?? sq ?? uq;\n if (rawValue === undefined) {\n params[key] = '';\n continue;\n }\n const raw = rawValue.replaceAll('&', '&').replaceAll(''', \"'\").replaceAll('"', '\"');\n try {\n params[key] = JSON.parse(raw);\n }\n catch {\n params[key] = raw;\n }\n }\n return params;\n}\nfunction escapeAttr(value) {\n return value.replaceAll('&', '&').replaceAll(\"'\", ''');\n}\n//# sourceMappingURL=widget-resolve.util.js.map",
|
|
15
15
|
"/**\n * Component Base Class\n *\n * Everything is a Component: pages and widgets.\n * Components render differently based on context:\n * - /md/* → Markdown (LLMs, text clients)\n * - /html/* → Pre-rendered HTML (SSR)\n * - SPA → Hydrated custom elements\n */\nimport { escapeHtml } from \"../util/html.util.js\";\nexport class Component {\n /** Host element reference, set by ComponentElement in the browser. */\n element;\n /** Associated file paths for pre-loaded content (html, md, css). */\n files;\n /**\n * When true, SSR serializes the getData() result into the element's\n * light DOM so the client can access it immediately in hydrate()\n * without re-fetching.\n */\n exposeSsrData;\n getData(_args) { return Promise.resolve(null); }\n renderHTML(args) {\n if (args.data === null) {\n return `<div data-component=\"${this.name}\">Loading...</div>`;\n }\n const markdown = this.renderMarkdown({\n data: args.data,\n params: args.params,\n context: args.context,\n });\n return `<div data-component=\"${this.name}\" data-markdown>${escapeHtml(markdown)}</div>`;\n }\n experimentalUseTemplate(sourceOrId, id) {\n // DOM path: single arg = template id, find in shadow DOM\n if (id === undefined) {\n const templateId = sourceOrId;\n const shadowRoot = this.element?.shadowRoot;\n const template = shadowRoot?.querySelector(`template#${templateId}`);\n if (!template) {\n throw new Error(`[${this.name}] Template \"#${templateId}\" not found in shadow DOM. ` +\n 'Ensure the <template> element exists in the companion HTML.');\n }\n return (slots) => {\n const clone = template.content.cloneNode(true);\n if (!slots)\n return clone;\n for (const [name, content] of Object.entries(slots)) {\n const selector = name === 'default' ? 'slot:not([name])' : `slot[name=\"${name}\"]`;\n const slot = clone.querySelector(selector);\n if (!slot)\n continue;\n const temp = document.createElement('template');\n temp.innerHTML = content;\n slot.replaceWith(temp.content);\n }\n return clone;\n };\n }\n const source = sourceOrId;\n // Markdown path: ```template:id ... ```\n const mdPattern = new RegExp('```template:' + id + '\\\\n([\\\\s\\\\S]*?)```');\n const mdMatch = source.match(mdPattern);\n if (mdMatch) {\n const skeleton = mdMatch[1];\n return (slots) => {\n if (!slots)\n return skeleton;\n let result = skeleton;\n for (const [name, content] of Object.entries(slots)) {\n result = result.replaceAll(`slot:${name}`, content);\n }\n return result;\n };\n }\n // HTML path: <template id=\"...\">...</template>\n const htmlPattern = new RegExp(`<template\\\\s+id=[\"']${id}[\"'][^>]*>([\\\\s\\\\S]*?)</template>`);\n const htmlMatch = source.match(htmlPattern);\n if (!htmlMatch) {\n throw new Error(`[${this.name}] Template \"${id}\" not found in source. ` +\n 'Expected <template id=\"' + id + '\"> in HTML or ```template:' + id + ' in markdown.');\n }\n const skeleton = htmlMatch[1];\n return (slots) => {\n if (!slots)\n return skeleton;\n let result = skeleton;\n for (const [name, content] of Object.entries(slots)) {\n if (name === 'default')\n continue;\n result = result.replaceAll(new RegExp(`<slot\\\\s+name=[\"']${name}[\"'][^>]*>[\\\\s\\\\S]*?</slot>`, 'g'), content);\n }\n if ('default' in slots) {\n result = result.replaceAll(/<slot\\s*>[\\s\\S]*?<\\/slot>/g, slots['default']);\n }\n return result;\n };\n }\n renderError(args) {\n const msg = args.error instanceof Error ? args.error.message : String(args.error);\n return `<div data-component=\"${this.name}\">Error: ${escapeHtml(msg)}</div>`;\n }\n renderMarkdownError(error) {\n const msg = error instanceof Error ? error.message : String(error);\n return `> **Error** (\\`${this.name}\\`): ${msg}`;\n }\n}\n//# sourceMappingURL=abstract.component.js.map",
|
|
16
16
|
"/**\n * Page Component\n *\n * Params come from URL, context carries file content.\n *\n * Default implementations follow the fallback table:\n * - renderHTML: html file → md via <mark-down> → <router-slot /> (non-leaf only)\n * - renderMarkdown: md file → ```router-slot\\n``` (non-leaf only)\n * - getData: no-op (returns null)\n */\nimport { Component } from \"./abstract.component.js\";\nimport { escapeHtml } from \"../util/html.util.js\";\nexport class PageComponent extends Component {\n name = 'page';\n pattern;\n renderHTML(args) {\n const files = args.context.files;\n const style = files?.css ? `<style>${files.css}</style>\\n` : '';\n if (files?.html) {\n let html = style + files.html;\n if (files.md && html.includes('<mark-down></mark-down>')) {\n html = html.replace('<mark-down></mark-down>', `<mark-down>${escapeHtml(files.md)}</mark-down>`);\n }\n return html;\n }\n if (files?.md) {\n const hasSlot = files.md.includes('```router-slot');\n const slot = args.context.isLeaf || hasSlot ? '' : '\\n<router-slot></router-slot>';\n return `${style}<mark-down>${escapeHtml(files.md)}</mark-down>${slot}`;\n }\n return args.context.isLeaf ? '' : '<router-slot></router-slot>';\n }\n renderMarkdown(args) {\n const files = args.context.files;\n if (files?.md) {\n return files.md;\n }\n return args.context.isLeaf ? '' : '```router-slot\\n```';\n }\n getTitle(_args) {\n return undefined;\n }\n}\n/** Shared default instance used by renderers when no custom .page.ts exists. */\nexport default new PageComponent();\n//# sourceMappingURL=page.component.js.map",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"/**\n * Built-in Breadcrumb Widget\n *\n * Renders breadcrumb navigation from the current URL path.\n * Uses /html/ prefix for links (content-first routing convention).\n *\n * Usage in .page.html:\n * <widget-breadcrumb></widget-breadcrumb>\n * <widget-breadcrumb separator=\" / \" class=\"my-breadcrumbs\"></widget-breadcrumb>\n *\n * Usage in .page.md:\n * ```widget:breadcrumb\n * {}\n * ```\n */\nimport { WidgetComponent } from \"../../core/component/widget.component.js\";\nimport { escapeHtml } from \"../../core/util/html.util.js\";\nconst DEFAULT_HTML_SEPARATOR = ' \\u203A ';\nconst DEFAULT_MD_SEPARATOR = ' > ';\nexport class BreadcrumbWidget extends WidgetComponent {\n name = 'breadcrumb';\n getData(args) {\n const pathname = args.context.pathname || '/';\n const parts = pathname.split('/').filter(Boolean);\n const segments = [\n { label: 'Home', href: '/' },\n ];\n let accumulated = '';\n for (const part of parts) {\n accumulated += '/' + part;\n segments.push({\n label: part.charAt(0).toUpperCase() + part.slice(1).replace(/-/g, ' '),\n href: accumulated,\n });\n }\n return Promise.resolve({ segments });\n }\n renderHTML(args) {\n if (!args.data || args.data.segments.length === 0)\n return '';\n const sep = args.params.separator ?? DEFAULT_HTML_SEPARATOR;\n const segments = args.data.segments;\n const items = segments.map((seg, i) => {\n const escaped = escapeHtml(seg.label);\n if (i === segments.length - 1) {\n return `<span aria-current=\"page\">${escaped}</span>`;\n }\n return `<a href=\"${escapeHtml(seg.href)}\">${escaped}</a>`;\n });\n return `<nav aria-label=\"Breadcrumb\">${items.join(escapeHtml(sep))}</nav>`;\n }\n renderMarkdown(args) {\n if (!args.data || args.data.segments.length === 0)\n return '';\n const sep = args.params.separator ?? DEFAULT_MD_SEPARATOR;\n return args.data.segments\n .map((seg, i, arr) => i === arr.length - 1 ? `**${seg.label}**` : `[${seg.label}](${seg.href})`)\n .join(sep);\n }\n}\n//# sourceMappingURL=breadcrumb.widget.js.map",
|
|
36
36
|
"/**\n * SPA (Browser) Module\n *\n * Everything needed for the browser bundle:\n * - EmrouteApp: Navigation API glue wired to an EmrouteServer\n * - Custom elements for rendering and hydrating SSR islands\n */\nimport { RouterSlot } from \"../../element/slot.element.js\";\nimport { MarkdownElement } from \"../../element/markdown.element.js\";\nimport { ComponentElement } from \"../../element/component.element.js\";\nexport { bootEmrouteApp, createEmrouteApp, EmrouteApp } from \"./emroute.app.js\";\nexport { ComponentElement, MarkdownElement, RouterSlot };\n// Re-export base classes and types for consumer code (pages, widgets)\nexport { PageComponent } from \"../../../core/component/page.component.js\";\nexport { WidgetComponent } from \"../../../core/component/widget.component.js\";\nexport { Component } from \"../../../core/component/abstract.component.js\";\nexport { RouteTrie } from \"../../../core/router/route.trie.js\";\nexport { DEFAULT_BASE_PATH } from \"../../../core/server/emroute.server.js\";\nexport { escapeHtml, scopeWidgetCss } from \"../../../core/util/html.util.js\";\nexport { setLogger } from \"../../../core/type/logger.type.js\";\n// Register core custom elements in the browser\nif (globalThis.customElements) {\n if (!customElements.get('router-slot'))\n customElements.define('router-slot', RouterSlot);\n if (!customElements.get('mark-down'))\n customElements.define('mark-down', MarkdownElement);\n}\n// Overlay API (tree-shakeable - only bundled if imported)\nexport { createOverlayService } from \"../../overlay/overlay.service.js\";\n// Service Worker (tree-shakeable — only bundled if imported)\nexport { createEmrouteSW } from \"../../service-worker/emroute.sw.js\";\nexport { CacheRuntime } from \"../../../runtime/cache.runtime.js\";\nexport { IdbRuntime } from \"../../../runtime/idb.runtime.js\";\n// Optional: Built-in widgets (tree-shakeable - only bundled if imported)\nexport { PageTitleWidget } from \"../../widget/page-title.widget.js\";\nexport { BreadcrumbWidget } from \"../../widget/breadcrumb.widget.js\";\n//# sourceMappingURL=mod.js.map"
|
|
37
37
|
],
|
|
38
|
-
"mappings": "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",
|
|
39
|
-
"debugId": "
|
|
38
|
+
"mappings": "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",
|
|
39
|
+
"debugId": "9D7A4A39ADB77FE864756E2164756E21",
|
|
40
40
|
"names": []
|
|
41
41
|
}
|
|
@@ -135,19 +135,11 @@ export class BunFsRuntime extends Runtime {
|
|
|
135
135
|
return new Response(`Delete failed: ${error}`, { status: 500 });
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
const blob = new Blob([source], { type: 'application/javascript' });
|
|
144
|
-
const url = URL.createObjectURL(blob);
|
|
145
|
-
try {
|
|
146
|
-
return await import(__rewriteRelativeImportExtension(url));
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
URL.revokeObjectURL(url);
|
|
150
|
-
}
|
|
138
|
+
loadModule(path) {
|
|
139
|
+
// Cache-busting query string makes Bun treat each call as a unique
|
|
140
|
+
// module, bypassing the module cache. Unlike blob URLs, a real file
|
|
141
|
+
// path preserves filesystem context for bare specifier resolution.
|
|
142
|
+
return import(__rewriteRelativeImportExtension(this.root + path + '?t=' + Date.now()));
|
|
151
143
|
}
|
|
152
144
|
async transpile(source) {
|
|
153
145
|
const transpiler = new Bun.Transpiler({ loader: 'ts' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun-fs.runtime.js","sourceRoot":"","sources":["../../../../runtime/bun/fs/bun-fs.runtime.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,aAAa,EAGb,oBAAoB,EACpB,OAAO,EAEP,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,OAAO,YAAa,SAAQ,OAAO;IACtB,IAAI,CAAS;IAE9B,YAAY,IAAY,EAAE,SAAwB,EAAE;QAClD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzD,CAAC;IAED,MAAM,CACJ,QAAwB,EACxB,IAAqB;QAErB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;QAEvC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAUD,KAAK,CACH,QAAwB,EACxB,OAA0C;QAE1C,IAAI,OAAO,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1C,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,QAAwB;QACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,QAAQ,YAAY,GAAG;YAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,kBAAkB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CACX,QAAwB,EACxB,IAAkB;QAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,YAAY,GAAG,EAAE,CAAC;YAC5D,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,QAAQ;YACR,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM;YAC/B,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI;SAC5B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAED,kEAAkE;YAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAgB;gBAC3B,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,0BAA0B;gBACpE,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;aAChD,CAAC;YAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtD,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,QAAQ,KAAK,oBAAoB;oBAAE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3E,IAAI,QAAQ,KAAK,qBAAqB;oBAAE,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC7E,IAAI,QAAQ,KAAK,sBAAsB;oBAAE,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC/E,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,mBAAmB,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,IAAY;QACxC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE3D,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE;YACtB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,uCAAuC,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,IAAqB;QACrD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI;gBAClB,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBACxD,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,GAAG;gBAAE,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,QAAQ,CAAC,iBAAiB,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,IAAY;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,kBAAkB,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEQ,
|
|
1
|
+
{"version":3,"file":"bun-fs.runtime.js","sourceRoot":"","sources":["../../../../runtime/bun/fs/bun-fs.runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
import type { Runtime } from '../runtime/abstract.runtime.ts';
|
|
12
9
|
import type { SpaMode } from '../core/type/widget.type.ts';
|
|
@@ -28,13 +25,14 @@ export interface BuildOptions {
|
|
|
28
25
|
};
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
31
|
-
* Build
|
|
28
|
+
* Build SPA shell assets and write them into the runtime.
|
|
32
29
|
*
|
|
33
30
|
* Produces:
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
36
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
37
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
31
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
32
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
38
33
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
34
|
+
*
|
|
35
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
36
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
39
37
|
*/
|
|
40
38
|
export declare function buildClientBundles(options: BuildOptions): Promise<void>;
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
import { readFile } from 'node:fs/promises';
|
|
12
9
|
import { createRequire } from 'node:module';
|
|
13
10
|
import { resolve } from 'node:path';
|
|
14
|
-
import { ROUTES_MANIFEST_PATH, WIDGETS_MANIFEST_PATH, ELEMENTS_MANIFEST_PATH, } from "../core/runtime/abstract.runtime.js";
|
|
15
11
|
import { generateMainTs } from "./codegen.util.js";
|
|
16
12
|
/** Package specifiers that map to emroute.js via import map. */
|
|
17
13
|
export const EMROUTE_EXTERNALS = [
|
|
@@ -23,20 +19,19 @@ export const EMROUTE_EXTERNALS = [
|
|
|
23
19
|
];
|
|
24
20
|
const DEFAULT_BUNDLE_PATHS = { emroute: '/emroute.js', app: '/app.js' };
|
|
25
21
|
/**
|
|
26
|
-
* Build
|
|
22
|
+
* Build SPA shell assets and write them into the runtime.
|
|
27
23
|
*
|
|
28
24
|
* Produces:
|
|
29
|
-
* -
|
|
30
|
-
* -
|
|
31
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
32
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
25
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
26
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
33
27
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
28
|
+
*
|
|
29
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
30
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
34
31
|
*/
|
|
35
32
|
export async function buildClientBundles(options) {
|
|
36
33
|
const { runtime, root, spa, entryPoint } = options;
|
|
37
34
|
const paths = options.bundlePaths ?? DEFAULT_BUNDLE_PATHS;
|
|
38
|
-
// Merge .ts modules → .js with inlined companions, update manifests
|
|
39
|
-
await mergeModules(runtime);
|
|
40
35
|
if (spa === 'none')
|
|
41
36
|
return;
|
|
42
37
|
// Copy pre-built emroute.js from the package dist/
|
|
@@ -110,101 +105,4 @@ async function writeImportMap(runtime, paths) {
|
|
|
110
105
|
body: JSON.stringify({ imports }, null, 2),
|
|
111
106
|
});
|
|
112
107
|
}
|
|
113
|
-
// ── Module merging ───────────────────────────────────────────────────
|
|
114
|
-
/** Convert a .ts path to .js (e.g. "routes/about.page.ts" → "routes/about.page.js"). */
|
|
115
|
-
function tsToJs(path) {
|
|
116
|
-
return path.replace(/\.ts$/, '.js');
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Materialize a .ts module as a browser-ready .js file in the runtime.
|
|
120
|
-
*
|
|
121
|
-
* Queries the runtime for the .ts path. The runtime is expected to serve .ts
|
|
122
|
-
* as transpiled JavaScript with companion files inlined — the build step is
|
|
123
|
-
* a pre-computation of what the runtime serves on the fly.
|
|
124
|
-
*
|
|
125
|
-
* Returns the .js output path (same format as the input tsPath).
|
|
126
|
-
*/
|
|
127
|
-
async function transpileAndMerge(runtime, tsPath) {
|
|
128
|
-
const abs = tsPath.startsWith('/') ? tsPath : '/' + tsPath;
|
|
129
|
-
const response = await runtime.query(abs);
|
|
130
|
-
if (response.status === 404)
|
|
131
|
-
throw new Error(`[emroute] Module not found: ${tsPath}`);
|
|
132
|
-
const jsPath = tsToJs(tsPath);
|
|
133
|
-
const absJsPath = jsPath.startsWith('/') ? jsPath : '/' + jsPath;
|
|
134
|
-
await runtime.command(absJsPath, { body: await response.text() });
|
|
135
|
-
return jsPath;
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Walk the route tree and widget manifest, transpile+merge each .ts module,
|
|
139
|
-
* update the manifests to reference .js paths, and write them back.
|
|
140
|
-
*/
|
|
141
|
-
async function mergeModules(runtime) {
|
|
142
|
-
// Read route tree
|
|
143
|
-
const routesResponse = await runtime.query(ROUTES_MANIFEST_PATH);
|
|
144
|
-
if (routesResponse.status === 404)
|
|
145
|
-
return;
|
|
146
|
-
const routeTree = await routesResponse.json();
|
|
147
|
-
// Read widget manifest
|
|
148
|
-
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
149
|
-
const widgetEntries = widgetsResponse.status !== 404
|
|
150
|
-
? await widgetsResponse.json()
|
|
151
|
-
: [];
|
|
152
|
-
// Merge route modules
|
|
153
|
-
async function walkRoutes(node) {
|
|
154
|
-
if (node.files?.ts) {
|
|
155
|
-
node.files.js = await transpileAndMerge(runtime, node.files.ts);
|
|
156
|
-
delete node.files.ts;
|
|
157
|
-
delete node.files.html;
|
|
158
|
-
delete node.files.md;
|
|
159
|
-
delete node.files.css;
|
|
160
|
-
}
|
|
161
|
-
if (node.redirect && node.redirect.endsWith('.ts')) {
|
|
162
|
-
await transpileAndMerge(runtime, node.redirect);
|
|
163
|
-
node.redirect = tsToJs(node.redirect);
|
|
164
|
-
}
|
|
165
|
-
if (node.errorBoundary && node.errorBoundary.endsWith('.ts')) {
|
|
166
|
-
await transpileAndMerge(runtime, node.errorBoundary);
|
|
167
|
-
node.errorBoundary = tsToJs(node.errorBoundary);
|
|
168
|
-
}
|
|
169
|
-
if (node.children) {
|
|
170
|
-
for (const child of Object.values(node.children))
|
|
171
|
-
await walkRoutes(child);
|
|
172
|
-
}
|
|
173
|
-
if (node.dynamic)
|
|
174
|
-
await walkRoutes(node.dynamic.child);
|
|
175
|
-
if (node.wildcard)
|
|
176
|
-
await walkRoutes(node.wildcard.child);
|
|
177
|
-
}
|
|
178
|
-
await walkRoutes(routeTree);
|
|
179
|
-
// Merge widget modules
|
|
180
|
-
for (const entry of widgetEntries) {
|
|
181
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
182
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
183
|
-
delete entry.files;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// Read element manifest
|
|
187
|
-
const elementsResponse = await runtime.query(ELEMENTS_MANIFEST_PATH);
|
|
188
|
-
const elementEntries = elementsResponse.status !== 404
|
|
189
|
-
? await elementsResponse.json()
|
|
190
|
-
: [];
|
|
191
|
-
// Merge element modules
|
|
192
|
-
for (const entry of elementEntries) {
|
|
193
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
194
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
// Write updated manifests back
|
|
198
|
-
await runtime.command(ROUTES_MANIFEST_PATH, {
|
|
199
|
-
body: JSON.stringify(routeTree),
|
|
200
|
-
});
|
|
201
|
-
await runtime.command(WIDGETS_MANIFEST_PATH, {
|
|
202
|
-
body: JSON.stringify(widgetEntries),
|
|
203
|
-
});
|
|
204
|
-
if (elementEntries.length > 0) {
|
|
205
|
-
await runtime.command(ELEMENTS_MANIFEST_PATH, {
|
|
206
|
-
body: JSON.stringify(elementEntries),
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
108
|
//# sourceMappingURL=build.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.util.js","sourceRoot":"","sources":["../../server/build.util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emkodev/emroute",
|
|
3
|
-
"version": "1.12.0-beta.
|
|
3
|
+
"version": "1.12.0-beta.2",
|
|
4
4
|
"description": "File-based (but storage-agnostic) router with triple rendering (SPA, SSR HTML, SSR Markdown). Zero dependencies.",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"author": "emko.dev",
|
|
@@ -163,18 +163,11 @@ export class BunFsRuntime extends Runtime {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
override
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
const blob = new Blob([source], { type: 'application/javascript' });
|
|
172
|
-
const url = URL.createObjectURL(blob);
|
|
173
|
-
try {
|
|
174
|
-
return await import(url);
|
|
175
|
-
} finally {
|
|
176
|
-
URL.revokeObjectURL(url);
|
|
177
|
-
}
|
|
166
|
+
override loadModule(path: string): Promise<unknown> {
|
|
167
|
+
// Cache-busting query string makes Bun treat each call as a unique
|
|
168
|
+
// module, bypassing the module cache. Unlike blob URLs, a real file
|
|
169
|
+
// path preserves filesystem context for bare specifier resolution.
|
|
170
|
+
return import(this.root + path + '?t=' + Date.now());
|
|
178
171
|
}
|
|
179
172
|
|
|
180
173
|
override async transpile(source: string): Promise<string> {
|
package/server/build.util.ts
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Build Utilities
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Also produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
9
|
-
* required by root/only modes.
|
|
4
|
+
* Produces the SPA shell assets (emroute.js, app.js, importmap.json)
|
|
5
|
+
* required by root/only modes. Module serving (.ts → JS with companions
|
|
6
|
+
* inlined) is handled by the runtime at request time.
|
|
10
7
|
*/
|
|
11
8
|
|
|
12
9
|
import { readFile } from 'node:fs/promises';
|
|
13
10
|
import { createRequire } from 'node:module';
|
|
14
11
|
import { resolve } from 'node:path';
|
|
15
12
|
import type { Runtime } from '../runtime/abstract.runtime.ts';
|
|
16
|
-
import {
|
|
17
|
-
ROUTES_MANIFEST_PATH,
|
|
18
|
-
WIDGETS_MANIFEST_PATH,
|
|
19
|
-
ELEMENTS_MANIFEST_PATH,
|
|
20
|
-
} from '../core/runtime/abstract.runtime.ts';
|
|
21
|
-
import type { RouteNode } from '../core/type/route-tree.type.ts';
|
|
22
|
-
import type { WidgetManifestEntry } from '../core/type/widget.type.ts';
|
|
23
|
-
import type { ElementManifestEntry } from '../core/type/element.type.ts';
|
|
24
13
|
import { generateMainTs } from './codegen.util.ts';
|
|
25
14
|
import type { SpaMode } from '../core/type/widget.type.ts';
|
|
26
15
|
|
|
@@ -49,22 +38,20 @@ export interface BuildOptions {
|
|
|
49
38
|
const DEFAULT_BUNDLE_PATHS = { emroute: '/emroute.js', app: '/app.js' };
|
|
50
39
|
|
|
51
40
|
/**
|
|
52
|
-
* Build
|
|
41
|
+
* Build SPA shell assets and write them into the runtime.
|
|
53
42
|
*
|
|
54
43
|
* Produces:
|
|
55
|
-
* -
|
|
56
|
-
* -
|
|
57
|
-
* - emroute.js — pre-built from dist/ (copied into runtime)
|
|
58
|
-
* - app.js — consumer entry point (transpiled from .ts, no bundler)
|
|
44
|
+
* - emroute.js — pre-built framework bundle (copied from dist/)
|
|
45
|
+
* - app.js — consumer entry point (transpiled from main.ts)
|
|
59
46
|
* - importmap.json — merged import map (emroute externals + consumer entries)
|
|
47
|
+
*
|
|
48
|
+
* Module serving (pages, widgets, elements) is handled by the runtime —
|
|
49
|
+
* manifests reference .ts paths and the runtime transpiles on the fly.
|
|
60
50
|
*/
|
|
61
51
|
export async function buildClientBundles(options: BuildOptions): Promise<void> {
|
|
62
52
|
const { runtime, root, spa, entryPoint } = options;
|
|
63
53
|
const paths = options.bundlePaths ?? DEFAULT_BUNDLE_PATHS;
|
|
64
54
|
|
|
65
|
-
// Merge .ts modules → .js with inlined companions, update manifests
|
|
66
|
-
await mergeModules(runtime);
|
|
67
|
-
|
|
68
55
|
if (spa === 'none') return;
|
|
69
56
|
|
|
70
57
|
// Copy pre-built emroute.js from the package dist/
|
|
@@ -145,112 +132,3 @@ async function writeImportMap(
|
|
|
145
132
|
});
|
|
146
133
|
}
|
|
147
134
|
|
|
148
|
-
// ── Module merging ───────────────────────────────────────────────────
|
|
149
|
-
|
|
150
|
-
/** Convert a .ts path to .js (e.g. "routes/about.page.ts" → "routes/about.page.js"). */
|
|
151
|
-
function tsToJs(path: string): string {
|
|
152
|
-
return path.replace(/\.ts$/, '.js');
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Materialize a .ts module as a browser-ready .js file in the runtime.
|
|
157
|
-
*
|
|
158
|
-
* Queries the runtime for the .ts path. The runtime is expected to serve .ts
|
|
159
|
-
* as transpiled JavaScript with companion files inlined — the build step is
|
|
160
|
-
* a pre-computation of what the runtime serves on the fly.
|
|
161
|
-
*
|
|
162
|
-
* Returns the .js output path (same format as the input tsPath).
|
|
163
|
-
*/
|
|
164
|
-
async function transpileAndMerge(
|
|
165
|
-
runtime: Runtime,
|
|
166
|
-
tsPath: string,
|
|
167
|
-
): Promise<string> {
|
|
168
|
-
const abs = tsPath.startsWith('/') ? tsPath : '/' + tsPath;
|
|
169
|
-
const response = await runtime.query(abs);
|
|
170
|
-
if (response.status === 404) throw new Error(`[emroute] Module not found: ${tsPath}`);
|
|
171
|
-
|
|
172
|
-
const jsPath = tsToJs(tsPath);
|
|
173
|
-
const absJsPath = jsPath.startsWith('/') ? jsPath : '/' + jsPath;
|
|
174
|
-
await runtime.command(absJsPath, { body: await response.text() });
|
|
175
|
-
return jsPath;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Walk the route tree and widget manifest, transpile+merge each .ts module,
|
|
180
|
-
* update the manifests to reference .js paths, and write them back.
|
|
181
|
-
*/
|
|
182
|
-
async function mergeModules(runtime: Runtime): Promise<void> {
|
|
183
|
-
// Read route tree
|
|
184
|
-
const routesResponse = await runtime.query(ROUTES_MANIFEST_PATH);
|
|
185
|
-
if (routesResponse.status === 404) return;
|
|
186
|
-
const routeTree: RouteNode = await routesResponse.json();
|
|
187
|
-
|
|
188
|
-
// Read widget manifest
|
|
189
|
-
const widgetsResponse = await runtime.query(WIDGETS_MANIFEST_PATH);
|
|
190
|
-
const widgetEntries: WidgetManifestEntry[] = widgetsResponse.status !== 404
|
|
191
|
-
? await widgetsResponse.json()
|
|
192
|
-
: [];
|
|
193
|
-
|
|
194
|
-
// Merge route modules
|
|
195
|
-
async function walkRoutes(node: RouteNode): Promise<void> {
|
|
196
|
-
if (node.files?.ts) {
|
|
197
|
-
node.files.js = await transpileAndMerge(runtime, node.files.ts);
|
|
198
|
-
delete node.files.ts;
|
|
199
|
-
delete node.files.html;
|
|
200
|
-
delete node.files.md;
|
|
201
|
-
delete node.files.css;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
if (node.redirect && node.redirect.endsWith('.ts')) {
|
|
205
|
-
await transpileAndMerge(runtime, node.redirect);
|
|
206
|
-
node.redirect = tsToJs(node.redirect);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
if (node.errorBoundary && node.errorBoundary.endsWith('.ts')) {
|
|
210
|
-
await transpileAndMerge(runtime, node.errorBoundary);
|
|
211
|
-
node.errorBoundary = tsToJs(node.errorBoundary);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
if (node.children) {
|
|
215
|
-
for (const child of Object.values(node.children)) await walkRoutes(child);
|
|
216
|
-
}
|
|
217
|
-
if (node.dynamic) await walkRoutes(node.dynamic.child);
|
|
218
|
-
if (node.wildcard) await walkRoutes(node.wildcard.child);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
await walkRoutes(routeTree);
|
|
222
|
-
|
|
223
|
-
// Merge widget modules
|
|
224
|
-
for (const entry of widgetEntries) {
|
|
225
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
226
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
227
|
-
delete entry.files;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
// Read element manifest
|
|
232
|
-
const elementsResponse = await runtime.query(ELEMENTS_MANIFEST_PATH);
|
|
233
|
-
const elementEntries: ElementManifestEntry[] = elementsResponse.status !== 404
|
|
234
|
-
? await elementsResponse.json()
|
|
235
|
-
: [];
|
|
236
|
-
|
|
237
|
-
// Merge element modules
|
|
238
|
-
for (const entry of elementEntries) {
|
|
239
|
-
if (entry.modulePath.endsWith('.ts')) {
|
|
240
|
-
entry.modulePath = await transpileAndMerge(runtime, entry.modulePath);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// Write updated manifests back
|
|
245
|
-
await runtime.command(ROUTES_MANIFEST_PATH, {
|
|
246
|
-
body: JSON.stringify(routeTree),
|
|
247
|
-
});
|
|
248
|
-
await runtime.command(WIDGETS_MANIFEST_PATH, {
|
|
249
|
-
body: JSON.stringify(widgetEntries),
|
|
250
|
-
});
|
|
251
|
-
if (elementEntries.length > 0) {
|
|
252
|
-
await runtime.command(ELEMENTS_MANIFEST_PATH, {
|
|
253
|
-
body: JSON.stringify(elementEntries),
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
}
|