@hozu/cli 0.23.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.
@@ -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,EAuHvB,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,7 +148,20 @@ 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$/,
@@ -110,7 +169,27 @@ export const steps = [
110
169
  {
111
170
  from: '0.22',
112
171
  to: '0.23',
113
- summary: 'no source change; route params are parsed (z.coerce applies), canonical URLs and links leave defaults out after an optional segment, aria-current marks sections above the page only, native multi-step forms keep their step, { ...search } works in ui.link, and a Go service needs hozu gen and a rebuild (a fingerprint per effect) (ADR 0070)',
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
+ ],
114
193
  rewrite: (_, source) => ({ code: source, notes: [], count: 0 }),
115
194
  normalize: (ir) => ir,
116
195
  },
@@ -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,CA8ClG"}
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 { goFingerprints } 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,7 +49,12 @@ 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 = goFingerprints(readFileSync(g.file, 'utf8'));
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
+ }
53
58
  const stale = [
54
59
  ...g.contract.effects
55
60
  .filter((e) => found[e.ref] !== e.fingerprint)
@@ -1 +1 @@
1
- {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../src/remote.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hozu/cli",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "The hozu command: check, map, why, show, get, browse, call, plan, add, build, dev, serve, docs, migrate and skill (all with --json)",
5
5
  "keywords": [
6
6
  "hozu",
@@ -48,14 +48,14 @@
48
48
  "access": "public"
49
49
  },
50
50
  "dependencies": {
51
- "@hozu/core": "0.23.0",
52
- "@hozu/devtools": "0.23.0",
53
- "@hozu/validator": "0.23.0",
54
- "@hozu/machine": "0.23.0",
55
- "@hozu/compiler": "0.23.0",
56
- "@hozu/transform": "0.23.0"
51
+ "@hozu/core": "0.24.0",
52
+ "@hozu/validator": "0.24.0",
53
+ "@hozu/machine": "0.24.0",
54
+ "@hozu/compiler": "0.24.0",
55
+ "@hozu/devtools": "0.24.0",
56
+ "@hozu/transform": "0.24.0"
57
57
  },
58
58
  "devDependencies": {
59
- "create-hozu": "0.23.0"
59
+ "create-hozu": "0.24.0"
60
60
  }
61
61
  }
@@ -77,7 +77,7 @@
77
77
  "items": {
78
78
  "type": "string"
79
79
  },
80
- "description": "Tags a mutation invalidated."
80
+ "description": "Tags a mutation or a writing endpoint invalidated."
81
81
  },
82
82
  "refreshes": {
83
83
  "type": "array",
@@ -53,7 +53,7 @@
53
53
  "items": {
54
54
  "type": "string"
55
55
  },
56
- "description": "Number fields named like an id or a count, which may want z.int() (ADR 0070 C4); not diagnostics."
56
+ "description": "Number fields named like an id or a count, which may want z.int() (ADR 0070 C4), and enums without a title that became several Go types, which a title makes one; not diagnostics."
57
57
  }
58
58
  },
59
59
  "required": [
@@ -747,7 +747,8 @@
747
747
  "alternate",
748
748
  "env",
749
749
  "session",
750
- "state"
750
+ "state",
751
+ "route"
751
752
  ]
752
753
  },
753
754
  "GuardExpr": {
@@ -41,15 +41,23 @@
41
41
  },
42
42
  "summary": {
43
43
  "type": "string"
44
+ },
45
+ "changes": {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string"
49
+ }
44
50
  }
45
51
  },
46
52
  "required": [
47
53
  "from",
48
54
  "to",
49
- "summary"
55
+ "summary",
56
+ "changes"
50
57
  ],
51
58
  "additionalProperties": false
52
- }
59
+ },
60
+ "description": "Each step's changes: `summary` joins `changes` with \"; \"."
53
61
  },
54
62
  "changed": {
55
63
  "type": "array",
@@ -146,7 +146,11 @@ func main() {
146
146
  - Data the whole staff shares but only staff may read is `scope: 'user'` with `access` (it is never cached across
147
147
  requests). Share one rule: `const staffOnly = part(({ session }) => session.role !== 'editor')`, then
148
148
  `access: { allow: staffOnly }` on each effect.
149
- - A resolver may answer `fail('Forbidden', { message })` (a row deleted meanwhile, a check `access` cannot make);
150
- with `access: 'signedIn'` its `session` is never null.
149
+ - A resolver may answer `fail('Forbidden', { message })` (a check `access` cannot make); with any access but
150
+ `'anyone'` its `session` is never null.
151
+ - A failure you can expect (a row gone, a state that forbids the change) is a declared error of the effect
152
+ (`errors: { NotFound }`, `fail('NotFound', …)`), handled in `failed` with and without JavaScript. A thrown error is
153
+ `Unexpected`: a server fault (500 on a native post, `Internal error` in production).
151
154
  - Another app writing the same database: give the reading app a signed `endpoint` that `invalidates` the tags, and
152
- call it after a write (`hozu docs endpoints`).
155
+ call it after a write (`hozu docs endpoints`). Every query that app's writes change needs a tag, or only its
156
+ freshness time refreshes it.
@@ -89,7 +89,8 @@ const staffHead = { query: me, render: (m) => ({ title: `${m.name} · Admin` }),
89
89
  const staff = (route, View) => ui.page(route, { views: [Sidebar, View], head: staffHead })
90
90
  export default project({ /* … */ pages: [staff(orders, OrderList), staff(orderDetail, OrderPage), …] })
91
91
  ```
92
- The sidebar's links mark the page shown with `aria-current` by themselves (`aria-[current]:font-bold`).
92
+ The sidebar marks its sections with `current(route)` from its render:
93
+ `'aria-current': current(orders) || current(orderDetail)`, styled `aria-[current]:font-bold`.
93
94
 
94
95
  ## Screens with different state
95
96
  One machine per feature: an order list (filters, selection) and an order page (shipping, refund) are two features,
@@ -67,8 +67,10 @@ export const Board = ui.view({
67
67
  ## Menus, dialogs, counting
68
68
  - When a query's input changes, the rows stay (`aria-busy` on the parent) and update by key; `pending` shows only
69
69
  before the first answer.
70
- - A link to the page shown gets `aria-current="page"`, a link to a section above it (`/orders` on `/orders/7`)
71
- `"true"`; the same path with another search (a next page) gets nothing. An `aria-current` you set wins.
70
+ - A link to the address shown gets `aria-current="page"`. Which links mark a section is yours to say: the render's
71
+ `current(route)` is true on that route's pages, so a menu writes
72
+ `ui.a({ href: ui.link(orders, null), 'aria-current': current(orders) || current(orderDetail) }, ['Orders'])` and
73
+ styles `aria-[current]:font-bold`: `true` is written `"page"` on the address itself, `false` writes nothing.
72
74
  - `ui.dialog({ open: is(['editing']), on: { close: ui.send(Cancel, {}) } }, [...])` opens as a modal and closes with
73
75
  the machine; Escape sends `close`. It needs JavaScript: a dialog that must open without it uses the native
74
76
  `commandfor` button (the short form) and closes when the data that shows it changes.