@hozu/runtime-server 0.7.0 → 0.9.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/app.d.ts +28 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +15 -0
- package/dist/app.js.map +1 -0
- package/dist/components.d.ts +3 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +10 -0
- package/dist/components.js.map +1 -0
- package/dist/forms.d.ts +8 -6
- package/dist/forms.d.ts.map +1 -1
- package/dist/forms.js +50 -15
- package/dist/forms.js.map +1 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +11 -16
- package/dist/generate.js.map +1 -1
- package/dist/handler.d.ts +11 -4
- package/dist/handler.d.ts.map +1 -1
- package/dist/handler.js +249 -135
- package/dist/handler.js.map +1 -1
- package/dist/images.js +1 -1
- package/dist/images.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/lower.js +1 -1
- package/dist/lower.js.map +1 -1
- package/dist/render.d.ts +6 -4
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +48 -71
- package/dist/render.js.map +1 -1
- package/dist/rendered.d.ts +1 -1
- package/dist/rendered.d.ts.map +1 -1
- package/dist/rendered.js +1 -1
- package/dist/rendered.js.map +1 -1
- package/dist/search.d.ts +1 -0
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +10 -0
- package/dist/search.js.map +1 -1
- package/dist/security.d.ts +2 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +3 -1
- package/dist/security.js.map +1 -1
- package/dist/session.d.ts +16 -5
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +64 -10
- package/dist/session.js.map +1 -1
- package/dist/shape.js +1 -1
- package/dist/shape.js.map +1 -1
- package/dist/static.d.ts +4 -4
- package/dist/static.d.ts.map +1 -1
- package/dist/static.js +4 -4
- package/dist/static.js.map +1 -1
- package/package.json +6 -6
- package/dist/compile.d.ts +0 -43
- package/dist/compile.d.ts.map +0 -1
- package/dist/compile.js +0 -170
- package/dist/compile.js.map +0 -1
package/dist/compile.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { type FeatureIR, type Json, type ValueExpr, type ViewNode, type WidgetIR } from '@tenon/core/ir';
|
|
2
|
-
import { type Fns, type Getter } from '@tenon/machine';
|
|
3
|
-
import { text } from '@tenon/runtime-client';
|
|
4
|
-
export interface Scope {
|
|
5
|
-
feature: FeatureIR;
|
|
6
|
-
context: Json;
|
|
7
|
-
state: string | null;
|
|
8
|
-
bindings: Json[];
|
|
9
|
-
params: Json;
|
|
10
|
-
search: Json;
|
|
11
|
-
routes: Record<string, string>;
|
|
12
|
-
url: string;
|
|
13
|
-
locale: string;
|
|
14
|
-
alternate: Record<string, string>;
|
|
15
|
-
env: Json;
|
|
16
|
-
}
|
|
17
|
-
export interface Runtime {
|
|
18
|
-
open(n: ViewNode, scope: Scope): string;
|
|
19
|
-
embed(view: string): {
|
|
20
|
-
root: ViewNode;
|
|
21
|
-
scope: Scope;
|
|
22
|
-
} | null;
|
|
23
|
-
widget(ref: string): void;
|
|
24
|
-
}
|
|
25
|
-
export interface Compile {
|
|
26
|
-
islands: Set<string>;
|
|
27
|
-
fns: Fns;
|
|
28
|
-
widgets: Record<string, WidgetIR>;
|
|
29
|
-
}
|
|
30
|
-
export type Frag = string | ((scope: Scope, r: Runtime) => string);
|
|
31
|
-
export declare const SEP = "<!---->";
|
|
32
|
-
export declare const OPEN = "<!--[-->";
|
|
33
|
-
export declare const CLOSE = "<!--]-->";
|
|
34
|
-
export { text };
|
|
35
|
-
export declare const expr: (v: ValueExpr, fns: Fns) => Getter;
|
|
36
|
-
type El = Pick<Extract<ViewNode, {
|
|
37
|
-
kind: 'el';
|
|
38
|
-
}>, 'class' | 'toggle' | 'vars'>;
|
|
39
|
-
export declare function classAndStyle(n: El, value: (v: ValueExpr) => Json): string;
|
|
40
|
-
export declare const run: (f: Frag, s: Scope, r: Runtime) => string;
|
|
41
|
-
export declare const separated: (list: ViewNode[], i: number) => boolean;
|
|
42
|
-
export declare function compileNode(n: ViewNode, island: boolean, c: Compile, sep?: boolean): Frag;
|
|
43
|
-
//# sourceMappingURL=compile.d.ts.map
|
package/dist/compile.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAGd,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAA8B,KAAK,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAkC,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAG5E,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,SAAS,CAAA;IAClB,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChB,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,IAAI,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,GAAG,EAAE,IAAI,CAAA;CACV;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAA;IAC5D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAClC;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC,CAAA;AAIlE,eAAO,MAAM,GAAG,YAAY,CAAA;AAC5B,eAAO,MAAM,IAAI,aAAa,CAAA;AAC9B,eAAO,MAAM,KAAK,aAAa,CAAA;AAE/B,OAAO,EAAE,IAAI,EAAE,CAAA;AAEf,eAAO,MAAM,IAAI,MAAO,SAAS,OAAO,GAAG,KAAG,MAA8B,CAAA;AAO5E,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAA;AAK9E,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,CAO1E;AAkCD,eAAO,MAAM,GAAG,MAAO,IAAI,KAAK,KAAK,KAAK,OAAO,WAA0C,CAAA;AAE3F,eAAO,MAAM,SAAS,SAAU,QAAQ,EAAE,KAAK,MAAM,YAAiC,CAAA;AAEtF,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,UAAQ,GAAG,IAAI,CAqGvF"}
|
package/dist/compile.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { FORM_FIELD, formRunnable, voidTags, } from '@tenon/core/ir';
|
|
2
|
-
import { compileGuard, compileValue } from '@tenon/machine';
|
|
3
|
-
import { attrText, classText, styleText, text } from '@tenon/runtime-client';
|
|
4
|
-
import { escapeHtml } from './escape.js';
|
|
5
|
-
const voids = new Set(voidTags);
|
|
6
|
-
export const SEP = '<!---->';
|
|
7
|
-
export const OPEN = '<!--[-->';
|
|
8
|
-
export const CLOSE = '<!--]-->';
|
|
9
|
-
export { text };
|
|
10
|
-
export const expr = (v, fns) => compileValue(v, fns);
|
|
11
|
-
const attr = (name, x) => {
|
|
12
|
-
const s = attrText(name, x);
|
|
13
|
-
return s === null ? '' : s === '' ? ` ${name}` : ` ${name}="${escapeHtml(s)}"`;
|
|
14
|
-
};
|
|
15
|
-
const classAttr = (c) => (c ? ` class="${escapeHtml(c)}"` : '');
|
|
16
|
-
const styleAttr = (s) => (s ? ` style="${escapeHtml(s)}"` : '');
|
|
17
|
-
export function classAndStyle(n, value) {
|
|
18
|
-
const active = [];
|
|
19
|
-
for (const c in n.toggle)
|
|
20
|
-
if (value(n.toggle[c]) === true)
|
|
21
|
-
active.push(c);
|
|
22
|
-
return (classAttr(classText(n.class, active)) +
|
|
23
|
-
styleAttr(styleText(Object.entries(n.vars).map(([k, v]) => [k, value(v)]))));
|
|
24
|
-
}
|
|
25
|
-
function classAndStyleFrag(n, fns) {
|
|
26
|
-
const toggles = Object.entries(n.toggle).map(([c, v]) => [c, expr(v, fns)]);
|
|
27
|
-
const vars = Object.entries(n.vars).map(([k, v]) => [k, expr(v, fns)]);
|
|
28
|
-
const base = n.class;
|
|
29
|
-
const cls = toggles.length
|
|
30
|
-
? (s) => {
|
|
31
|
-
const active = [];
|
|
32
|
-
for (const [c, get] of toggles)
|
|
33
|
-
if (get(s) === true)
|
|
34
|
-
active.push(c);
|
|
35
|
-
return classAttr(classText(base, active));
|
|
36
|
-
}
|
|
37
|
-
: classAttr(base ?? '');
|
|
38
|
-
const style = vars.length ? (s) => styleAttr(styleText(vars.map(([k, get]) => [k, get(s)]))) : '';
|
|
39
|
-
return seq([cls, style]);
|
|
40
|
-
}
|
|
41
|
-
function seq(parts) {
|
|
42
|
-
const merged = [];
|
|
43
|
-
for (const p of parts) {
|
|
44
|
-
const last = merged.at(-1);
|
|
45
|
-
if (typeof p === 'string' && typeof last === 'string')
|
|
46
|
-
merged[merged.length - 1] = last + p;
|
|
47
|
-
else if (p !== '')
|
|
48
|
-
merged.push(p);
|
|
49
|
-
}
|
|
50
|
-
if (merged.length === 0)
|
|
51
|
-
return '';
|
|
52
|
-
if (merged.length === 1)
|
|
53
|
-
return merged[0];
|
|
54
|
-
const list = merged;
|
|
55
|
-
return (s, r) => {
|
|
56
|
-
let out = '';
|
|
57
|
-
for (const p of list)
|
|
58
|
-
out += typeof p === 'string' ? p : p(s, r);
|
|
59
|
-
return out;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
export const run = (f, s, r) => (typeof f === 'string' ? f : f(s, r));
|
|
63
|
-
export const separated = (list, i) => list[i + 1]?.kind === 'text';
|
|
64
|
-
export function compileNode(n, island, c, sep = false) {
|
|
65
|
-
const { fns } = c;
|
|
66
|
-
const children = (list) => list.map((x, i) => compileNode(x, island, c, separated(list, i)));
|
|
67
|
-
if (!island && c.islands.has(n.id)) {
|
|
68
|
-
const inner = compileNode(n, true, c, sep);
|
|
69
|
-
return (s, r) => r.open(n, s) + run(inner, s, r);
|
|
70
|
-
}
|
|
71
|
-
const wrap = (body) => (island ? seq([OPEN, body, CLOSE]) : body);
|
|
72
|
-
switch (n.kind) {
|
|
73
|
-
case 'text': {
|
|
74
|
-
const tail = island && sep ? SEP : '';
|
|
75
|
-
if ('literal' in n.value)
|
|
76
|
-
return escapeHtml(text(n.value.literal)) + tail;
|
|
77
|
-
const get = expr(n.value, fns);
|
|
78
|
-
return (s) => escapeHtml(text(get(s))) + tail;
|
|
79
|
-
}
|
|
80
|
-
case 'el': {
|
|
81
|
-
const parts = [`<${n.tag}`, classAndStyleFrag(n, fns)];
|
|
82
|
-
let content = null;
|
|
83
|
-
for (const [name, v] of Object.entries(n.attrs)) {
|
|
84
|
-
if (n.tag === 'textarea' && name === 'value') {
|
|
85
|
-
const get = expr(v, fns);
|
|
86
|
-
content = 'literal' in v ? escapeHtml(text(v.literal)) : (s) => escapeHtml(text(get(s)));
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
if ('literal' in v) {
|
|
90
|
-
parts.push(attr(name, v.literal));
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
const get = expr(v, fns);
|
|
94
|
-
parts.push((s) => attr(name, get(s)));
|
|
95
|
-
}
|
|
96
|
-
const submit = n.tag === 'form' ? n.on.submit : undefined;
|
|
97
|
-
if (submit && !('method' in n.attrs) && formRunnable(submit.payload)) {
|
|
98
|
-
const id = encodeURIComponent(n.id);
|
|
99
|
-
parts.push(' method="post"', (s) => attr('action', `${s.url}${s.url.includes('?') ? '&' : '?'}${FORM_FIELD}=${id}`));
|
|
100
|
-
}
|
|
101
|
-
parts.push('>');
|
|
102
|
-
if (voids.has(n.tag))
|
|
103
|
-
return seq(parts);
|
|
104
|
-
if (content !== null)
|
|
105
|
-
parts.push(content);
|
|
106
|
-
else
|
|
107
|
-
parts.push(...children(n.children));
|
|
108
|
-
parts.push(`</${n.tag}>`);
|
|
109
|
-
return seq(parts);
|
|
110
|
-
}
|
|
111
|
-
case 'when': {
|
|
112
|
-
const body = seq(children(n.children));
|
|
113
|
-
const states = n.states;
|
|
114
|
-
return wrap((s, r) => (s.state !== null && states.includes(s.state) ? run(body, s, r) : ''));
|
|
115
|
-
}
|
|
116
|
-
case 'each': {
|
|
117
|
-
const item = compileNode(n.item, island, c, true);
|
|
118
|
-
const source = expr(n.source, fns);
|
|
119
|
-
return wrap((s, r) => {
|
|
120
|
-
const items = source(s);
|
|
121
|
-
let out = '';
|
|
122
|
-
if (Array.isArray(items))
|
|
123
|
-
for (const x of items)
|
|
124
|
-
out += run(item, { ...s, bindings: [...s.bindings, x] }, r);
|
|
125
|
-
return out;
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
case 'embed': {
|
|
129
|
-
const view = n.view;
|
|
130
|
-
const cache = new WeakMap();
|
|
131
|
-
return wrap((_, r) => {
|
|
132
|
-
const e = r.embed(view);
|
|
133
|
-
if (!e)
|
|
134
|
-
return '';
|
|
135
|
-
let f = cache.get(e.root);
|
|
136
|
-
if (f === undefined) {
|
|
137
|
-
f = compileNode(e.root, island, c);
|
|
138
|
-
cache.set(e.root, f);
|
|
139
|
-
}
|
|
140
|
-
return run(f, e.scope, r);
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
case 'if': {
|
|
144
|
-
const test = compileGuard(n.test, fns);
|
|
145
|
-
const yes = seq(children(n.ifTrue));
|
|
146
|
-
const no = seq(children(n.ifFalse));
|
|
147
|
-
return wrap((s, r) => run(test(s) ? yes : no, s, r));
|
|
148
|
-
}
|
|
149
|
-
case 'html': {
|
|
150
|
-
const get = expr(n.value, fns);
|
|
151
|
-
return wrap((s) => text(get(s)));
|
|
152
|
-
}
|
|
153
|
-
case 'global':
|
|
154
|
-
return '<!--g-->';
|
|
155
|
-
case 'widget': {
|
|
156
|
-
const tag = c.widgets[n.widget]?.tag ?? 'div';
|
|
157
|
-
const ref = n.widget;
|
|
158
|
-
const use = (_, r) => {
|
|
159
|
-
r.widget(ref);
|
|
160
|
-
return '';
|
|
161
|
-
};
|
|
162
|
-
const own = island && c.islands.has(n.id);
|
|
163
|
-
const kids = n.children.map((x, i) => compileNode(x, !own && island, c, separated(n.children, i)));
|
|
164
|
-
return seq([use, `<${tag}`, classAndStyleFrag(n, fns), '>', ...kids, `</${tag}>`]);
|
|
165
|
-
}
|
|
166
|
-
default:
|
|
167
|
-
return '';
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=compile.js.map
|
package/dist/compile.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
|