@noy-db/hub 0.7.0-pre.14 → 0.7.0-pre.15

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/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # Changelog — hub
2
2
 
3
+ ## 0.7.0-pre.15
4
+
5
+ ### Patch Changes
6
+
7
+ - CORRECTION to `0.7.0-pre.14`'s description of #1269 — the fix is unchanged; what
8
+ it covers was described wrongly, twice.
9
+
10
+ The guard reads **declarative `spec.groupBy` and nothing else**. So:
11
+
12
+ - **caught** — a spec declaring `groupBy: [...]` as a top-level field, whether
13
+ `unionSources` or query-form;
14
+ - **silent** — `.groupBy(...)` chained INSIDE a `query: (db) => …` callback,
15
+ which is a runtime call on the query builder and never appears in the spec;
16
+ - **irrelevant** — `spec.sources`. The guard never reads it, so declaring it
17
+ cannot bring a shape into coverage.
18
+
19
+ The published `pre.14` entry said the uncovered case was "a single-query MV that
20
+ constructs its own source before the dependency is recorded". That framing is
21
+ wrong in a way that misleads: it points at dependency ORDERING and invites a
22
+ reader to fix coverage by declaring `sources`, which does nothing. Ordering
23
+ decides which OTHER guard fires first — a late-attach reconcile can loudly
24
+ refuse a virtual field on an already-constructed collection — not whether this
25
+ one fires.
26
+
27
+ Measured by a consumer on the published `pre.14` and re-derived from the code
28
+ here. No behaviour change: a `.groupBy()` chained in a callback was silent
29
+ before this correction and is silent after it. Closing that residue needs the
30
+ built query plan inspected, or a compute-time refusal, and is not attempted
31
+ here.
32
+
33
+ - CORRECTION to `0.7.0-pre.14`: the optional `zod` peer now reads
34
+ `^3.0.0 || ^4.0.0`, not `^4.0.0`.
35
+
36
+ `pre.14` un-vendored zod and declared it as an optional peer — correctly — but
37
+ declared a range NARROWER THAN WHAT HUB SUPPORTS. Under npm that made
38
+ `@noy-db/hub@0.7.0-pre.14` + `zod@3` uninstallable by name.
39
+
40
+ Measured, with controls in both directions:
41
+
42
+ ```
43
+ npm i @noy-db/hub@0.7.0-pre.14 zod@3.25.76 -> exit 1, ERESOLVE
44
+ npm i @noy-db/hub@0.7.0-pre.14 zod@4.4.3 -> exit 0 (control: major, not range shape)
45
+ npm i @noy-db/hub@0.7.0-pre.13 zod@3.25.76 -> exit 0 (control: the DECLARATION changed,
46
+ not the support)
47
+ ```
48
+
49
+ Zod 3 has always worked and still does — through the `zod-to-json-schema`
50
+ optional peer, with the v4-native `toJSONSchema` loader falling back when it is
51
+ absent. The two releases immediately before this one were substantially Zod 3
52
+ hardening (the `ZodEffects` unwrap, `z.preprocess` on both majors), so the
53
+ investment and the declaration pointed in opposite directions.
54
+
55
+ **Why no gate caught it:** while zod was vendored, no resolver ever saw a range,
56
+ so none was ever exercised. Every in-repo check stays green under either
57
+ declaration — a peer FORM deciding installability, which is the same class as
58
+ this family's exact-peer incident. There is now a test asserting the range
59
+ admits a real version of each major, and refusing a range that ends in a
60
+ dangling `||`.
61
+
62
+ pnpm only warns, so a pnpm workspace saw nothing; npm refuses.
63
+
3
64
  ## 0.7.0-pre.14
4
65
 
5
66
  ### Patch Changes
package/README.md CHANGED
@@ -77,8 +77,8 @@ const all = await invoices.list()
77
77
  - **Offline-first sync** — push/pull with optimistic concurrency on encrypted envelopes
78
78
  - **Audit history** — full-copy snapshots with `history()`, `diff()`, `revert()`, `pruneHistory()`
79
79
  - **No third-party runtime dependencies to install** — the only runtime dependency is
80
- `@noy-db/attestation`, on the same version line. `zod` and `zod-to-json-schema` are OPTIONAL
81
- peers used by the persisted-schema converter: nothing is installed on your behalf, nothing is
80
+ `@noy-db/attestation`, on the same version line. `zod` (v3 or v4) and `zod-to-json-schema` are
81
+ OPTIONAL peers used by the persisted-schema converter: nothing is installed on your behalf, nothing is
82
82
  vendored into the bundle, and if you do use Zod schemas the converter reads YOUR copy rather
83
83
  than a second one frozen at hub's build time.
84
84
 
@@ -5,7 +5,7 @@ import {
5
5
  describeExtraction,
6
6
  unsealDeks,
7
7
  withCargo
8
- } from "../chunk-NOSRK3ZZ.js";
8
+ } from "../chunk-YINEDONN.js";
9
9
  import {
10
10
  diffVault
11
11
  } from "../chunk-LFUID7OW.js";
@@ -1649,4 +1649,4 @@ export {
1649
1649
  DEFAULT_POSTURE,
1650
1650
  ViaGraph
1651
1651
  };
1652
- //# sourceMappingURL=chunk-4SZMZAYN.js.map
1652
+ //# sourceMappingURL=chunk-NJXX55QX.js.map