@hozu/validator 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 (114) hide show
  1. package/dist/context.d.ts +10 -0
  2. package/dist/context.d.ts.map +1 -1
  3. package/dist/context.js +2 -0
  4. package/dist/context.js.map +1 -1
  5. package/dist/contracts/lock.d.ts +14 -17
  6. package/dist/contracts/lock.d.ts.map +1 -1
  7. package/dist/contracts/lock.js +52 -50
  8. package/dist/contracts/lock.js.map +1 -1
  9. package/dist/contracts/mechanical.d.ts +8 -2
  10. package/dist/contracts/mechanical.d.ts.map +1 -1
  11. package/dist/contracts/mechanical.js +98 -32
  12. package/dist/contracts/mechanical.js.map +1 -1
  13. package/dist/contracts/record.d.ts +45 -0
  14. package/dist/contracts/record.d.ts.map +1 -0
  15. package/dist/contracts/record.js +79 -0
  16. package/dist/contracts/record.js.map +1 -0
  17. package/dist/contracts/run.d.ts +2 -1
  18. package/dist/contracts/run.d.ts.map +1 -1
  19. package/dist/contracts/run.js +32 -4
  20. package/dist/contracts/run.js.map +1 -1
  21. package/dist/contracts/verify.d.ts +2 -2
  22. package/dist/contracts/verify.d.ts.map +1 -1
  23. package/dist/contracts/verify.js +185 -34
  24. package/dist/contracts/verify.js.map +1 -1
  25. package/dist/env.d.ts.map +1 -1
  26. package/dist/env.js +2 -0
  27. package/dist/env.js.map +1 -1
  28. package/dist/index.d.ts +13 -5
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +22 -7
  31. package/dist/index.js.map +1 -1
  32. package/dist/resolve.d.ts +2 -2
  33. package/dist/resolve.d.ts.map +1 -1
  34. package/dist/resolve.js +1 -1
  35. package/dist/resolve.js.map +1 -1
  36. package/dist/rules/classes.js +1 -1
  37. package/dist/rules/classes.js.map +1 -1
  38. package/dist/rules/clients.d.ts +3 -0
  39. package/dist/rules/clients.d.ts.map +1 -0
  40. package/dist/rules/clients.js +33 -0
  41. package/dist/rules/clients.js.map +1 -0
  42. package/dist/rules/data.d.ts +2 -0
  43. package/dist/rules/data.d.ts.map +1 -1
  44. package/dist/rules/data.js +39 -4
  45. package/dist/rules/data.js.map +1 -1
  46. package/dist/rules/dom.js +2 -2
  47. package/dist/rules/dom.js.map +1 -1
  48. package/dist/rules/endpoints.d.ts +1 -0
  49. package/dist/rules/endpoints.d.ts.map +1 -1
  50. package/dist/rules/endpoints.js +140 -4
  51. package/dist/rules/endpoints.js.map +1 -1
  52. package/dist/rules/events.js +1 -1
  53. package/dist/rules/events.js.map +1 -1
  54. package/dist/rules/form-model.d.ts +31 -0
  55. package/dist/rules/form-model.d.ts.map +1 -0
  56. package/dist/rules/form-model.js +114 -0
  57. package/dist/rules/form-model.js.map +1 -0
  58. package/dist/rules/forms.d.ts +5 -0
  59. package/dist/rules/forms.d.ts.map +1 -1
  60. package/dist/rules/forms.js +141 -4
  61. package/dist/rules/forms.js.map +1 -1
  62. package/dist/rules/html.js +1 -1
  63. package/dist/rules/html.js.map +1 -1
  64. package/dist/rules/http.d.ts.map +1 -1
  65. package/dist/rules/http.js +14 -4
  66. package/dist/rules/http.js.map +1 -1
  67. package/dist/rules/i18n.d.ts.map +1 -1
  68. package/dist/rules/i18n.js +16 -1
  69. package/dist/rules/i18n.js.map +1 -1
  70. package/dist/rules/links.d.ts.map +1 -1
  71. package/dist/rules/links.js +61 -6
  72. package/dist/rules/links.js.map +1 -1
  73. package/dist/rules/literals.d.ts.map +1 -1
  74. package/dist/rules/literals.js +3 -1
  75. package/dist/rules/literals.js.map +1 -1
  76. package/dist/rules/pages.d.ts +4 -0
  77. package/dist/rules/pages.d.ts.map +1 -0
  78. package/dist/rules/pages.js +97 -0
  79. package/dist/rules/pages.js.map +1 -0
  80. package/dist/rules/paths.d.ts.map +1 -1
  81. package/dist/rules/paths.js +26 -1
  82. package/dist/rules/paths.js.map +1 -1
  83. package/dist/rules/refs.d.ts.map +1 -1
  84. package/dist/rules/refs.js +0 -4
  85. package/dist/rules/refs.js.map +1 -1
  86. package/dist/rules/routes.d.ts +2 -0
  87. package/dist/rules/routes.d.ts.map +1 -1
  88. package/dist/rules/routes.js +5 -3
  89. package/dist/rules/routes.js.map +1 -1
  90. package/dist/rules/styles.d.ts +10 -0
  91. package/dist/rules/styles.d.ts.map +1 -0
  92. package/dist/rules/styles.js +334 -0
  93. package/dist/rules/styles.js.map +1 -0
  94. package/dist/rules/text.d.ts.map +1 -1
  95. package/dist/rules/text.js +100 -42
  96. package/dist/rules/text.js.map +1 -1
  97. package/dist/schema.d.ts.map +1 -1
  98. package/dist/schema.js +3 -1
  99. package/dist/schema.js.map +1 -1
  100. package/dist/sites.d.ts +4 -2
  101. package/dist/sites.d.ts.map +1 -1
  102. package/dist/sites.js +10 -8
  103. package/dist/sites.js.map +1 -1
  104. package/dist/walk.js +1 -1
  105. package/dist/walk.js.map +1 -1
  106. package/package.json +3 -3
  107. package/dist/truthiness-rule.d.ts +0 -3
  108. package/dist/truthiness-rule.d.ts.map +0 -1
  109. package/dist/truthiness-rule.js +0 -21
  110. package/dist/truthiness-rule.js.map +0 -1
  111. package/dist/truthiness.d.ts +0 -8
  112. package/dist/truthiness.d.ts.map +0 -1
  113. package/dist/truthiness.js +0 -268
  114. package/dist/truthiness.js.map +0 -1
