blokd 0.1.0-beta.2 → 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/README.md +3 -1
- package/dist/app.d.ts +26 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +57 -0
- package/dist/app.js.map +1 -0
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/components.d.ts +18 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +41 -0
- package/dist/components.js.map +1 -0
- package/dist/core.d.ts +7 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +14 -1
- package/dist/core.js.map +1 -1
- package/dist/hono.d.ts.map +1 -1
- package/dist/hono.js +26 -0
- package/dist/hono.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/island.d.ts +14 -0
- package/dist/island.d.ts.map +1 -0
- package/dist/island.js +162 -0
- package/dist/island.js.map +1 -0
- package/dist/resume.d.ts +32 -10
- package/dist/resume.d.ts.map +1 -1
- package/dist/resume.js +78 -25
- package/dist/resume.js.map +1 -1
- package/dist/vite.d.ts +30 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +243 -33
- package/dist/vite.js.map +1 -1
- package/package.json +16 -1
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":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,GAAG,EAA8E,MAAM,kBAAkB,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQ7C,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,MAAM,UAAU,MAAM,CAA8B,SAAuB;IACzE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,UAAU,EAAE,YAAY,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAuB,CAAC;IAC3F,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,SAAuB,EACvB,KAAQ,EACR,KAAmB;IAEnB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO;QACL,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,MAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;QAChG,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;YACtD,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACxE,MAAM,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,EAAa,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;YACtF,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAI,IAAY,EAAE,SAAuB,EAAE,KAAQ,EAAE,aAA2B;IACnG,MAAM,QAAQ,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC,MAAa,EAAE;QACxB,IAAI;QACJ,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,WAAW;KACtB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,aAA2B;IACtD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO;QACL,KAAK;QACL,QAAQ,EAAE;YACR,IAAI,CAAI,OAAU;gBAChB,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,EAAW,CAAC;gBACnC,MAAM,KAAK,GAAG,CAAC,aAAa,IAAI,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAM,CAAC;gBAC1F,IAAI,WAAW,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC3C,OAAO;oBACL,KAAK;oBACL,KAAK,CAAC,IAAI;wBACR,IAAI,WAAW,CAAC,IAAI,CAAC;4BAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;oBAC3C,CAAC;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,KAAiB,EAAE,UAAkB,EAAE,SAAuB,EAAE,KAAQ,EAAE,KAAkB;IACtH,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,KAAK,GAAG,CAAC,IAAgB,EAAc,EAAE;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,IAAiB,CAAC;YACnC,OAAO,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAgB,CAAC;QACjC,MAAM,SAAS,GAAU,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7D,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,SAAS;YAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,gBAAgB,UAAU,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;YACnE,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/F,UAAU,EAAE,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACjF,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAAkB,EAClB,SAAuB,EACvB,KAAQ,EACR,YAAoB;IAEpB,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,4CAA4C,YAAY,GAAG,CAAC,CAAC;YACtH,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,EAAE,CAAC;YAC5E,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACpD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;YAC1B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACtD,IAAI,UAAU;gBAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiB,EAAE,WAAmB;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAuC,IAAI,CAAC;IACrD,MAAM,KAAK,GAAG,CAAC,IAAgB,EAAQ,EAAE;QACvC,IAAI,KAAK;YAAE,OAAO;QAClB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,KAAK,IAAI,IAAI;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;YAAE,OAAO;QACnE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAK,IAAkB,CAAC,QAAQ;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO;QACpC,MAAM,OAAO,GAAG,IAAgB,CAAC;QACjC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7D,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,SAAS;YAC5C,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,KAAK,GAAG,OAAoC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,CAAC;IACb,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC5E,CAAC"}
|
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
|
|
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
|
|
12
|
-
|
|
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
|
|
16
|
-
export type
|
|
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?:
|
|
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
|
-
|
|
38
|
-
export declare function
|
|
39
|
-
export declare function
|
|
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
|
package/dist/resume.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,YAAY,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,
|
|
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
|
-
|
|
145
|
+
console.error(error);
|
|
135
146
|
}
|
|
136
147
|
}
|
|
137
|
-
function findResumableElement(
|
|
138
|
-
|
|
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
|
|
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
|
|
156
|
-
const read = () => parseState(getStateElement().getAttribute('data-blokd-state'));
|
|
157
|
+
const state = getIslandState(base.island);
|
|
157
158
|
return {
|
|
158
159
|
...base,
|
|
159
|
-
|
|
160
|
-
return read();
|
|
161
|
-
},
|
|
160
|
+
state,
|
|
162
161
|
setState(next) {
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
|
|
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
|
-
|
|
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 ${
|
|
245
|
+
throw new Error(`Blokd resumable handler "${ref}" was not found. Missing export "${exportName}" in ${moduleId}.`);
|
|
193
246
|
}
|
|
194
247
|
return handler;
|
|
195
248
|
}
|
package/dist/resume.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
|
package/dist/vite.d.ts
CHANGED
|
@@ -44,6 +44,31 @@ export type BlokdPluginOptions = {
|
|
|
44
44
|
strictRoutes?: boolean;
|
|
45
45
|
/** Infer whether a route needs the client entry. Enabled by default. */
|
|
46
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;
|
|
47
72
|
};
|
|
48
73
|
export declare function slash(path: string): string;
|
|
49
74
|
export declare function walkRoutes(dir: string, extensions: string[], files?: string[]): string[];
|
|
@@ -53,6 +78,11 @@ export declare function assertNoDuplicateRoutes(routesDir: string, files: string
|
|
|
53
78
|
export declare function layoutFilesFor(routesDir: string, file: string, extensions: string[]): string[];
|
|
54
79
|
export declare function nearestSpecialFile(routesDir: string, file: string, name: '_error' | '_404', extensions: string[]): string | null;
|
|
55
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;
|
|
56
86
|
export declare function blokd(options?: BlokdPluginOptions): BlokdVitePlugin;
|
|
57
87
|
export default blokd;
|
|
58
88
|
//# sourceMappingURL=vite.d.ts.map
|
package/dist/vite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,SAAS,CAAC,EAAE,CACV,EAAE,EAAE,MAAM,EACV,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,GAAG,KACV,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CACL,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,GAAG,KACV,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpE,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,GAAG,KAEX,MAAM,GACN,IAAI,GACJ,SAAS,GACT;QACE,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,GACD,OAAO,CACH,MAAM,GACN,IAAI,GACJ,SAAS,GACT;QACE,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,CACJ,CAAC;CACP,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE;QACX,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAC;QAC/B,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;KAClC,CAAC;IACF,OAAO,EAAE;QACP,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;KACrE,CAAC;IACF,EAAE,EAAE;QACF,IAAI,CAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,GAAG,IAAI,CAAC;KAC/D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
|