@maxhealth.tech/prefab 0.3.2 → 0.3.4
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/CHANGELOG.md +39 -0
- package/README.md +3 -1
- package/dist/app.d.ts +1 -1
- package/dist/app.js +1 -1
- package/dist/core/logger.d.ts +33 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +48 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/validate.js +33 -0
- package/dist/core/validate.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/renderer/actions.d.ts +6 -0
- package/dist/renderer/actions.d.ts.map +1 -1
- package/dist/renderer/actions.js +43 -20
- package/dist/renderer/actions.js.map +1 -1
- package/dist/renderer/auto.js +5 -3
- package/dist/renderer/auto.js.map +1 -1
- package/dist/renderer/components/data.js +6 -3
- package/dist/renderer/components/data.js.map +1 -1
- package/dist/renderer/components/form.js +12 -12
- package/dist/renderer/components/form.js.map +1 -1
- package/dist/renderer/engine.d.ts.map +1 -1
- package/dist/renderer/engine.js +7 -6
- package/dist/renderer/engine.js.map +1 -1
- package/dist/renderer/index.d.ts +5 -0
- package/dist/renderer/index.d.ts.map +1 -1
- package/dist/renderer/index.js +26 -11
- package/dist/renderer/index.js.map +1 -1
- package/dist/renderer/state.d.ts.map +1 -1
- package/dist/renderer/state.js +2 -1
- package/dist/renderer/state.js.map +1 -1
- package/dist/renderer/theme.d.ts +1 -1
- package/dist/renderer/theme.d.ts.map +1 -1
- package/dist/renderer/theme.js.map +1 -1
- package/dist/renderer/transport.d.ts.map +1 -1
- package/dist/renderer/transport.js +3 -2
- package/dist/renderer/transport.js.map +1 -1
- package/dist/renderer.auto.min.js +10 -10
- package/dist/renderer.min.js +10 -10
- package/dist/rx/pipes.d.ts.map +1 -1
- package/dist/rx/pipes.js +2 -1
- package/dist/rx/pipes.js.map +1 -1
- package/dist/rx/state-collector.d.ts.map +1 -1
- package/dist/rx/state-collector.js +2 -1
- package/dist/rx/state-collector.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.3.4] — 2026-07-22
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Action dispatch failures are no longer silent. Every fire-and-forget handler (`onClick`, `onMount`, `onChange`, `onSubmit`, `onRowClick`, keyboard bindings, interval ticks, and `display_update` actions) now routes rejections through the logger via a new `fireAndForget` helper, so a throwing action surfaces instead of vanishing. The async actions (`toolCall`, `fetch`, `callHandler`, `subscribe`) report through a shared `reportActionError`: at `debug` when an `onError` handler is wired, at `warn` when none is, so an unhandled failure is never fully quiet.
|
|
12
|
+
|
|
13
|
+
### Internal
|
|
14
|
+
|
|
15
|
+
- The release workflow now requires a changelog entry: it fails if `## [Unreleased]` has no entries for the version about to ship, and otherwise promotes that section to the new version heading (`scripts/changelog-release.ts`). This keeps the changelog from drifting behind published releases.
|
|
16
|
+
|
|
17
|
+
## [0.3.3] — 2026-07-22
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **Centralized logger** (`src/core/logger.ts`), zero runtime dependencies. Mirrors the `@maxhealth.tech/utils` `createLogger` contract (scoped `error`/`warn`/`info`/`debug`, `[prefab]` / `[prefab:scope]` prefix) and adds a runtime `setLogLevel()` so an embedding host can mute or raise prefab's console output. All internal `console.*` calls now route through it. New exports: `createLogger`, `log`, `setLogLevel`, `getLogLevel`, `LogLevel`, `Logger` (and `window.prefab.setLogLevel`).
|
|
22
|
+
- **Wire validation now catches silent authoring mistakes.** `validateWireFormat` flags child components placed under a non-`children` key (e.g. `then`/`else`/`body`), which the renderer never reads, and requires a non-empty `message` on `showToast`. `PrefabRenderer.mount()` runs validation and reports any problems as non-fatal console warnings (opt out with `{ validate: false }`), so a payload that renders nothing now tells you why. `validateWireFormat` / `isValidWireFormat` are also exported from the renderer entry.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **DataTable renders primitive rows.** A table over an array of strings or numbers rendered blank cells, because `row[column.key]` is undefined on a primitive. A primitive row is now used directly as the cell value, so a plain string list displays.
|
|
27
|
+
|
|
28
|
+
### Docs
|
|
29
|
+
|
|
30
|
+
- Repaired the playground examples, each verified against the live renderer: Conditional UI declared its branches under a non-existent `then` key (renamed to `children`), Todo List could not display its string tasks through a DataTable (now a `ForEach` list), and the Contact form toast passed `title` instead of `message`. The playground's own toast handler read `t.title` (never present on `ToastEvent`) and now reads `t.message`. All example payloads bumped to wire version `0.3`.
|
|
31
|
+
- Reframed the project tagline across the README and the site description: from a declarative UI component library "wire-compatible with" PrefectHQ's Python `prefab-ui` to a full-stack framework and a superset of it.
|
|
32
|
+
|
|
33
|
+
## [0.3.2] — 2026-07-19
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- **Badge no longer stretches to full width.** `.pf-badge` is `inline-flex`, but as a flex child it was blockified and stretched to the container's cross size (full width inside a column, full height inside a row). It now uses `align-self: flex-start` to stay intrinsically sized; an explicit `w-full` or width utility still overrides it.
|
|
38
|
+
|
|
39
|
+
### Docs
|
|
40
|
+
|
|
41
|
+
- **Playground preview text contrast.** The mounted preview inherited the playground chrome's light-gray text color, leaving content near-invisible on a light preview. The preview now applies the theme's `--foreground`.
|
|
42
|
+
- **Single-sourced the playground theme state.** The toolbar "Dark" checkbox and the renderer's floating theme toggle were independent (one toggled a class, the other set `data-theme` plus localStorage and document sync) and drifted apart. They now share one source of truth. The demo and playground CDN example pins were bumped from `@0.2` to `@0.3`.
|
|
43
|
+
|
|
5
44
|
## [0.3.1] — 2026-06-27
|
|
6
45
|
|
|
7
46
|
Documentation and tooling release. No runtime or API changes: `src/` is unchanged aside from the version bump, so the published bundle is functionally identical to 0.3.0.
|
package/README.md
CHANGED
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
[](https://www.typescriptlang.org/)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
9
|
|
|
10
|
-
TypeScript
|
|
10
|
+
The TypeScript full-stack framework for MCP app UIs: author server-side, ship JSON, render anywhere.
|
|
11
|
+
|
|
12
|
+
A superset of PrefectHQ's Python [prefab-ui](https://github.com/PrefectHQ/prefab), on the **`$prefab` v0.3 wire protocol** (still renders legacy `0.2` payloads).
|
|
11
13
|
|
|
12
14
|
**[Live Demo](https://maxhealth.tech/prefab/demo/)** · **[Playground](https://maxhealth.tech/prefab/playground/)**
|
|
13
15
|
|
package/dist/app.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { ComponentJSON } from './core/component.js';
|
|
|
9
9
|
import type { Action, ActionJSON } from './actions/types.js';
|
|
10
10
|
import type { PipeFn } from './rx/pipes.js';
|
|
11
11
|
/** Package version — injected by build script, updated at release time. */
|
|
12
|
-
export declare const VERSION = "0.3.
|
|
12
|
+
export declare const VERSION = "0.3.4";
|
|
13
13
|
/**
|
|
14
14
|
* Wire protocol version emitted in `$prefab.version`.
|
|
15
15
|
*
|
package/dist/app.js
CHANGED
|
@@ -8,7 +8,7 @@ import {} from './core/component.js';
|
|
|
8
8
|
import { drainAutoState } from './rx/state-collector.js';
|
|
9
9
|
import { compileThemeCss } from './core/theme-css.js';
|
|
10
10
|
/** Package version — injected by build script, updated at release time. */
|
|
11
|
-
export const VERSION = '0.3.
|
|
11
|
+
export const VERSION = '0.3.4';
|
|
12
12
|
/**
|
|
13
13
|
* Wire protocol version emitted in `$prefab.version`.
|
|
14
14
|
*
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized logger — the single sink for all prefab console output.
|
|
3
|
+
*
|
|
4
|
+
* Zero-dependency by design (prefab's renderer bundle ships no runtime deps),
|
|
5
|
+
* but API-compatible with the org-wide `@maxhealth.tech/utils` `createLogger`
|
|
6
|
+
* so call sites read the same everywhere and could later swap to the shared
|
|
7
|
+
* package without churn.
|
|
8
|
+
*
|
|
9
|
+
* Adds a runtime level (the utils logger gates on NODE_ENV, which is unreliable
|
|
10
|
+
* in a browser bundle) so an embedding host can raise or mute prefab's output:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { setLogLevel } from '@maxhealth.tech/prefab'
|
|
14
|
+
* setLogLevel('silent') // quiet inside a production MCP Apps host
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export type LogLevel = 'silent' | 'error' | 'warn' | 'info' | 'debug';
|
|
18
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
19
|
+
export declare function getLogLevel(): LogLevel;
|
|
20
|
+
export interface Logger {
|
|
21
|
+
error(message: string, ...args: unknown[]): void;
|
|
22
|
+
warn(message: string, ...args: unknown[]): void;
|
|
23
|
+
info(message: string, ...args: unknown[]): void;
|
|
24
|
+
debug(message: string, ...args: unknown[]): void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a scoped logger. Output is prefixed `[prefab]` (no scope) or
|
|
28
|
+
* `[prefab:<scope>]`, matching prefab's existing console convention.
|
|
29
|
+
*/
|
|
30
|
+
export declare function createLogger(scope?: string): Logger;
|
|
31
|
+
/** Default unscoped logger — `[prefab] …`. */
|
|
32
|
+
export declare const log: Logger;
|
|
33
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAQrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AAID,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CACjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAanD;AAED,8CAA8C;AAC9C,eAAO,MAAM,GAAG,EAAE,MAAuB,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized logger — the single sink for all prefab console output.
|
|
3
|
+
*
|
|
4
|
+
* Zero-dependency by design (prefab's renderer bundle ships no runtime deps),
|
|
5
|
+
* but API-compatible with the org-wide `@maxhealth.tech/utils` `createLogger`
|
|
6
|
+
* so call sites read the same everywhere and could later swap to the shared
|
|
7
|
+
* package without churn.
|
|
8
|
+
*
|
|
9
|
+
* Adds a runtime level (the utils logger gates on NODE_ENV, which is unreliable
|
|
10
|
+
* in a browser bundle) so an embedding host can raise or mute prefab's output:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { setLogLevel } from '@maxhealth.tech/prefab'
|
|
14
|
+
* setLogLevel('silent') // quiet inside a production MCP Apps host
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
/** Severity ranking. A method fires when its rank <= the active level's rank. */
|
|
18
|
+
const RANK = { silent: 0, error: 1, warn: 2, info: 3, debug: 4 };
|
|
19
|
+
/** Default: warn+error visible (surfaces wire-validation problems), info/debug quiet. */
|
|
20
|
+
let currentLevel = 'warn';
|
|
21
|
+
export function setLogLevel(level) {
|
|
22
|
+
currentLevel = level;
|
|
23
|
+
}
|
|
24
|
+
export function getLogLevel() {
|
|
25
|
+
return currentLevel;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create a scoped logger. Output is prefixed `[prefab]` (no scope) or
|
|
29
|
+
* `[prefab:<scope>]`, matching prefab's existing console convention.
|
|
30
|
+
*/
|
|
31
|
+
export function createLogger(scope) {
|
|
32
|
+
const prefix = scope ? `[prefab:${scope}]` : '[prefab]';
|
|
33
|
+
const emit = (method, message, args) => {
|
|
34
|
+
if (RANK[method] > RANK[currentLevel])
|
|
35
|
+
return;
|
|
36
|
+
// eslint-disable-next-line no-console -- this module IS the sanctioned console sink
|
|
37
|
+
console[method](`${prefix} ${message}`, ...args);
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
error: (message, ...args) => emit('error', message, args),
|
|
41
|
+
warn: (message, ...args) => emit('warn', message, args),
|
|
42
|
+
info: (message, ...args) => emit('info', message, args),
|
|
43
|
+
debug: (message, ...args) => emit('debug', message, args),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/** Default unscoped logger — `[prefab] …`. */
|
|
47
|
+
export const log = createLogger();
|
|
48
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,iFAAiF;AACjF,MAAM,IAAI,GAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAE1F,yFAAyF;AACzF,IAAI,YAAY,GAAa,MAAM,CAAA;AAEnC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAA;AACrB,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;IACvD,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,IAAe,EAAQ,EAAE;QACtE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAAE,OAAM;QAC7C,oFAAoF;QACpF,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAClD,CAAC,CAAA;IACD,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;QACzD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACvD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACvD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;KAC1D,CAAA;AACH,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,GAAG,GAAW,YAAY,EAAE,CAAA"}
|
package/dist/core/validate.js
CHANGED
|
@@ -163,6 +163,30 @@ function validateComponent(node, path, errors, strict) {
|
|
|
163
163
|
validateAction(comp[prop], `${path}.${prop}`, errors);
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
|
+
// Misplaced children — child components parked under a key the renderer never
|
|
167
|
+
// reads (e.g. `then`/`else`/`body`) render nothing and fail silently. Flag any
|
|
168
|
+
// prop, other than a real component slot, whose value is (or contains) a known
|
|
169
|
+
// component node. Gating on KNOWN_TYPES avoids false positives on data rows
|
|
170
|
+
// that merely carry a `type` field.
|
|
171
|
+
for (const [key, value] of Object.entries(comp)) {
|
|
172
|
+
if (key === 'type' || COMPONENT_SLOT_KEYS.has(key) || actionProps.includes(key))
|
|
173
|
+
continue;
|
|
174
|
+
if (isComponentLike(value) || (Array.isArray(value) && value.some(isComponentLike))) {
|
|
175
|
+
errors.push({
|
|
176
|
+
path: `${path}.${key}`,
|
|
177
|
+
message: `Components under "${key}" are ignored by the renderer; move them into "children"`,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/** Keys that legitimately hold component nodes (everything else uses `children`). */
|
|
183
|
+
const COMPONENT_SLOT_KEYS = new Set(['children', 'fallback']);
|
|
184
|
+
/** Is the value a component node of a recognized type? */
|
|
185
|
+
function isComponentLike(value) {
|
|
186
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value))
|
|
187
|
+
return false;
|
|
188
|
+
const t = value.type;
|
|
189
|
+
return typeof t === 'string' && KNOWN_TYPES.has(t);
|
|
166
190
|
}
|
|
167
191
|
function validateAction(action, path, errors) {
|
|
168
192
|
if (Array.isArray(action)) {
|
|
@@ -180,6 +204,15 @@ function validateAction(action, path, errors) {
|
|
|
180
204
|
const hasAction = typeof act.action === 'string' && act.action.length > 0;
|
|
181
205
|
if (!hasType && !hasAction) {
|
|
182
206
|
errors.push({ path: `${path}.type`, message: 'Action must have a non-empty "type" or "action" string' });
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
// Required-field checks for known actions. showToast without `message` fires an
|
|
210
|
+
// empty heading (a real bug when authors reach for `title` instead).
|
|
211
|
+
const name = (hasAction ? act.action : act.type);
|
|
212
|
+
if (name.toLowerCase() === 'showtoast') {
|
|
213
|
+
if (typeof act.message !== 'string' || act.message.length === 0) {
|
|
214
|
+
errors.push({ path: `${path}.message`, message: 'showToast requires a non-empty "message" string' });
|
|
215
|
+
}
|
|
183
216
|
}
|
|
184
217
|
}
|
|
185
218
|
function validateStringArray(value, path, errors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/core/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,gFAAgF;AAEhF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,SAAS;IACT,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM;IAC/D,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;IAC7C,aAAa;IACb,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO;IAC/D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;IAC1E,OAAO;IACP,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY;IACjF,OAAO;IACP,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;IACxF,QAAQ;IACR,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU;IAC5D,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe;IAC3D,OAAO;IACP,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa;IACpD,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB;IACzE,UAAU,EAAE,QAAQ,EAAE,QAAQ;IAC9B,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB;IACnF,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;IACrF,cAAc;IACd,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS;IAChE,SAAS,EAAE,WAAW,EAAE,UAAU;IAClC,UAAU;IACV,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM;IACxD,QAAQ;IACR,OAAO,EAAE,YAAY,EAAE,kBAAkB;IACzC,QAAQ;IACR,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS;IAChE,SAAS;IACT,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY;IAC9D,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;CACxD,CAAC,CAAA;AAEF,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAa,EACb,OAA6B,EAAE;IAE/B,MAAM,MAAM,GAAsB,EAAE,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAA;IAEnC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAA;QAC1E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,MAAM,GAAG,GAAG,IAA+B,CAAA;IAE3C,iBAAiB;IACjB,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAA;IAClF,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,GAAG,CAAC,OAAkC,CAAA;QACrD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAA;IAC3E,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACvD,CAAC;IAED,mBAAmB;IACnB,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,6DAA6D;IAC7D,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC1B,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,oEAAoE;IACpE,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,CAAA;IAC/D,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,kBAAkB;IAClB,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAA;QACzE,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAA+B,CAAC,EAAE,CAAC;gBAC9E,iBAAiB,CAAC,GAAG,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;QACvF,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAsC,CAAC,EAAE,CAAC;gBACvF,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,EAAE,EAAE,MAAM,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;AACvC,CAAC;AAED,gFAAgF;AAEhF,SAAS,iBAAiB,CACxB,IAAa,EACb,IAAY,EACZ,MAAyB,EACzB,MAAe;IAEf,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAA;QAClE,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,IAA+B,CAAA;IAE5C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC,CAAA;QAC/F,OAAM;IACR,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,4BAA4B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAA;QACjF,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9C,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,WAAW;QACvB,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,UAAU;KACtB,CAAA;IACD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,IAAY,EAAE,MAAyB;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACpD,CAAC;QACD,OAAM;IACR,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAA;QAC9E,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,MAAiC,CAAA;IAC7C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IACnE,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACzE,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/core/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export { Component, ContainerComponent, StatefulComponent } from './core/index.j
|
|
|
8
8
|
export type { ComponentJSON, ComponentProps, ContainerProps, StatefulProps, RxStr } from './core/index.js';
|
|
9
9
|
export { validateWireFormat, isValidWireFormat } from './core/validate.js';
|
|
10
10
|
export type { ValidationError, ValidationResult } from './core/validate.js';
|
|
11
|
+
export { createLogger, log, setLogLevel, getLogLevel } from './core/logger.js';
|
|
12
|
+
export type { LogLevel, Logger } from './core/logger.js';
|
|
11
13
|
export { PrefabApp, PROTOCOL_VERSION } from './app.js';
|
|
12
14
|
export type { PrefabAppOptions, PrefabWireFormat, Theme, LayoutHints, ColorMode } from './app.js';
|
|
13
15
|
export { compileThemeCss } from './core/theme-css.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAClF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC1G,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC1E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// ── Core ─────────────────────────────────────────────────────────────────────
|
|
8
8
|
export { Component, ContainerComponent, StatefulComponent } from './core/index.js';
|
|
9
9
|
export { validateWireFormat, isValidWireFormat } from './core/validate.js';
|
|
10
|
+
export { createLogger, log, setLogLevel, getLogLevel } from './core/logger.js';
|
|
10
11
|
// ── App ──────────────────────────────────────────────────────────────────────
|
|
11
12
|
export { PrefabApp, PROTOCOL_VERSION } from './app.js';
|
|
12
13
|
export { compileThemeCss } from './core/theme-css.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAElF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,12 @@ export type ActionJSON = Record<string, unknown>;
|
|
|
39
39
|
* Dispatch one or more serialized actions.
|
|
40
40
|
*/
|
|
41
41
|
export declare function dispatchActions(actions: ActionJSON | ActionJSON[], ctx: DispatchContext): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Run a promise fire-and-forget, but route any rejection to the logger instead
|
|
44
|
+
* of swallowing it. Use for event handlers (onClick, onMount, intervals) that
|
|
45
|
+
* have no caller to await — a throwing action must not vanish silently.
|
|
46
|
+
*/
|
|
47
|
+
export declare function fireAndForget(promise: Promise<unknown>, label: string): void;
|
|
42
48
|
/** Clear all active intervals (called on destroy). */
|
|
43
49
|
export declare function clearAllIntervals(): void;
|
|
44
50
|
/** Clear all active subscriptions (called on destroy). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/renderer/actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/renderer/actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AA4BxC,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,qFAAqF;IACrF,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IACpE,0DAA0D;IAC1D,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACpD;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACrC,yFAAyF;IACzF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,UAAU,GAAG,UAAU,EAAE,EAClC,GAAG,EAAE,eAAe,GACnB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5E;AAiJD,sDAAsD;AACtD,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAiPD,0DAA0D;AAC1D,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgCpF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA6BnF"}
|
package/dist/renderer/actions.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { evaluateTemplate, isRxExpression } from './rx.js';
|
|
8
8
|
import { toCamelCase } from '../core/component.js';
|
|
9
|
+
import { log } from '../core/logger.js';
|
|
9
10
|
/**
|
|
10
11
|
* Recursively normalise action JSON keys from snake_case to camelCase.
|
|
11
12
|
* Keys starting with '$' are left unchanged.
|
|
@@ -37,6 +38,28 @@ export async function dispatchActions(actions, ctx) {
|
|
|
37
38
|
await dispatchOne(action, ctx);
|
|
38
39
|
}
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Run a promise fire-and-forget, but route any rejection to the logger instead
|
|
43
|
+
* of swallowing it. Use for event handlers (onClick, onMount, intervals) that
|
|
44
|
+
* have no caller to await — a throwing action must not vanish silently.
|
|
45
|
+
*/
|
|
46
|
+
export function fireAndForget(promise, label) {
|
|
47
|
+
void promise.catch((err) => log.error(`${label} failed:`, err));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Report an async action failure. If the author wired an `onError`, run it and
|
|
51
|
+
* log at debug (traceable when debugging); otherwise surface at warn so an
|
|
52
|
+
* unhandled failure is never fully silent.
|
|
53
|
+
*/
|
|
54
|
+
async function reportActionError(label, err, onError, ctx) {
|
|
55
|
+
if (onError != null) {
|
|
56
|
+
log.debug(`${label} failed:`, err);
|
|
57
|
+
await runCallbacks(onError, ctx, { $error: err });
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
log.warn(`${label} failed:`, err);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
40
63
|
async function dispatchOne(raw, ctx) {
|
|
41
64
|
const action = normalizeAction(raw);
|
|
42
65
|
const type = action.action;
|
|
@@ -116,7 +139,7 @@ async function dispatchOne(raw, ctx) {
|
|
|
116
139
|
return;
|
|
117
140
|
}
|
|
118
141
|
default:
|
|
119
|
-
|
|
142
|
+
log.warn(`Unknown action: ${type}`);
|
|
120
143
|
}
|
|
121
144
|
}
|
|
122
145
|
// ── Client Actions ───────────────────────────────────────────────────────────
|
|
@@ -164,11 +187,11 @@ function handleOpenLink(action) {
|
|
|
164
187
|
if (typeof window !== 'undefined') {
|
|
165
188
|
const url = action.url;
|
|
166
189
|
if (!url) {
|
|
167
|
-
|
|
190
|
+
log.warn('openLink: missing url');
|
|
168
191
|
return;
|
|
169
192
|
}
|
|
170
193
|
if (!isSafeUrl(url)) {
|
|
171
|
-
|
|
194
|
+
log.warn(`Blocked unsafe URL scheme: ${url}`);
|
|
172
195
|
return;
|
|
173
196
|
}
|
|
174
197
|
window.open(url, action.target ?? '_blank');
|
|
@@ -184,10 +207,10 @@ function handleSetInterval(action, ctx) {
|
|
|
184
207
|
if (typeof globalThis.setInterval !== 'function')
|
|
185
208
|
return;
|
|
186
209
|
if (activeIntervals.size >= MAX_INTERVALS) {
|
|
187
|
-
|
|
210
|
+
log.warn('Max intervals reached, ignoring new setInterval');
|
|
188
211
|
return;
|
|
189
212
|
}
|
|
190
|
-
const id = globalThis.setInterval(() =>
|
|
213
|
+
const id = globalThis.setInterval(() => fireAndForget(dispatchActions(onTick, ctx), 'interval action'), ms);
|
|
191
214
|
activeIntervals.add(id);
|
|
192
215
|
}
|
|
193
216
|
/** Clear all active intervals (called on destroy). */
|
|
@@ -199,7 +222,7 @@ export function clearAllIntervals() {
|
|
|
199
222
|
// ── MCP Actions ──────────────────────────────────────────────────────────────
|
|
200
223
|
async function handleToolCall(action, ctx) {
|
|
201
224
|
if (!ctx.transport) {
|
|
202
|
-
|
|
225
|
+
log.warn('No MCP transport configured for toolCall');
|
|
203
226
|
return;
|
|
204
227
|
}
|
|
205
228
|
const tool = action.tool;
|
|
@@ -222,12 +245,12 @@ async function handleToolCall(action, ctx) {
|
|
|
222
245
|
await runCallbacks(action.onSuccess, ctx, { $result: result });
|
|
223
246
|
}
|
|
224
247
|
catch (err) {
|
|
225
|
-
await
|
|
248
|
+
await reportActionError('toolCall', err, action.onError, ctx);
|
|
226
249
|
}
|
|
227
250
|
}
|
|
228
251
|
async function handleSendMessage(action, ctx) {
|
|
229
252
|
if (!ctx.transport) {
|
|
230
|
-
|
|
253
|
+
log.warn('No MCP transport configured for sendMessage');
|
|
231
254
|
return;
|
|
232
255
|
}
|
|
233
256
|
await ctx.transport.sendMessage(resolveStr(action.message, ctx));
|
|
@@ -242,7 +265,7 @@ function handleUpdateContext(action, ctx) {
|
|
|
242
265
|
async function handleFetch(action, ctx) {
|
|
243
266
|
const url = resolveStr(action.url, ctx);
|
|
244
267
|
if (!isSafeUrl(url)) {
|
|
245
|
-
|
|
268
|
+
log.warn(`Blocked unsafe URL in fetch: ${url}`);
|
|
246
269
|
return;
|
|
247
270
|
}
|
|
248
271
|
const method = action.method ?? 'GET';
|
|
@@ -271,7 +294,7 @@ async function handleFetch(action, ctx) {
|
|
|
271
294
|
await runCallbacks(action.onSuccess, ctx, { $result: result });
|
|
272
295
|
}
|
|
273
296
|
catch (err) {
|
|
274
|
-
await
|
|
297
|
+
await reportActionError('fetch', err, action.onError, ctx);
|
|
275
298
|
}
|
|
276
299
|
}
|
|
277
300
|
function handleOpenFilePicker(action, ctx) {
|
|
@@ -298,7 +321,7 @@ async function handleCallHandler(action, ctx) {
|
|
|
298
321
|
const args = resolveArgs(action.arguments, ctx);
|
|
299
322
|
// callHandler delegates to the transport like toolCall
|
|
300
323
|
if (!ctx.transport) {
|
|
301
|
-
|
|
324
|
+
log.warn(`No transport configured for callHandler: ${handler}`);
|
|
302
325
|
return;
|
|
303
326
|
}
|
|
304
327
|
try {
|
|
@@ -319,7 +342,7 @@ async function handleCallHandler(action, ctx) {
|
|
|
319
342
|
await runCallbacks(action.onSuccess, ctx, { $result: result });
|
|
320
343
|
}
|
|
321
344
|
catch (err) {
|
|
322
|
-
await
|
|
345
|
+
await reportActionError('callHandler', err, action.onError, ctx);
|
|
323
346
|
}
|
|
324
347
|
}
|
|
325
348
|
function handleRequestDisplayMode(action, _ctx) {
|
|
@@ -338,7 +361,7 @@ function handleSubscribe(action, ctx) {
|
|
|
338
361
|
const uri = action.uri;
|
|
339
362
|
const stateKey = action.stateKey;
|
|
340
363
|
if (!uri || !stateKey) {
|
|
341
|
-
|
|
364
|
+
log.warn('subscribe: missing uri or stateKey');
|
|
342
365
|
return;
|
|
343
366
|
}
|
|
344
367
|
// Prevent duplicate subscriptions to the same URI
|
|
@@ -346,7 +369,7 @@ function handleSubscribe(action, ctx) {
|
|
|
346
369
|
return;
|
|
347
370
|
}
|
|
348
371
|
if (activeSubscriptions.size >= MAX_SUBSCRIPTIONS) {
|
|
349
|
-
|
|
372
|
+
log.warn('Max subscriptions reached, ignoring new subscribe');
|
|
350
373
|
return;
|
|
351
374
|
}
|
|
352
375
|
const onDataCallback = (data) => {
|
|
@@ -374,11 +397,11 @@ function handleSubscribe(action, ctx) {
|
|
|
374
397
|
const fallbackTool = action.fallbackTool;
|
|
375
398
|
const fallbackInterval = action.fallbackInterval ?? DEFAULT_FALLBACK_INTERVAL;
|
|
376
399
|
if (!fallbackTool) {
|
|
377
|
-
|
|
400
|
+
log.warn('subscribe: host lacks subscriptions and no fallbackTool specified');
|
|
378
401
|
return;
|
|
379
402
|
}
|
|
380
403
|
if (!ctx.transport) {
|
|
381
|
-
|
|
404
|
+
log.warn('No MCP transport configured for subscribe fallback');
|
|
382
405
|
return;
|
|
383
406
|
}
|
|
384
407
|
const rawFallbackArgs = action.fallbackArgs ?? {};
|
|
@@ -392,7 +415,7 @@ function handleSubscribe(action, ctx) {
|
|
|
392
415
|
onDataCallback(result);
|
|
393
416
|
}
|
|
394
417
|
catch (err) {
|
|
395
|
-
void
|
|
418
|
+
void reportActionError('subscribe', err, action.onError, ctx);
|
|
396
419
|
}
|
|
397
420
|
})();
|
|
398
421
|
}, ms);
|
|
@@ -401,7 +424,7 @@ function handleSubscribe(action, ctx) {
|
|
|
401
424
|
function handleUnsubscribe(action) {
|
|
402
425
|
const uri = action.uri;
|
|
403
426
|
if (!uri) {
|
|
404
|
-
|
|
427
|
+
log.warn('unsubscribe: missing uri');
|
|
405
428
|
return;
|
|
406
429
|
}
|
|
407
430
|
const cleanup = activeSubscriptions.get(uri);
|
|
@@ -417,7 +440,7 @@ export function clearAllSubscriptions() {
|
|
|
417
440
|
cleanup();
|
|
418
441
|
}
|
|
419
442
|
catch (err) {
|
|
420
|
-
|
|
443
|
+
log.warn(`Error cleaning up subscription '${uri}':`, err);
|
|
421
444
|
}
|
|
422
445
|
}
|
|
423
446
|
activeSubscriptions.clear();
|
|
@@ -513,7 +536,7 @@ function applyPrefabUpdate(result, ctx) {
|
|
|
513
536
|
const update = updateData.update;
|
|
514
537
|
ctx.store.merge(update.state);
|
|
515
538
|
if (update.actions != null) {
|
|
516
|
-
|
|
539
|
+
fireAndForget(dispatchActions(update.actions, ctx), 'update action');
|
|
517
540
|
}
|
|
518
541
|
return true;
|
|
519
542
|
}
|