@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.
Files changed (45) hide show
  1. package/dist/commands/browse-page.d.ts.map +1 -1
  2. package/dist/commands/browse-page.js +6 -1
  3. package/dist/commands/browse-page.js.map +1 -1
  4. package/dist/commands/browse.d.ts +9 -1
  5. package/dist/commands/browse.d.ts.map +1 -1
  6. package/dist/commands/browse.js +73 -8
  7. package/dist/commands/browse.js.map +1 -1
  8. package/dist/commands/call.d.ts.map +1 -1
  9. package/dist/commands/call.js +26 -4
  10. package/dist/commands/call.js.map +1 -1
  11. package/dist/commands/gen.d.ts.map +1 -1
  12. package/dist/commands/gen.js +8 -5
  13. package/dist/commands/gen.js.map +1 -1
  14. package/dist/commands/migrate.d.ts.map +1 -1
  15. package/dist/commands/migrate.js +12 -4
  16. package/dist/commands/migrate.js.map +1 -1
  17. package/dist/commands/request.d.ts +1 -0
  18. package/dist/commands/request.d.ts.map +1 -1
  19. package/dist/commands/request.js +126 -33
  20. package/dist/commands/request.js.map +1 -1
  21. package/dist/contract.d.ts +19 -4
  22. package/dist/contract.d.ts.map +1 -1
  23. package/dist/gen/go.d.ts +9 -2
  24. package/dist/gen/go.d.ts.map +1 -1
  25. package/dist/gen/go.js +127 -23
  26. package/dist/gen/go.js.map +1 -1
  27. package/dist/main.js +1 -1
  28. package/dist/migrate/steps.d.ts +2 -2
  29. package/dist/migrate/steps.d.ts.map +1 -1
  30. package/dist/migrate/steps.js +98 -12
  31. package/dist/migrate/steps.js.map +1 -1
  32. package/dist/remote.d.ts.map +1 -1
  33. package/dist/remote.js +17 -4
  34. package/dist/remote.js.map +1 -1
  35. package/package.json +8 -8
  36. package/schema/browse.schema.json +22 -1
  37. package/schema/call.schema.json +1 -1
  38. package/schema/gen.schema.json +24 -7
  39. package/schema/inspect.schema.json +2 -1
  40. package/schema/migrate.schema.json +10 -2
  41. package/skill/SKILL.md +2 -2
  42. package/skill/topics/data.md +38 -6
  43. package/skill/topics/recipes.md +6 -4
  44. package/skill/topics/testing.md +2 -0
  45. 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) => s.fields.length ? `type ${s.name} struct {\n${aligned(s.fields).join('\n')}\n}` : `type ${s.name} struct{}`;
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
- struct.fields = fields(unique);
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
- export function goContract(contract, pkg) {
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; every call carries it.
176
- const Fingerprint = "${contract.fingerprint}"
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, "undeclared error", http.StatusInternalServerError)
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\thttp.Error(w, "resolver failed", http.StatusInternalServerError)
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
- /** The fingerprint a generated Go contract declares, or null when the text has none. */
368
- export const goFingerprint = (text) => /^const Fingerprint = "([0-9a-f]+)"$/m.exec(text)?.[1] ?? null;
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
@@ -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>',
@@ -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, in one line for the plan. */
7
- summary: string;
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,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,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,EA+GvB,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"}
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"}
@@ -8,14 +8,14 @@ export const steps = [
8
8
  {
9
9
  from: '0.10',
10
10
  to: '0.11',
11
- summary: "runs: 'server' on every query and mutation without runs (0.11 defaults to 'either')",
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
- summary: '.hozu/ in .gitignore (0.12 caches the transform and the type check there)',
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
- summary: 'connect: [] on every feature and env files / internal in the IR (ADR 0051, 0052); new warnings HZ083 and HZ084',
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
- summary: "runs: 'either' where runs is omitted (0.14 requires it); package.json scripts call hozu check, and hozu graph scripts are removed (ADR 0053)",
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
- summary: "access: 'anyone' on every server-run user query and mutation, the 0.14 behaviour (ADR 0056 B); HZ090 then lists the user queries to tighten; an error the app named Forbidden (the framework's access error since 0.15) becomes NotAllowed",
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
- summary: 'no source change; an app without machines now locks its pages, so run hozu check --update-lock if it says the lock is missing; an endpoint at /sitemap.xml, /robots.txt or (with a site) /manifest.webmanifest is now HZ046, and a head.render field Hozu does not know is HZ014: move them to entries, noindex or site (ADR 0057)',
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
- summary: 'no source change; DevTools follows Figma (Shift+Enter selects the parent, Alt measures), and feature({ styles }) must be a list (HZ014) (ADR 0058)',
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
- summary: 'no source change; a page whose head query fails is titled with the site name, app({ refreshSession }) can renew a session while reading, hozu browse --viewport, and DevTools in your language (--devtools-messages) (ADR 0060)',
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
- summary: "no source change; freshness: { poll: seconds } re-reads a query on a timer, target: 'previous' returns to the state a machine came from, a field alone is a guard, and hozu browse says per step what changed (hold / release keep an effect pending) (ADR 0063)",
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
- summary: "no source change; transitions take refresh: () => [tag()] and copy, a render gets is([...]), HZ036 no longer warns about a form that starts a runs: 'browser' mutation (delete such accept entries, HZ087), hozu browse runs with JavaScript by default, and an on without target stays without entering its state again (accept the lock with hozu check --update-lock if HZ057 lists --> stays) (ADR 0064)",
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
- summary: 'no source change; query regions settle in place, added parts fade in, views two pages share keep still and machines keep their state across a page change, is([...]) works for structure, ui.set and replace are new, and hozu browse reports flashes and layout shift (ADR 0067); component fingerprints hash the recorded render, so run hozu build again before deploying',
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
- summary: "no source change; resolvers may be in Go through remote() and hozu gen (ADR 0068); a seed reads queries, links to the page shown get aria-current, a dialog's open follows the machine, ui.format.plural, head reads search, resolvers answer Forbidden, signedIn narrows the session type, one-shot commands exit (app({ dispose }) closes a pool), and kept state follows a view two pages share or the same address (ADR 0069); run hozu build again before deploying",
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":"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"}
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/migrate/steps.ts"],"names":[],"mappings":"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"}
@@ -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,CAsClG"}
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 { goFingerprint } from './gen/go.js';
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 found = goFingerprint(readFileSync(g.file, 'utf8'));
53
- if (found !== g.contract.fingerprint)
54
- problem(`The remote contract ${shown(g.file)} is stale (${found ?? 'no fingerprint'}, the declarations are ${g.contract.fingerprint})`, 'A declaration remote() lists changed after hozu gen wrote the contract, so the service would answer 409.', 'Run hozu gen, fix the service until go build passes, and rebuild it');
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
  }