@@ -0,0 +1,334 @@
1
+ import { at, resolveAt, } from '@hozu/core/ir';
2
+ import { walkView } from '../walk.js';
3
+ const tokens = (value) => (value ?? '').split(/\s+/).filter(Boolean);
4
+ export const classVariant = (c) => {
5
+ let depth = 0;
6
+ let cut = -1;
7
+ for (let i = 0; i < c.length; i++) {
8
+ if (c[i] === '[' || c[i] === '(')
9
+ depth++;
10
+ else if (c[i] === ']' || c[i] === ')')
11
+ depth--;
12
+ else if (c[i] === ':' && depth === 0)
13
+ cut = i;
14
+ }
15
+ return cut < 0 ? '' : c.slice(0, cut + 1);
16
+ };
17
+ const leading = (c) => c.slice(classVariant(c).length).startsWith('!');
18
+ export const important = (c) => c.endsWith('!') || leading(c);
19
+ const withoutBang = (c) => c.endsWith('!') ? c.slice(0, -1) : leading(c) ? classVariant(c) + c.slice(classVariant(c).length + 1) : c;
20
+ const trailingBang = (c) => `${withoutBang(c)}!`;
21
+ const self = (key) => !key.includes(' ');
22
+ const MARGIN = /^margin(-(top|right|bottom|left|inline|block)(-(start|end))?)?$/;
23
+ const INHERITED = new Set([
24
+ 'color',
25
+ 'cursor',
26
+ 'direction',
27
+ 'font',
28
+ 'font-family',
29
+ 'font-feature-settings',
30
+ 'font-kerning',
31
+ 'font-size',
32
+ 'font-size-adjust',
33
+ 'font-stretch',
34
+ 'font-style',
35
+ 'font-variant',
36
+ 'font-variant-caps',
37
+ 'font-variant-east-asian',
38
+ 'font-variant-ligatures',
39
+ 'font-variant-numeric',
40
+ 'font-variation-settings',
41
+ 'font-weight',
42
+ 'hyphens',
43
+ 'letter-spacing',
44
+ 'line-height',
45
+ 'list-style',
46
+ 'list-style-image',
47
+ 'list-style-position',
48
+ 'list-style-type',
49
+ 'overflow-wrap',
50
+ 'tab-size',
51
+ 'text-align',
52
+ 'text-align-last',
53
+ 'text-indent',
54
+ 'text-shadow',
55
+ 'text-transform',
56
+ 'text-wrap',
57
+ 'visibility',
58
+ 'white-space',
59
+ 'word-break',
60
+ 'word-spacing',
61
+ '-webkit-font-smoothing',
62
+ '-moz-osx-font-smoothing',
63
+ ]);
64
+ function sameProperties(a, b) {
65
+ if (a.variant !== b.variant || a.important !== b.important)
66
+ return null;
67
+ const keys = Object.keys(a.properties);
68
+ if (!keys.length || keys.length !== Object.keys(b.properties).length)
69
+ return null;
70
+ if (!keys.every((k) => k in b.properties))
71
+ return null;
72
+ const differ = keys.filter((k) => a.properties[k] !== b.properties[k]);
73
+ return differ.length ? differ.sort() : null;
74
+ }
75
+ const guardOf = (v) => 'test' in v ? v.test : { op: 'fn', fn: '%truthy', arg: { object: { v } } };
76
+ const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
77
+ /** `c` / `!c`, `x === v` / `x !== v`, and `x === a` / `x === b` with different literals (ADR 0045 F). */
78
+ export function exclusive(x, y) {
79
+ const a = guardOf(x);
80
+ const b = guardOf(y);
81
+ if (a.op === 'not' && same(a.arg, b))
82
+ return true;
83
+ if (b.op === 'not' && same(b.arg, a))
84
+ return true;
85
+ if ((a.op !== 'eq' && a.op !== 'neq') || (b.op !== 'eq' && b.op !== 'neq'))
86
+ return false;
87
+ if (a.op !== b.op)
88
+ return ((same(a.left, b.left) && same(a.right, b.right)) || (same(a.left, b.right) && same(a.right, b.left)));
89
+ if (a.op !== 'eq')
90
+ return false;
91
+ const split = (g) => 'literal' in g.right ? [g.left, g.right] : 'literal' in g.left ? [g.right, g.left] : null;
92
+ const sa = split(a);
93
+ const sb = split(b);
94
+ return sa !== null && sb !== null && same(sa[0], sb[0]) && !same(sa[1], sb[1]);
95
+ }
96
+ const complement = (v) => {
97
+ const g = guardOf(v);
98
+ if (g.op === 'not')
99
+ return 'test' in v ? { test: g.arg } : v;
100
+ if (g.op === 'eq' || g.op === 'neq')
101
+ return { test: { ...g, op: g.op === 'eq' ? 'neq' : 'eq' } };
102
+ return { test: { op: 'not', arg: g } };
103
+ };
104
+ const styled = (n) => n.kind === 'el' || n.kind === 'component';
105
+ function eachStyled(ctx, visit) {
106
+ for (const f of Object.values(ctx.ir.features))
107
+ for (const [vid, view] of Object.entries(f.views))
108
+ walkView(ctx.ir, f, vid, view, ({ node, pointer }) => {
109
+ if (styled(node))
110
+ visit(f.id, node, pointer);
111
+ });
112
+ }
113
+ export function classConflicts(ctx) {
114
+ const styles = ctx.classes;
115
+ if (!styles?.size)
116
+ return;
117
+ eachStyled(ctx, (feature, node, pointer) => {
118
+ const items = [
119
+ ...tokens(node.class).map((cls) => ({ cls, key: null })),
120
+ ...Object.keys(node.toggle).flatMap((key) => tokens(key).map((cls) => ({ cls, key }))),
121
+ ];
122
+ const found = [];
123
+ const moved = new Map();
124
+ for (let i = 0; i < items.length; i++)
125
+ for (let j = i + 1; j < items.length; j++) {
126
+ const a = items[i];
127
+ const b = items[j];
128
+ if ((a.key !== null && a.key === b.key) || a.cls === b.cls)
129
+ continue;
130
+ const sa = styles.get(a.cls);
131
+ const sb = styles.get(b.cls);
132
+ const props = sa && sb ? sameProperties(sa, sb) : null;
133
+ if (!props)
134
+ continue;
135
+ if (a.key !== null && b.key !== null && exclusive(node.toggle[a.key], node.toggle[b.key]))
136
+ continue;
137
+ found.push([a, b, props]);
138
+ if ((a.key === null) !== (b.key === null)) {
139
+ const [base, toggle] = a.key === null ? [a, b] : [b, a];
140
+ const set = moved.get(toggle.key) ?? new Set();
141
+ set.add(base.cls);
142
+ moved.set(toggle.key, set);
143
+ }
144
+ }
145
+ for (const [a, b, props] of found) {
146
+ const list = props.join(', ');
147
+ if (a.key === null && b.key === null) {
148
+ const [loser, winner] = styles.get(a.cls).order < styles.get(b.cls).order ? [a, b] : [b, a];
149
+ const rest = tokens(node.class).filter((c) => c !== loser.cls);
150
+ ctx.report('HZ079', feature, at(pointer, 'class'), `Classes "${a.cls}" and "${b.cls}" both set ${list}; "${winner.cls}" always wins`, 'Tailwind emits utilities that set the same properties in its own order, not in the order of class (ADR 0045 F), so one of them never applies.', {
151
+ summary: `Remove "${loser.cls}", which never applies`,
152
+ snippet: null,
153
+ patch: [
154
+ {
155
+ op: 'replace',
156
+ path: resolveAt(at(pointer, 'class')),
157
+ value: rest.length ? rest.join(' ') : null,
158
+ },
159
+ ],
160
+ });
161
+ }
162
+ else if (a.key === null || b.key === null) {
163
+ const [base, toggle] = a.key === null ? [a, b] : [b, a];
164
+ const key = toggle.key;
165
+ const bases = [...moved.get(key)];
166
+ const rest = tokens(node.class).filter((c) => !bases.includes(c));
167
+ const target = bases.join(' ');
168
+ const patch = [
169
+ {
170
+ op: 'replace',
171
+ path: resolveAt(at(pointer, 'class')),
172
+ value: rest.length ? rest.join(' ') : null,
173
+ },
174
+ ...(target in node.toggle
175
+ ? []
176
+ : [
177
+ {
178
+ op: 'add',
179
+ path: resolveAt(at(pointer, 'toggle', target)),
180
+ value: complement(node.toggle[key]),
181
+ },
182
+ ]),
183
+ ];
184
+ ctx.report('HZ079', feature, at(pointer, 'class'), `Class "${base.cls}" and toggle class "${toggle.cls}" both set ${list}`, `Tailwind emits utilities that set the same properties in its own order (ADR 0045 F), so "${styles.get(base.cls).order > styles.get(toggle.cls).order ? `${base.cls}" hides the toggle` : `${toggle.cls}" wins only by its name`}.`, {
185
+ summary: `Move "${target}" into the complementary toggle`,
186
+ snippet: `toggle: { '${key}': c, '${target}': !c }, or style the state through the attribute that announces it, e.g. aria-selected:${withoutBang(toggle.cls).slice(classVariant(toggle.cls).length)}`,
187
+ patch: target in node.toggle ? null : patch,
188
+ });
189
+ }
190
+ else
191
+ ctx.report('HZ079', feature, at(pointer, 'toggle', a.key), `Toggle classes "${a.cls}" and "${b.cls}" both set ${list}, and their guards can hold together`, 'Tailwind emits utilities that set the same properties in its own order (ADR 0045 F); only provably exclusive guards (c / !c, x === v / x !== v, x === a / x === b) may set the same property.', {
192
+ summary: 'Make the guards exclusive, or style the state through its attribute',
193
+ snippet: `toggle: { '${a.key}': x === 'a', '${b.key}': x === 'b' }`,
194
+ patch: null,
195
+ });
196
+ }
197
+ });
198
+ }
199
+ const classPatch = (node, pointer, from, to) => [
200
+ {
201
+ op: 'replace',
202
+ path: resolveAt(at(pointer, 'class')),
203
+ value: tokens(node.class)
204
+ .map((c) => (c === from ? to : c))
205
+ .join(' '),
206
+ },
207
+ ];
208
+ export function leadingImportant(ctx) {
209
+ const fix = (c, patch) => ({
210
+ summary: `Write the important modifier last: "${trailingBang(c)}"`,
211
+ snippet: patch ? null : `class: '${trailingBang(c)}'`,
212
+ patch,
213
+ });
214
+ const report = (feature, p, c, patch) => ctx.report('HZ074', feature, p, `"${c}" puts the important modifier first`, 'Hozu spells the important modifier as a trailing ! (bg-red-500!); the leading form is Tailwind v3 syntax (ADR 0045 E).', fix(c, patch));
215
+ eachStyled(ctx, (feature, node, pointer) => {
216
+ for (const c of tokens(node.class))
217
+ if (leading(c))
218
+ report(feature, at(pointer, 'class'), c, classPatch(node, pointer, c, trailingBang(c)));
219
+ for (const key of Object.keys(node.toggle))
220
+ for (const c of tokens(key))
221
+ if (leading(c)) {
222
+ const fixed = tokens(key)
223
+ .map((t) => (t === c ? trailingBang(t) : t))
224
+ .join(' ');
225
+ report(feature, at(pointer, 'toggle', key), c, [
226
+ { op: 'add', path: resolveAt(at(pointer, 'toggle', fixed)), value: node.toggle[key] },
227
+ { op: 'remove', path: resolveAt(at(pointer, 'toggle', key)) },
228
+ ]);
229
+ }
230
+ });
231
+ for (const [feature, owner, name, component, p] of components(ctx)) {
232
+ component.owned.forEach((c, i) => {
233
+ if (leading(c))
234
+ report(feature, `${p}/owned/${i}`, c, [
235
+ { op: 'replace', path: `${p}/owned/${i}`, value: trailingBang(c) },
236
+ ]);
237
+ });
238
+ for (const c of inner(ctx, `${owner}.${name}`))
239
+ if (leading(c))
240
+ report(feature, p, c, null);
241
+ }
242
+ }
243
+ function components(ctx) {
244
+ const out = [];
245
+ for (const [k, kit] of Object.entries(ctx.ir.kits))
246
+ for (const [name, c] of Object.entries(kit.components))
247
+ out.push([k, k, name, c, `/kits/${k}/components/${name}`]);
248
+ for (const f of Object.values(ctx.ir.features))
249
+ for (const [name, c] of Object.entries(f.components))
250
+ out.push([f.id, f.id, name, c, `/features/${f.id}/components/${name}`]);
251
+ return out;
252
+ }
253
+ const inner = (ctx, id) => ctx.components?.[id]?.inner ?? [];
254
+ function componentOf(ctx, id) {
255
+ const [owner, name] = id.split('.');
256
+ return ctx.ir.kits[owner]?.components[name] ?? ctx.ir.features[owner]?.components[name] ?? null;
257
+ }
258
+ const VARIANT_SNIPPET = (name, c) => `styles: tv({ variants: { tone: { custom: '${withoutBang(c)}' } } }), then ui.use(${name}, { variant: { tone: 'custom' } })`;
259
+ export function componentStyles(ctx) {
260
+ const styles = ctx.classes;
261
+ const propsOf = (c) => Object.keys(styles?.get(c)?.properties ?? {});
262
+ for (const [feature, owner, name, component, p] of components(ctx)) {
263
+ const id = `${owner}.${name}`;
264
+ component.owned.forEach((c, i) => {
265
+ if (important(c))
266
+ ctx.report('HZ073', feature, `${p}/owned/${i}`, `${id} uses the important class "${c}"`, 'Only a call site may use !: two importants would compare by Tailwind order again (ADR 0045 E).', {
267
+ summary: `Remove the ! from "${c}"; declare a variant for a different look`,
268
+ snippet: VARIANT_SNIPPET(id, c),
269
+ patch: [{ op: 'replace', path: `${p}/owned/${i}`, value: withoutBang(c) }],
270
+ });
271
+ const margins = propsOf(c).filter((k) => self(k) && MARGIN.test(k));
272
+ if (margins.length)
273
+ ctx.report('HZ076', feature, `${p}/owned/${i}`, `${id} sets its own outer margin with "${c}"`, `The root's margin (${margins.join(', ')}) is outer spacing, which belongs to the caller (ADR 0045 E).`, {
274
+ summary: `Remove "${c}" from the component and set the spacing at the use`,
275
+ snippet: `ui.use(${name}, { class: '${c}' })`,
276
+ patch: [{ op: 'remove', path: `${p}/owned/${i}` }],
277
+ });
278
+ });
279
+ for (const c of inner(ctx, id))
280
+ if (important(c))
281
+ ctx.report('HZ073', feature, p, `The render of ${id} uses the important class "${c}"`, 'Only a call site may use !: two importants would compare by Tailwind order again (ADR 0045 E).', {
282
+ summary: `Remove the ! from "${c}" in the render`,
283
+ snippet: `class: '${withoutBang(c)}'`,
284
+ patch: null,
285
+ });
286
+ }
287
+ eachStyled(ctx, (feature, node, pointer) => {
288
+ const use = node.kind === 'el' ? node.use : undefined;
289
+ if (!use)
290
+ return;
291
+ const component = componentOf(ctx, use.component);
292
+ if (!component)
293
+ return;
294
+ const owned = new Set(component.owned.flatMap(propsOf));
295
+ const cp = at(pointer, 'class');
296
+ for (const c of use.added) {
297
+ const props = propsOf(c);
298
+ const hits = props.filter((k) => owned.has(k));
299
+ if (!component.extend || (hits.length && !important(c))) {
300
+ ctx.report('HZ072', feature, cp, component.extend
301
+ ? `"${c}" sets ${hits.join(', ')}, which ${use.component} owns`
302
+ : `${use.component} takes no caller classes, and "${c}" is one`, component.extend
303
+ ? "A component owns every property its root's classes set, in every variant and state; a caller adds only classes that set none of them, or overrides one with a trailing ! (ADR 0045 E)."
304
+ : 'The component is declared with extend: false, so a caller adds no class, ! included (ADR 0045 E).', {
305
+ summary: component.extend
306
+ ? `Declare a variant in ${use.component} for this look; for a one-off use, write "${trailingBang(c)}"`
307
+ : `Declare a variant in ${use.component} for this look`,
308
+ snippet: component.extend
309
+ ? `${VARIANT_SNIPPET(use.component, c)}\nclass: '${trailingBang(c)}'`
310
+ : VARIANT_SNIPPET(use.component, c),
311
+ patch: null,
312
+ });
313
+ continue;
314
+ }
315
+ if (styles && props.length && !hits.length && important(c))
316
+ ctx.report('HZ077', feature, cp, `"${c}" overrides nothing: ${use.component} does not own ${props.join(', ')}`, 'A trailing ! is needed only for a property the component owns (ADR 0045 E).', {
317
+ summary: `Write "${withoutBang(c)}"`,
318
+ snippet: null,
319
+ patch: classPatch(node, pointer, c, withoutBang(c)),
320
+ });
321
+ }
322
+ const shadows = new Set(inner(ctx, use.component).flatMap((c) => styles?.get(c)?.variant === '' ? propsOf(c).filter((k) => self(k) && INHERITED.has(k)) : []));
323
+ for (const c of use.added) {
324
+ const hit = propsOf(c).filter((k) => self(k) && shadows.has(k));
325
+ if (hit.length)
326
+ ctx.report('HZ075', feature, cp, `"${c}" sets ${hit.join(', ')} on ${use.component}, but an element inside it sets ${hit.length === 1 ? 'it' : 'them'} too`, 'An inherited property set on the root does not reach an element that sets its own value (ADR 0045 E).', {
327
+ summary: `Declare a variant in ${use.component} that styles the inner element`,
328
+ snippet: VARIANT_SNIPPET(use.component, c),
329
+ patch: null,
330
+ });
331
+ }
332
+ });
333
+ }
334
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/rules/styles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/rules/text.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAmFxC,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QA+D/B"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/rules/text.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAkHxC,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QA4G/B"}
@@ -1,7 +1,9 @@
1
- import { at, } from '@hozu/core/ir';
1
+ import { at, resolveAt, } from '@hozu/core/ir';
2
2
  import { eventSchema } from '../env.js';
