foldkit 0.146.0 → 0.148.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 (91) hide show
  1. package/README.md +5 -2
  2. package/dist/buildToken.d.ts +3 -0
  3. package/dist/buildToken.d.ts.map +1 -0
  4. package/dist/buildToken.js +21 -0
  5. package/dist/controlledDomState.d.ts +25 -0
  6. package/dist/controlledDomState.d.ts.map +1 -0
  7. package/dist/controlledDomState.js +240 -0
  8. package/dist/cssStyleProperties.d.ts +6 -0
  9. package/dist/cssStyleProperties.d.ts.map +1 -0
  10. package/dist/cssStyleProperties.js +91 -0
  11. package/dist/customElement/index.d.ts.map +1 -1
  12. package/dist/customElement/index.js +23 -0
  13. package/dist/domReflection.d.ts +73 -0
  14. package/dist/domReflection.d.ts.map +1 -0
  15. package/dist/domReflection.js +557 -0
  16. package/dist/experimental/index.d.ts +1 -0
  17. package/dist/experimental/index.d.ts.map +1 -1
  18. package/dist/experimental/index.js +1 -0
  19. package/dist/experimental/machine/machine.d.ts +22 -3
  20. package/dist/experimental/machine/machine.d.ts.map +1 -1
  21. package/dist/experimental/machine/machine.js +8 -0
  22. package/dist/experimental/server/entry.d.ts +73 -0
  23. package/dist/experimental/server/entry.d.ts.map +1 -0
  24. package/dist/experimental/server/entry.js +41 -0
  25. package/dist/experimental/server/host.d.ts +136 -0
  26. package/dist/experimental/server/host.d.ts.map +1 -0
  27. package/dist/experimental/server/host.js +359 -0
  28. package/dist/experimental/server/index.d.ts +5 -0
  29. package/dist/experimental/server/index.d.ts.map +1 -0
  30. package/dist/experimental/server/index.js +4 -0
  31. package/dist/experimental/server/public.d.ts +3 -0
  32. package/dist/experimental/server/public.d.ts.map +1 -0
  33. package/dist/experimental/server/public.js +1 -0
  34. package/dist/experimental/server/serialize.d.ts +43 -0
  35. package/dist/experimental/server/serialize.d.ts.map +1 -0
  36. package/dist/experimental/server/serialize.js +786 -0
  37. package/dist/experimental/server/server.d.ts +242 -0
  38. package/dist/experimental/server/server.d.ts.map +1 -0
  39. package/dist/experimental/server/server.js +946 -0
  40. package/dist/experimental/server/template.d.ts +53 -0
  41. package/dist/experimental/server/template.d.ts.map +1 -0
  42. package/dist/experimental/server/template.js +617 -0
  43. package/dist/html/index.d.ts +5 -0
  44. package/dist/html/index.d.ts.map +1 -1
  45. package/dist/html/index.js +474 -33
  46. package/dist/hydrate.d.ts +4 -0
  47. package/dist/hydrate.d.ts.map +1 -0
  48. package/dist/hydrate.js +850 -0
  49. package/dist/hydrationMarker.d.ts +10 -0
  50. package/dist/hydrationMarker.d.ts.map +1 -0
  51. package/dist/hydrationMarker.js +9 -0
  52. package/dist/hydrationMarkers.d.ts +15 -0
  53. package/dist/hydrationMarkers.d.ts.map +1 -0
  54. package/dist/hydrationMarkers.js +70 -0
  55. package/dist/nativeInnerHtml.d.ts +13 -0
  56. package/dist/nativeInnerHtml.d.ts.map +1 -0
  57. package/dist/nativeInnerHtml.js +30 -0
  58. package/dist/propertyProvenance.d.ts +33 -0
  59. package/dist/propertyProvenance.d.ts.map +1 -0
  60. package/dist/propertyProvenance.js +78 -0
  61. package/dist/propsModule.d.ts.map +1 -1
  62. package/dist/propsModule.js +149 -15
  63. package/dist/runtime/public.d.ts +2 -2
  64. package/dist/runtime/public.d.ts.map +1 -1
  65. package/dist/runtime/public.js +1 -1
  66. package/dist/runtime/runtime.d.ts +99 -36
  67. package/dist/runtime/runtime.d.ts.map +1 -1
  68. package/dist/runtime/runtime.js +412 -71
  69. package/dist/snabbdom/attributes.d.ts.map +1 -1
  70. package/dist/snabbdom/attributes.js +65 -37
  71. package/dist/snabbdom/h.d.ts +1 -0
  72. package/dist/snabbdom/h.d.ts.map +1 -1
  73. package/dist/snabbdom/h.js +85 -4
  74. package/dist/snabbdom/style.d.ts.map +1 -1
  75. package/dist/snabbdom/style.js +53 -34
  76. package/dist/snabbdom/tovnode.d.ts.map +1 -1
  77. package/dist/snabbdom/tovnode.js +5 -1
  78. package/dist/tagName.d.ts +6 -0
  79. package/dist/tagName.d.ts.map +1 -0
  80. package/dist/tagName.js +11 -0
  81. package/dist/test/apps/attributes.d.ts +1 -0
  82. package/dist/test/apps/attributes.d.ts.map +1 -1
  83. package/dist/test/apps/attributes.js +8 -1
  84. package/dist/test/apps/login.js +1 -1
  85. package/dist/test/matchers.d.ts.map +1 -1
  86. package/dist/test/matchers.js +2 -1
  87. package/dist/test/scene.d.ts.map +1 -1
  88. package/dist/test/scene.js +2 -1
  89. package/dist/vdom.d.ts.map +1 -1
  90. package/dist/vdom.js +25 -1
  91. package/package.json +9 -2
