blokd 0.1.0-beta.1 → 0.2.0-beta.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.
package/dist/island.js ADDED
@@ -0,0 +1,162 @@
1
+ import { runWithSignalObserver } from './core.js';
2
+ import { jsx } from './jsx-runtime.js';
3
+ import { resumable, Island } from './resume.js';
4
+ import { renderToString } from './server.js';
5
+ let nextIslandId = 0;
6
+ export function island(component) {
7
+ const name = component.name || `island-${++nextIslandId}`;
8
+ const wrapped = ((props) => renderIsland(name, component, props));
9
+ Object.defineProperty(wrapped, 'name', { value: name, configurable: true });
10
+ Object.defineProperty(wrapped, '__blokdIslandComponent', { value: true });
11
+ return wrapped;
12
+ }
13
+ export function __compileIslandForTest(name, component, props, state) {
14
+ const captured = createSignalCapture(state);
15
+ const rendered = runWithSignalObserver(captured.observer, () => component(props));
16
+ const transformed = transformEvents(rendered, name, component, props, captured.state);
17
+ return {
18
+ html: renderToString(jsx(Island, { name, state: captured.state, children: transformed })),
19
+ state: captured.state,
20
+ async run(eventIndex, event = new Event('click')) {
21
+ const handler = createIslandHandler(name, component, props, eventIndex);
22
+ await handler(event, { element: {}, island: null, state: captured.state });
23
+ return captured.state;
24
+ }
25
+ };
26
+ }
27
+ function renderIsland(name, component, props, existingState) {
28
+ const captured = createSignalCapture(existingState);
29
+ const rendered = runWithSignalObserver(captured.observer, () => component(props));
30
+ const transformed = transformEvents(rendered, name, component, props, captured.state);
31
+ return jsx(Island, {
32
+ name,
33
+ state: captured.state,
34
+ children: transformed
35
+ });
36
+ }
37
+ function createSignalCapture(existingState) {
38
+ const state = {};
39
+ let index = 0;
40
+ return {
41
+ state,
42
+ observer: {
43
+ next(initial) {
44
+ const key = `s${index++}`;
45
+ const value = (existingState && key in existingState ? existingState[key] : initial);
46
+ if (isJsonValue(value))
47
+ state[key] = value;
48
+ return {
49
+ value,
50
+ write(next) {
51
+ if (isJsonValue(next))
52
+ state[key] = next;
53
+ }
54
+ };
55
+ }
56
+ }
57
+ };
58
+ }
59
+ function transformEvents(value, islandName, component, props, state) {
60
+ let eventIndex = 0;
61
+ const visit = (node) => {
62
+ if (Array.isArray(node))
63
+ return node.map(visit);
64
+ if (!node || typeof node !== 'object' || !('kind' in node))
65
+ return node;
66
+ if (node.kind === 'fragment') {
67
+ const fragment = node;
68
+ return { ...fragment, children: fragment.children.map(visit) };
69
+ }
70
+ if (node.kind !== 'element')
71
+ return node;
72
+ const element = node;
73
+ const nextProps = { ...element.props };
74
+ for (const [key, handler] of Object.entries(element.props)) {
75
+ if (!/^on[A-Z]/.test(key) && !/^on[a-z]/.test(key))
76
+ continue;
77
+ if (typeof handler !== 'function')
78
+ continue;
79
+ const eventName = key.slice(2).toLowerCase();
80
+ const ref = `blokd:island:${islandName}#${eventName}${eventIndex}`;
81
+ nextProps[key] = resumable(ref, createIslandHandler(islandName, component, props, eventIndex));
82
+ eventIndex++;
83
+ }
84
+ return { ...element, props: nextProps, children: element.children.map(visit) };
85
+ };
86
+ return visit(value);
87
+ }
88
+ function createIslandHandler(islandName, component, props, handlerIndex) {
89
+ return async (event, ctx) => {
90
+ const captured = createSignalCapture(ctx.state);
91
+ runWithSignalObserver(captured.observer, () => {
92
+ const rendered = component(props);
93
+ const handler = findEventHandler(rendered, handlerIndex);
94
+ if (!handler)
95
+ throw new Error(`Blokd island "${islandName}" could not find generated event handler ${handlerIndex}.`);
96
+ handler(event);
97
+ });
98
+ Object.assign(ctx.state, captured.state);
99
+ if (typeof HTMLElement !== 'undefined' && ctx.island instanceof HTMLElement) {
100
+ const rerendered = renderIsland(islandName, component, props, ctx.state);
101
+ const html = renderToString(rerendered);
102
+ const template = document.createElement('template');
103
+ template.innerHTML = html;
104
+ const nextIsland = template.content.firstElementChild;
105
+ if (nextIsland)
106
+ ctx.island.replaceWith(nextIsland);
107
+ }
108
+ };
109
+ }
110
+ function findEventHandler(value, targetIndex) {
111
+ let index = 0;
112
+ let found = null;
113
+ const visit = (node) => {
114
+ if (found)
115
+ return;
116
+ if (Array.isArray(node)) {
117
+ for (const child of node)
118
+ visit(child);
119
+ return;
120
+ }
121
+ if (!node || typeof node !== 'object' || !('kind' in node))
122
+ return;
123
+ if (node.kind === 'fragment') {
124
+ for (const child of node.children)
125
+ visit(child);
126
+ return;
127
+ }
128
+ if (node.kind !== 'element')
129
+ return;
130
+ const element = node;
131
+ for (const [key, handler] of Object.entries(element.props)) {
132
+ if (!/^on[A-Z]/.test(key) && !/^on[a-z]/.test(key))
133
+ continue;
134
+ if (typeof handler !== 'function')
135
+ continue;
136
+ if (index === targetIndex) {
137
+ found = handler;
138
+ return;
139
+ }
140
+ index++;
141
+ }
142
+ for (const child of element.children)
143
+ visit(child);
144
+ };
145
+ visit(value);
146
+ return found;
147
+ }
148
+ function isJsonValue(value) {
149
+ if (value === null)
150
+ return true;
151
+ if (['string', 'number', 'boolean'].includes(typeof value))
152
+ return true;
153
+ if (Array.isArray(value))
154
+ return value.every(isJsonValue);
155
+ if (!value || typeof value !== 'object')
156
+ return false;
157
+ const proto = Object.getPrototypeOf(value);
158
+ if (proto !== Object.prototype && proto !== null)
159
+ return false;
160
+ return Object.values(value).every(isJsonValue);
161
+ }
162
+ //# sourceMappingURL=island.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"island.js","sourceRoot":"","sources":["../src/island.ts"],"names":[],"mappings":"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"}
package/dist/resume.d.ts CHANGED
@@ -4,19 +4,37 @@ export type JsonValue = JsonPrimitive | JsonValue[] | {
4
4
  [key: string]: JsonValue;
5
5
  };
