@visulima/vis 1.0.0-alpha.19 → 1.0.0-alpha.20
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 +164 -0
- package/LICENSE.md +187 -779
- package/README.md +1 -1
- package/dist/config/index.d.ts +535 -121
- package/dist/config/index.js +1 -1
- package/dist/packem_chunks/bin.js +380 -286
- package/dist/packem_chunks/config.js +15 -14
- package/dist/packem_chunks/doctor-probe.js +2 -2
- package/dist/packem_chunks/fix.js +9 -9
- package/dist/packem_chunks/handler.js +1 -1
- package/dist/packem_chunks/handler10.js +1 -2
- package/dist/packem_chunks/handler11.js +5 -1
- package/dist/packem_chunks/handler12.js +1 -5
- package/dist/packem_chunks/handler13.js +27 -1
- package/dist/packem_chunks/handler14.js +5 -20
- package/dist/packem_chunks/handler15.js +1 -1
- package/dist/packem_chunks/handler16.js +1 -1
- package/dist/packem_chunks/handler17.js +1 -1
- package/dist/packem_chunks/handler18.js +1 -1
- package/dist/packem_chunks/handler19.js +1 -5
- package/dist/packem_chunks/handler20.js +5 -2
- package/dist/packem_chunks/handler21.js +2 -18
- package/dist/packem_chunks/handler22.js +2 -1
- package/dist/packem_chunks/handler23.js +18 -1
- package/dist/packem_chunks/handler24.js +1 -5
- package/dist/packem_chunks/handler25.js +1 -1
- package/dist/packem_chunks/handler26.js +5 -3
- package/dist/packem_chunks/handler27.js +1 -1
- package/dist/packem_chunks/handler28.js +3 -1
- package/dist/packem_chunks/handler29.js +1 -7
- package/dist/packem_chunks/handler3.js +3 -3
- package/dist/packem_chunks/handler30.js +6 -22
- package/dist/packem_chunks/handler31.js +33 -3
- package/dist/packem_chunks/handler32.js +3 -1
- package/dist/packem_chunks/handler33.js +1 -2
- package/dist/packem_chunks/handler34.js +25 -24
- package/dist/packem_chunks/handler35.js +3 -3
- package/dist/packem_chunks/handler36.js +6 -21
- package/dist/packem_chunks/handler37.js +22 -428
- package/dist/packem_chunks/handler38.js +428 -6
- package/dist/packem_chunks/handler39.js +6 -5
- package/dist/packem_chunks/handler4.js +8 -2
- package/dist/packem_chunks/handler40.js +24 -10
- package/dist/packem_chunks/handler41.js +10 -24
- package/dist/packem_chunks/handler42.js +1 -1
- package/dist/packem_chunks/handler43.js +6 -6
- package/dist/packem_chunks/handler44.js +13 -13
- package/dist/packem_chunks/handler45.js +213 -3
- package/dist/packem_chunks/handler46.js +3 -27
- package/dist/packem_chunks/handler47.js +21 -161
- package/dist/packem_chunks/handler48.js +166 -33
- package/dist/packem_chunks/handler49.js +34 -0
- package/dist/packem_chunks/handler5.js +1 -8
- package/dist/packem_chunks/handler6.js +1 -1
- package/dist/packem_chunks/handler7.js +1 -1
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/handler9.js +2 -1
- package/dist/packem_chunks/heal-accept.js +2 -2
- package/dist/packem_chunks/heal.js +1 -1
- package/dist/packem_chunks/help-command.js +16 -16
- package/dist/packem_chunks/index.js +6 -6
- package/dist/packem_chunks/keys-refresh.js +4 -0
- package/dist/packem_chunks/list.js +3 -0
- package/dist/packem_chunks/loader.js +1 -1
- package/dist/packem_chunks/prune.js +3 -0
- package/dist/packem_chunks/run.js +1 -0
- package/dist/packem_chunks/status.js +2 -0
- package/dist/packem_chunks/sync.js +2 -0
- package/dist/packem_chunks/sync2.js +2 -0
- package/dist/packem_chunks/tripwire.js +2 -0
- package/dist/packem_shared/advisories-DsynpacV.js +1 -0
- package/dist/packem_shared/{ai-analysis-C_GpXikx.js → ai-analysis-uYuTIIXi.js} +1 -1
- package/dist/packem_shared/{ai-cache-DrCLD4gc.js → ai-cache-DuwHYx2O.js} +1 -1
- package/dist/packem_shared/{ai-fix-CWOz12Om.js → ai-fix-DzrA-dVz.js} +4 -4
- package/dist/packem_shared/applyDefaults-BOVDw1jD.js +1 -0
- package/dist/packem_shared/build-scripts-DsWMSWDs.js +1 -0
- package/dist/packem_shared/{cache-directory-C_U1qsIw.js → cache-directory-DQak1Vjc.js} +1 -1
- package/dist/packem_shared/cyclonedx-CiHXuG8M.js +4 -0
- package/dist/packem_shared/dependency-scan-DC3nAFHS.js +1 -0
- package/dist/packem_shared/{docker-B4s1fjiN.js → docker-B-CIN_nj.js} +19 -19
- package/dist/packem_shared/{failure-log-CSC6KfcO.js → failure-log-C3LEMmkq.js} +1 -1
- package/dist/packem_shared/{flakiness-DUtrm-wS.js → flakiness-Dq6K4ymq.js} +1 -1
- package/dist/packem_shared/glob-MHJQjR39-CQ2GC0b_.js +1 -0
- package/dist/packem_shared/{lifecycle-CgK8pcfa.js → lifecycle-Dv3nAtoD.js} +2 -2
- package/dist/packem_shared/{lockfile-i-qvq_k8.js → lockfile-C5DYMHVq.js} +1 -1
- package/dist/packem_shared/manifests-B0fMp872.js +1 -0
- package/dist/packem_shared/min-release-age-BFozFonQ.js +34 -0
- package/dist/packem_shared/native-config-sync-Dvi1g2nQ.js +21 -0
- package/dist/packem_shared/registry-keys-CewRFW0e.js +1 -0
- package/dist/packem_shared/resolve-explicit-CC4Kifk5.js +5 -0
- package/dist/packem_shared/{run-summary-utils-CJv75pla.js → run-summary-utils-BaBGP3bo.js} +1 -1
- package/dist/packem_shared/{runtime-check-CBU6W8qG.js → runtime-check-BusAwPb2.js} +1 -1
- package/dist/packem_shared/scan-progress-CMynp3eA.js +2 -0
- package/dist/packem_shared/signatures-5ZdjJ2Pu.js +2 -0
- package/dist/packem_shared/{toolchain-B7dckBQ1.js → toolchain-Cc3cwyLP.js} +3 -3
- package/dist/packem_shared/typosquats-BCeR-sLf.js +1 -0
- package/dist/packem_shared/verify-07kUNTuP.js +1 -0
- package/dist/packem_shared/{vis-update-app-D0uL3eO5.js → vis-update-app-CFrlJ3mW.js} +1 -1
- package/index.d.ts +358 -0
- package/index.js +56 -53
- package/package.json +14 -13
- package/schemas/vis-config.schema.json +595 -100
- package/dist/packem_shared/applyDefaults-DLY94gWA.js +0 -1
- package/dist/packem_shared/dependency-scan-YdgNVvoz.js +0 -2
- package/dist/packem_shared/readTomlSync-1fKo0R52-DtxWULlF.js +0 -109
- package/dist/packem_shared/typosquats-B3A38-qx.js +0 -1
- package/dist/packem_shared/verify-WDStBFvK.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,167 @@
|
|
|
1
|
+
## @visulima/vis [1.0.0-alpha.20](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.19...@visulima/vis@1.0.0-alpha.20) (2026-05-14)
|
|
2
|
+
|
|
3
|
+
### ⚠ BREAKING CHANGES
|
|
4
|
+
|
|
5
|
+
* **vis:** the following security.* keys were renamed:
|
|
6
|
+
- security.minimumReleaseAge -> security.policies.first_seen.minutes
|
|
7
|
+
- security.minimumReleaseAgeExclude -> security.policies.first_seen.exclude
|
|
8
|
+
- security.trustPolicy -> security.policies.publisher_change.mode
|
|
9
|
+
- security.trustPolicyExclude -> security.policies.publisher_change.exclude
|
|
10
|
+
- security.trustPolicyIgnoreAfter -> security.policies.publisher_change.ignoreAfter
|
|
11
|
+
- security.allowBuilds -> security.policies.install_scripts.allow
|
|
12
|
+
- security.strictDepBuilds -> security.policies.install_scripts.strict
|
|
13
|
+
- security.socket.minimumScore -> security.policies.score.minimum
|
|
14
|
+
- security.socket.acceptedRisks -> security.acceptedRisks
|
|
15
|
+
- security.audit.failOn -> security.policies.vulnerability.failOn
|
|
16
|
+
- security.audit.usage -> security.policies.vulnerability.usage
|
|
17
|
+
|
|
18
|
+
AcceptedRisk now carries optional policies[] and expiresAt fields so
|
|
19
|
+
risks can be scoped per-policy and time-boxed. Native PM sync writers
|
|
20
|
+
keep emitting pnpm-native field names since pnpm owns that schema.
|
|
21
|
+
|
|
22
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
23
|
+
|
|
24
|
+
* chore(vis): address coderabbit review feedback
|
|
25
|
+
|
|
26
|
+
- Add JSDoc to exported items across hook builtins, advisories, audit, docker
|
|
27
|
+
- Document OSV `last_affected` inclusive-upper semantics with a focused test
|
|
28
|
+
- Annotate NAPI u64→u32 truncations with JS Number range rationale
|
|
29
|
+
- Switch vis-mcp tool payloads to zod schemas with `.catchall(z.unknown())`
|
|
30
|
+
so unknown CLI fields stay forward-compatible
|
|
31
|
+
- Fence RFC code blocks with explicit languages and tidy hook-command
|
|
32
|
+
formatting (multi-line type, implicit-return arrows)
|
|
33
|
+
|
|
34
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
35
|
+
|
|
36
|
+
* chore(vis): address second-round coderabbit feedback on policies rename
|
|
37
|
+
|
|
38
|
+
- Drift report labels now reference `security.policies.*` paths so the
|
|
39
|
+
hint matches the keys users edit
|
|
40
|
+
- `defineConfig` JSDoc examples use the new `security.policies` shape
|
|
41
|
+
- `mergeSecurityDefaults` deep-merges every defaulted sub-policy
|
|
42
|
+
generically; `mergeVisConfigs` deep-merges `policies` and
|
|
43
|
+
`acceptedRisks` so presets aren't clobbered
|
|
44
|
+
- Config-writer scopes its `allow:` match to follow an
|
|
45
|
+
`install_scripts:` opener
|
|
46
|
+
- JSDoc clarifications for `audit.advisories.source` default,
|
|
47
|
+
`acceptedRisks.expiresAt`/`acceptedScore` ranges, `malware.mode`
|
|
48
|
+
cross-field default, and the current `policies.score.minimum`
|
|
49
|
+
wiring gap
|
|
50
|
+
|
|
51
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
52
|
+
|
|
53
|
+
* chore(vis): finish coderabbit round-2 fixes — camelCase policies + wire score.minimum
|
|
54
|
+
|
|
55
|
+
- Rename `PolicyName` union to camelCase (`firstSeen`, `installScripts`,
|
|
56
|
+
`publisherChange`, `unexpectedDeps`). Updates every consumer in src/,
|
|
57
|
+
test fixtures, schemas, and docs. JSON schema regenerated.
|
|
58
|
+
- Add `types` mapping to the `#native` package.json import so TypeScript
|
|
59
|
+
resolves `index.d.ts` when consumers import the alias.
|
|
60
|
+
- Thread `socketOptions.minimumScore` through `audit`, `doctor`, `check`,
|
|
61
|
+
`update`, `add`, `formatSecurityOverview`, `formatSummary`, and
|
|
62
|
+
`applyFilter`. `buildSocketOptions` now resolves the effective minimum
|
|
63
|
+
once (from `security.policies.score.minimum` or
|
|
64
|
+
`DEFAULT_LOW_SCORE_THRESHOLD`) so every consumer sees the same value
|
|
65
|
+
instead of comparing scores against the hard-coded constant.
|
|
66
|
+
- Update the JSDoc on `policies.score.minimum` to reflect the new wiring.
|
|
67
|
+
|
|
68
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
69
|
+
|
|
70
|
+
* feat(vis): add Socket-style policy engine with 4 offline-clean policies
|
|
71
|
+
|
|
72
|
+
Introduce a unified `evaluatePolicies()` engine under `src/security/policies/`
|
|
73
|
+
with four offline-clean modules: license, install_scripts, vulnerability,
|
|
74
|
+
and unexpected_deps (baseline mode). Each policy emits PolicyDecisions
|
|
75
|
+
(block/warn/info) keyed by package, with per-policy accepted-risk scoping
|
|
76
|
+
and expiresAt support reused from the shared matcher.
|
|
77
|
+
|
|
78
|
+
Wires the engine into `vis audit`: a new `--policies <names>` flag
|
|
79
|
+
(comma-list, `all`, or `none`) narrows evaluation. Block-severity
|
|
80
|
+
decisions feed into `--exit-code` and `--fail-on`. JSON output gains
|
|
81
|
+
`policies[]` + `summary.policyBlocks`. SARIF and HTML formatters render
|
|
82
|
+
policy decisions alongside vulnerabilities; CSAF and CycloneDX-VEX are
|
|
83
|
+
intentionally left untouched (vuln-specific data models).
|
|
84
|
+
|
|
85
|
+
Adds `readNodeModulesManifests()` to walk `node_modules/` (including the
|
|
86
|
+
pnpm `.pnpm/` content-addressed store) and surface license + scripts +
|
|
87
|
+
maintainers metadata for the offline policies.
|
|
88
|
+
|
|
89
|
+
33 new unit + integration tests; full vitest suite (3582/3582) green;
|
|
90
|
+
`tsc --noEmit` clean.
|
|
91
|
+
|
|
92
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
93
|
+
|
|
94
|
+
* fix(vis): close three audit policy gating gaps surfaced by CodeRabbit
|
|
95
|
+
|
|
96
|
+
- applyExitGate's fallthrough call to applyFailOnGate was dropping the
|
|
97
|
+
policyDecisions argument, so `vis audit --format sarif --fail-on high`
|
|
98
|
+
exited 0 when the only signal was a block-severity policy decision.
|
|
99
|
+
Forward the argument.
|
|
100
|
+
- Unknown --policies tokens were silently swallowed when format was
|
|
101
|
+
json/sarif/csaf/cyclonedx-vex, so a typoed CI invocation reduced
|
|
102
|
+
enforcement with no log. Always emit the warning to stderr and
|
|
103
|
+
surface the tokens in JSON output as `warnings[]`.
|
|
104
|
+
- Vulnerability-policy block decisions whose advisory was masked by
|
|
105
|
+
--severity used to exit 1 with no visible reason. Surface those
|
|
106
|
+
decisions in the human-readable "Policy Decisions" section so the
|
|
107
|
+
gate is always traceable.
|
|
108
|
+
|
|
109
|
+
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
|
110
|
+
|
|
111
|
+
* fix(vis): correct npm/yarn min-release-age native config writers
|
|
112
|
+
|
|
113
|
+
npm CLI types `min-release-age` as `Number` in days, not a duration string —
|
|
114
|
+
vis wrote `48h`/`15m`, which npm's parseInt would silently read as 48/15 days.
|
|
115
|
+
Write integer days rounded up so the native gate is never weaker than vis-config.
|
|
116
|
+
|
|
117
|
+
Yarn Berry silently treats day suffixes in `npmMinimalAgeGate` as minutes
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* **vis:** add LavaMoat allow-scripts parity (run/tripwire/--write/allowBins) ([84218d3](https://github.com/visulima/visulima/commit/84218d392abcde8d76b9b92de7d220be2b08e854))
|
|
122
|
+
* **vis:** multi-source codeowners aggregation ([d22df81](https://github.com/visulima/visulima/commit/d22df81214899209be3fd9fa4d83372be97552ef))
|
|
123
|
+
* **vis:** offline OSV scanner + unified security.policies ([#632](https://github.com/visulima/visulima/issues/632)) ([6461902](https://github.com/visulima/visulima/commit/646190243bf51bb6df172665d70fd501644e7bc3)), closes [#631](https://github.com/visulima/visulima/issues/631) [#631](https://github.com/visulima/visulima/issues/631) [yarnpkg/berry#6991](https://github.com/yarnpkg/berry/issues/6991)
|
|
124
|
+
* **vis:** wire marshall env-var matrix into install/audit/check + add keys-refresh ([e1e2d6c](https://github.com/visulima/visulima/commit/e1e2d6c2dc81cfdf442b6f75b6497150b368565f))
|
|
125
|
+
|
|
126
|
+
### Bug Fixes
|
|
127
|
+
|
|
128
|
+
* **release:** patch NAPI version-check string and ship fresh loader on release ([0676e33](https://github.com/visulima/visulima/commit/0676e336f453c9ae38c9f3a5fbbb675f9bff7ea0))
|
|
129
|
+
* **vis:** clear lint findings in hook dispatch, builtins, and util ([d05204c](https://github.com/visulima/visulima/commit/d05204c9a88d300b2b4ba3c2dd4169a9860a1d86))
|
|
130
|
+
|
|
131
|
+
### Documentation
|
|
132
|
+
|
|
133
|
+
* **vis:** add vltpkg/security-archive attribution ([019d6fd](https://github.com/visulima/visulima/commit/019d6fd4d4426991f2fb31450f72616b14874aff))
|
|
134
|
+
|
|
135
|
+
### Miscellaneous Chores
|
|
136
|
+
|
|
137
|
+
* fixed build ([ec156bf](https://github.com/visulima/visulima/commit/ec156bf08859e81186b74533610357d85c38f64e))
|
|
138
|
+
* update license file ([8a84e10](https://github.com/visulima/visulima/commit/8a84e10f2077779159f2f1e186be1d461c47e043))
|
|
139
|
+
* **vis:** apply prettier and eslint --fix sweep ([ec64552](https://github.com/visulima/visulima/commit/ec645524984f0e767ba63b3fcaaf60e184d31edf))
|
|
140
|
+
* **vis:** clear remaining ESLint findings across marshalls and tests ([29f87c5](https://github.com/visulima/visulima/commit/29f87c56d8c4aadfe5e270e67901435af31b8eae))
|
|
141
|
+
* **vis:** fix indent-binary-ops and silence default-log no-console ([9c8d5e1](https://github.com/visulima/visulima/commit/9c8d5e1cc07e6e5f3c01d0b79715f074dbda9b0b))
|
|
142
|
+
* **vis:** style normalization sweep + scopedTasks/allowBins config fields ([ff97758](https://github.com/visulima/visulima/commit/ff977584da0afdf61d619b7a5fb7536f80c782a6))
|
|
143
|
+
|
|
144
|
+
### Tests
|
|
145
|
+
|
|
146
|
+
* **vis:** raise audit-offline gate to 5× budget for CI hosts ([345b159](https://github.com/visulima/visulima/commit/345b1590cd5f0fbe432855aafde8e7cb3ab19c84))
|
|
147
|
+
* **vis:** use median-of-11 samples for audit-offline perf gate ([3225515](https://github.com/visulima/visulima/commit/3225515f9bf67149b8e0cb42812bc21729b6d750))
|
|
148
|
+
|
|
149
|
+
### Continuous Integration
|
|
150
|
+
|
|
151
|
+
* **vis:** track index.d.ts so loader artifact survives cache hits ([b9a439f](https://github.com/visulima/visulima/commit/b9a439f178f1849cc14233ad76e51fe38e5d180f))
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
### Dependencies
|
|
155
|
+
|
|
156
|
+
* **@visulima/secret-scanner:** upgraded to 1.0.0-alpha.3
|
|
157
|
+
* **@visulima/task-runner:** upgraded to 1.0.0-alpha.14
|
|
158
|
+
* **@visulima/tui:** upgraded to 1.0.0-alpha.15
|
|
159
|
+
* **@visulima/cerebro:** upgraded to 3.0.0-alpha.23
|
|
160
|
+
* **@visulima/colorize:** upgraded to 2.0.0-alpha.11
|
|
161
|
+
* **@visulima/fs:** upgraded to 5.0.0-alpha.22
|
|
162
|
+
* **@visulima/package:** upgraded to 5.0.0-alpha.21
|
|
163
|
+
* **@visulima/pail:** upgraded to 4.0.0-alpha.16
|
|
164
|
+
|
|
1
165
|
## @visulima/vis [1.0.0-alpha.19](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.18...@visulima/vis@1.0.0-alpha.19) (2026-05-11)
|
|
2
166
|
|
|
3
167
|
### ⚠ BREAKING CHANGES
|