@hozu/cli 0.22.0 → 0.24.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/commands/browse-page.d.ts.map +1 -1
- package/dist/commands/browse-page.js +6 -1
- package/dist/commands/browse-page.js.map +1 -1
- package/dist/commands/browse.d.ts +9 -1
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +73 -8
- package/dist/commands/browse.js.map +1 -1
- package/dist/commands/call.d.ts.map +1 -1
- package/dist/commands/call.js +26 -4
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/gen.d.ts.map +1 -1
- package/dist/commands/gen.js +8 -5
- package/dist/commands/gen.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +12 -4
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/request.d.ts +1 -0
- package/dist/commands/request.d.ts.map +1 -1
- package/dist/commands/request.js +126 -33
- package/dist/commands/request.js.map +1 -1
- package/dist/contract.d.ts +19 -4
- package/dist/contract.d.ts.map +1 -1
- package/dist/gen/go.d.ts +9 -2
- package/dist/gen/go.d.ts.map +1 -1
- package/dist/gen/go.js +127 -23
- package/dist/gen/go.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/migrate/steps.d.ts +2 -2
- package/dist/migrate/steps.d.ts.map +1 -1
- package/dist/migrate/steps.js +98 -12
- package/dist/migrate/steps.js.map +1 -1
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +17 -4
- package/dist/remote.js.map +1 -1
- package/package.json +8 -8
- package/schema/browse.schema.json +22 -1
- package/schema/call.schema.json +1 -1
- package/schema/gen.schema.json +24 -7
- package/schema/inspect.schema.json +2 -1
- package/schema/migrate.schema.json +10 -2
- package/skill/SKILL.md +2 -2
- package/skill/topics/data.md +38 -6
- package/skill/topics/recipes.md +6 -4
- package/skill/topics/testing.md +2 -0
- package/skill/topics/views.md +6 -2
package/dist/gen/go.js
CHANGED
|
@@ -14,9 +14,18 @@ const aligned = (rows) => {
|
|
|
14
14
|
row.slice(0, -1).forEach((cell, i) => (widths[i] = Math.max(widths[i] ?? 0, cell.length)));
|
|
15
15
|
return rows.map((row) => `\t${row.map((cell, i) => (i < row.length - 1 ? cell.padEnd(widths[i]) : cell)).join(' ')}`.trimEnd());
|
|
16
16
|
};
|
|
17
|
-
const render = (s) =>
|
|
17
|
+
const render = (s) => {
|
|
18
|
+
if (s.members)
|
|
19
|
+
return `type ${s.name} string\n\nconst (\n${aligned(s.members.map(([name, value]) => [name, s.name, `= ${value}`])).join('\n')}\n)`;
|
|
20
|
+
return s.fields.length
|
|
21
|
+
? `type ${s.name} struct {\n${aligned(s.fields).join('\n')}\n}`
|
|
22
|
+
: `type ${s.name} struct{}`;
|
|
23
|
+
};
|
|
18
24
|
class Types {
|
|
19
25
|
structs = [];
|
|
26
|
+
/** Enums without a title, by members: the fields they appear in and the Go types they became. */
|
|
27
|
+
untitled = new Map();
|
|
28
|
+
#field = null;
|
|
20
29
|
#byShape = new Map();
|
|
21
30
|
#names = new Set();
|
|
22
31
|
constructor(reserved) {
|
|
@@ -41,6 +50,17 @@ class Types {
|
|
|
41
50
|
return 'json.RawMessage';
|
|
42
51
|
}
|
|
43
52
|
const values = (schema.enum ?? (schema.const !== undefined ? [schema.const] : null));
|
|
53
|
+
if (schema.enum && values?.every((v) => typeof v === 'string')) {
|
|
54
|
+
if (typeof schema.title === 'string')
|
|
55
|
+
return this.#enum(values, pascal(schema.title));
|
|
56
|
+
const type = this.#enum(values, name);
|
|
57
|
+
const key = JSON.stringify(values);
|
|
58
|
+
const seen = this.untitled.get(key) ?? { fields: [], types: new Set() };
|
|
59
|
+
seen.fields.push(this.#field ?? name);
|
|
60
|
+
seen.types.add(type);
|
|
61
|
+
this.untitled.set(key, seen);
|
|
62
|
+
return type;
|
|
63
|
+
}
|
|
44
64
|
if (values)
|
|
45
65
|
return values.every((v) => typeof v === 'string') ? 'string' : 'json.RawMessage';
|
|
46
66
|
const types = Array.isArray(schema.type) ? schema.type : [schema.type];
|
|
@@ -82,42 +102,62 @@ class Types {
|
|
|
82
102
|
return this.#named(pascal(title), () => this.#fields(schema, pascal(title), root), canonicalStringify(shape));
|
|
83
103
|
return this.#add(name, (unique) => this.#fields(schema, unique, root));
|
|
84
104
|
}
|
|
105
|
+
#enum(values, name) {
|
|
106
|
+
return this.#named(name, () => [], JSON.stringify(values), (unique) => {
|
|
107
|
+
const used = new Set();
|
|
108
|
+
return values.map((v) => {
|
|
109
|
+
let constant = `${unique}${pascal(v)}`;
|
|
110
|
+
for (let n = 2; used.has(constant) || this.#names.has(constant); n++)
|
|
111
|
+
constant = `${unique}${pascal(v)}${n}`;
|
|
112
|
+
used.add(constant);
|
|
113
|
+
this.#names.add(constant);
|
|
114
|
+
return [constant, JSON.stringify(v)];
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
}
|
|
85
118
|
#empty() {
|
|
86
119
|
if (!this.structs.some((s) => s.name === 'Empty'))
|
|
87
120
|
this.structs.push({ name: 'Empty', fields: [] });
|
|
88
121
|
return 'Empty';
|
|
89
122
|
}
|
|
90
123
|
/** A titled shape is one Go type wherever it appears; the same title with another shape gets a number. */
|
|
91
|
-
#named(name, fields, shape = '{}') {
|
|
124
|
+
#named(name, fields, shape = '{}', members) {
|
|
92
125
|
const key = `${name} ${shape}`;
|
|
93
126
|
const known = this.#byShape.get(key);
|
|
94
127
|
if (known)
|
|
95
128
|
return known;
|
|
96
|
-
const unique = this.#add(name, () => fields());
|
|
129
|
+
const unique = this.#add(name, () => fields(), members);
|
|
97
130
|
this.#byShape.set(key, unique);
|
|
98
131
|
return unique;
|
|
99
132
|
}
|
|
100
|
-
#add(wanted, fields) {
|
|
133
|
+
#add(wanted, fields, members) {
|
|
101
134
|
let unique = wanted;
|
|
102
135
|
for (let n = 2; this.#names.has(unique); n++)
|
|
103
136
|
unique = `${wanted}${n}`;
|
|
104
137
|
this.#names.add(unique);
|
|
105
138
|
const struct = { name: unique, fields: [] };
|
|
106
139
|
this.structs.push(struct);
|
|
107
|
-
|
|
140
|
+
if (members)
|
|
141
|
+
struct.members = members(unique);
|
|
142
|
+
else
|
|
143
|
+
struct.fields = fields(unique);
|
|
108
144
|
return unique;
|
|
109
145
|
}
|
|
110
146
|
#fields(schema, owner, root) {
|
|
111
147
|
const required = new Set(schema.required ?? []);
|
|
112
148
|
return Object.entries(schema.properties ?? {}).map(([prop, s]) => {
|
|
149
|
+
const outer = this.#field;
|
|
150
|
+
this.#field = pascal(prop);
|
|
113
151
|
const t = this.type(s, `${owner}${pascal(prop)}`, root);
|
|
152
|
+
this.#field = outer;
|
|
114
153
|
const optional = !required.has(prop);
|
|
115
154
|
const values = (s.enum ?? null);
|
|
155
|
+
const named = values?.every((v) => typeof v === 'string');
|
|
116
156
|
return [
|
|
117
157
|
pascal(prop),
|
|
118
158
|
`${optional && !isRef(t) ? '*' : ''}${t}`,
|
|
119
159
|
`\`json:"${prop}${optional ? ',omitempty' : ''}"\``,
|
|
120
|
-
...(values ? [`// one of ${values.map((v) => JSON.stringify(v)).join(', ')}`] : []),
|
|
160
|
+
...(values && !named ? [`// one of ${values.map((v) => JSON.stringify(v)).join(', ')}`] : []),
|
|
121
161
|
];
|
|
122
162
|
});
|
|
123
163
|
}
|
|
@@ -132,7 +172,7 @@ const describe = (e, errors) => {
|
|
|
132
172
|
};
|
|
133
173
|
/** The Go contract of one `remote()` group: types, the Resolvers interface and the HTTP handler (ADR 0068). */
|
|
134
174
|
const tidy = (go) => go.replace(/\n{3,}/g, '\n\n');
|
|
135
|
-
|
|
175
|
+
function typesOf(contract) {
|
|
136
176
|
const types = new Types([
|
|
137
177
|
'Invalid',
|
|
138
178
|
'Ctx',
|
|
@@ -142,6 +182,7 @@ export function goContract(contract, pkg) {
|
|
|
142
182
|
'Fingerprint',
|
|
143
183
|
'Empty',
|
|
144
184
|
'Upload',
|
|
185
|
+
'Forbidden',
|
|
145
186
|
]);
|
|
146
187
|
const session = contract.session ? types.struct(contract.session, 'Session', contract.session, true) : null;
|
|
147
188
|
const errorTypes = [];
|
|
@@ -156,6 +197,10 @@ export function goContract(contract, pkg) {
|
|
|
156
197
|
});
|
|
157
198
|
return { e, base, input, output, errors };
|
|
158
199
|
});
|
|
200
|
+
return { types, session, errorTypes, methods };
|
|
201
|
+
}
|
|
202
|
+
export function goContract(contract, pkg) {
|
|
203
|
+
const { types, session, errorTypes, methods } = typesOf(contract);
|
|
159
204
|
const sessionType = session ?? 'struct{}';
|
|
160
205
|
return tidy(`// Code generated by hozu gen from the Hozu declarations. DO NOT EDIT.
|
|
161
206
|
// Change the declarations in TypeScript, then run hozu gen (ADR 0068).
|
|
@@ -170,10 +215,17 @@ import (
|
|
|
170
215
|
\t"log"
|
|
171
216
|
\t"net/http"
|
|
172
217
|
\t"reflect"
|
|
218
|
+
\t"strings"
|
|
173
219
|
)
|
|
174
220
|
|
|
175
|
-
// Fingerprint is the contract this file was generated from
|
|
176
|
-
|
|
221
|
+
// Fingerprint is the contract of one effect this file was generated from, or "" for another effect. Every call
|
|
222
|
+
// carries its effect's, so changing one declaration answers 409 for that effect alone.
|
|
223
|
+
func Fingerprint(effect string) string {
|
|
224
|
+
\tswitch effect {
|
|
225
|
+
${contract.effects.map((e) => `\tcase "${e.ref}":\n\t\treturn "${e.fingerprint}"`).join('\n')}
|
|
226
|
+
\t}
|
|
227
|
+
\treturn ""
|
|
228
|
+
}
|
|
177
229
|
|
|
178
230
|
${types.structs.map(render).join('\n\n')}
|
|
179
231
|
|
|
@@ -314,15 +366,21 @@ func Handler(r Resolvers, o Options) http.Handler {
|
|
|
314
366
|
\t\t\thttp.Error(w, "wrong x-hozu-secret", http.StatusUnauthorized)
|
|
315
367
|
\t\t\treturn
|
|
316
368
|
\t\t}
|
|
317
|
-
\t\tif got := req.Header.Get("X-Hozu-Fingerprint"); got != Fingerprint {
|
|
318
|
-
\t\t\thttp.Error(w, "contract "+got+" is not "+Fingerprint+": run hozu gen and rebuild", http.StatusConflict)
|
|
319
|
-
\t\t\treturn
|
|
320
|
-
\t\t}
|
|
321
369
|
\t\tvar body request
|
|
322
370
|
\t\tif err := json.NewDecoder(req.Body).Decode(&body); err != nil {
|
|
323
371
|
\t\t\thttp.Error(w, err.Error(), http.StatusBadRequest)
|
|
324
372
|
\t\t\treturn
|
|
325
373
|
\t\t}
|
|
374
|
+
\t\twant := Fingerprint(body.Effect)
|
|
375
|
+
\t\tif want == "" {
|
|
376
|
+
\t\t\thttp.Error(w, "unknown effect "+body.Effect, http.StatusNotFound)
|
|
377
|
+
\t\t\treturn
|
|
378
|
+
\t\t}
|
|
379
|
+
\t\tif got := req.Header.Get("X-Hozu-Fingerprint"); got != want {
|
|
380
|
+
\t\t\thttp.Error(w, body.Effect+" is "+want+" here, not "+got+": run hozu gen and rebuild", http.StatusConflict)
|
|
381
|
+
\t\t\treturn
|
|
382
|
+
\t\t}
|
|
383
|
+
\t\tid := req.Header.Get("X-Hozu-Call")
|
|
326
384
|
\t\tctx := &Ctx{Context: req.Context(), Session: body.Session, Preview: body.Preview, Header: http.Header{}, files: body.Files}
|
|
327
385
|
\t\tfor k, v := range body.Headers {
|
|
328
386
|
\t\t\tctx.Header.Set(k, v)
|
|
@@ -331,9 +389,6 @@ func Handler(r Resolvers, o Options) http.Handler {
|
|
|
331
389
|
\t\tvar err error
|
|
332
390
|
\t\tswitch body.Effect {
|
|
333
391
|
${methods.map((m) => `\t\tcase "${m.e.ref}":\n\t\t\tout, err = call(ctx, body.Input, r.${m.base})`).join('\n')}
|
|
334
|
-
\t\tdefault:
|
|
335
|
-
\t\t\thttp.Error(w, "unknown effect "+body.Effect, http.StatusNotFound)
|
|
336
|
-
\t\t\treturn
|
|
337
392
|
\t\t}
|
|
338
393
|
\t\tres := map[string]any{}
|
|
339
394
|
\t\tvar f failure
|
|
@@ -343,14 +398,15 @@ ${methods.map((m) => `\t\tcase "${m.e.ref}":\n\t\t\tout, err = call(ctx, body.In
|
|
|
343
398
|
\t\tcase errors.As(err, &f):
|
|
344
399
|
\t\t\teffect, name, data := f.failure()
|
|
345
400
|
\t\t\tif effect != "" && effect != body.Effect {
|
|
346
|
-
\t\t\t\tlog.Printf("hozu: %s returned %s, an error of %s", body.Effect, name, effect)
|
|
347
|
-
\t\t\t\thttp.Error(w, "
|
|
401
|
+
\t\t\t\tlog.Printf("hozu: %s (call %s) returned %s, an error of %s", body.Effect, id, name, effect)
|
|
402
|
+
\t\t\t\thttp.Error(w, "resolver failed: "+name+" is an error of "+effect, http.StatusInternalServerError)
|
|
348
403
|
\t\t\t\treturn
|
|
349
404
|
\t\t\t}
|
|
350
405
|
\t\t\tres["fail"] = map[string]any{"name": name, "data": data}
|
|
351
406
|
\t\tdefault:
|
|
352
|
-
\t\t\tlog.Printf("hozu: %s: %v", body.Effect, err)
|
|
353
|
-
\t\t\
|
|
407
|
+
\t\t\tlog.Printf("hozu: %s (call %s): %v", body.Effect, id, err)
|
|
408
|
+
\t\t\tline, _, _ := strings.Cut(err.Error(), "\\n")
|
|
409
|
+
\t\t\thttp.Error(w, "resolver failed: "+line, http.StatusInternalServerError)
|
|
354
410
|
\t\t\treturn
|
|
355
411
|
\t\t}
|
|
356
412
|
\t\tif ctx.changed {
|
|
@@ -358,12 +414,60 @@ ${methods.map((m) => `\t\tcase "${m.e.ref}":\n\t\t\tout, err = call(ctx, body.In
|
|
|
358
414
|
\t\t}
|
|
359
415
|
\t\tw.Header().Set("Content-Type", "application/json")
|
|
360
416
|
\t\tif err := json.NewEncoder(w).Encode(res); err != nil {
|
|
361
|
-
\t\t\tlog.Printf("hozu: %s: %v", body.Effect, err)
|
|
417
|
+
\t\t\tlog.Printf("hozu: %s (call %s): %v", body.Effect, id, err)
|
|
362
418
|
\t\t}
|
|
363
419
|
\t})
|
|
364
420
|
}
|
|
365
421
|
`);
|
|
366
422
|
}
|
|
367
|
-
/**
|
|
368
|
-
export const
|
|
423
|
+
/** A contract hozu gen wrote before 0.23: one `const Fingerprint` for the whole contract, none per effect. */
|
|
424
|
+
export const goWholeContract = (text) => /^const Fingerprint = "[0-9a-f]+"$/m.test(text);
|
|
425
|
+
/** The fingerprint of each effect a generated Go contract declares, by ref. */
|
|
426
|
+
export const goFingerprints = (text) => Object.fromEntries([...text.matchAll(/^\tcase "([^"]+)":\n\t\treturn "([0-9a-f]+)"$/gm)].map((m) => [m[1], m[2]]));
|
|
427
|
+
const counted = /^(id|count|qty|quantity|cents)$|(Id|_id|ID|Count|_count|Qty|Quantity|Cents|_cents)$/;
|
|
428
|
+
/**
|
|
429
|
+
* Number fields named like an id or a count: `z.number()` is float64 in Go, so they are notes suggesting `z.int()`
|
|
430
|
+
* (ADR 0070 C4), not diagnostics. So is an enum without a title that became several Go types: a title makes it one.
|
|
431
|
+
*/
|
|
432
|
+
export function goNotes(contract) {
|
|
433
|
+
const notes = new Set();
|
|
434
|
+
const walk = (schema, path, root, seen) => {
|
|
435
|
+
const ref = schema.$ref;
|
|
436
|
+
if (typeof ref === 'string') {
|
|
437
|
+
const key = ref.replace(/^#\/\$defs\//, '');
|
|
438
|
+
const def = root.$defs?.[key];
|
|
439
|
+
if (def && !seen.has(key))
|
|
440
|
+
walk(def, path, root, new Set([...seen, key]));
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
for (const s of (schema.anyOf ?? schema.oneOf ?? []))
|
|
444
|
+
walk(s, path, root, seen);
|
|
445
|
+
if (schema.items)
|
|
446
|
+
walk(schema.items, `${path}[]`, root, seen);
|
|
447
|
+
for (const [prop, s] of Object.entries(schema.properties ?? {})) {
|
|
448
|
+
const number = [s, ...(s.anyOf ?? s.oneOf ?? [])].some((x) => (Array.isArray(x.type) ? x.type : [x.type]).includes('number'));
|
|
449
|
+
if (number && counted.test(prop))
|
|
450
|
+
notes.add(`${path}.${prop} is a number (float64 in Go); if it holds whole numbers, declare it z.int() (int64)`);
|
|
451
|
+
walk(s, `${path}.${prop}`, root, seen);
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
for (const e of contract.effects) {
|
|
455
|
+
walk(e.input, `${e.ref}: input`, e.input, new Set());
|
|
456
|
+
walk(e.output, `${e.ref}: output`, e.output, new Set());
|
|
457
|
+
for (const [name, schema] of Object.entries(e.errors))
|
|
458
|
+
walk(schema, `${e.ref}: ${name}`, schema, new Set());
|
|
459
|
+
}
|
|
460
|
+
if (contract.session)
|
|
461
|
+
walk(contract.session, 'session', contract.session, new Set());
|
|
462
|
+
for (const [members, { fields, types }] of typesOf(contract).types.untitled) {
|
|
463
|
+
if (types.size < 2)
|
|
464
|
+
continue;
|
|
465
|
+
const counts = new Map();
|
|
466
|
+
for (const f of fields)
|
|
467
|
+
counts.set(f, (counts.get(f) ?? 0) + 1);
|
|
468
|
+
const name = [...counts].reduce((a, b) => (b[1] > a[1] ? b : a))[0];
|
|
469
|
+
notes.add(`${name}-like enum ${members} appears in ${fields.length} fields as ${types.size} Go types; give the schema .meta({ title: '${name}' }) to make it one`);
|
|
470
|
+
}
|
|
471
|
+
return [...notes];
|
|
472
|
+
}
|
|
369
473
|
//# sourceMappingURL=go.js.map
|
package/dist/gen/go.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/gen/go.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/gen/go.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -89,7 +89,7 @@ Options:
|
|
|
89
89
|
before the first --as for every actor, after an --as for that actor
|
|
90
90
|
--session <json> get/browse: start signed in with this session (a real one: sign-out works); after --as, that actor's
|
|
91
91
|
--full get/browse: print the whole visible text and every changed line
|
|
92
|
-
--select <selector> get/browse: print matching elements with their attributes: button, #id, [role=alert], a[href]
|
|
92
|
+
--select <selector> get/browse: print matching elements with their attributes: button, #id, [role=alert], a[href], nav a[aria-current], main > form input
|
|
93
93
|
--forms get: list the page's forms: fields with defaults, checkbox groups, form= controls, submit buttons
|
|
94
94
|
--do <step> browse: 'fill <label>=<value>', 'select <label>=<option>', 'check <label>', 'uncheck <label>',
|
|
95
95
|
'click <name>', 'submit "<form>"', 'press <key>', 'wait <ms>', 'goto <path>',
|
package/dist/migrate/steps.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import type { Note } from './ast.ts';
|
|
|
3
3
|
export interface Step {
|
|
4
4
|
from: string;
|
|
5
5
|
to: string;
|
|
6
|
-
/** What the step changes,
|
|
7
|
-
|
|
6
|
+
/** What the step changes, one point per line in the plan. */
|
|
7
|
+
changes: string[];
|
|
8
8
|
rewrite(file: string, source: string): {
|
|
9
9
|
code: string;
|
|
10
10
|
notes: Note[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/migrate/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAA+B,MAAM,eAAe,CAAA;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAMpC,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/migrate/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAA+B,MAAM,eAAe,CAAA;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAMpC,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,6DAA6D;IAC7D,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACrF,sGAAsG;IACtG,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAA;IACzB,yFAAyF;IACzF,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACtE,uGAAuG;IACvG,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,sGAAsG;AACtG,eAAO,MAAM,KAAK,EAAE,IAAI,EA2LvB,CAAA;AA6BD,eAAO,MAAM,MAAM,QAAiB,CAAA;AAEpC,eAAO,MAAM,OAAO,YAAa,MAAM,KAAG,MAAkD,CAAA;AAI5F,eAAO,MAAM,YAAY,MAAO,MAAM,KAAK,MAAM,KAAG,MAInD,CAAA;AAED,gFAAgF;AAChF,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,IAAI,CAU7D"}
|
package/dist/migrate/steps.js
CHANGED
|
@@ -8,14 +8,14 @@ export const steps = [
|
|
|
8
8
|
{
|
|
9
9
|
from: '0.10',
|
|
10
10
|
to: '0.11',
|
|
11
|
-
|
|
11
|
+
changes: ["runs: 'server' on every query and mutation without runs (0.11 defaults to 'either')"],
|
|
12
12
|
rewrite: addRunsServer,
|
|
13
13
|
normalize: normalize010,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
from: '0.11',
|
|
17
17
|
to: '0.12',
|
|
18
|
-
|
|
18
|
+
changes: ['.hozu/ in .gitignore (0.12 caches the transform and the type check there)'],
|
|
19
19
|
rewrite: (_file, source) => ({ code: source, notes: [], count: 0 }),
|
|
20
20
|
normalize: (ir) => ir,
|
|
21
21
|
files: ignoreHozu,
|
|
@@ -23,7 +23,10 @@ export const steps = [
|
|
|
23
23
|
{
|
|
24
24
|
from: '0.12',
|
|
25
25
|
to: '0.13',
|
|
26
|
-
|
|
26
|
+
changes: [
|
|
27
|
+
'connect: [] on every feature and env files / internal in the IR (ADR 0051, 0052)',
|
|
28
|
+
'new warnings HZ083 and HZ084',
|
|
29
|
+
],
|
|
27
30
|
rewrite: (_file, source) => ({ code: source, notes: [], count: 0 }),
|
|
28
31
|
normalize: (ir) => {
|
|
29
32
|
const features = ir.features ?? {};
|
|
@@ -40,7 +43,10 @@ export const steps = [
|
|
|
40
43
|
{
|
|
41
44
|
from: '0.13',
|
|
42
45
|
to: '0.14',
|
|
43
|
-
|
|
46
|
+
changes: [
|
|
47
|
+
"runs: 'either' where runs is omitted (0.14 requires it)",
|
|
48
|
+
'package.json scripts call hozu check, and hozu graph scripts are removed (ADR 0053)',
|
|
49
|
+
],
|
|
44
50
|
rewrite: (file, source) => addRuns('either', file, source),
|
|
45
51
|
normalize: (ir) => {
|
|
46
52
|
;
|
|
@@ -52,49 +58,89 @@ export const steps = [
|
|
|
52
58
|
{
|
|
53
59
|
from: '0.14',
|
|
54
60
|
to: '0.15',
|
|
55
|
-
|
|
61
|
+
changes: [
|
|
62
|
+
"access: 'anyone' on every server-run user query and mutation, the 0.14 behaviour (ADR 0056 B)",
|
|
63
|
+
'HZ090 then lists the user queries to tighten',
|
|
64
|
+
"an error the app named Forbidden (the framework's access error since 0.15) becomes NotAllowed",
|
|
65
|
+
],
|
|
56
66
|
rewrite: accessStep,
|
|
57
67
|
normalize: normalize014Renamed,
|
|
58
68
|
},
|
|
59
69
|
{
|
|
60
70
|
from: '0.15',
|
|
61
71
|
to: '0.16',
|
|
62
|
-
|
|
72
|
+
changes: [
|
|
73
|
+
'no source change',
|
|
74
|
+
'an app without machines now locks its pages, so run hozu check --update-lock if it says the lock is missing',
|
|
75
|
+
'an endpoint at /sitemap.xml, /robots.txt or (with a site) /manifest.webmanifest is now HZ046',
|
|
76
|
+
'a head.render field Hozu does not know is HZ014: move them to entries, noindex or site (ADR 0057)',
|
|
77
|
+
],
|
|
63
78
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
64
79
|
normalize: (ir) => ir,
|
|
65
80
|
},
|
|
66
81
|
{
|
|
67
82
|
from: '0.16',
|
|
68
83
|
to: '0.17',
|
|
69
|
-
|
|
84
|
+
changes: [
|
|
85
|
+
'no source change',
|
|
86
|
+
'DevTools follows Figma (Shift+Enter selects the parent, Alt measures)',
|
|
87
|
+
'feature({ styles }) must be a list (HZ014) (ADR 0058)',
|
|
88
|
+
],
|
|
70
89
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
71
90
|
normalize: (ir) => ir,
|
|
72
91
|
},
|
|
73
92
|
{
|
|
74
93
|
from: '0.17',
|
|
75
94
|
to: '0.18',
|
|
76
|
-
|
|
95
|
+
changes: [
|
|
96
|
+
'no source change',
|
|
97
|
+
'a page whose head query fails is titled with the site name',
|
|
98
|
+
'app({ refreshSession }) can renew a session while reading',
|
|
99
|
+
'hozu browse --viewport',
|
|
100
|
+
'DevTools in your language (--devtools-messages) (ADR 0060)',
|
|
101
|
+
],
|
|
77
102
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
78
103
|
normalize: (ir) => ir,
|
|
79
104
|
},
|
|
80
105
|
{
|
|
81
106
|
from: '0.18',
|
|
82
107
|
to: '0.19',
|
|
83
|
-
|
|
108
|
+
changes: [
|
|
109
|
+
'no source change',
|
|
110
|
+
'freshness: { poll: seconds } re-reads a query on a timer',
|
|
111
|
+
"target: 'previous' returns to the state a machine came from",
|
|
112
|
+
'a field alone is a guard',
|
|
113
|
+
'hozu browse says per step what changed (hold / release keep an effect pending) (ADR 0063)',
|
|
114
|
+
],
|
|
84
115
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
85
116
|
normalize: (ir) => ir,
|
|
86
117
|
},
|
|
87
118
|
{
|
|
88
119
|
from: '0.19',
|
|
89
120
|
to: '0.20',
|
|
90
|
-
|
|
121
|
+
changes: [
|
|
122
|
+
'no source change',
|
|
123
|
+
'transitions take refresh: () => [tag()] and copy',
|
|
124
|
+
'a render gets is([...])',
|
|
125
|
+
"HZ036 no longer warns about a form that starts a runs: 'browser' mutation (delete such accept entries, HZ087)",
|
|
126
|
+
'hozu browse runs with JavaScript by default',
|
|
127
|
+
'an on without target stays without entering its state again (ADR 0064)',
|
|
128
|
+
'accept the lock with hozu check --update-lock if HZ057 lists --> stays',
|
|
129
|
+
],
|
|
91
130
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
92
131
|
normalize: (ir) => ir,
|
|
93
132
|
},
|
|
94
133
|
{
|
|
95
134
|
from: '0.20',
|
|
96
135
|
to: '0.21',
|
|
97
|
-
|
|
136
|
+
changes: [
|
|
137
|
+
'no source change',
|
|
138
|
+
'query regions settle in place, added parts fade in',
|
|
139
|
+
'views two pages share keep still and machines keep their state across a page change',
|
|
140
|
+
'is([...]) works for structure, ui.set and replace are new',
|
|
141
|
+
'hozu browse reports flashes and layout shift (ADR 0067)',
|
|
142
|
+
'component fingerprints hash the recorded render, so run hozu build again before deploying',
|
|
143
|
+
],
|
|
98
144
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
99
145
|
normalize: markSharedViews,
|
|
100
146
|
unpredictable: /^\/(?:features\/[^/]+|kits\/[^/]+)\/components\/[^/]+\/sourceHash$/,
|
|
@@ -102,11 +148,51 @@ export const steps = [
|
|
|
102
148
|
{
|
|
103
149
|
from: '0.21',
|
|
104
150
|
to: '0.22',
|
|
105
|
-
|
|
151
|
+
changes: [
|
|
152
|
+
'no source change',
|
|
153
|
+
'resolvers may be in Go through remote() and hozu gen (ADR 0068)',
|
|
154
|
+
'a seed reads queries',
|
|
155
|
+
'links to the page shown get aria-current',
|
|
156
|
+
"a dialog's open follows the machine",
|
|
157
|
+
'ui.format.plural',
|
|
158
|
+
'head reads search',
|
|
159
|
+
'resolvers answer Forbidden',
|
|
160
|
+
'signedIn narrows the session type',
|
|
161
|
+
'one-shot commands exit (app({ dispose }) closes a pool)',
|
|
162
|
+
'kept state follows a view two pages share or the same address (ADR 0069)',
|
|
163
|
+
'run hozu build again before deploying',
|
|
164
|
+
],
|
|
106
165
|
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
107
166
|
normalize: remarkSharedViews,
|
|
108
167
|
unpredictable: /^\/(?:features\/[^/]+|kits\/[^/]+)\/components\/[^/]+\/sourceHash$/,
|
|
109
168
|
},
|
|
169
|
+
{
|
|
170
|
+
from: '0.22',
|
|
171
|
+
to: '0.23',
|
|
172
|
+
changes: [
|
|
173
|
+
'no source change',
|
|
174
|
+
'route params are parsed (z.coerce applies)',
|
|
175
|
+
'canonical URLs and links leave defaults out after an optional segment',
|
|
176
|
+
'aria-current marks sections above the page only',
|
|
177
|
+
'native multi-step forms keep their step',
|
|
178
|
+
'{ ...search } works in ui.link',
|
|
179
|
+
'a Go service needs hozu gen and a rebuild (a fingerprint per effect) (ADR 0070)',
|
|
180
|
+
],
|
|
181
|
+
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
182
|
+
normalize: (ir) => ir,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
from: '0.23',
|
|
186
|
+
to: '0.24',
|
|
187
|
+
changes: [
|
|
188
|
+
'no source change',
|
|
189
|
+
"aria-current marks only the address shown: mark a menu's sections with current(route) in the render",
|
|
190
|
+
'aria-current false writes no attribute',
|
|
191
|
+
"hozu get --select takes descendant and child selectors; hozu call shows an endpoint's invalidated tags (ADR 0071)",
|
|
192
|
+
],
|
|
193
|
+
rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
|
|
194
|
+
normalize: (ir) => ir,
|
|
195
|
+
},
|
|
110
196
|
];
|
|
111
197
|
/** 0.22 marks a shared view only when each page lists it once (ADR 0067, 0.22 review). */
|
|
112
198
|
function remarkSharedViews(ir) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/migrate/steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,WAAW,EAAE,MAAM,eAAe,CAAA;AAEtE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAgBhE,sGAAsG;AACtG,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B;QACE,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM;QACV,OAAO,EAAE,qFAAqF;
|
|
1
|
+
{"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/migrate/steps.ts"],"names":[],"mappings":"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"}
|
package/dist/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,UAAU,EAAE,KAAK,cAAc,EAAkB,MAAM,eAAe,CAAA;AAG7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,cAAc,CAAA;CACzB;AASD,eAAO,MAAM,SAAS,SAAU,MAAM,WAGG,CAAA;AAEzC,kFAAkF;AAClF,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAQxB;AAaD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,UAAU,EAAE,KAAK,cAAc,EAAkB,MAAM,eAAe,CAAA;AAG7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,cAAc,CAAA;CACzB;AASD,eAAO,MAAM,SAAS,SAAU,MAAM,WAGG,CAAA;AAEzC,kFAAkF;AAClF,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAQxB;AAaD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAuDlG"}
|
package/dist/remote.js
CHANGED
|
@@ -3,7 +3,7 @@ import { basename, dirname, extname, relative } from 'node:path';
|
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { codes, remoteContract } from '@hozu/core/ir';
|
|
5
5
|
import { importer } from './commands/app.js';
|
|
6
|
-
import {
|
|
6
|
+
import { goFingerprints, goWholeContract } from './gen/go.js';
|
|
7
7
|
export const packageOf = (file) => basename(dirname(file))
|
|
8
8
|
.toLowerCase()
|
|
9
9
|
.replace(/[^a-z0-9_]/g, '') || 'hozu';
|
|
@@ -49,9 +49,22 @@ export function remoteDiagnostics(loaded, groups, app) {
|
|
|
49
49
|
problem(`The remote contract ${shown(g.file)} does not exist`, 'hozu gen writes it from the declarations remote() lists.', 'Run hozu gen, then implement the Resolvers interface it prints in the service');
|
|
50
50
|
continue;
|
|
51
51
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
const text = readFileSync(g.file, 'utf8');
|
|
53
|
+
const found = goFingerprints(text);
|
|
54
|
+
if (!Object.keys(found).length && goWholeContract(text)) {
|
|
55
|
+
problem(`The remote contract ${shown(g.file)} was written by an older hozu gen (one fingerprint for the whole contract); run hozu gen and rebuild the service`, 'Since 0.23 the contract carries one fingerprint per effect, so the service answers 409 for every call.', 'Run hozu gen, fix the service until go build passes, and rebuild it');
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const stale = [
|
|
59
|
+
...g.contract.effects
|
|
60
|
+
.filter((e) => found[e.ref] !== e.fingerprint)
|
|
61
|
+
.map((e) => (found[e.ref] ? `${e.ref} changed` : `${e.ref} is missing`)),
|
|
62
|
+
...Object.keys(found)
|
|
63
|
+
.filter((ref) => !g.contract.effects.some((e) => e.ref === ref))
|
|
64
|
+
.map((ref) => `${ref} is no longer remote`),
|
|
65
|
+
];
|
|
66
|
+
if (stale.length)
|
|
67
|
+
problem(`The remote contract ${shown(g.file)} is stale: ${stale.join(', ')}`, 'A declaration remote() lists changed after hozu gen wrote the contract, so the service answers 409 for it.', 'Run hozu gen, fix the service until go build passes, and rebuild it');
|
|
55
68
|
}
|
|
56
69
|
return out;
|
|
57
70
|
}
|