@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.
Files changed (58) hide show
  1. package/dist/app.d.ts +28 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +15 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/components.d.ts +3 -0
  6. package/dist/components.d.ts.map +1 -0
  7. package/dist/components.js +10 -0
  8. package/dist/components.js.map +1 -0
  9. package/dist/forms.d.ts +8 -6
  10. package/dist/forms.d.ts.map +1 -1
  11. package/dist/forms.js +50 -15
  12. package/dist/forms.js.map +1 -1
  13. package/dist/generate.d.ts.map +1 -1
  14. package/dist/generate.js +11 -16
  15. package/dist/generate.js.map +1 -1
  16. package/dist/handler.d.ts +11 -4
  17. package/dist/handler.d.ts.map +1 -1
  18. package/dist/handler.js +249 -135
  19. package/dist/handler.js.map +1 -1
  20. package/dist/images.js +1 -1
  21. package/dist/images.js.map +1 -1
  22. package/dist/index.d.ts +8 -6
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/lower.js +1 -1
  27. package/dist/lower.js.map +1 -1
  28. package/dist/render.d.ts +6 -4
  29. package/dist/render.d.ts.map +1 -1
  30. package/dist/render.js +48 -71
  31. package/dist/render.js.map +1 -1
  32. package/dist/rendered.d.ts +1 -1
  33. package/dist/rendered.d.ts.map +1 -1
  34. package/dist/rendered.js +1 -1
  35. package/dist/rendered.js.map +1 -1
  36. package/dist/search.d.ts +1 -0
  37. package/dist/search.d.ts.map +1 -1
  38. package/dist/search.js +10 -0
  39. package/dist/search.js.map +1 -1
  40. package/dist/security.d.ts +2 -1
  41. package/dist/security.d.ts.map +1 -1
  42. package/dist/security.js +3 -1
  43. package/dist/security.js.map +1 -1
  44. package/dist/session.d.ts +16 -5
  45. package/dist/session.d.ts.map +1 -1
  46. package/dist/session.js +64 -10
  47. package/dist/session.js.map +1 -1
  48. package/dist/shape.js +1 -1
  49. package/dist/shape.js.map +1 -1
  50. package/dist/static.d.ts +4 -4
  51. package/dist/static.d.ts.map +1 -1
  52. package/dist/static.js +4 -4
  53. package/dist/static.js.map +1 -1
  54. package/package.json +6 -6
  55. package/dist/compile.d.ts +0 -43
  56. package/dist/compile.d.ts.map +0 -1
  57. package/dist/compile.js +0 -170
  58. 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
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}