foldkit 0.157.0 → 0.158.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/devTools/host.d.ts +2 -2
  2. package/dist/devTools/host.d.ts.map +1 -1
  3. package/dist/devTools/host.js +1 -1
  4. package/dist/experimental/machine/machine.d.ts +278 -84
  5. package/dist/experimental/machine/machine.d.ts.map +1 -1
  6. package/dist/experimental/machine/machine.js +362 -212
  7. package/dist/runtime/browserListeners.d.ts +7 -1
  8. package/dist/runtime/browserListeners.d.ts.map +1 -1
  9. package/dist/runtime/browserScheduler.d.ts +3 -0
  10. package/dist/runtime/browserScheduler.d.ts.map +1 -0
  11. package/dist/runtime/browserScheduler.js +22 -0
  12. package/dist/runtime/crashUI.d.ts +36 -5
  13. package/dist/runtime/crashUI.d.ts.map +1 -1
  14. package/dist/runtime/crashUI.js +55 -2
  15. package/dist/runtime/devToolsConfig.d.ts +85 -0
  16. package/dist/runtime/devToolsConfig.d.ts.map +1 -0
  17. package/dist/runtime/devToolsConfig.js +49 -0
  18. package/dist/runtime/devToolsIntegration.d.ts +56 -0
  19. package/dist/runtime/devToolsIntegration.d.ts.map +1 -0
  20. package/dist/runtime/devToolsIntegration.js +186 -0
  21. package/dist/runtime/dispatch.d.ts +10 -0
  22. package/dist/runtime/dispatch.d.ts.map +1 -0
  23. package/dist/runtime/dispatch.js +4 -0
  24. package/dist/runtime/documentMetadata.d.ts +3 -0
  25. package/dist/runtime/documentMetadata.d.ts.map +1 -0
  26. package/dist/runtime/documentMetadata.js +148 -0
  27. package/dist/runtime/duplicateIdScanner.d.ts +16 -0
  28. package/dist/runtime/duplicateIdScanner.d.ts.map +1 -0
  29. package/dist/runtime/duplicateIdScanner.js +70 -0
  30. package/dist/runtime/hmrModelBridge.d.ts +4 -0
  31. package/dist/runtime/hmrModelBridge.d.ts.map +1 -0
  32. package/dist/runtime/hmrModelBridge.js +43 -0
  33. package/dist/runtime/hostConnector.d.ts +61 -0
  34. package/dist/runtime/hostConnector.d.ts.map +1 -0
  35. package/dist/runtime/hostConnector.js +141 -0
  36. package/dist/runtime/hydrationHandoff.d.ts +44 -0
  37. package/dist/runtime/hydrationHandoff.d.ts.map +1 -0
  38. package/dist/runtime/hydrationHandoff.js +395 -0
  39. package/dist/runtime/index.d.ts +16 -1
  40. package/dist/runtime/index.d.ts.map +1 -1
  41. package/dist/runtime/index.js +5 -1
  42. package/dist/runtime/makeApplication.d.ts +71 -0
  43. package/dist/runtime/makeApplication.d.ts.map +1 -0
  44. package/dist/runtime/makeApplication.js +98 -0
  45. package/dist/runtime/makeElement.d.ts +69 -0
  46. package/dist/runtime/makeElement.d.ts.map +1 -0
  47. package/dist/runtime/makeElement.js +81 -0
  48. package/dist/runtime/managedResourceFibers.d.ts +18 -0
  49. package/dist/runtime/managedResourceFibers.d.ts.map +1 -0
  50. package/dist/runtime/managedResourceFibers.js +47 -0
  51. package/dist/runtime/messageQueue.d.ts +27 -0
  52. package/dist/runtime/messageQueue.d.ts.map +1 -0
  53. package/dist/runtime/messageQueue.js +133 -0
  54. package/dist/runtime/public.d.ts +2 -3
  55. package/dist/runtime/public.d.ts.map +1 -1
  56. package/dist/runtime/public.js +1 -1
  57. package/dist/runtime/renderer.d.ts +69 -0
  58. package/dist/runtime/renderer.d.ts.map +1 -0
  59. package/dist/runtime/renderer.js +512 -0
  60. package/dist/runtime/resourceProvider.d.ts +33 -0
  61. package/dist/runtime/resourceProvider.d.ts.map +1 -0
  62. package/dist/runtime/resourceProvider.js +98 -0
  63. package/dist/runtime/runtime.d.ts +133 -412
  64. package/dist/runtime/runtime.d.ts.map +1 -1
  65. package/dist/runtime/runtime.js +118 -2184
  66. package/dist/runtime/runtimeStatus.d.ts +15 -0
  67. package/dist/runtime/runtimeStatus.d.ts.map +1 -0
  68. package/dist/runtime/runtimeStatus.js +6 -0
  69. package/dist/runtime/slowPhase.d.ts +82 -0
  70. package/dist/runtime/slowPhase.d.ts.map +1 -0
  71. package/dist/runtime/slowPhase.js +83 -0
  72. package/dist/runtime/start.d.ts +96 -0
  73. package/dist/runtime/start.d.ts.map +1 -0
  74. package/dist/runtime/start.js +99 -0
  75. package/dist/runtime/subscriptionFibers.d.ts +21 -0
  76. package/dist/runtime/subscriptionFibers.d.ts.map +1 -0
  77. package/dist/runtime/subscriptionFibers.js +47 -0
  78. package/dist/runtime/visibility.d.ts +8 -0
  79. package/dist/runtime/visibility.d.ts.map +1 -0
  80. package/dist/runtime/visibility.js +6 -0
  81. package/dist/test/scene.js +1 -1
  82. package/package.json +1 -1