@@ -0,0 +1,242 @@
1
+ import { Effect, Schema } from 'effect';
2
+ import { type Document, type HtmlBuilder } from '../../html/index.js';
3
+ import { FOLDKIT_APP_ATTRIBUTE, FOLDKIT_FLAGS_ATTRIBUTE } from '../../hydrationMarker.js';
4
+ import { Url } from '../../url/index.js';
5
+ export declare const __assertNoDeclarativeShadowRoot: (html: string) => void;
6
+ export declare const __assertNoLiveBaseElement: (html: string) => void;
7
+ export declare const __assertNoDocumentStructureEscape: (html: string) => void;
8
+ export { FOLDKIT_APP_ATTRIBUTE, FOLDKIT_FLAGS_ATTRIBUTE };
9
+ /** The server render of one request: the stamped root markup (plus the Flags
10
+ * payload script when the application declares Flags) and the `Document`
11
+ * head fields for the host to place into its HTML template.
12
+ *
13
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
14
+ */
15
+ export type RenderedApplication = Readonly<{
16
+ html: string;
17
+ title: string;
18
+ lang?: string;
19
+ dir?: 'ltr' | 'rtl' | 'auto';
20
+ canonical?: string;
21
+ ogUrl?: string;
22
+ }>;
23
+ declare const InvalidUrl_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
24
+ readonly _tag: "InvalidUrl";
25
+ } & Readonly<A>;
26
+ /** Failure of a routing render whose `url` option cannot be parsed.
27
+ *
28
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
29
+ */
30
+ export declare class InvalidUrl extends InvalidUrl_base<{
31
+ url: string;
32
+ }> {
33
+ }
34
+ declare const FlagsEncodeError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
35
+ readonly _tag: "FlagsEncodeError";
36
+ } & Readonly<A>;
37
+ /** Failure producing the Flags payload: the Schema encode step rejected the
38
+ * Flags value, the encoded value could not be serialized to JSON, or the
39
+ * encoded value could not be decoded back for the hydration-consistent
40
+ * render.
41
+ *
42
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
43
+ */
44
+ export declare class FlagsEncodeError extends FlagsEncodeError_base<{
45
+ cause: unknown;
46
+ }> {
47
+ }
48
+ declare const SerializationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
49
+ readonly _tag: "SerializationError";
50
+ } & Readonly<A>;
51
+ /** Failure serializing the view-produced vnode tree to safe HTML.
52
+ *
53
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
54
+ */
55
+ export declare class SerializationError extends SerializationError_base<{
56
+ cause: unknown;
57
+ }> {
58
+ }
59
+ declare const InvalidRuntimeId_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
60
+ readonly _tag: "InvalidRuntimeId";
61
+ } & Readonly<A>;
62
+ /** Failure of a render whose `runtimeId` is empty.
63
+ *
64
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
65
+ */
66
+ export declare class InvalidRuntimeId extends InvalidRuntimeId_base<{
67
+ runtimeId: string;
68
+ }> {
69
+ }
70
+ declare const InvalidHydrationRoot_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
71
+ readonly _tag: "InvalidHydrationRoot";
72
+ } & Readonly<A>;
73
+ /** Failure of a hydratable render whose view did not return an element root.
74
+ * Text, comments, and an empty body cannot carry the hydration marker the
75
+ * client runtime uses to adopt the server-rendered DOM.
76
+ *
77
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
78
+ */
79
+ export declare class InvalidHydrationRoot extends InvalidHydrationRoot_base<{
80
+ rootKind: 'Empty' | 'Text' | 'Comment';
81
+ }> {
82
+ }
83
+ declare const MissingBuildId_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
84
+ readonly _tag: "MissingBuildId";
85
+ } & Readonly<A>;
86
+ /** Failure of a hydratable render that was given no build id. Hydration
87
+ * compares the id on the served root with the client's own to refuse a page
88
+ * from another deployment, so a render that carries none has no such
89
+ * protection. Supply one from a value the deployment already has, such as a
90
+ * commit or a release tag, through `@foldkit/vite-plugin`'s `buildId` option or
91
+ * the `FOLDKIT_BUILD_ID` environment variable, and pass
92
+ * `import.meta.env.FOLDKIT_BUILD_ID` to `renderToString` and `Runtime.hydrate`.
93
+ * A render that nothing will hydrate (`isHydratable: false`) needs none.
94
+ *
95
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
96
+ */
97
+ export declare class MissingBuildId extends MissingBuildId_base<{}> {
98
+ }
99
+ /** Union of the failures {@link renderToString} can produce.
100
+ *
101
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
102
+ */
103
+ export type RenderError = MissingBuildId | InvalidUrl | FlagsEncodeError | SerializationError | InvalidRuntimeId | InvalidHydrationRoot;
104
+ type InitReturn<Model> = readonly [Model, ReadonlyArray<unknown>];
105
+ /** Server-side subset of a routing `makeApplication` config with Flags. The
106
+ * full application config is structurally assignable; `container`, `update`,
107
+ * and `subscriptions` play no part in a server render.
108
+ *
109
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
110
+ */
111
+ export type RoutingApplicationConfigWithFlags<Model, Message, Flags> = Readonly<{
112
+ Flags: Schema.Codec<Flags, any, never, never>;
113
+ routing: unknown;
114
+ init: (flags: Flags, url: Url) => InitReturn<Model>;
115
+ view: (model: Model, h: HtmlBuilder<Message>) => Document;
116
+ }>;
117
+ /** Server-side subset of a routing `makeApplication` config without Flags.
118
+ *
119
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
120
+ */
121
+ export type RoutingApplicationConfig<Model, Message> = Readonly<{
122
+ routing: unknown;
123
+ init: (url: Url) => InitReturn<Model>;
124
+ view: (model: Model, h: HtmlBuilder<Message>) => Document;
125
+ }>;
126
+ /** Server-side subset of a non-routing `makeApplication` config with Flags.
127
+ *
128
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
129
+ */
130
+ export type ApplicationConfigWithFlags<Model, Message, Flags> = Readonly<{
131
+ Flags: Schema.Codec<Flags, any, never, never>;
132
+ init: (flags: Flags) => InitReturn<Model>;
133
+ view: (model: Model, h: HtmlBuilder<Message>) => Document;
134
+ }>;
135
+ /** Server-side subset of a non-routing `makeApplication` config.
136
+ *
137
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
138
+ */
139
+ export type ApplicationConfig<Model, Message> = Readonly<{
140
+ init: () => InitReturn<Model>;
141
+ view: (model: Model, h: HtmlBuilder<Message>) => Document;
142
+ }>;
143
+ type CommonRenderOptions = Readonly<{
144
+ runtimeId?: string;
145
+ }>;
146
+ /** Render options for output a client will hydrate, which is the default. The
147
+ * build id is required here: hydration compares it against the client's own
148
+ * before adopting any DOM, and a page carrying none has no such protection.
149
+ *
150
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
151
+ */
152
+ export type HydratableRenderOptions = CommonRenderOptions & Readonly<{
153
+ isHydratable?: true;
154
+ /**
155
+ * The deployment this render belongs to, stamped on the root so hydration
156
+ * can refuse a page from a different one before adopting its DOM. Pass
157
+ * `import.meta.env.FOLDKIT_BUILD_ID`, which `@foldkit/vite-plugin` fills
158
+ * from its `buildId` option or the `FOLDKIT_BUILD_ID` environment variable,
159
+ * and give the client entry the same value.
160
+ */
161
+ buildId: string;
162
+ }>;
163
+ /** Render options for static markup nothing will hydrate. No build id applies,
164
+ * because no client will compare one.
165
+ *
166
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
167
+ */
168
+ export type StaticRenderOptions = CommonRenderOptions & Readonly<{
169
+ isHydratable: false;
170
+ buildId?: undefined;
171
+ }>;
172
+ /** Options for {@link renderToString}. `runtimeId` names the application in the
173
+ * root stamp and Flags payload; it defaults to `'app'` and must be non-empty.
174
+ *
175
+ * A hydratable render (the default) requires `buildId`. Pass
176
+ * `isHydratable: false` for static markup that nothing will hydrate, which
177
+ * takes no build id.
178
+ *
179
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
180
+ */
181
+ export type RenderOptions = HydratableRenderOptions | StaticRenderOptions;
182
+ /** Render options for a routing application, adding the request URL.
183
+ *
184
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
185
+ */
186
+ export type RenderUrlOptions = RenderOptions & Readonly<{
187
+ url: string;
188
+ }>;
189
+ /** Render options for a Flags application, adding the per-request Flags.
190
+ *
191
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
192
+ */
193
+ export type RenderFlagsOptions<Flags> = RenderOptions & Readonly<{
194
+ flags: Flags;
195
+ }>;
196
+ /** Render options for a routing Flags application: the request URL plus the
197
+ * per-request Flags.
198
+ *
199
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
200
+ */
201
+ export type RenderUrlFlagsOptions<Flags> = RenderUrlOptions & RenderFlagsOptions<Flags>;
202
+ /**
203
+ * Renders a `makeApplication`-shaped config to an HTML string on the server.
204
+ *
205
+ * Resolves `init` for the request (with the given Flags and URL when the
206
+ * config declares them), runs the pure `view` under a no-op dispatch frame,
207
+ * and serializes the resulting `Document` body. The root element is stamped
208
+ * with {@link FOLDKIT_APP_ATTRIBUTE} and, when the config declares `Flags`,
209
+ * the Schema-encoded Flags ride along in a JSON script tag so a hydrating
210
+ * client boots from the same Model.
211
+ *
212
+ * Commands returned by `init` are not run: the rendered HTML is the
213
+ * post-`init` state, and the client runs those Commands after hydration.
214
+ *
215
+ * A hydratable Flags render calls `init` with the encode-then-decode round
216
+ * trip of the given Flags, the exact value the hydrating client will
217
+ * reconstruct, so the served DOM and the client's first render agree by
218
+ * construction even for codecs whose round trip is not the identity.
219
+ *
220
+ * When a routing view omits `Document.canonical`, the render defaults it (and
221
+ * `ogUrl`) to the request URL, normalized the way the client computes the
222
+ * current location but with the query string kept. Set `Document.canonical`
223
+ * explicitly when the query string is not part of the page's identity, such as
224
+ * tracking parameters or a session token, so a crawler does not index every
225
+ * variant as its own canonical page.
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * const renderedApplication = yield* Server.renderToString(config, {
230
+ * url: request.url,
231
+ * flags: { theme },
232
+ * buildId: import.meta.env.FOLDKIT_BUILD_ID,
233
+ * })
234
+ * ```
235
+ *
236
+ * @experimental Ships from `foldkit/experimental/server`; expect breaking changes while the API settles.
237
+ */
238
+ export declare function renderToString<Model, Message, Flags>(config: RoutingApplicationConfigWithFlags<Model, Message, Flags>, options: RenderUrlFlagsOptions<Flags>): Effect.Effect<RenderedApplication, RenderError>;
239
+ export declare function renderToString<Model, Message>(config: RoutingApplicationConfig<Model, Message>, options: RenderUrlOptions): Effect.Effect<RenderedApplication, RenderError>;
240
+ export declare function renderToString<Model, Message, Flags>(config: ApplicationConfigWithFlags<Model, Message, Flags>, options: RenderFlagsOptions<Flags>): Effect.Effect<RenderedApplication, RenderError>;
241
+ export declare function renderToString<Model, Message>(config: ApplicationConfig<Model, Message>, options: RenderOptions): Effect.Effect<RenderedApplication, RenderError>;
242
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/experimental/server/server.ts"],"names":[],"mappings":"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"}