6
6
  export type ResumableRef = `${string}#${string}` | string;
7
- export type ResumeContext<TState = JsonValue> = {
8
- event: Event;
7
+ export type ResumableContext<TState extends Record<string, unknown> = Record<string, unknown>> = {
9
8
  element: Element;
10
9
  island: Element | null;
11
- state: TState | null;
12
- setState(next: TState | ((previous: TState | null) => TState)): void;
10
+ state: TState;
11
+ };
12
+ export type ResumableHandler<TState extends Record<string, unknown> = Record<string, unknown>> = (event: Event, ctx: ResumableContext<TState>) => unknown | Promise<unknown>;
13
+ export type ElementHandle = {
14
+ attr(name: string): string | null;
15
+ attr(name: string, value: string | number | boolean | null): void;
16
+ text(value: string | number | boolean): void;
17
+ addClass(name: string): void;
18
+ removeClass(name: string): void;
19
+ toggleClass(name: string, force?: boolean): void;
20
+ find(selector: string): Element | null;
21
+ all(selector: string): Element[];
22
+ };
23
+ export type ActionContext<TState extends Record<string, unknown> = Record<string, unknown>> = ResumableContext<TState> & {
24
+ event: Event;
25
+ el: ElementHandle;
26
+ };
27
+ export type ActionHandler<TState extends Record<string, unknown> = Record<string, unknown>> = (ctx: ActionContext<TState>) => unknown | Promise<unknown>;
28
+ export type ResumeContext<TState extends Record<string, unknown> = Record<string, unknown>> = ResumableContext<TState> & {
29
+ event: Event;
13
30
  ref: string;
31
+ setState(next: TState | ((previous: TState) => TState)): void;
14
32
  };
15
- export type ResumableEventHandler<TState = JsonValue> = (event: Event, ctx: ResumeContext<TState>) => unknown | Promise<unknown>;
16
- export type ResumableHandler<TState = JsonValue> = {
33
+ export type ResumableEventHandler<TState extends Record<string, unknown> = Record<string, unknown>> = ResumableHandler<TState>;
34
+ export type ResumableBinding<TState extends Record<string, unknown> = Record<string, unknown>> = {
17
35
  readonly __blokdResumable: true;
18
36
  readonly ref: string;
19
- readonly handler?: ResumableEventHandler<TState>;
37
+ readonly handler?: ResumableHandler<TState>;
20
38
  };
21
39
  export type IslandProps<TState extends JsonValue = JsonValue> = {
22
40
  name: string;
@@ -34,13 +52,17 @@ export type StartResumabilityOptions = {
34
52
  allowRef?: (ref: string) => boolean;
35
53
  onError?: (error: unknown, ctx: Omit<ResumeContext, 'state' | 'setState'>) => void;
36
54
  };
37
- export declare function resumable<TState = JsonValue>(ref: ResumableRef, handler?: ResumableEventHandler<TState>): ResumableHandler<TState>;
38
- export declare function isResumableHandler(value: unknown): value is ResumableHandler;
39
- export declare function registerResumable<TState = JsonValue>(ref: ResumableRef, handler: ResumableEventHandler<TState>): void;
55
+ type ExtractRecord<T> = T extends Record<string, unknown> ? T : Record<string, unknown>;
56
+ export declare function resumable<TState = Record<string, unknown>>(ref: ResumableRef, handler?: ResumableHandler<ExtractRecord<TState>>): ResumableBinding<ExtractRecord<TState>>;
57
+ export declare function on(ref: ResumableRef): ResumableBinding;
58
+ export declare function defineAction<TState extends Record<string, unknown> = Record<string, unknown>>(handler: ActionHandler<TState>): ResumableHandler<TState>;
59
+ export declare function isResumableHandler(value: unknown): value is ResumableBinding;
60
+ export declare function registerResumable<TState extends Record<string, unknown> = Record<string, unknown>>(ref: ResumableRef, handler: ResumableHandler<TState>): void;
40
61
  export declare function unregisterResumable(ref: ResumableRef): void;
41
62
  export declare function Island<TState extends JsonValue = JsonValue>(props: IslandProps<TState>): Renderable;
42
63
  export declare function eventAttributeName(eventName: string): string;
43
64
  export declare function serializeState(value: JsonValue): string;
44
65
  export declare function parseState<TState = JsonValue>(value: string | null): TState | null;
45
66
  export declare function startResumability(options?: StartResumabilityOptions): () => void;
67
+ export {};
46
68
  //# sourceMappingURL=resume.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
package/dist/resume.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { jsx } from './jsx-runtime.js';
2
2
  const registry = new Map();
3
3
  const inflight = new Map();
4
+ const islandStates = new WeakMap();
4
5
  const DEFAULT_EVENTS = ['click', 'input', 'change', 'submit'];
5
6
  const rootStates = new WeakMap();
6
7
  export function resumable(ref, handler) {
@@ -12,6 +13,16 @@ export function resumable(ref, handler) {
12
13
  }
13
14
  return { __blokdResumable: true, ref: normalized };
14
15
  }
16
+ export function on(ref) {
17
+ return resumable(ref);
18
+ }
19
+ export function defineAction(handler) {
20
+ return (event, ctx) => handler({
21
+ ...ctx,
22
+ event,
23
+ el: createElementHandle(ctx.element)
24
+ });
25
+ }
15
26
  export function isResumableHandler(value) {
16
27
  return !!value && typeof value === 'object' && value.__blokdResumable === true;
17
28
  }
@@ -112,7 +123,7 @@ export function startResumability(options = {}) {
112
123
  };
113
124
  }
114
125
  async function dispatchResumableEvent(event, options) {
115
- const match = findResumableElement(event);
126
+ const match = findResumableElement(event.target, event.type);
116
127
  if (!match)
117
128
  return;
118
129
  const { element, ref } = match;
@@ -131,38 +142,73 @@ async function dispatchResumableEvent(event, options) {
131
142
  if (options.onError)
132
143
  options.onError(error, baseCtx);
133
144
  else
134
- setTimeout(() => { throw error; }, 0);
145
+ console.error(error);
135
146
  }
136
147
  }
137
- function findResumableElement(event) {
138
- const attr = eventAttributeName(event.type);
139
- const path = typeof event.composedPath === 'function' ? event.composedPath() : [];
140
- for (const item of path) {
141
- if (!(item instanceof Element))
142
- continue;
143
- const ref = item.getAttribute(attr);
144
- if (ref)
145
- return { element: item, ref };
146
- }
147
- const target = event.target;
148
- if (!(target instanceof Element))
148
+ function findResumableElement(start, eventName) {
149
+ if (!(start instanceof Element))
149
150
  return null;
150
- const element = target.closest(`[${attr}]`);
151
+ const attr = eventAttributeName(eventName);
152
+ const element = start.closest(`[${attr}]`);
151
153
  const ref = element?.getAttribute(attr);
152
154
  return element && ref ? { element, ref } : null;
153
155
  }
154
156
  function createResumeContext(base) {
155
- const getStateElement = () => base.island ?? base.element;
156
- const read = () => parseState(getStateElement().getAttribute('data-blokd-state'));
157
+ const state = getIslandState(base.island);
157
158
  return {
158
159
  ...base,
159
- get state() {
160
- return read();
161
- },
160
+ state,
162
161
  setState(next) {
163
- const previous = read();
164
- const value = typeof next === 'function' ? next(previous) : next;
165
- getStateElement().setAttribute('data-blokd-state', serializeState(value));
162
+ const value = typeof next === 'function' ? next(state) : next;
163
+ for (const key of Object.keys(state))
164
+ delete state[key];
165
+ Object.assign(state, value);
166
+ if (base.island)
167
+ base.island.setAttribute('data-blokd-state', serializeState(state));
168
+ }
169
+ };
170
+ }
171
+ function getIslandState(island) {
172
+ if (!island)
173
+ return {};
174
+ const existing = islandStates.get(island);
175
+ if (existing)
176
+ return existing;
177
+ let state = {};
178
+ const parsed = parseState(island.getAttribute('data-blokd-state'));
179
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
180
+ state = parsed;
181
+ }
182
+ islandStates.set(island, state);
183
+ return state;
184
+ }
185
+ function createElementHandle(element) {
186
+ return {
187
+ attr: (function attr(name, value) {
188
+ if (arguments.length === 1)
189
+ return element.getAttribute(name);
190
+ if (value === null)
191
+ element.removeAttribute(name);
192
+ else
193
+ element.setAttribute(name, String(value));
194
+ }),
195
+ text(value) {
196
+ element.textContent = String(value);
197
+ },
198
+ addClass(name) {
199
+ element.classList.add(name);
200
+ },
201
+ removeClass(name) {
202
+ element.classList.remove(name);
203
+ },
204
+ toggleClass(name, force) {
205
+ element.classList.toggle(name, force);
206
+ },
207
+ find(selector) {
208
+ return element.querySelector(selector);
209
+ },
210
+ all(selector) {
211
+ return Array.from(element.querySelectorAll(selector));
166
212
  }
167
213
  };
168
214
  }
@@ -186,10 +232,17 @@ async function loadHandler(ref) {
186
232
  }
187
233
  async function importHandler(ref) {
188
234
  const { moduleId, exportName } = parseRef(ref);
189
- const mod = await import(/* @vite-ignore */ moduleId);
235
+ let mod;
236
+ try {
237
+ mod = await import(/* @vite-ignore */ moduleId);
238
+ }
239
+ catch (error) {
240
+ const detail = error instanceof Error ? error.message : String(error);
241
+ throw new Error(`Failed to import Blokd resumable handler "${ref}": ${detail}`);
242
+ }
190
243
  const handler = mod[exportName];
191
244
  if (typeof handler !== 'function') {
192
- throw new Error(`Blokd resumable handler ${exportName} was not found in ${moduleId}.`);
245
+ throw new Error(`Blokd resumable handler "${ref}" was not found. Missing export "${exportName}" in ${moduleId}.`);
193
246
  }
194
247
  return handler;
195
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
package/dist/vite.d.ts CHANGED
@@ -32,10 +32,43 @@ export type BlokdViteDevServer = {
32
32
  export type BlokdPluginOptions = {
33
33
  routesDir?: string;
34
34
  extensions?: string[];
35
+ /**
36
+ * Browser client entry emitted by createPages when a matched route needs client behavior.
37
+ * This is not injected by the Vite plugin directly; app server code should pass the same
38
+ * value to createPages({ entryClient }).
39
+ *
40
+ * Default: "/src/entry-client.ts"
41
+ */
42
+ clientEntry?: string;
35
43
  /** Throw when two files map to the same URL path. Enabled by default. */
36
44
  strictRoutes?: boolean;
37
45
  /** Infer whether a route needs the client entry. Enabled by default. */
38
46
  analyzeClient?: boolean;
47
+ /**
48
+ * Per-route client runtime budgets, for example { "/": "3kb", "/about": "0kb" }.
49
+ * Route-level `export const budget = { client: "0kb" }` takes precedence.
50
+ */
51
+ budgets?: Record<string, string>;
52
+ /** Client build output directory used for byte budget checks. Default: "dist/client". */
53
+ clientOutDir?: string;
54
+ };
55
+ export type RouteRuntimeCategory = 'none' | 'islands' | 'client';
56
+ export type RouteRuntimeInfo = {
57
+ id: string;
58
+ path: string;
59
+ file: string;
60
+ hasClient: boolean;
61
+ runtime: RouteRuntimeCategory;
62
+ islands: string[];
63
+ refs: string[];
64
+ declaredRuntime: string | null;
65
+ clientBudget: string | null;
66
+ };
67
+ export type RouteBudgetResult = {
68
+ route: RouteRuntimeInfo;
69
+ budget: string;
70
+ limit: number;
71
+ actual: number;
39
72
  };
40
73
  export declare function slash(path: string): string;
41
74
  export declare function walkRoutes(dir: string, extensions: string[], files?: string[]): string[];
@@ -45,6 +78,11 @@ export declare function assertNoDuplicateRoutes(routesDir: string, files: string
45
78
  export declare function layoutFilesFor(routesDir: string, file: string, extensions: string[]): string[];
46
79
  export declare function nearestSpecialFile(routesDir: string, file: string, name: '_error' | '_404', extensions: string[]): string | null;
47
80
  export declare function makeManifestCode(root: string, routesDir: string, extensions?: string[], strictRoutes?: boolean, analyzeClient?: boolean): string;
81
+ export declare function analyzeRoutes(root: string, routesDir: string, extensions?: string[], strictRoutes?: boolean, analyzeClient?: boolean): RouteRuntimeInfo[];
82
+ export declare function parseByteSize(value: string): number;
83
+ export declare function measureClientOutputBytes(clientOutDir: string): number | null;
84
+ export declare function validateRouteBudgets(routes: RouteRuntimeInfo[], budgets?: Record<string, string>, measuredClientBytes?: number | null): RouteBudgetResult[];
85
+ export declare function createRouteRuntimeReport(routes: RouteRuntimeInfo[]): string;
48
86
  export declare function blokd(options?: BlokdPluginOptions): BlokdVitePlugin;
49
87
  export default blokd;
50
88
  //# sourceMappingURL=vite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}