3
- import { resolvePath } from '../schema.js';
3
+ import { itemsOf, resolvePath } from '../schema.js';
4
4
  import { walkView } from '../walk.js';
5
+ import { formsOf } from './form-model.js';
6
+ import { schemaPointer } from './forms.js';
5
7
  const obj = (v) => v && typeof v === 'object' && !Array.isArray(v) ? v : null;
6
8
  function choices(s) {
7
9
  if ('const' in s)
@@ -64,38 +66,57 @@ function optionsOf(control) {
64
66
  });
65
67
  return { values, fixed };
66
68
  }
69
+ const nullable = (s) => {
70
+ const t = s.type;
71
+ if (t === 'null' || (Array.isArray(t) && t.includes('null')))
72
+ return true;
73
+ return ['anyOf', 'oneOf'].some((k) => Array.isArray(s[k]) &&
74
+ s[k].some((v) => {
75
+ const o = obj(v);
76
+ return o !== null && nullable(o);
77
+ }));
78
+ };
67
79
  function namedChoices(form, name) {
68
- const values = [];
69
- let found = false;
70
- let fixed = true;
71
- descendants(form, (el) => {
72
- if (literal(el.attrs.name) !== name)
73
- return;
74
- found = true;
80
+ const out = { values: [], fixed: true, found: false, unnamed: false };
81
+ if (!form)
82
+ return out;
83
+ const submits = form.controls.filter((c) => c.submit);
84
+ for (const c of form.controls) {
85
+ if (c.name !== name)
86
+ continue;
87
+ out.found = true;
88
+ const el = c.node;
75
89
  if (el.tag === 'select') {
76
90
  const o = optionsOf(el);
77
- values.push(...o.values);
78
- fixed &&= o.fixed;
91
+ out.values.push(...o.values);
92
+ out.fixed &&= o.fixed;
79
93
  }
80
- else if (el.tag === 'input' && literal(el.attrs.type) === 'radio') {
81
- const v = literal(el.attrs.value);
94
+ else if (c.radio || c.submit || (el.tag === 'input' && literal(el.attrs.type) === 'checkbox')) {
95
+ const v = literal(el.attrs.value) ?? (c.submit ? null : el.attrs.value === undefined ? 'on' : null);
82
96
  if (v === null)
83
- fixed = false;
97
+ out.fixed = false;
84
98
  else
85
- values.push(v);
99
+ out.values.push(v);
86
100
  }
87
101
  else
88
- fixed = false;
89
- });
90
- return { values, fixed, found };
102
+ out.fixed = false;
103
+ }
104
+ out.unnamed =
105
+ submits.some((c) => c.name === name) &&
106
+ submits.some((c) => c.name !== name || literal(c.node.attrs.value) === null);
107
+ return out;
91
108
  }
109
+ const nullablePatch = (path, schema) => path === null ? null : [{ op: 'replace', path, value: { anyOf: [schema, { type: 'null' }] } }];
110
+ const quoted = (xs) => xs.map((x) => `"${x}"`).join(', ');
92
111
  export function domText(ctx) {
93
112
  const { ir } = ctx;
94
- for (const f of Object.values(ir.features))
113
+ for (const f of Object.values(ir.features)) {
114
+ const forms = formsOf(f);
95
115
  for (const [vid, view] of Object.entries(f.views))
96
116
  walkView(ir, f, vid, view, ({ node, pointer }) => {
97
117
  if (node.kind !== 'el')
98
118
  return;
119
+ const form = forms.find((m) => m.node === node);
99
120
  for (const [dom, send] of Object.entries(node.on)) {
100
121
  const root = eventSchema(ir, send.event);
101
122
  const visit = (v, path, p) => {
@@ -104,45 +125,82 @@ export function domText(ctx) {
104
125
  visit(x, [...path, k], at(p, 'object', k));
105
126
  return;
106
127
  }
107
- if (!('ref' in v) || v.ref !== 'dom' || (v.path[0] !== 'value' && v.path[0] !== 'form'))
128
+ if (!('ref' in v) || v.ref !== 'dom')
129
+ return;
130
+ const kindOfRead = v.path[0];
131
+ if (kindOfRead !== 'value' && kindOfRead !== 'form' && kindOfRead !== 'formAll')
108
132
  return;
109
133
  const r = resolvePath(root, path);
110
- const schema = r.ok ? r.schema : null;
111
- if (!schema)
134
+ const resolved = r.ok ? r.schema : null;
135
+ const schema = kindOfRead === 'formAll' ? itemsOf(resolved) : resolved;
136
+ if (!schema || !resolved)
112
137
  return;
113
138
  const kind = kindOf(schema);
114
139
  if (kind === 'text')
115
140
  return;
141
+ const name = v.path[1] ?? '';
116
142
  const field = path.join('.') || 'payload';
117
- const source = v.path[0] === 'form' ? `ui.dom.form('${v.path[1]}')` : 'ui.dom.value';
118
- const report = (message, cause, summary) => ctx.report('HZ033', f.id, p, message, cause, { summary, snippet: null, patch: null });
119
- if (kind === 'number') {
120
- report(`${source} is text, but ${send.event}.${field} is a number`, 'DOM values are strings; a number field would receive text.', 'Send ui.dom.valueAsNumber from the input’s own event instead');
121
- return;
122
- }
123
- if (kind === 'boolean') {
124
- report(`${source} is text, but ${send.event}.${field} is a boolean`, 'DOM values are strings; a boolean field would receive text.', 'Send ui.dom.checked instead');
143
+ const source = kindOfRead === 'value' ? 'ui.dom.value' : `ui.dom.${kindOfRead}('${name}')`;
144
+ const report = (message, cause, summary, patch = null) => ctx.report('HZ033', f.id, p, message, cause, { summary, snippet: null, patch });
145
+ if (kind === 'number' || kind === 'boolean') {
146
+ const noun = kind === 'number' ? 'a number' : 'a boolean';
147
+ if (kindOfRead === 'value') {
148
+ report(`${source} is text, but ${send.event}.${field} is ${noun}`, `DOM values are strings; ${noun} field would receive text.`, kind === 'number'
149
+ ? 'Send ui.dom.valueAsNumber from the input’s own event instead'
150
+ : 'Send ui.dom.checked from the input’s own change event instead');
151
+ return;
152
+ }
153
+ const at0 = resolveAt(at(p, 'path', 0));
154
+ const target = schemaPointer(ir, send.event, resolved);
155
+ report(`${source} is text, but ${send.event}.${field} is ${kindOfRead === 'formAll' ? `a list of ${kind}s` : noun}`, kind === 'number'
156
+ ? 'A form posts text; parse it where the input is checked, so both modes get the same Invalid.'
157
+ : 'A form posts a checkbox only while it is checked, and as the text "on".', kind === 'number'
158
+ ? `Send the text (z.string()) and parse it in the mutation input (z.coerce.number())`
159
+ : `Read ui.dom.formAll('${name}') into a list field (checked = ['on']), or use a literal radio pair`, target === null
160
+ ? null
161
+ : kind === 'number'
162
+ ? [
163
+ {
164
+ op: 'replace',
165
+ path: target,
166
+ value: kindOfRead === 'formAll'
167
+ ? { type: 'array', items: { type: 'string' } }
168
+ : { type: 'string' },
169
+ },
170
+ ]
171
+ : [
172
+ { op: 'replace', path: at0, value: 'formAll' },
173
+ { op: 'replace', path: target, value: { type: 'array', items: { type: 'string' } } },
174
+ ]);
125
175
  return;
126
176
  }
127
177
  const allowed = choices(schema);
128
- const found = v.path[0] === 'form'
129
- ? namedChoices(node, v.path[1] ?? '')
130
- : node.tag === 'select'
131
- ? { ...optionsOf(node), found: true }
132
- : { values: [], fixed: false, found: false };
178
+ const found = kindOfRead === 'value'
179
+ ? node.tag === 'select'
180
+ ? { ...optionsOf(node), found: true, unnamed: false }
181
+ : { values: [], fixed: false, found: false, unnamed: false }
182
+ : namedChoices(form, name);
133
183
  const outside = found.values.filter((x) => !allowed.includes(x));
134
- if (found.found && found.fixed && !outside.length && found.values.length)
184
+ const unnamed = found.unnamed && kindOfRead === 'form' && !nullable(resolved);
185
+ if (found.found && found.fixed && !outside.length && found.values.length && !unnamed)
135
186
  return;
136
- report(`${source} may not be one of ${allowed.map((x) => `"${x}"`).join(', ')} (${send.event}.${field})`, !found.found
137
- ? v.path[0] === 'form'
138
- ? `No select or radio group named "${v.path[1]}" was found in this form.`
139
- : 'Only a <select> guarantees its value; free text can be anything.'
187
+ report(`${source} may not be one of ${quoted(allowed)} (${send.event}.${field})`, !found.found
188
+ ? kindOfRead === 'value'
189
+ ? 'Only a <select> guarantees its value; free text can be anything.'
190
+ : `No select, radio group, checkbox or submit button named "${name}" was found in this form.`
140
191
  : outside.length
141
- ? `These option values are not allowed: ${outside.map((x) => `"${x}"`).join(', ')}.`
142
- : 'The options are not all literal, so they cannot be checked.', `Use a <select> (or radio inputs) whose literal option values are exactly ${allowed.map((x) => `"${x}"`).join(', ')}`);
192
+ ? `These option values are not allowed: ${quoted(outside)}.`
193
+ : unnamed
194
+ ? `Not every submit button of this form sends "${name}" with a literal value, so pressing another one, or Enter, posts no "${name}".`
195
+ : 'The options are not all literal, so they cannot be checked.', unnamed
196
+ ? `Give every submit button name: '${name}' and a literal value from ${quoted(allowed)}, or make ${send.event}.${field} nullable`
197
+ : `Use a <select>, radio inputs or submit buttons whose literal values are exactly ${quoted(allowed)}`, unnamed && !outside.length && found.fixed
198
+ ? nullablePatch(schemaPointer(ir, send.event, resolved), resolved)
199
+ : null);
143
200
  };
144
201
  visit(send.payload, [], at(pointer, 'on', dom, 'payload'));
145
202
  }
146
203
  });
204
+ }
147
205
  }
148
206
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/rules/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/rules/text.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAErD,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GACvC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAoDvE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAkBxF;AAcD,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAO/D;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAQD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,QAAQ,GAAG,IAAI,CA2C5F"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAErD,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;CAAE,GACvC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAqDvE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAkBxF;AAcD,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAO/D;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAQD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,QAAQ,GAAG,IAAI,CA2C5F"}