@@ -1,274 +1,147 @@
1
- import { Context, Effect, Exit, Layer, Option, Schema, Scope } from 'effect';
2
- import { type DevToolsStore } from '../devTools/store.js';
3
- import { Document, Html, type HtmlBuilder } from '../html/index.js';
1
+ import { Effect, Fiber, Layer, Option, Schema } from 'effect';
2
+ import { Document, type HtmlBuilder } from '../html/index.js';
4
3
  import type { ManagedResources } from '../managedResource/index.js';
5
- import { UrlRequest } from '../navigation/urlRequest.js';
6
- import { type Inbound, type Outbound, type Ports } from '../port/index.js';
4
+ import type { Ports } from '../port/index.js';
7
5
  import type { Subscriptions } from '../subscription/subscription.js';
8
6
  import type { Return as UpdateReturn } from '../update/index.js';
9
7
  import { Url } from '../url/index.js';
8
+ import { type RoutingConfig } from './browserListeners.js';
9
+ import type { CrashConfig } from './crashUI.js';
10
+ import type { DevToolsConfig } from './devToolsConfig.js';
11
+ import { type HostConnector } from './hostConnector.js';
12
+ import { type BootMode, type HydrationConfig } from './hydrationHandoff.js';
13
+ import { type SlowConfig } from './slowPhase.js';
10
14
  import { type ViewTransitionConfig } from './viewTransition.js';
