Commit 82fcd0f
test(scripts): add the consumer-resolution regression control (#16186)
Pinning the version fixes today's break and leaves the repository exactly
as blind as it was: `pnpm-lock.yaml` held `@better-auth/core@1.7.2`, so
every job here imported the version that still had
`createLocalAccountIssuer` while every consumer resolved `^1.7.2` to
1.7.3 and could not load the plugin at all.
`scripts/check-vendor-export-contract.mjs` closes that class. For every
governed vendor a publishable package statically imports runtime values
from, it asserts the declared range is an EXACT version, that the
installed copy IS that version, and that importing each specifier really
yields every symbol our shipped source takes from it — so "what CI
imported" and "what a consumer resolves" are the same string.
`--resolve` measures the same property instead of proving it: it
enumerates every registry version the DECLARED range admits, installs
each outside this workspace, and fails if any is missing a symbol we
import. Wired into validate-deps.yml, which already has the network and
runs daily; the offline leg runs in the lint farm on every PR.
`check-override-consistency.mjs` structurally cannot cover this — it asks
whether the override target is reachable from the declared range, and
`^1.7.2` agreed with `^1.7.2` all the way onto the broken version.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 3409241 commit 82fcd0f
4 files changed
Lines changed: 622 additions & 0 deletions
File tree
- .github/workflows
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2615 | 2615 | | |
2616 | 2616 | | |
2617 | 2617 | | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
2618 | 2636 | | |
2619 | 2637 | | |
2620 | 2638 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
| |||
83 | 86 | | |
84 | 87 | | |
85 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
86 | 112 | | |
87 | 113 | | |
88 | 114 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| 128 | + | |
| 129 | + | |
128 | 130 | | |
129 | 131 | | |
130 | 132 | | |
| |||
0 commit comments