@hozu/validator 0.1.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/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/context.d.ts +13 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +27 -0
- package/dist/context.js.map +1 -0
- package/dist/contracts/lock.d.ts +19 -0
- package/dist/contracts/lock.d.ts.map +1 -0
- package/dist/contracts/lock.js +61 -0
- package/dist/contracts/lock.js.map +1 -0
- package/dist/contracts/run.d.ts +14 -0
- package/dist/contracts/run.d.ts.map +1 -0
- package/dist/contracts/run.js +130 -0
- package/dist/contracts/run.js.map +1 -0
- package/dist/contracts/skeleton.d.ts +4 -0
- package/dist/contracts/skeleton.d.ts.map +1 -0
- package/dist/contracts/skeleton.js +108 -0
- package/dist/contracts/skeleton.js.map +1 -0
- package/dist/contracts/verify.d.ts +5 -0
- package/dist/contracts/verify.d.ts.map +1 -0
- package/dist/contracts/verify.js +58 -0
- package/dist/contracts/verify.js.map +1 -0
- package/dist/env.d.ts +40 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +79 -0
- package/dist/env.js.map +1 -0
- package/dist/impact.d.ts +27 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +154 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/resolve.d.ts +13 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +58 -0
- package/dist/resolve.js.map +1 -0
- package/dist/rules/classes.d.ts +3 -0
- package/dist/rules/classes.d.ts.map +1 -0
- package/dist/rules/classes.js +60 -0
- package/dist/rules/classes.js.map +1 -0
- package/dist/rules/data.d.ts +4 -0
- package/dist/rules/data.d.ts.map +1 -0
- package/dist/rules/data.js +34 -0
- package/dist/rules/data.js.map +1 -0
- package/dist/rules/dom.d.ts +3 -0
- package/dist/rules/dom.d.ts.map +1 -0
- package/dist/rules/dom.js +104 -0
- package/dist/rules/dom.js.map +1 -0
- package/dist/rules/errors.d.ts +3 -0
- package/dist/rules/errors.d.ts.map +1 -0
- package/dist/rules/errors.js +97 -0
- package/dist/rules/errors.js.map +1 -0
- package/dist/rules/events.d.ts +5 -0
- package/dist/rules/events.d.ts.map +1 -0
- package/dist/rules/events.js +87 -0
- package/dist/rules/events.js.map +1 -0
- package/dist/rules/forms.d.ts +3 -0
- package/dist/rules/forms.d.ts.map +1 -0
- package/dist/rules/forms.js +19 -0
- package/dist/rules/forms.js.map +1 -0
- package/dist/rules/html.d.ts +3 -0
- package/dist/rules/html.d.ts.map +1 -0
- package/dist/rules/html.js +55 -0
- package/dist/rules/html.js.map +1 -0
- package/dist/rules/http.d.ts +3 -0
- package/dist/rules/http.d.ts.map +1 -0
- package/dist/rules/http.js +71 -0
- package/dist/rules/http.js.map +1 -0
- package/dist/rules/i18n.d.ts +3 -0
- package/dist/rules/i18n.d.ts.map +1 -0
- package/dist/rules/i18n.js +201 -0
- package/dist/rules/i18n.js.map +1 -0
- package/dist/rules/images.d.ts +3 -0
- package/dist/rules/images.d.ts.map +1 -0
- package/dist/rules/images.js +32 -0
- package/dist/rules/images.js.map +1 -0
- package/dist/rules/links.d.ts +3 -0
- package/dist/rules/links.d.ts.map +1 -0
- package/dist/rules/links.js +60 -0
- package/dist/rules/links.js.map +1 -0
- package/dist/rules/literals.d.ts +3 -0
- package/dist/rules/literals.d.ts.map +1 -0
- package/dist/rules/literals.js +147 -0
- package/dist/rules/literals.js.map +1 -0
- package/dist/rules/paths.d.ts +3 -0
- package/dist/rules/paths.d.ts.map +1 -0
- package/dist/rules/paths.js +177 -0
- package/dist/rules/paths.js.map +1 -0
- package/dist/rules/pwa.d.ts +3 -0
- package/dist/rules/pwa.d.ts.map +1 -0
- package/dist/rules/pwa.js +28 -0
- package/dist/rules/pwa.js.map +1 -0
- package/dist/rules/refs.d.ts +5 -0
- package/dist/rules/refs.d.ts.map +1 -0
- package/dist/rules/refs.js +128 -0
- package/dist/rules/refs.js.map +1 -0
- package/dist/rules/rendering.d.ts +3 -0
- package/dist/rules/rendering.d.ts.map +1 -0
- package/dist/rules/rendering.js +37 -0
- package/dist/rules/rendering.js.map +1 -0
- package/dist/rules/routes.d.ts +4 -0
- package/dist/rules/routes.d.ts.map +1 -0
- package/dist/rules/routes.js +108 -0
- package/dist/rules/routes.js.map +1 -0
- package/dist/rules/states.d.ts +6 -0
- package/dist/rules/states.d.ts.map +1 -0
- package/dist/rules/states.js +167 -0
- package/dist/rules/states.js.map +1 -0
- package/dist/rules/text.d.ts +3 -0
- package/dist/rules/text.d.ts.map +1 -0
- package/dist/rules/text.js +148 -0
- package/dist/rules/text.js.map +1 -0
- package/dist/rules/widgets.d.ts +3 -0
- package/dist/rules/widgets.d.ts.map +1 -0
- package/dist/rules/widgets.js +33 -0
- package/dist/rules/widgets.js.map +1 -0
- package/dist/schema.d.ts +19 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +142 -0
- package/dist/schema.js.map +1 -0
- package/dist/sites.d.ts +15 -0
- package/dist/sites.d.ts.map +1 -0
- package/dist/sites.js +151 -0
- package/dist/sites.js.map +1 -0
- package/dist/suggest.d.ts +4 -0
- package/dist/suggest.d.ts.map +1 -0
- package/dist/suggest.js +30 -0
- package/dist/suggest.js.map +1 -0
- package/dist/walk.d.ts +37 -0
- package/dist/walk.d.ts.map +1 -0
- package/dist/walk.js +138 -0
- package/dist/walk.js.map +1 -0
- package/package.json +46 -0
package/dist/sites.js
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { at } from '@hozu/core/ir';
|
|
2
|
+
import { featurePointer, transitionsOf, walkView } from './walk.js';
|
|
3
|
+
export const hasRefs = (value) => 'fn' in value || 'object' in value || 'test' in value || 'link' in value;
|
|
4
|
+
export const guardHasRefs = (guard) => 'left' in guard ? hasRefs(guard.left) || hasRefs(guard.right) : true;
|
|
5
|
+
export function valueRefs(value, pointer, out) {
|
|
6
|
+
if ('fn' in value) {
|
|
7
|
+
out(value.fn, at(pointer, 'fn'));
|
|
8
|
+
valueRefs(value.arg, at(pointer, 'arg'), out);
|
|
9
|
+
}
|
|
10
|
+
else if ('object' in value) {
|
|
11
|
+
for (const [k, v] of Object.entries(value.object))
|
|
12
|
+
valueRefs(v, at(pointer, 'object', k), out);
|
|
13
|
+
}
|
|
14
|
+
else if ('test' in value)
|
|
15
|
+
guardRefs(value.test, at(pointer, 'test'), out);
|
|
16
|
+
else if ('link' in value) {
|
|
17
|
+
valueRefs(value.params, at(pointer, 'params'), out);
|
|
18
|
+
valueRefs(value.search, at(pointer, 'search'), out);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function guardRefs(guard, pointer, out) {
|
|
22
|
+
switch (guard.op) {
|
|
23
|
+
case 'and':
|
|
24
|
+
case 'or':
|
|
25
|
+
guard.args.forEach((g, i) => guardRefs(g, at(pointer, 'args', i), out));
|
|
26
|
+
return;
|
|
27
|
+
case 'not':
|
|
28
|
+
guardRefs(guard.arg, at(pointer, 'arg'), out);
|
|
29
|
+
return;
|
|
30
|
+
case 'fn':
|
|
31
|
+
out(guard.fn, at(pointer, 'fn'));
|
|
32
|
+
valueRefs(guard.arg, at(pointer, 'arg'), out);
|
|
33
|
+
return;
|
|
34
|
+
default:
|
|
35
|
+
valueRefs(guard.left, at(pointer, 'left'), out);
|
|
36
|
+
valueRefs(guard.right, at(pointer, 'right'), out);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function refSites(ir) {
|
|
40
|
+
const sites = [];
|
|
41
|
+
for (const f of Object.values(ir.features)) {
|
|
42
|
+
const add = (ref, pointer, kind, key = false) => sites.push({ feature: f, pointer, ref, kind, key });
|
|
43
|
+
const fnRef = (ref, pointer) => add(ref, pointer, 'fn');
|
|
44
|
+
for (const [sym, q] of Object.entries(f.queries))
|
|
45
|
+
q.tags.forEach((t, i) => {
|
|
46
|
+
const p = featurePointer(f.id, 'queries', sym, 'tags', i);
|
|
47
|
+
add(t.tag, at(p, 'tag'), 'tag');
|
|
48
|
+
if (t.param && hasRefs(t.param))
|
|
49
|
+
valueRefs(t.param, at(p, 'param'), fnRef);
|
|
50
|
+
});
|
|
51
|
+
for (const [sym, m] of Object.entries(f.mutations))
|
|
52
|
+
m.invalidates.forEach((t, i) => {
|
|
53
|
+
const p = featurePointer(f.id, 'mutations', sym, 'invalidates', i);
|
|
54
|
+
add(t.tag, at(p, 'tag'), 'tag');
|
|
55
|
+
if (t.param && hasRefs(t.param))
|
|
56
|
+
valueRefs(t.param, at(p, 'param'), fnRef);
|
|
57
|
+
});
|
|
58
|
+
for (const [state, s] of Object.entries(f.machine?.states ?? {})) {
|
|
59
|
+
const base = featurePointer(f.id, 'machine', 'states', state);
|
|
60
|
+
for (const event of Object.keys(s.on))
|
|
61
|
+
add(event, at(base, 'on', event), 'event', true);
|
|
62
|
+
s.ignore.forEach((event, i) => add(event, at(base, 'ignore', i), 'event', false));
|
|
63
|
+
if (s.invoke) {
|
|
64
|
+
add(s.invoke.effect, at(base, 'invoke', 'effect'), 'effect');
|
|
65
|
+
if (hasRefs(s.invoke.input))
|
|
66
|
+
valueRefs(s.invoke.input, at(base, 'invoke', 'input'), fnRef);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (const site of transitionsOf(f)) {
|
|
70
|
+
if (site.transition.guard && guardHasRefs(site.transition.guard))
|
|
71
|
+
guardRefs(site.transition.guard, site.at('guard'), fnRef);
|
|
72
|
+
site.transition.assign.forEach((a, i) => hasRefs(a.value) && valueRefs(a.value, site.at('assign', i, 'value'), fnRef));
|
|
73
|
+
const nav = site.transition.navigate;
|
|
74
|
+
if (nav && hasRefs(nav))
|
|
75
|
+
valueRefs(nav, site.at('navigate'), fnRef);
|
|
76
|
+
}
|
|
77
|
+
for (const [vid, view] of Object.entries(f.views))
|
|
78
|
+
walkView(ir, f, vid, view, ({ node, pointer }) => {
|
|
79
|
+
switch (node.kind) {
|
|
80
|
+
case 'widget':
|
|
81
|
+
case 'el': {
|
|
82
|
+
if (node.kind === 'widget') {
|
|
83
|
+
add(node.widget, at(pointer, 'widget'), 'widget');
|
|
84
|
+
if (hasRefs(node.props))
|
|
85
|
+
valueRefs(node.props, at(pointer, 'props'), fnRef);
|
|
86
|
+
}
|
|
87
|
+
for (const [dom, send] of Object.entries(node.on)) {
|
|
88
|
+
add(send.event, at(pointer, 'on', dom, 'event'), 'event');
|
|
89
|
+
if (hasRefs(send.payload))
|
|
90
|
+
valueRefs(send.payload, at(pointer, 'on', dom, 'payload'), fnRef);
|
|
91
|
+
}
|
|
92
|
+
const maps = [
|
|
93
|
+
['toggle', node.toggle],
|
|
94
|
+
['vars', node.vars],
|
|
95
|
+
];
|
|
96
|
+
if (node.kind === 'el')
|
|
97
|
+
maps.push(['attrs', node.attrs]);
|
|
98
|
+
for (const [key, map] of maps)
|
|
99
|
+
for (const [name, v] of Object.entries(map))
|
|
100
|
+
if (hasRefs(v))
|
|
101
|
+
valueRefs(v, at(pointer, key, name), fnRef);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
case 'text':
|
|
105
|
+
case 'html':
|
|
106
|
+
if (hasRefs(node.value))
|
|
107
|
+
valueRefs(node.value, at(pointer, 'value'), fnRef);
|
|
108
|
+
return;
|
|
109
|
+
case 'if':
|
|
110
|
+
guardRefs(node.test, at(pointer, 'test'), fnRef);
|
|
111
|
+
return;
|
|
112
|
+
case 'global':
|
|
113
|
+
for (const [dom, send] of Object.entries(node.on)) {
|
|
114
|
+
add(send.event, at(pointer, 'on', dom, 'event'), 'event');
|
|
115
|
+
if (hasRefs(send.payload))
|
|
116
|
+
valueRefs(send.payload, at(pointer, 'on', dom, 'payload'), fnRef);
|
|
117
|
+
}
|
|
118
|
+
return;
|
|
119
|
+
case 'each':
|
|
120
|
+
if (hasRefs(node.source))
|
|
121
|
+
valueRefs(node.source, at(pointer, 'source'), fnRef);
|
|
122
|
+
return;
|
|
123
|
+
case 'query':
|
|
124
|
+
add(node.query, at(pointer, 'query'), 'query');
|
|
125
|
+
if (hasRefs(node.input))
|
|
126
|
+
valueRefs(node.input, at(pointer, 'input'), fnRef);
|
|
127
|
+
return;
|
|
128
|
+
case 'embed':
|
|
129
|
+
add(node.view, at(pointer, 'view'), 'view');
|
|
130
|
+
return;
|
|
131
|
+
default:
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
for (const [cid, c] of Object.entries(f.contracts)) {
|
|
136
|
+
c.when.forEach((step, i) => {
|
|
137
|
+
const p = featurePointer(f.id, 'contracts', cid, 'when', i);
|
|
138
|
+
if ('send' in step)
|
|
139
|
+
add(step.send, at(p, 'send'), 'event');
|
|
140
|
+
else if ('done' in step)
|
|
141
|
+
add(step.done, at(p, 'done'), 'effect');
|
|
142
|
+
else if ('failed' in step)
|
|
143
|
+
add(step.failed, at(p, 'failed'), 'effect');
|
|
144
|
+
});
|
|
145
|
+
c.expect.effects?.forEach((e, i) => 'effect' in e &&
|
|
146
|
+
add(e.effect, featurePointer(f.id, 'contracts', cid, 'expect', 'effects', i, 'effect'), 'effect'));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return sites;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=sites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../src/suggest.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAarD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAYlF;AAED,eAAO,MAAM,UAAU,eAAgB,MAAM,GAAG,IAAI,KAAG,MACH,CAAA"}
|
package/dist/suggest.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function distance(a, b) {
|
|
2
|
+
if (a === b)
|
|
3
|
+
return 0;
|
|
4
|
+
const prev = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
5
|
+
for (let i = 1; i <= a.length; i++) {
|
|
6
|
+
let diag = prev[0];
|
|
7
|
+
prev[0] = i;
|
|
8
|
+
for (let j = 1; j <= b.length; j++) {
|
|
9
|
+
const up = prev[j];
|
|
10
|
+
prev[j] = Math.min(up + 1, prev[j - 1] + 1, diag + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
11
|
+
diag = up;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return prev[b.length];
|
|
15
|
+
}
|
|
16
|
+
export function closest(input, candidates) {
|
|
17
|
+
const lower = input.toLowerCase();
|
|
18
|
+
let best = null;
|
|
19
|
+
let bestScore = Number.POSITIVE_INFINITY;
|
|
20
|
+
for (const candidate of candidates) {
|
|
21
|
+
const score = candidate.toLowerCase() === lower ? 0 : distance(input, candidate);
|
|
22
|
+
if (score < bestScore) {
|
|
23
|
+
best = candidate;
|
|
24
|
+
bestScore = score;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return best !== null && bestScore <= Math.max(2, Math.floor(input.length / 3)) ? best : null;
|
|
28
|
+
}
|
|
29
|
+
export const didYouMean = (suggestion) => suggestion ? ` Did you mean "${suggestion}"?` : '';
|
|
30
|
+
//# sourceMappingURL=suggest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest.js","sourceRoot":"","sources":["../src/suggest.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC3C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QACnB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;YACnB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpF,IAAI,GAAG,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,UAA4B;IACjE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACjC,IAAI,IAAI,GAAkB,IAAI,CAAA;IAC9B,IAAI,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAA;IACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAChF,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,SAAS,CAAA;YAChB,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,KAAK,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9F,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAyB,EAAU,EAAE,CAC9D,UAAU,CAAC,CAAC,CAAC,kBAAkB,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA"}
|
package/dist/walk.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type At, type FeatureIR, type ProjectIR, type TransitionIR, type ViewIR, type ViewNode } from '@hozu/core/ir';
|
|
2
|
+
import { type Env } from './env.ts';
|
|
3
|
+
export type Trigger = {
|
|
4
|
+
kind: 'on';
|
|
5
|
+
event: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'done';
|
|
8
|
+
effect: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'failed';
|
|
11
|
+
effect: string;
|
|
12
|
+
error: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'after';
|
|
15
|
+
ms: number;
|
|
16
|
+
};
|
|
17
|
+
export declare class TransitionSite {
|
|
18
|
+
readonly feature: string;
|
|
19
|
+
readonly state: string;
|
|
20
|
+
readonly trigger: Trigger;
|
|
21
|
+
readonly index: number;
|
|
22
|
+
readonly transition: TransitionIR;
|
|
23
|
+
readonly envKey: string;
|
|
24
|
+
constructor(feature: string, state: string, trigger: Trigger, index: number, transition: TransitionIR);
|
|
25
|
+
get pointer(): string;
|
|
26
|
+
at(...tokens: (string | number)[]): At;
|
|
27
|
+
}
|
|
28
|
+
export declare const featurePointer: (id: string, ...tokens: (string | number)[]) => At;
|
|
29
|
+
export declare function transitionsOf(feature: FeatureIR): TransitionSite[];
|
|
30
|
+
export interface NodeSite {
|
|
31
|
+
node: ViewNode;
|
|
32
|
+
pointer: At;
|
|
33
|
+
visible: string[] | null;
|
|
34
|
+
env: Env;
|
|
35
|
+
}
|
|
36
|
+
export declare function walkView(ir: ProjectIR, feature: FeatureIR, viewId: string, view: ViewIR, visit: (site: NodeSite) => void): void;
|
|
37
|
+
//# sourceMappingURL=walk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAAE,EAEP,KAAK,SAAS,EAEd,KAAK,SAAS,EACd,KAAK,YAAY,EAEjB,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,eAAe,CAAA;AACtB,OAAO,EAAc,KAAK,GAAG,EAA6C,MAAM,UAAU,CAAA;AAI1F,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjC,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,YAAY,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAYpG;IAED,IAAI,OAAO,IAAI,MAAM,CAapB;IAED,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,CAErC;CACF;AAED,eAAO,MAAM,cAAc,OACpB,MAAM,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAG,EAET,CAAA;AAIvC,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,cAAc,EAAE,CA2BlE;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,EAAE,CAAA;IACX,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACxB,GAAG,EAAE,GAAG,CAAA;CACT;AAED,wBAAgB,QAAQ,CACtB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,QAmEhC"}
|
package/dist/walk.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { at, join, UNEXPECTED_ERROR_SCHEMA, } from '@hozu/core/ir';
|
|
2
|
+
import { contextEnv, effectSchemas, valueSchema } from './env.js';
|
|
3
|
+
import { resolveRef } from './resolve.js';
|
|
4
|
+
import { itemsOf } from './schema.js';
|
|
5
|
+
export class TransitionSite {
|
|
6
|
+
feature;
|
|
7
|
+
state;
|
|
8
|
+
trigger;
|
|
9
|
+
index;
|
|
10
|
+
transition;
|
|
11
|
+
envKey;
|
|
12
|
+
constructor(feature, state, trigger, index, transition) {
|
|
13
|
+
this.feature = feature;
|
|
14
|
+
this.state = state;
|
|
15
|
+
this.trigger = trigger;
|
|
16
|
+
this.index = index;
|
|
17
|
+
this.transition = transition;
|
|
18
|
+
this.envKey =
|
|
19
|
+
trigger.kind === 'on'
|
|
20
|
+
? `${feature}|on|${trigger.event}`
|
|
21
|
+
: trigger.kind === 'after'
|
|
22
|
+
? `${feature}|after`
|
|
23
|
+
: `${feature}|${trigger.kind}|${trigger.effect}|${trigger.kind === 'failed' ? trigger.error : ''}`;
|
|
24
|
+
}
|
|
25
|
+
get pointer() {
|
|
26
|
+
const base = join('', 'features', this.feature, 'machine', 'states', this.state);
|
|
27
|
+
const t = this.trigger;
|
|
28
|
+
switch (t.kind) {
|
|
29
|
+
case 'on':
|
|
30
|
+
return join(base, 'on', t.event, this.index);
|
|
31
|
+
case 'done':
|
|
32
|
+
return join(base, 'invoke', 'done', this.index);
|
|
33
|
+
case 'failed':
|
|
34
|
+
return join(base, 'invoke', 'failed', t.error, this.index);
|
|
35
|
+
default:
|
|
36
|
+
return join(base, 'after', this.index, 'transition');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
at(...tokens) {
|
|
40
|
+
return () => join(this.pointer, ...tokens);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export const featurePointer = (id, ...tokens) => () => join('', 'features', id, ...tokens);
|
|
44
|
+
const cache = new WeakMap();
|
|
45
|
+
export function transitionsOf(feature) {
|
|
46
|
+
const hit = cache.get(feature);
|
|
47
|
+
if (hit)
|
|
48
|
+
return hit;
|
|
49
|
+
const sites = [];
|
|
50
|
+
const id = feature.id;
|
|
51
|
+
for (const [state, s] of Object.entries(feature.machine?.states ?? {})) {
|
|
52
|
+
for (const [event, list] of Object.entries(s.on)) {
|
|
53
|
+
const trigger = { kind: 'on', event };
|
|
54
|
+
for (let i = 0; i < list.length; i++)
|
|
55
|
+
sites.push(new TransitionSite(id, state, trigger, i, list[i]));
|
|
56
|
+
}
|
|
57
|
+
if (s.invoke) {
|
|
58
|
+
const effect = s.invoke.effect;
|
|
59
|
+
const done = { kind: 'done', effect };
|
|
60
|
+
for (let i = 0; i < s.invoke.done.length; i++)
|
|
61
|
+
sites.push(new TransitionSite(id, state, done, i, s.invoke.done[i]));
|
|
62
|
+
for (const [error, list] of Object.entries(s.invoke.failed)) {
|
|
63
|
+
const trigger = { kind: 'failed', effect, error };
|
|
64
|
+
for (let i = 0; i < list.length; i++)
|
|
65
|
+
sites.push(new TransitionSite(id, state, trigger, i, list[i]));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
for (let i = 0; i < s.after.length; i++) {
|
|
69
|
+
const a = s.after[i];
|
|
70
|
+
sites.push(new TransitionSite(id, state, { kind: 'after', ms: a.ms }, i, a.transition));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
cache.set(feature, sites);
|
|
74
|
+
return sites;
|
|
75
|
+
}
|
|
76
|
+
export function walkView(ir, feature, viewId, view, visit) {
|
|
77
|
+
const bound = view.machine === feature.id && feature.machine !== null;
|
|
78
|
+
const root = bound ? contextEnv(feature) : { feature, sources: {}, bindings: [] };
|
|
79
|
+
const base = {
|
|
80
|
+
...root,
|
|
81
|
+
sources: {
|
|
82
|
+
...root.sources,
|
|
83
|
+
locale: { type: 'string' },
|
|
84
|
+
alternate: null,
|
|
85
|
+
env: ir.env?.public ?? { type: 'object', properties: {}, additionalProperties: false },
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const env = view.route && view.route !== '?'
|
|
89
|
+
? {
|
|
90
|
+
...base,
|
|
91
|
+
sources: {
|
|
92
|
+
...base.sources,
|
|
93
|
+
params: ir.routes[view.route]?.params ?? null,
|
|
94
|
+
search: ir.routes[view.route]?.search ?? null,
|
|
95
|
+
},
|
|
96
|
+
}
|
|
97
|
+
: base;
|
|
98
|
+
const all = bound ? Object.keys(feature.machine.states) : null;
|
|
99
|
+
const walk = (node, pointer, visible, env) => {
|
|
100
|
+
visit({ node, pointer, visible, env });
|
|
101
|
+
const bind = (schema) => ({
|
|
102
|
+
...env,
|
|
103
|
+
bindings: [...env.bindings, schema],
|
|
104
|
+
});
|
|
105
|
+
switch (node.kind) {
|
|
106
|
+
case 'el':
|
|
107
|
+
case 'widget':
|
|
108
|
+
node.children.forEach((c, i) => walk(c, at(pointer, 'children', i), visible, env));
|
|
109
|
+
return;
|
|
110
|
+
case 'if':
|
|
111
|
+
node.ifTrue.forEach((c, i) => walk(c, at(pointer, 'ifTrue', i), visible, env));
|
|
112
|
+
node.ifFalse.forEach((c, i) => walk(c, at(pointer, 'ifFalse', i), visible, env));
|
|
113
|
+
return;
|
|
114
|
+
case 'when': {
|
|
115
|
+
const narrowed = visible ? visible.filter((s) => node.states.includes(s)) : null;
|
|
116
|
+
node.children.forEach((c, i) => walk(c, at(pointer, 'children', i), narrowed, env));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
case 'each':
|
|
120
|
+
walk(node.item, at(pointer, 'item'), visible, bind(itemsOf(valueSchema(ir, env, node.source))));
|
|
121
|
+
return;
|
|
122
|
+
case 'query': {
|
|
123
|
+
const q = resolveRef(ir, node.query, 'query');
|
|
124
|
+
const schemas = q ? effectSchemas(ir, node.query) : null;
|
|
125
|
+
walk(node.ready, at(pointer, 'ready'), visible, bind(schemas?.output ?? null));
|
|
126
|
+
if (node.pending)
|
|
127
|
+
walk(node.pending, at(pointer, 'pending'), visible, env);
|
|
128
|
+
for (const [name, child] of Object.entries(node.failed))
|
|
129
|
+
walk(child, at(pointer, 'failed', name), visible, bind(schemas ? schemas.error(name) : name === 'Unexpected' ? UNEXPECTED_ERROR_SCHEMA : null));
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
default:
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
walk(view.root, featurePointer(feature.id, 'views', viewId, 'root'), all, env);
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=walk.js.map
|
package/dist/walk.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk.js","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hozu/validator",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Hozu validator: structured diagnostics with fixes, contract runner and behaviour lock",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"hozu",
|
|
7
|
+
"framework",
|
|
8
|
+
"ai",
|
|
9
|
+
"agents",
|
|
10
|
+
"ssr",
|
|
11
|
+
"islands",
|
|
12
|
+
"typescript"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/olevatorr/Hozu/tree/main/packages/validator#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/olevatorr/Hozu/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/olevatorr/Hozu.git",
|
|
21
|
+
"directory": "packages/validator"
|
|
22
|
+
},
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"author": "olevatorr",
|
|
25
|
+
"type": "module",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist"
|
|
34
|
+
],
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=22.18"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@hozu/core": "0.1.0",
|
|
43
|
+
"@hozu/compiler": "0.1.0"
|
|
44
|
+
},
|
|
45
|
+
"sideEffects": false
|
|
46
|
+
}
|