@hozu/validator 0.6.0 → 0.8.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/contracts/lock.d.ts +14 -17
- package/dist/contracts/lock.d.ts.map +1 -1
- package/dist/contracts/lock.js +52 -50
- package/dist/contracts/lock.js.map +1 -1
- package/dist/contracts/mechanical.d.ts +8 -2
- package/dist/contracts/mechanical.d.ts.map +1 -1
- package/dist/contracts/mechanical.js +98 -32
- package/dist/contracts/mechanical.js.map +1 -1
- package/dist/contracts/record.d.ts +45 -0
- package/dist/contracts/record.d.ts.map +1 -0
- package/dist/contracts/record.js +79 -0
- package/dist/contracts/record.js.map +1 -0
- package/dist/contracts/run.d.ts +2 -1
- package/dist/contracts/run.d.ts.map +1 -1
- package/dist/contracts/run.js +32 -4
- package/dist/contracts/run.js.map +1 -1
- package/dist/contracts/verify.d.ts +2 -2
- package/dist/contracts/verify.d.ts.map +1 -1
- package/dist/contracts/verify.js +186 -29
- package/dist/contracts/verify.js.map +1 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +2 -0
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/resolve.d.ts +2 -2
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +1 -0
- package/dist/resolve.js.map +1 -1
- package/dist/rules/data.d.ts +2 -0
- package/dist/rules/data.d.ts.map +1 -1
- package/dist/rules/data.js +39 -4
- package/dist/rules/data.js.map +1 -1
- package/dist/rules/endpoints.d.ts +1 -0
- package/dist/rules/endpoints.d.ts.map +1 -1
- package/dist/rules/endpoints.js +140 -4
- package/dist/rules/endpoints.js.map +1 -1
- package/dist/rules/form-model.d.ts +31 -0
- package/dist/rules/form-model.d.ts.map +1 -0
- package/dist/rules/form-model.js +114 -0
- package/dist/rules/form-model.js.map +1 -0
- package/dist/rules/forms.d.ts +5 -0
- package/dist/rules/forms.d.ts.map +1 -1
- package/dist/rules/forms.js +141 -4
- package/dist/rules/forms.js.map +1 -1
- package/dist/rules/http.d.ts.map +1 -1
- package/dist/rules/http.js +14 -4
- package/dist/rules/http.js.map +1 -1
- package/dist/rules/i18n.d.ts.map +1 -1
- package/dist/rules/i18n.js +15 -0
- package/dist/rules/i18n.js.map +1 -1
- package/dist/rules/links.d.ts.map +1 -1
- package/dist/rules/links.js +61 -6
- package/dist/rules/links.js.map +1 -1
- package/dist/rules/literals.d.ts.map +1 -1
- package/dist/rules/literals.js +2 -0
- package/dist/rules/literals.js.map +1 -1
- package/dist/rules/pages.d.ts +4 -0
- package/dist/rules/pages.d.ts.map +1 -0
- package/dist/rules/pages.js +97 -0
- package/dist/rules/pages.js.map +1 -0
- package/dist/rules/paths.d.ts.map +1 -1
- package/dist/rules/paths.js +25 -0
- package/dist/rules/paths.js.map +1 -1
- package/dist/rules/routes.d.ts +2 -0
- package/dist/rules/routes.d.ts.map +1 -1
- package/dist/rules/routes.js +5 -3
- package/dist/rules/routes.js.map +1 -1
- package/dist/rules/seed.d.ts +3 -0
- package/dist/rules/seed.d.ts.map +1 -0
- package/dist/rules/seed.js +29 -0
- package/dist/rules/seed.js.map +1 -0
- package/dist/rules/text.d.ts.map +1 -1
- package/dist/rules/text.js +100 -42
- package/dist/rules/text.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +3 -1
- package/dist/schema.js.map +1 -1
- package/dist/sites.d.ts +4 -2
- package/dist/sites.d.ts.map +1 -1
- package/dist/sites.js +7 -2
- package/dist/sites.js.map +1 -1
- package/package.json +3 -3
- package/dist/truthiness-rule.d.ts +0 -3
- package/dist/truthiness-rule.d.ts.map +0 -1
- package/dist/truthiness-rule.js +0 -21
- package/dist/truthiness-rule.js.map +0 -1
- package/dist/truthiness.d.ts +0 -8
- package/dist/truthiness.d.ts.map +0 -1
- package/dist/truthiness.js +0 -268
- package/dist/truthiness.js.map +0 -1
package/dist/rules/forms.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import { at, formRunnable } from '@hozu/core/ir';
|
|
1
|
+
import { at, formRunnable, join, resolveAt, } from '@hozu/core/ir';
|
|
2
|
+
import { eventSchema } from '../env.js';
|
|
3
|
+
import { resolveRef } from '../resolve.js';
|
|
4
|
+
import { resolvePath } from '../schema.js';
|
|
5
|
+
import { closest, didYouMean } from '../suggest.js';
|
|
2
6
|
import { walkView } from '../walk.js';
|
|
7
|
+
import { formReads, formsOf, multiValued } from './form-model.js';
|
|
8
|
+
const fieldsOf = (payload) => ('object' in payload ? Object.keys(payload.object) : ['title'])
|
|
9
|
+
.map((k) => `${k}: ui.dom.form('${k}')`)
|
|
10
|
+
.join(', ');
|
|
3
11
|
export function progressiveForms(ctx) {
|
|
4
12
|
const { ir } = ctx;
|
|
5
13
|
for (const f of Object.values(ir.features))
|
|
@@ -9,11 +17,140 @@ export function progressiveForms(ctx) {
|
|
|
9
17
|
return;
|
|
10
18
|
if (formRunnable(node.on.submit.payload))
|
|
11
19
|
return;
|
|
12
|
-
ctx.report('HZ036', f.id, at(pointer, 'on', 'submit', 'payload'), `This form only works with JavaScript: its ${node.on.submit.event} payload reads values the server cannot see`, 'Without JavaScript the browser posts the named form fields; the server can use those, context, params and search, but not other DOM fields or each/query bindings.', {
|
|
13
|
-
summary: "Read the fields with ui.dom.form('name') so the form also works before hydration and without JavaScript",
|
|
14
|
-
snippet:
|
|
20
|
+
ctx.report('HZ036', f.id, at(pointer, 'on', 'submit', 'payload'), `This form only works with JavaScript: its ${node.on.submit.event} payload reads values the server cannot see`, 'Without JavaScript the browser posts the named form fields and the pressed submit button; the server can use those, context, params and search, but not other DOM fields or each/query bindings.', {
|
|
21
|
+
summary: "Read the fields with ui.dom.form('name') or ui.dom.formAll('name') so the form also works before hydration and without JavaScript",
|
|
22
|
+
snippet: `on: { submit: ui.send(${node.on.submit.event.split('.').pop()}, { ${fieldsOf(node.on.submit.payload)} }) }`,
|
|
15
23
|
patch: null,
|
|
16
24
|
});
|
|
17
25
|
});
|
|
18
26
|
}
|
|
27
|
+
const obj = (v) => v && typeof v === 'object' && !Array.isArray(v) ? v : null;
|
|
28
|
+
export const isList = (s) => {
|
|
29
|
+
if (!s)
|
|
30
|
+
return false;
|
|
31
|
+
const t = s.type;
|
|
32
|
+
if (t === 'array' || (Array.isArray(t) && t.includes('array')) || obj(s.items))
|
|
33
|
+
return true;
|
|
34
|
+
return ['anyOf', 'oneOf'].some((k) => Array.isArray(s[k]) && s[k].some((v) => isList(obj(v))));
|
|
35
|
+
};
|
|
36
|
+
const limits = [
|
|
37
|
+
'minLength',
|
|
38
|
+
'maxLength',
|
|
39
|
+
'pattern',
|
|
40
|
+
'format',
|
|
41
|
+
'minimum',
|
|
42
|
+
'maximum',
|
|
43
|
+
'exclusiveMinimum',
|
|
44
|
+
'exclusiveMaximum',
|
|
45
|
+
'multipleOf',
|
|
46
|
+
'minItems',
|
|
47
|
+
'maxItems',
|
|
48
|
+
];
|
|
49
|
+
function constraints(s, found = []) {
|
|
50
|
+
for (const k of limits)
|
|
51
|
+
if (k in s)
|
|
52
|
+
found.push([s, k]);
|
|
53
|
+
for (const k of ['anyOf', 'oneOf'])
|
|
54
|
+
if (Array.isArray(s[k]))
|
|
55
|
+
for (const v of s[k])
|
|
56
|
+
if (obj(v))
|
|
57
|
+
constraints(obj(v), found);
|
|
58
|
+
const items = obj(s.items);
|
|
59
|
+
if (items)
|
|
60
|
+
constraints(items, found);
|
|
61
|
+
return found;
|
|
62
|
+
}
|
|
63
|
+
function pathTo(node, target, tokens = []) {
|
|
64
|
+
if (node === target)
|
|
65
|
+
return tokens;
|
|
66
|
+
if (!node || typeof node !== 'object')
|
|
67
|
+
return null;
|
|
68
|
+
for (const [k, v] of Object.entries(node)) {
|
|
69
|
+
const hit = pathTo(v, target, [...tokens, k]);
|
|
70
|
+
if (hit)
|
|
71
|
+
return hit;
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const sharedSchema = (f, hash, event) => Object.values(f.queries).some((q) => q.input === hash) ||
|
|
76
|
+
Object.values(f.mutations).some((m) => m.input === hash) ||
|
|
77
|
+
Object.values(f.endpoints).some((e) => e.input === hash) ||
|
|
78
|
+
Object.entries(f.events).some(([sym, e]) => `${f.id}.${sym}` !== event && e.payload === hash);
|
|
79
|
+
/** The IR pointer of a schema inside an event payload, when no effect shares that payload schema. */
|
|
80
|
+
export function schemaPointer(ir, event, target) {
|
|
81
|
+
const owner = resolveRef(ir, event, 'event');
|
|
82
|
+
const hash = owner?.feature.events[owner.symbol]?.payload;
|
|
83
|
+
if (!owner || !hash || sharedSchema(owner.feature, hash, event))
|
|
84
|
+
return null;
|
|
85
|
+
const tokens = pathTo(owner.feature.schemas[hash], target);
|
|
86
|
+
return tokens ? join('', 'features', owner.feature.id, 'schemas', hash, ...tokens) : null;
|
|
87
|
+
}
|
|
88
|
+
function submitButtons(ctx, f, form) {
|
|
89
|
+
for (const c of form.controls) {
|
|
90
|
+
if (!c.submit || !c.node.on.click)
|
|
91
|
+
continue;
|
|
92
|
+
ctx.report('HZ056', f.id, at(c.pointer, 'on', 'click'), `A submit button sends ${c.node.on.click.event} on click, and its form submits as well`, 'The click runs first and the form submit follows (with JavaScript, and as a native post without it), so both events reach the machine.', {
|
|
93
|
+
summary: "Give the button name and value and read ui.dom.form('action') in the form's submit, or make it type: 'button'",
|
|
94
|
+
snippet: "ui.button({ type: 'submit', name: 'action', value: 'archive' }, ['Archive'])",
|
|
95
|
+
patch: [{ op: 'add', path: resolveAt(at(c.pointer, 'attrs', 'type')), value: { literal: 'button' } }],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function formFields(ctx) {
|
|
100
|
+
const { ir } = ctx;
|
|
101
|
+
for (const f of Object.values(ir.features))
|
|
102
|
+
for (const form of formsOf(f)) {
|
|
103
|
+
submitButtons(ctx, f, form);
|
|
104
|
+
const submit = form.node.on.submit;
|
|
105
|
+
if (!submit)
|
|
106
|
+
continue;
|
|
107
|
+
const root = eventSchema(ir, submit.event);
|
|
108
|
+
const names = [...new Set(form.controls.map((c) => c.name).filter((n) => n !== null))];
|
|
109
|
+
for (const read of formReads(submit.payload, at(form.pointer, 'on', 'submit', 'payload'))) {
|
|
110
|
+
const source = `ui.dom.${read.kind}('${read.name}')`;
|
|
111
|
+
if (!names.includes(read.name)) {
|
|
112
|
+
const guess = closest(read.name, names);
|
|
113
|
+
ctx.report(form.opaque ? 'HZ063' : 'HZ055', f.id, at(read.pointer, 'path', 1), `${source}: no control named "${read.name}" belongs to this form.${didYouMean(guess)}`, form.opaque
|
|
114
|
+
? `The form holds ${form.opaque}, whose fields cannot be seen statically. Known fields: ${names.join(', ') || 'none'}.`
|
|
115
|
+
: `A form posts the named controls inside it, the controls whose form attribute holds its formRef, and the pressed submit button. Fields: ${names.join(', ') || 'none'}.`, {
|
|
116
|
+
summary: guess ? `Read ${guess}` : `Add a control with name: '${read.name}' to the form`,
|
|
117
|
+
snippet: guess ? null : `ui.input({ name: '${read.name}' })`,
|
|
118
|
+
patch: guess
|
|
119
|
+
? [{ op: 'replace', path: resolveAt(at(read.pointer, 'path', 1)), value: guess }]
|
|
120
|
+
: null,
|
|
121
|
+
});
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const r = read.field && root ? resolvePath(root, read.field) : null;
|
|
125
|
+
const schema = r?.ok ? r.schema : null;
|
|
126
|
+
const field = `${submit.event}.${read.field?.join('.') || 'payload'}`;
|
|
127
|
+
if (read.kind === 'form' && (isList(schema) || multiValued(form, read.name)))
|
|
128
|
+
ctx.report('HZ054', f.id, at(read.pointer, 'path', 0), isList(schema)
|
|
129
|
+
? `${source} reads one value, but ${field} is a list`
|
|
130
|
+
: `${source} reads one value, but several controls named "${read.name}" submit in this form`, 'ui.dom.form(name) is the first value of the name; a checkbox group, a select with multiple, repeated controls and controls inside ui.each post one value each.', {
|
|
131
|
+
summary: `Read every value with ui.dom.formAll('${read.name}') into a list field`,
|
|
132
|
+
snippet: null,
|
|
133
|
+
patch: [{ op: 'replace', path: resolveAt(at(read.pointer, 'path', 0)), value: 'formAll' }],
|
|
134
|
+
});
|
|
135
|
+
if (schema)
|
|
136
|
+
constrainedPayload(ctx, f, submit.event, schema, source, field, read.pointer);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function constrainedPayload(ctx, f, event, schema, source, field, pointer) {
|
|
141
|
+
const found = constraints(schema);
|
|
142
|
+
if (!found.length)
|
|
143
|
+
return;
|
|
144
|
+
const patch = [];
|
|
145
|
+
for (const [s, k] of found) {
|
|
146
|
+
const base = schemaPointer(ctx.ir, event, s);
|
|
147
|
+
if (base)
|
|
148
|
+
patch.push({ op: 'remove', path: join(base, k) });
|
|
149
|
+
}
|
|
150
|
+
ctx.report('HZ061', f.id, pointer, `${source} feeds ${field}, whose schema declares ${[...new Set(found.map(([, k]) => k))].join(', ')}`, 'A native post checks the event payload and answers 400, while with JavaScript the payload is not checked and the mutation answers Invalid with field errors: the same input behaves differently in the two modes.', {
|
|
151
|
+
summary: "Move the limits to the mutation's input schema, where both modes get the same Invalid",
|
|
152
|
+
snippet: `event({ payload: z.object({ ${field.split('.').pop()}: z.string() }) })`,
|
|
153
|
+
patch: patch.length ? patch : null,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
19
156
|
//# sourceMappingURL=forms.js.map
|
package/dist/rules/forms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/rules/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/rules/forms.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/rules/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAoBxC,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/rules/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAoBxC,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,QA8FjC"}
|
package/dist/rules/http.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { join, routePattern } from '@hozu/core/ir';
|
|
1
|
+
import { join, localePath, routePattern } from '@hozu/core/ir';
|
|
2
2
|
const RESERVED = new Set([
|
|
3
3
|
'content-type',
|
|
4
4
|
'content-length',
|
|
@@ -29,7 +29,10 @@ export function httpRules(ctx) {
|
|
|
29
29
|
},
|
|
30
30
|
],
|
|
31
31
|
});
|
|
32
|
-
const
|
|
32
|
+
const locales = ctx.ir.site?.locales ?? [null];
|
|
33
|
+
const pages = Object.keys(ctx.ir.pages).flatMap((id) => ctx.ir.routes[id]
|
|
34
|
+
? [...new Set(locales.map((l) => localePath(ctx.ir, ctx.ir.routes[id].path, l)))].map((p) => [id, p])
|
|
35
|
+
: []);
|
|
33
36
|
http.redirects.forEach((r, i) => {
|
|
34
37
|
const at = join('', 'http', 'redirects', i);
|
|
35
38
|
const remove = {
|
|
@@ -48,8 +51,15 @@ export function httpRules(ctx) {
|
|
|
48
51
|
return invalid(`Redirect "${r.from}" overlaps redirect "${other.from}"`, 'Two redirects for one URL make the target depend on order.');
|
|
49
52
|
if ('link' in r.to && !ctx.ir.routes[r.to.link])
|
|
50
53
|
return invalid(`Redirect "${r.from}" targets an unknown route`, 'Point `to` at a registered route with ui.link.');
|
|
51
|
-
if ('literal' in r.to && typeof r.to.literal === 'string' && r.to.literal.startsWith('/'))
|
|
52
|
-
|
|
54
|
+
if ('literal' in r.to && typeof r.to.literal === 'string' && r.to.literal.startsWith('/')) {
|
|
55
|
+
const path = r.to.literal;
|
|
56
|
+
const route = Object.keys(ctx.ir.routes).find((id) => ctx.ir.routes[id].path === path);
|
|
57
|
+
ctx.report('HZ032', null, join(at, 'to'), `Redirect "${r.from}" targets the internal path "${path}" as a string`, 'Internal URLs are built from route declarations so they stay typed and canonical.', {
|
|
58
|
+
summary: 'Use to: (params) => ui.link(route, params)',
|
|
59
|
+
snippet: route ? `to: () => ui.link(${route}, null),` : 'to: (params) => ui.link(route, params),',
|
|
60
|
+
patch: null,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
53
63
|
});
|
|
54
64
|
http.headers.forEach((rule, i) => {
|
|
55
65
|
for (const [name, value] of Object.entries(rule.set)) {
|
package/dist/rules/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/rules/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/rules/http.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/rules/i18n.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AA+ExC,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/rules/i18n.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AA+ExC,wBAAgB,IAAI,CAAC,GAAG,EAAE,GAAG,QAiM5B"}
|
package/dist/rules/i18n.js
CHANGED
|
@@ -111,6 +111,21 @@ export function i18n(ctx) {
|
|
|
111
111
|
],
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
|
+
const taken = new Set(Object.values(ir.routes).map((r) => r.path));
|
|
115
|
+
for (const id of Object.keys(ir.pages)) {
|
|
116
|
+
const path = ir.routes[id]?.path;
|
|
117
|
+
const segment = path?.split('/')[1] ?? '';
|
|
118
|
+
if (!path || !locales.includes(segment))
|
|
119
|
+
continue;
|
|
120
|
+
const rest = path.slice(segment.length + 1) || '/';
|
|
121
|
+
const renamed = taken.has(rest) ? `/${segment}-page${rest === '/' ? '' : rest}` : rest;
|
|
122
|
+
const pointer = join('', 'routes', id, 'path');
|
|
123
|
+
ctx.report('HZ060', null, pointer, `Route "${id}" (${path}) starts with the locale segment "${segment}"`, `Under site.locales the first segment of a URL names its locale, so this route would own URLs the locale prefix also means.`, {
|
|
124
|
+
summary: `Rename the route path to "${renamed}"`,
|
|
125
|
+
snippet: null,
|
|
126
|
+
patch: [{ op: 'replace', path: pointer, value: renamed }],
|
|
127
|
+
});
|
|
128
|
+
}
|
|
114
129
|
}
|
|
115
130
|
for (const f of Object.values(ir.features)) {
|
|
116
131
|
const m = f.messages;
|
package/dist/rules/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/rules/i18n.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/rules/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/rules/links.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/rules/links.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAwHxC,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,QAmBrC"}
|
package/dist/rules/links.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at, resolveAt, routeParams, routePattern } from '@hozu/core/ir';
|
|
1
|
+
import { at, resolveAt, routeParams, routePattern, } from '@hozu/core/ir';
|
|
2
2
|
import { closest, didYouMean } from '../suggest.js';
|
|
3
3
|
import { walkView } from '../walk.js';
|
|
4
4
|
function matchRoute(ir, pathname) {
|
|
@@ -42,19 +42,74 @@ function report(ctx, feature, pointer, href) {
|
|
|
42
42
|
: null,
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
const URL_ATTRS = {
|
|
46
|
+
a: 'href',
|
|
47
|
+
area: 'href',
|
|
48
|
+
form: 'action',
|
|
49
|
+
button: 'formaction',
|
|
50
|
+
input: 'formaction',
|
|
51
|
+
};
|
|
52
|
+
function postEndpoint(ir, path) {
|
|
53
|
+
for (const f of Object.values(ir.features))
|
|
54
|
+
for (const [sym, e] of Object.entries(f.endpoints))
|
|
55
|
+
if (e.method === 'POST' && e.path === path)
|
|
56
|
+
return `${f.id}.${sym}`;
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
function reportEndpoint(ctx, feature, pointer, path, ref) {
|
|
60
|
+
const call = `ui.link(${ref.slice(ref.indexOf('.') + 1)})`;
|
|
61
|
+
ctx.report('HZ032', feature, pointer, `Form action "${path}" is a string; use ${call}`, 'An endpoint is a declaration identity, so a moved or removed endpoint is caught.', {
|
|
62
|
+
summary: `Use ${call}`,
|
|
63
|
+
snippet: call,
|
|
64
|
+
patch: [{ op: 'replace', path: resolveAt(pointer), value: { endpoint: ref, input: null } }],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const internal = (v) => v.startsWith('/') && !v.startsWith('//') && !v.startsWith('/_hozu/');
|
|
68
|
+
function concatHref(value) {
|
|
69
|
+
if (!('fn' in value) || value.fn !== '%concat' || !('object' in value.arg))
|
|
70
|
+
return null;
|
|
71
|
+
const parts = Object.values(value.arg.object);
|
|
72
|
+
const first = parts[0];
|
|
73
|
+
if (!first || !('literal' in first) || typeof first.literal !== 'string' || !internal(first.literal))
|
|
74
|
+
return null;
|
|
75
|
+
return parts.map((p) => ('literal' in p ? String(p.literal) : '…')).join('');
|
|
76
|
+
}
|
|
77
|
+
function reportConcat(ctx, feature, pointer, href) {
|
|
78
|
+
const match = matchRoute(ctx.ir, href.replaceAll('…', 'x').split(/[?#]/)[0]);
|
|
79
|
+
const call = match
|
|
80
|
+
? `ui.link(${match.id}, ${match.params
|
|
81
|
+
? `{ ${Object.keys(match.params)
|
|
82
|
+
.map((k) => `${k}: …`)
|
|
83
|
+
.join(', ')} }`
|
|
84
|
+
: 'null'})`
|
|
85
|
+
: 'ui.link(route, params)';
|
|
86
|
+
ctx.report('HZ032', feature, pointer, `Internal link \`${href}\` is built from a template string; use ${call}`, 'Internal paths are typed references to a route, so a renamed route or a wrong parameter is caught; a template string is not checked.', { summary: `Use ${call}`, snippet: call, patch: null });
|
|
87
|
+
}
|
|
45
88
|
export function internalLinks(ctx) {
|
|
46
89
|
const { ir } = ctx;
|
|
47
90
|
for (const f of Object.values(ir.features))
|
|
48
91
|
for (const [vid, view] of Object.entries(f.views))
|
|
49
92
|
walkView(ir, f, vid, view, ({ node, pointer }) => {
|
|
50
|
-
if (node.kind !== 'el'
|
|
93
|
+
if (node.kind !== 'el')
|
|
51
94
|
return;
|
|
52
|
-
const
|
|
53
|
-
|
|
95
|
+
const attr = URL_ATTRS[node.tag];
|
|
96
|
+
const href = attr ? node.attrs[attr] : undefined;
|
|
97
|
+
if (!attr || !href)
|
|
98
|
+
return;
|
|
99
|
+
const p = at(pointer, 'attrs', attr);
|
|
100
|
+
const built = concatHref(href);
|
|
101
|
+
if (built)
|
|
102
|
+
reportConcat(ctx, f.id, p, built);
|
|
103
|
+
if (!('literal' in href) || typeof href.literal !== 'string')
|
|
54
104
|
return;
|
|
55
105
|
const v = href.literal;
|
|
56
|
-
if (
|
|
57
|
-
|
|
106
|
+
if (!internal(v))
|
|
107
|
+
return;
|
|
108
|
+
const endpoint = attr === 'href' ? null : postEndpoint(ir, v);
|
|
109
|
+
if (endpoint)
|
|
110
|
+
reportEndpoint(ctx, f.id, p, v, endpoint);
|
|
111
|
+
else
|
|
112
|
+
report(ctx, f.id, p, v);
|
|
58
113
|
});
|
|
59
114
|
}
|
|
60
115
|
//# sourceMappingURL=links.js.map
|
package/dist/rules/links.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/rules/links.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/rules/links.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../src/rules/literals.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAuIxC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../src/rules/literals.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAuIxC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,QA8FhC"}
|
package/dist/rules/literals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/rules/literals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../src/rules/literals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/rules/pages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAaxC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,QAuCpC;AAYD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,QA2DtC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { join } from '@hozu/core/ir';
|
|
2
|
+
const choice = (error, signIn) => /^(Unauthori[sz]ed|Unauthenticated|SignedOut|NotSignedIn)$/.test(error)
|
|
3
|
+
? (signIn ?? '<a sign-in route without params>')
|
|
4
|
+
: /^Forbidden/.test(error)
|
|
5
|
+
? '403'
|
|
6
|
+
: /^(NotFound|Missing|Unknown)/.test(error)
|
|
7
|
+
? '404'
|
|
8
|
+
: /^(Gone|Deleted|Removed)/.test(error)
|
|
9
|
+
? '410'
|
|
10
|
+
: '<route> | 403 | 404 | 410';
|
|
11
|
+
export function headFailures(ctx) {
|
|
12
|
+
const { ir } = ctx;
|
|
13
|
+
const signIn = Object.keys(ir.routes).find((id) => /login|signin|sign-in/i.test(ir.routes[id].path)) ?? null;
|
|
14
|
+
for (const [id, page] of Object.entries(ir.pages)) {
|
|
15
|
+
const ref = page.head.query?.ref ?? null;
|
|
16
|
+
const dot = ref?.indexOf('.') ?? -1;
|
|
17
|
+
const query = ref ? ir.features[ref.slice(0, dot)]?.queries[ref.slice(dot + 1)] : undefined;
|
|
18
|
+
const declared = Object.keys(query?.errors ?? {});
|
|
19
|
+
const mapped = Object.keys(page.head.failed);
|
|
20
|
+
const at = join('', 'pages', id, 'head', 'failed');
|
|
21
|
+
const missing = declared.filter((e) => !(e in page.head.failed));
|
|
22
|
+
if (missing.length)
|
|
23
|
+
ctx.report('HZ051', null, at, `head.failed of page "${id}" does not map ${missing.map((e) => `"${e}"`).join(', ')} of ${ref}`, 'Every declared error of the head query decides the page: a redirect (303) to a route without params, or 403, 404 or 410. Which one is an intent decision, so there is no default.', {
|
|
24
|
+
summary: `Map ${missing.join(', ')} in head.failed`,
|
|
25
|
+
snippet: `failed: { ${declared.map((e) => `${e}: ${mapped.includes(e) ? '…' : choice(e, signIn)}`).join(', ')} }`,
|
|
26
|
+
patch: null,
|
|
27
|
+
});
|
|
28
|
+
for (const e of mapped.filter((m) => !declared.includes(m)))
|
|
29
|
+
ctx.report('HZ051', null, join(at, e), e === 'Unexpected'
|
|
30
|
+
? `head.failed of page "${id}" maps Unexpected`
|
|
31
|
+
: `head.failed of page "${id}" maps "${e}", which ${ref ?? 'the page (no head query)'} does not declare`, e === 'Unexpected'
|
|
32
|
+
? 'Unexpected always answers 500; only declared errors are mapped.'
|
|
33
|
+
: 'head.failed maps the declared errors of the head query, and nothing else.', { summary: `Remove "${e}" from head.failed`, snippet: null, patch: null });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function linkSites(node, pointer, id, out) {
|
|
37
|
+
if (Array.isArray(node))
|
|
38
|
+
node.forEach((x, i) => linkSites(x, join(pointer, i), id, out));
|
|
39
|
+
else if (node && typeof node === 'object') {
|
|
40
|
+
if (node.link === id && 'params' in node)
|
|
41
|
+
out.push({ pointer, value: node });
|
|
42
|
+
for (const [k, v] of Object.entries(node))
|
|
43
|
+
linkSites(v, join(pointer, k), id, out);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function unservedRoutes(ctx) {
|
|
47
|
+
const { ir } = ctx;
|
|
48
|
+
const endpoints = Object.values(ir.features).flatMap((f) => Object.entries(f.endpoints).map(([sym, e]) => ({ ref: `${f.id}.${sym}`, ...e })));
|
|
49
|
+
for (const [id, r] of Object.entries(ir.routes)) {
|
|
50
|
+
if (ir.pages[id])
|
|
51
|
+
continue;
|
|
52
|
+
const sites = [];
|
|
53
|
+
linkSites(ir.features, join('', 'features'), id, sites);
|
|
54
|
+
linkSites(ir.http.redirects, join('', 'http', 'redirects'), id, sites);
|
|
55
|
+
const endpoint = endpoints.find((e) => e.method === 'GET' && e.path === r.path);
|
|
56
|
+
const movable = endpoint && endpoint.mode !== 'response';
|
|
57
|
+
const at = join('', 'routes', id);
|
|
58
|
+
ctx.report('HZ052', null, at, `Route "${id}" (${r.path}) is rendered by no page`, endpoint
|
|
59
|
+
? `Its path is the endpoint ${endpoint.ref}; links to an endpoint are ui.link(endpoint, input), not a route.`
|
|
60
|
+
: 'A route names a page; a link to it would answer 404.', movable
|
|
61
|
+
? {
|
|
62
|
+
summary: `Link to the endpoint with ui.link(${endpoint.ref.split('.')[1]}, input) and remove the route`,
|
|
63
|
+
snippet: null,
|
|
64
|
+
patch: [
|
|
65
|
+
...sites.map((s) => ({
|
|
66
|
+
op: 'replace',
|
|
67
|
+
path: s.pointer,
|
|
68
|
+
value: {
|
|
69
|
+
endpoint: endpoint.ref,
|
|
70
|
+
input: 'literal' in s.value.search && s.value.search.literal === null
|
|
71
|
+
? { literal: {} }
|
|
72
|
+
: s.value.search,
|
|
73
|
+
},
|
|
74
|
+
})),
|
|
75
|
+
{ op: 'remove', path: at },
|
|
76
|
+
],
|
|
77
|
+
}
|
|
78
|
+
: endpoint
|
|
79
|
+
? {
|
|
80
|
+
summary: `Make ${r.path} a ui.page with head.failed for the statuses it answers, instead of an endpoint that returns a page`,
|
|
81
|
+
snippet: `ui.page(${id}, { views: [...], head: { query, input, render, failed: { Forbidden: 403 } } })`,
|
|
82
|
+
patch: null,
|
|
83
|
+
}
|
|
84
|
+
: sites.length
|
|
85
|
+
? {
|
|
86
|
+
summary: `Add ui.page(${id}, { views, head }) to project({ pages }), or link elsewhere`,
|
|
87
|
+
snippet: `ui.page(${id}, { views: [...], head: { render: () => ({ title: '…' }) } })`,
|
|
88
|
+
patch: null,
|
|
89
|
+
}
|
|
90
|
+
: {
|
|
91
|
+
summary: `Remove the unused route "${id}"`,
|
|
92
|
+
snippet: null,
|
|
93
|
+
patch: [{ op: 'remove', path: at }],
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=pages.js.map
|