11
- /** Position of the DevTools badge and panel on screen. */
12
- export type DevToolsPosition = 'BottomRight' | 'BottomLeft' | 'TopRight' | 'TopLeft';
13
- /** Controls when a feature is shown. */
14
- export type Visibility = 'Development' | 'Always';
15
- /** Controls DevTools interaction mode.
16
- *
17
- * - `'Inspect'`: Messages stream in and clicking a row shows its state snapshot without pausing the rendered view.
18
- * - `'TimeTravel'`: Clicking a row installs a paused historical view while the live application continues. Resume to patch the latest live view.
19
- */
20
- export type DevToolsMode = 'Inspect' | 'TimeTravel';
21
- /** Mode value for the DevTools panel. Either a single mode used in every
22
- * environment, or an object selecting different modes for development and
23
- * production. Use the object form to keep `'TimeTravel'` for local debugging
24
- * while shipping the safer `'Inspect'` mode to users. `'TimeTravel'` in
25
- * production pauses the user's rendered view when a history row is clicked. */
26
- export type DevToolsModeConfig = DevToolsMode | Readonly<{
27
- development: DevToolsMode;
28
- production: DevToolsMode;
29
- }>;
30
- /**
31
- * Factory that mounts the in-browser DevTools overlay against a recording
32
- * store. The runtime keeps the store and the WebSocket bridge (so external
33
- * tooling like the DevTools MCP server works without an overlay); the visual
34
- * overlay is injected so it can live in `@foldkit/devtools` and pull in
35
- * `@foldkit/ui` without coupling the core runtime to either.
36
- *
37
- * Foldkit's Vite plugin supplies the installed overlay automatically. It is
38
- * included in production when `@foldkit/devtools` is a regular dependency.
39
- */
40
- export type DevToolsOverlay = (store: DevToolsStore, position: DevToolsPosition, mode: DevToolsMode, maybeBanner: Option.Option<string>) => Effect.Effect<void, never, Scope.Scope>;
41
- /**
42
- * DevTools configuration.
43
- *
44
- * Pass `false` to disable DevTools entirely.
45
- *
46
- * - `show`: `'Development'` (default) enables in dev mode only, `'Always'` enables in all environments including production.
47
- * - `position`: Where the badge and panel appear. Defaults to `'BottomRight'`.
48
- * - `mode`: `'TimeTravel'` (default) enables full time-travel debugging by installing a paused historical view while the live application continues. `'Inspect'` allows browsing state snapshots without replacing the live view. Pass `{ development, production }` to use different modes per environment. Useful when DevTools is shown in production (`show: 'Always'`) and you want `'TimeTravel'` only in local development.
49
- * - `banner`: Optional text shown as a banner at the top of the panel.
50
- * - `excludeFromHistory`: Message `_tag` values whose dispatches should not be recorded in DevTools history. The Messages still drive `update` and the runtime as usual; they just don't appear in the history panel and don't pay the per-Message diff cost. Use for high-frequency Messages (animation frames, pointer moves, scroll events) that would flood history without adding insight.
51
- * - `maxEntries`: Maximum number of recorded Messages retained in history before the oldest is evicted. Defaults to 100. Clamped to the range 20-500: smaller values keep the panel snappy under high message rates, larger values give you more scroll-back. Each retained entry stores a full Model snapshot, so memory cost scales linearly with both `maxEntries` and your Model size.
52
- * - `keyframeInterval`: Number of recorded Messages between full Model snapshots. Defaults to 31. Time-travel to an index replays `update` forward from the nearest earlier keyframe, so this is a memory/time tradeoff: smaller values store more snapshots (more memory) but make each jump cheaper, down to `1` where every jump is a constant-time snapshot lookup with no replay. Reach for a denser interval when the app has a heavy `update` and time-travel jumps feel sluggish. Clamped to a minimum of 1. Forced to 1 automatically when `excludeFromHistory` is active, since excluded Messages are never replayed.
53
- */
54
- export type DevToolsConfig = false | Readonly<{
55
- show?: Visibility;
56
- position?: DevToolsPosition;
57
- mode?: DevToolsModeConfig;
58
- banner?: string;
59
- excludeFromHistory?: ReadonlyArray<string>;
60
- maxEntries?: number;
61
- keyframeInterval?: number;
62
- /**
63
- * The application's `Message` Schema. When provided and the running app
64
- * is connected to the Foldkit DevTools MCP server, AI agents can dispatch
65
- * Messages into the runtime. The Schema decodes inbound dispatch payloads
66
- * at the bridge boundary and returns a clean error on mismatch.
67
- *
68
- * Without this field, `RequestDispatchMessage` is rejected with an
69
- * informative error.
70
- */
71
- Message?: Schema.Codec<any, any, unknown, unknown>;
72
- }>;
73
- /** Registers the overlay supplied by the Foldkit Vite plugin. */
74
- export declare const __setDevToolsOverlay: (overlay: DevToolsOverlay | undefined) => void;
75
- /** Context provided when view construction exceeds its configured time budget. */
76
- export type SlowViewContext<Model, Message> = Readonly<{
77
- _tag: 'View';
78
- model: Model;
79
- message: Option.Option<Message>;
80
- durationMs: number;
81
- thresholdMs: number;
82
- }>;
83
- /** Context provided when update exceeds its configured time budget. */
84
- export type SlowUpdateContext<Model, Message> = Readonly<{
85
- _tag: 'Update';
86
- previousModel: Model;
87
- nextModel: Model;
88
- message: Message;
89
- durationMs: number;
90
- thresholdMs: number;
91
- }>;
92
- /** Context provided when DOM patching exceeds its configured time budget. */
93
- export type SlowPatchContext<Model, Message> = Readonly<{
94
- _tag: 'Patch';
95
- model: Model;
96
- message: Option.Option<Message>;
97
- durationMs: number;
98
- thresholdMs: number;
99
- }>;
100
- /** Context provided when subscription dependency extraction exceeds its configured time budget. */
101
- export type SlowSubscriptionDependenciesContext<Model> = Readonly<{
102
- _tag: 'SubscriptionDependencies';
103
- subscriptionKey: string;
104
- model: Model;
105
- durationMs: number;
106
- thresholdMs: number;
107
- }>;
108
- /** Tagged union of every slow-phase context passed to `slow.onSlow`. */
109
- export type SlowContext<Model, Message> = SlowViewContext<Model, Message> | SlowUpdateContext<Model, Message> | SlowPatchContext<Model, Message> | SlowSubscriptionDependenciesContext<Model>;
110
- /** Phase names measured by the slow warning runtime option. */
111
- export declare const SlowPhase: Schema.Literals<readonly ["Update", "View", "Patch", "SubscriptionDependencies"]>;
112
- export type SlowPhase = typeof SlowPhase.Type;
113
- /** Budget overrides for slow warning phases. Omitted fields use Foldkit defaults. */
114
- export type SlowThresholdOverrides = Readonly<{
115
- Update?: number;
116
- View?: number;
117
- Patch?: number;
118
- SubscriptionDependencies?: number;
119
- }>;
120
- type ResolvedSlowPhaseConfig<Context> = Readonly<{
121
- thresholdMs: number;
122
- onSlow: (context: Context) => void;
123
- }>;
124
- type ResolvedSlowConfig<Model, Message> = Readonly<{
125
- view: Option.Option<ResolvedSlowPhaseConfig<SlowViewContext<Model, Message>>>;
126
- update: Option.Option<ResolvedSlowPhaseConfig<SlowUpdateContext<Model, Message>>>;
127
- patch: Option.Option<ResolvedSlowPhaseConfig<SlowPatchContext<Model, Message>>>;
128
- subscriptionDependencies: Option.Option<ResolvedSlowPhaseConfig<SlowSubscriptionDependenciesContext<Model>>>;
129
- }>;
130
- /**
131
- * Slow-phase warning configuration.
132
- *
133
- * By default, all phases are enabled in development with Foldkit's default
134
- * thresholds. Pass `false` to disable warnings entirely. Pass an object to
135
- * refine those defaults.
136
- *
137
- * - `show`: `'Development'` (default) enables warnings only when Vite HMR is active. `'Always'` enables them in every environment.
138
- * - `measuredPhases`: Phases to measure. Defaults to every slow warning phase.
139
- * - `thresholdOverrides`: Per-phase budget overrides. Omitted fields keep defaults; overrides for unmeasured phases are ignored.
140
- * - `onSlow`: Callback for every measured phase that exceeds its budget. Replaces Foldkit's default `console.warn`; Foldkit will not also warn for tags your callback ignores.
141
- */
142
- export type SlowConfig<Model, Message> = false | Readonly<{
143
- show?: Visibility;
144
- measuredPhases?: ReadonlyArray<SlowPhase>;
145
- thresholdOverrides?: SlowThresholdOverrides;
146
- onSlow?: (context: SlowContext<Model, Message>) => void;
147
- }>;
148
- export declare const __resolveSlowConfig: <Model, Message>(slow: SlowConfig<Model, Message> | undefined, isSlowVisible: (show: Visibility) => boolean) => Option.Option<ResolvedSlowConfig<Model, Message>>;
149
- export declare const defaultSlowCallback: (context: SlowContext<unknown, unknown>) => void;
150
- declare const Dispatch_base: Context.ServiceClass<Dispatch, "@foldkit/Dispatch", {
151
- readonly dispatchAsync: (message: unknown) => Effect.Effect<void>;
152
- readonly dispatchSync: (message: unknown) => void;
153
- }>;
154
- /** Effect service tag that provides message dispatching to the view layer. */
155
- export declare class Dispatch extends Dispatch_base {
156
- }
157
- export type { Command } from '../command/index.js';
158
- /** Configuration for URL routing with handlers for URL requests and URL changes. */
159
- export type RoutingConfig<Message> = Readonly<{
160
- onUrlRequest: (request: UrlRequest) => Message;
161
- onUrlChange: (url: Url) => Message;
162
- }>;
163
- /** Context provided to crash.view and crash.report when the runtime encounters
164
- * an unrecoverable error. `message` is the Message being processed when the
165
- * crash occurred, present as an `Option` because a crash during the initial
166
- * render has no triggering Message. */
167
- export type CrashContext<Model, Message> = Readonly<{
168
- error: Error;
169
- model: Model;
170
- message: Option.Option<Message>;
171
- }>;
172
- /** Configuration for crash handling, with custom crash UI and/or crash
173
- * reporting. The crash view renders after the dispatch loop has stopped, so
174
- * its builder's Message is `never` and no handler is expressible. Reload or
175
- * navigate with a raw DOM attribute instead. */
176
- export type CrashConfig<Model, Message> = Readonly<{
177
- view?: (context: CrashContext<Model, Message>, h: HtmlBuilder<never>) => Document;
178
- report?: (context: CrashContext<Model, Message>) => void;
179
- }>;
180
- type BaseApplicationConfig<Model, Message, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = Readonly<{
15
+ /** Full runtime configuration including Model Schema, Flags, init, update, view, and optional routing/stream config. */
16
+ export type RuntimeConfig<Model, Message, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined, Kind extends 'Application' | 'Element' = 'Application' | 'Element'> = Readonly<{
17
+ kind: Kind;
18
+ ports: P;
181
19
  Model: Schema.Codec<Model, any, unknown, unknown>;
20
+ Flags: Schema.Codec<Flags, any, unknown, unknown>;
21
+ configuredFlags: Option.Option<Effect.Effect<Flags, never, Resources>>;
22
+ isFlagsRequired: boolean;
23
+ init: (flags: Flags, url?: Url) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
182
24
  update: (model: Model, message: Message) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
183
25
  view: (model: Model, h: HtmlBuilder<Message>) => Document;
26
+ /**
27
+ * Whether the runtime owns document-level state. When `true`, each render
28
+ * applies the view's `title`, `canonical`, and `og:url` to the document
29
+ * `<head>`. When `false`, the runtime is scoped to its container and never
30
+ * touches the `<head>`, so an app can be embedded at a node without
31
+ * clobbering the host page's metadata. `makeApplication` sets this to `true`;
32
+ * `makeElement` sets it to `false`.
33
+ */
34
+ manageDocument: boolean;
184
35
  subscriptions?: Subscriptions<Model, Message, Resources | ManagedResourceServices>;
185
- container: HTMLElement | null;
186
- ports?: P;
36
+ container: HTMLElement;
37
+ /**
38
+ * Present when `makeApplication` found a server-rendered root stamped with
39
+ * `data-foldkit-app`. The first render then adopts that DOM in place
40
+ * instead of replacing it, and when the config declares Flags, `init` is
41
+ * fed the Schema-decoded Flags payload the server embedded, so both sides
42
+ * compute the same Model. Missing or undecodable handoff data is fatal.
43
+ * An HMR-restored Model gets a fresh replace boot against the stamped root
44
+ * because the restored code may no longer match the served DOM.
45
+ */
46
+ hydration?: HydrationConfig;
47
+ routing?: RoutingConfig<Message>;
187
48
  crash?: CrashConfig<Model, Message>;
188
49
  slow?: SlowConfig<Model, Message>;
50
+ /**
51
+ * Wraps qualifying renders in `document.startViewTransition` so the browser
52
+ * animates between the old and new DOM states. Return `false` for a plain
53
+ * render, `true` to transition, or `{ types }` to tag the transition for
54
+ * `:active-view-transition-type(...)` CSS scoping.
55
+ *
56
+ * The predicate runs after `update` and before the render it is deciding
57
+ * about, and receives both states: `context.previousModel` is the Model
58
+ * behind the DOM on screen, `context.model` is the one the render will
59
+ * paint. Comparing the two is how a predicate derives direction without the
60
+ * application keeping route history in its Model.
61
+ *
62
+ * Renders fall through to the plain path when the browser lacks the API,
63
+ * when `prefers-reduced-motion: reduce` is set, and during DevTools replay,
64
+ * crash, and initial renders.
65
+ *
66
+ * Defaults to `undefined`: no render is wrapped in a transition, and the
67
+ * runtime resolves nothing about the browser's support for them.
68
+ */
189
69
  viewTransition?: ViewTransitionConfig<Model, Message>;
70
+ /**
71
+ * Deep-freezes the Model after `init` and after every `update`, so accidental
72
+ * mutations (e.g. `model.items.push(...)`) throw a `TypeError` at the exact
73
+ * write site with a stack trace, rather than silently corrupting state or
74
+ * breaking reference-equality change detection.
75
+ *
76
+ * Defaults to `true`. Activates only when Vite HMR is available, so production
77
+ * builds pay nothing. Pass `false` to disable.
78
+ *
79
+ * Scope: only the Model is frozen. Messages are short-lived and are not
80
+ * frozen.
81
+ */
190
82
  freezeModel?: boolean;
83
+ /**
84
+ * Restores the window scroll position across Vite HMR reloads. Every edit
85
+ * triggers a full page reload, which resets scroll to the top; this captures
86
+ * `window.scrollX`/`scrollY` just before the reload and reapplies it once the
87
+ * restored view has rendered, so editing a page you've scrolled deep into
88
+ * doesn't bounce you back to the top on every save.
89
+ *
90
+ * Defaults to `true`. Activates only when Vite HMR is available and the
91
+ * runtime owns the document, so production builds and embedded `makeElement`
92
+ * apps (which do not own the page's scroll) pay nothing. Pass `false` to
93
+ * disable, for an app that drives its own scroll restoration.
94
+ *
95
+ * Scope: only the window scroll offset is preserved. Scroll positions of
96
+ * nested `overflow` containers are not.
97
+ */
191
98
  preserveScroll?: boolean;
99
+ /**
100
+ * An Effect Layer providing services shared by the fresh-boot Flags Effect
101
+ * and every Command and Subscription. The runtime builds the Layer once,
102
+ * the first time it is needed: at startup when a fresh boot supplies Flags
103
+ * (they resolve before `init`) or Subscriptions (their pipelines run for the
104
+ * application's lifetime), otherwise when the first Command runs. The
105
+ * built services are reused for the application's lifetime and released
106
+ * at runtime teardown.
107
+ *
108
+ * Put a service here when it is a genuine app-wide singleton: when
109
+ * construction is expensive relative to how often Commands need it (an
110
+ * RPC client rebuilt on every invocation), or when every Command must
111
+ * share one instance (an AudioContext whose oscillators feed one audio
112
+ * graph, an RTCPeerConnection). A Layer that fails to build crashes the
113
+ * app with the crash view: the runtime provides this Layer to every
114
+ * Command, so a service that cannot be constructed leaves no Command
115
+ * safe to run. The one exception is a Layer that fails while Flags are
116
+ * resolving and the Flags Effect needs it: that lands before the first
117
+ * render, where there is no Model to render a crash view against, so
118
+ * startup fails instead. Neither cause is swallowed, so a Flags Effect
119
+ * that fails for its own unrelated reason stays visible alongside the
120
+ * build error.
121
+ *
122
+ * Provide a service inside the Command's Effect instead when
123
+ * construction is cheap and stateless (an HTTP client via `foldkit/http`
124
+ * is a thin `fetch` wrapper), when different Commands want different
125
+ * implementations of the same tag (`KeyValueStore` over localStorage in
126
+ * one Command and sessionStorage in another), or when a service that can
127
+ * fail to construct should only take down the Commands that use it. An
128
+ * HTTP client can graduate here once many Commands share one configured
129
+ * client, but it starts per-Command.
130
+ */
192
131
  resources?: Layer.Layer<Resources>;
132
+ /**
133
+ * Model-driven resources with acquire/release lifecycle. Unlike `resources`
134
+ * which persist for the application's lifetime, Managed Resources are
135
+ * acquired and released based on the current model state. Create with
136
+ * `ManagedResource.make`, compose child Submodels with `ManagedResource.lift`,
137
+ * and combine records with `ManagedResource.aggregate`.
138
+ */
193
139
  managedResources?: ManagedResources<Model, Message, ManagedResourceServices>;
194
140
  devTools?: DevToolsConfig;
195
141
  }>;
196
- type FlagsSchemaConfig<Flags> = Readonly<{
142
+ export type FlagsSchemaConfig<Flags> = Readonly<{
197
143
  Flags: Schema.Codec<Flags, any, never, never>;
198
144
  }>;
199
- /** Configuration for `makeApplication` with Flags and URL routing. */
200
- export type RoutingApplicationConfigWithFlags<Model, Message, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseApplicationConfig<Model, Message, Resources, ManagedResourceServices, P> & FlagsSchemaConfig<Flags> & Readonly<{
201
- routing: RoutingConfig<Message>;
202
- init: (flags: Flags, url: Url) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
203
- }>;
204
- /** Configuration for `makeApplication` with URL routing but no Flags. */
205
- export type RoutingApplicationConfig<Model, Message, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseApplicationConfig<Model, Message, Resources, ManagedResourceServices, P> & Readonly<{
206
- routing: RoutingConfig<Message>;
207
- init: (url: Url) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
208
- }>;
209
- /** Configuration for `makeApplication` with Flags but no URL routing. */
210
- export type ApplicationConfigWithFlags<Model, Message, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseApplicationConfig<Model, Message, Resources, ManagedResourceServices, P> & FlagsSchemaConfig<Flags> & Readonly<{
211
- init: (flags: Flags) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
212
- }>;
213
- /** Configuration for `makeApplication` without Flags or URL routing. */
214
- export type ApplicationConfig<Model, Message, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseApplicationConfig<Model, Message, Resources, ManagedResourceServices, P> & Readonly<{
215
- init: () => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
216
- }>;
217
- /** Configuration for crash handling in a `makeElement` app. The crash view
218
- * returns `Html`, not a `Document`, because a scoped app never owns the
219
- * document `<head>`. */
220
- export type ElementCrashConfig<Model, Message> = Readonly<{
221
- view?: (context: CrashContext<Model, Message>, h: HtmlBuilder<never>) => Html;
222
- report?: (context: CrashContext<Model, Message>) => void;
223
- }>;
224
- type BaseElementConfig<Model, Message, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = Readonly<{
225
- Model: Schema.Codec<Model, any, unknown, unknown>;
226
- update: (model: Model, message: Message) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
227
- view: (model: Model, h: HtmlBuilder<Message>) => Html;
228
- subscriptions?: Subscriptions<Model, Message, Resources | ManagedResourceServices>;
229
- container: HTMLElement | null;
230
- ports?: P;
231
- crash?: ElementCrashConfig<Model, Message>;
232
- slow?: SlowConfig<Model, Message>;
233
- viewTransition?: ViewTransitionConfig<Model, Message>;
234
- freezeModel?: boolean;
235
- resources?: Layer.Layer<Resources>;
236
- managedResources?: ManagedResources<Model, Message, ManagedResourceServices>;
237
- devTools?: DevToolsConfig;
238
- }>;
239
- /** Configuration for `makeElement` with Flags. */
240
- export type ElementConfigWithFlags<Model, Message, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseElementConfig<Model, Message, Resources, ManagedResourceServices, P> & FlagsSchemaConfig<Flags> & Readonly<{
241
- /**
242
- * Resolves the Flags once at startup, before `init` runs. Services this
243
- * Effect requires are provided from the `resources` Layer, which the
244
- * runtime builds a single time and shares with every Command and
245
- * Subscription. The error channel is `never`, so this Effect handles its
246
- * own failures with `Effect.catch`, the same contract a Command's Effect
247
- * has.
248
- */
249
- flags: Effect.Effect<Flags, never, NoInfer<Resources>>;
250
- init: (flags: Flags) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
251
- }>;
252
- /** Configuration for `makeElement` without Flags. */
253
- export type ElementConfig<Model, Message, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined> = BaseElementConfig<Model, Message, Resources, ManagedResourceServices, P> & Readonly<{
254
- init: () => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
255
- }>;
256
- /** The `init` function type for a `makeApplication` app without URL routing. */
257
- export type ApplicationInit<Model, Message, Flags = void, Resources = never, ManagedResourceServices = never> = Flags extends void ? () => UpdateReturn<Model, Message, Resources | ManagedResourceServices> : (flags: Flags) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
258
- /** The `init` function type for a `makeApplication` app with URL routing, receives the current URL and optional Flags. */
259
- export type RoutingApplicationInit<Model, Message, Flags = void, Resources = never, ManagedResourceServices = never> = Flags extends void ? (url: Url) => UpdateReturn<Model, Message, Resources | ManagedResourceServices> : (flags: Flags, url: Url) => UpdateReturn<Model, Message, Resources | ManagedResourceServices>;
260
- /** The `init` function type for a `makeElement` app. A scoped app never owns
261
- * the URL, so its `init` has the same shape as a non-routing
262
- * `ApplicationInit`: argless, or receiving Flags when `Flags` is set. */
263
- export type ElementInit<Model, Message, Flags = void, Resources = never, ManagedResourceServices = never> = ApplicationInit<Model, Message, Flags, Resources, ManagedResourceServices>;
264
- type BootMode = 'Fresh' | 'Hydrate';
265
- /** Client-only startup input for an application that declares Flags. Pass it
266
- * to `run` or `embed`; `hydrate` instead decodes the exact Flags value
267
- * embedded by the server render.
268
- */
269
- export type RunOptions<Flags, Resources = never> = Readonly<{
270
- flags: Effect.Effect<Flags, never, Resources>;
271
- }>;
272
145
  /** A configured Foldkit runtime returned by `makeApplication` or `makeElement`.
273
146
  * Pass it to `run` to start a page-owning app, or to `embed` to start it under
274
147
  * a host-controlled lifecycle handle. `ports` is the Ports record from the
@@ -287,165 +160,13 @@ export type MakeRuntimeReturn<P extends Ports | undefined = undefined, Flags = v
287
160
  Kind: Kind;
288
161
  }>;
289
162
  }>;
290
- /** Host-side handle for one inbound Port. `send` validates the value by
291
- * decoding it against the Port's Schema: on success the decoded value enters
292
- * the app through the Port's Subscription; on failure nothing reaches the
293
- * app, the failure is logged, and the returned `Exit` carries the
294
- * `SchemaError`. Sends after `dispose` are no-ops. */
295
- export type InboundPortHandle<Encoded> = Readonly<{
296
- send: (value: Encoded) => Exit.Exit<void, Schema.SchemaError>;
297
- }>;
298
- /** Host-side handle for one outbound Port. `subscribe` registers a listener
299
- * for the encoded values the app emits with `Port.emit` and returns an
300
- * unsubscribe function. Multiple listeners receive each value in
301
- * registration order. */
302
- export type OutboundPortHandle<Encoded> = Readonly<{
303
- subscribe: (listener: (value: Encoded) => void) => () => void;
304
- }>;
305
- /** The inbound half of `PortHandles`: one `InboundPortHandle` per declared
306
- * inbound Port, keyed by Port name. */
307
- export type InboundPortHandles<InboundPorts> = InboundPorts extends Readonly<Record<string, Inbound<any, any>>> ? {
308
- readonly [Name in keyof InboundPorts]: InboundPorts[Name] extends Inbound<any, infer Encoded> ? InboundPortHandle<Encoded> : never;
309
- } : unknown;
310
- /** The outbound half of `PortHandles`: one `OutboundPortHandle` per declared
311
- * outbound Port, keyed by Port name. */
312
- export type OutboundPortHandles<OutboundPorts> = OutboundPorts extends Readonly<Record<string, Outbound<any, any>>> ? {
313
- readonly [Name in keyof OutboundPorts]: OutboundPorts[Name] extends Outbound<any, infer Encoded> ? OutboundPortHandle<Encoded> : never;
314
- } : unknown;
315
- /** The `ports` field of an `EmbedHandle`: one `InboundPortHandle` or
316
- * `OutboundPortHandle` per declared Port, keyed by Port name. */
317
- export type PortHandles<P extends Ports | undefined> = P extends Ports ? InboundPortHandles<P['inbound']> & OutboundPortHandles<P['outbound']> : unknown;
318
- /**
319
- * The handle returned by `embed`. The host talks to the embedded app only
320
- * through it: `ports.<name>.send` pushes values in, `ports.<name>.subscribe`
321
- * listens to values the app emits, and `dispose` shuts the runtime down.
322
- *
323
- * `dispose` is idempotent. It interrupts the runtime and runs all cleanup:
324
- * Subscriptions, ManagedResources, Mounts, listeners, and in-flight Commands
325
- * stop, and the rendered DOM is removed with the container element restored
326
- * empty in its place, ready for a fresh `embed`.
327
- */
328
- export type EmbedHandle<P extends Ports | undefined = undefined> = Readonly<{
329
- ports: PortHandles<P>;
330
- dispose: () => void;
331
- }>;
332
- type RuntimeProgram = Readonly<{
333
- runtimeId: string;
334
- start: (hmrModel?: unknown) => Effect.Effect<void>;
335
- ports: Ports | undefined;
336
- }>;
337
- /** Creates a Foldkit application that owns the page and returns a runtime that
338
- * can be passed to `run`. The `view` returns a `Document`, so the runtime
339
- * manages `document.title` and the canonical / og:url tags. Add a `routing`
340
- * config for URL routing. Use one page-owning application per document. To
341
- * mount an app scoped to a node without touching the document `<head>`, use
342
- * `makeElement`. */
343
- export declare function makeApplication<Model, Message extends {
344
- _tag: string;
345
- }, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: RoutingApplicationConfigWithFlags<Model, Message, Flags, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, Flags, Resources, 'Application'>;
346
- export declare function makeApplication<Model, Message extends {
347
- _tag: string;
348
- }, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: RoutingApplicationConfig<Model, Message, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, void, Resources, 'Application'>;
349
- export declare function makeApplication<Model, Message extends {
350
- _tag: string;
351
- }, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: ApplicationConfigWithFlags<Model, Message, Flags, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, Flags, Resources, 'Application'>;
352
- export declare function makeApplication<Model, Message extends {
353
- _tag: string;
354
- }, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: ApplicationConfig<Model, Message, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, void, Resources, 'Application'>;
355
- /**
356
- * Creates a Foldkit app scoped to its container and returns a runtime that
357
- * can be passed to `run`.
358
- *
359
- * Unlike `makeApplication`, the `view` returns `Html` directly rather than a
360
- * `Document`, and the runtime never touches the document `<head>`. This lets a
361
- * Foldkit app be embedded at a node (a widget on a page it does not own)
362
- * without clobbering the host page's `title`, `canonical`, or `og:url`. Use
363
- * `makeApplication` when the app owns the page and should manage those tags, and
364
- * `makeElement` when it is one component among others on a page it does not
365
- * control. Embedded apps do not own the URL bar, so `makeElement` has no
366
- * `routing` config.
367
- */
368
- export declare function makeElement<Model, Message extends {
369
- _tag: string;
370
- }, Flags, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: ElementConfigWithFlags<Model, Message, Flags, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, void, Resources, 'Element'>;
371
- export declare function makeElement<Model, Message extends {
372
- _tag: string;
373
- }, Resources = never, ManagedResourceServices = never, P extends Ports | undefined = undefined>(config: ElementConfig<Model, Message, Resources, ManagedResourceServices, P>): MakeRuntimeReturn<P, void, Resources, 'Element'>;
374
- /** Starts a program Effect with explicit boot inputs for runtime tests.
375
- * @internal */
376
- export declare const __startProgram: (program: RuntimeProgram, hmrModel: unknown, bootMode: BootMode, flags?: Effect.Effect<unknown, never, any>, buildId?: string) => Effect.Effect<void>;
377
- /** Starts a Foldkit runtime that owns the page for the page's whole lifetime,
378
- * with HMR support for development. The first render builds the DOM fresh in
379
- * the container, replacing whatever is there. On a server-rendered page use
380
- * `hydrate` instead, which adopts the existing DOM. To start a runtime under a
381
- * host-controlled lifecycle, use `embed`. */
382
- export declare function run<P extends Ports | undefined, Resources, Kind extends 'Application' | 'Element'>(program: MakeRuntimeReturn<P, void, Resources, Kind>): void;
383
- export declare function run<P extends Ports | undefined, Flags, Resources, Kind extends 'Application' | 'Element'>(program: MakeRuntimeReturn<P, Flags, Resources, Kind>, options: RunOptions<Flags, Resources>): void;
384
- /** Options for {@link hydrate}. */
385
- export type HydrateOptions = Readonly<{
386
- /**
387
- * The deployment this client belongs to, compared against the id the server
388
- * stamped on the root before the Flags payload text is accessed or decoded,
389
- * so a page from a different deployment stops startup rather than handing its
390
- * Flags to this build. Required, and must be non-empty: an absent id would
391
- * equal the absent marker on a page served before build ids existed.
392
- *
393
- * Pass `import.meta.env.FOLDKIT_BUILD_ID`, which `@foldkit/vite-plugin` fills
394
- * from its `buildId` option or the `FOLDKIT_BUILD_ID` environment variable,
395
- * the same value the server entry passes to `renderToString`.
396
- */
397
- buildId: string;
398
- }>;
399
- /** Starts a Foldkit runtime by adopting a server-rendered DOM in place instead
400
- * of building it fresh. Use this as the client entry for a page served by
401
- * `renderToString`: the first render attaches to the stamped root, keeps the
402
- * existing nodes, and reconstructs the Model from the Flags the server
403
- * embedded. The handoff is strict: a missing server root, an empty or
404
- * duplicated root stamp, more than one stamped root, a requested root outside
405
- * the document body light DOM, a missing Flags payload, an undecodable
406
- * payload, or a page from another deployment terminates startup. Every one of
407
- * those contains the page first:
408
- * the document's body is marked `inert` and a nondismissable modal shield is
409
- * opened above existing top-layer content, so pointer and physical keyboard
410
- * input do not activate same-document native links, forms, or controls.
411
- * Containment leaves author-owned dialogs open without calling `close` or
412
- * dispatching `cancel`.
413
- * Nothing is moved, so no custom element reconnects and no frame reloads.
414
- * This is not a script, event, or embedded-document sandbox: existing
415
- * capture-phase handlers, browser-generated top-layer events, timers, and
416
- * stale scripts can still run. Controls in embedded documents can still
417
- * receive input if stale code focuses them. Stale code can also open newer
418
- * top-layer UI. Use `run` in a separate client-only entry when the page should
419
- * boot without server output.
420
- *
421
- * @experimental Server rendering and hydration are experimental while their
422
- * contracts settle. */
423
- export declare const hydrate: <P extends Ports | undefined, Flags, Resources>(program: MakeRuntimeReturn<P, Flags, Resources, 'Application'>, options: HydrateOptions) => void;
424
- /**
425
- * Starts a Foldkit runtime under a host-controlled lifecycle and returns an
426
- * `EmbedHandle`. This is the entry point for embedding a Foldkit app inside
427
- * another application: the host pushes values in through the handle's inbound
428
- * Ports, listens to outbound Ports, and calls `dispose` when it unmounts the
429
- * app. The host never touches the Model or dispatches Messages directly; the
430
- * Schema-typed Ports are the whole boundary.
431
- *
432
- * Works with programs from both `makeApplication` and `makeElement`; for a
433
- * widget on a page the host owns, `makeElement` is the natural fit.
434
- *
435
- * A program can be embedded once at a time (it owns one container). After
436
- * `dispose`, the same container can be embedded again with a fresh program.
437
- *
438
- * ```ts
439
- * const handle = Runtime.embed(element)
440
- *
441
- * handle.ports.stepChanged.send(5)
442
- * const unsubscribe = handle.ports.countChanged.subscribe(count => {
443
- * console.log(count)
444
- * })
445
- *
446
- * handle.dispose()
447
- * ```
448
- */
449
- export declare function embed<P extends Ports | undefined = undefined, Resources = never, Kind extends 'Application' | 'Element' = 'Application' | 'Element'>(program: MakeRuntimeReturn<P, void, Resources, Kind>): EmbedHandle<P>;
450
- export declare function embed<P extends Ports | undefined, Flags, Resources, Kind extends 'Application' | 'Element'>(program: MakeRuntimeReturn<P, Flags, Resources, Kind>, options: RunOptions<Flags, Resources>): EmbedHandle<P>;
163
+ type RuntimeInternals = {
164
+ startWith: (maybeConnector: Option.Option<HostConnector>, hmrModel?: unknown, bootMode?: BootMode, flags?: Effect.Effect<any, never, any>, buildId?: string) => Effect.Effect<void>;
165
+ kind: 'Application' | 'Element';
166
+ isEmbedActive: boolean;
167
+ maybeActiveFiber: Option.Option<Fiber.Fiber<void>>;
168
+ };
169
+ export declare const runtimeInternals: WeakMap<object, RuntimeInternals>;
170
+ export declare const makeRuntime: <Model, Message, Flags, Resources, ManagedResourceServices, P extends Ports | undefined, Kind extends 'Application' | 'Element'>({ ports, kind, Model, Flags: FlagsCodec, configuredFlags, isFlagsRequired, init, update, view, manageDocument, subscriptions, container, hydration, routing: routingConfig, crash, slow, viewTransition, freezeModel, preserveScroll, resources, managedResources, devTools, }: RuntimeConfig<Model, Message, Flags, Resources, ManagedResourceServices, P, Kind>) => MakeRuntimeReturn<P, Flags, Resources, Kind>;
171
+ export {};
451
172
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}