@visulima/vis 1.0.0-alpha.26 → 1.0.0-alpha.27
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 +23 -0
- package/LICENSE.md +17 -17
- package/README.md +24 -22
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/config/index.d.ts +176 -16
- package/dist/packem_chunks/bin.js +263 -263
- package/dist/packem_chunks/bloom-status.js +1 -1
- package/dist/packem_chunks/bloom-sync.js +1 -1
- package/dist/packem_chunks/config.js +12 -12
- package/dist/packem_chunks/handler10.js +1 -1
- package/dist/packem_chunks/handler11.js +1 -1
- package/dist/packem_chunks/handler12.js +1 -1
- package/dist/packem_chunks/handler13.js +1 -1
- package/dist/packem_chunks/handler14.js +8 -9
- 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 -1
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler20.js +1 -1
- package/dist/packem_chunks/handler22.js +1 -1
- package/dist/packem_chunks/handler23.js +1 -1
- package/dist/packem_chunks/handler27.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler29.js +1 -1
- package/dist/packem_chunks/handler30.js +3 -3
- package/dist/packem_chunks/handler31.js +2 -2
- package/dist/packem_chunks/handler34.js +1 -1
- package/dist/packem_chunks/handler35.js +3 -22
- package/dist/packem_chunks/handler36.js +21 -60
- package/dist/packem_chunks/handler37.js +61 -6
- package/dist/packem_chunks/handler38.js +3 -24
- package/dist/packem_chunks/handler39.js +6 -153
- package/dist/packem_chunks/handler4.js +1 -1
- package/dist/packem_chunks/handler40.js +24 -10
- package/dist/packem_chunks/handler41.js +153 -25
- package/dist/packem_chunks/handler42.js +10 -708
- package/dist/packem_chunks/handler43.js +25 -24
- package/dist/packem_chunks/handler44.js +659 -273
- package/dist/packem_chunks/handler45.js +24 -46
- package/dist/packem_chunks/handler46.js +322 -3
- package/dist/packem_chunks/handler47.js +48 -27
- package/dist/packem_chunks/handler48.js +3 -187
- package/dist/packem_chunks/handler49.js +23 -30
- package/dist/packem_chunks/handler5.js +6 -6
- package/dist/packem_chunks/handler50.js +196 -0
- package/dist/packem_chunks/handler51.js +34 -0
- package/dist/packem_chunks/handler8.js +1 -1
- package/dist/packem_chunks/handler9.js +1 -1
- package/dist/packem_chunks/heal-accept.js +1 -1
- package/dist/packem_chunks/help-command.js +16 -16
- package/dist/packem_chunks/index.js +1 -1
- package/dist/packem_chunks/list.js +1 -1
- package/dist/packem_chunks/loader.js +1 -1
- package/dist/packem_chunks/prune.js +1 -1
- package/dist/packem_chunks/status.js +1 -1
- package/dist/packem_chunks/sync.js +1 -1
- package/dist/packem_chunks/sync2.js +1 -1
- package/dist/packem_chunks/tripwire.js +1 -1
- package/dist/packem_chunks/verify-lockfile.js +1 -1
- package/dist/packem_shared/{advisories-DS8JEB_g.js → advisories-xIOdLbAI.js} +1 -1
- package/dist/packem_shared/{cyclonedx-ja1cbU69.js → cyclonedx-B3ILsY74.js} +1 -1
- package/dist/packem_shared/{docker-Bw9gKo69.js → docker-BynKrOLe.js} +1 -1
- package/dist/packem_shared/{index-88UK-tt_.js → index-B_KtN1MB.js} +1 -1
- package/dist/packem_shared/{index-CS6a2wFB.js → index-efSniSRN.js} +1 -1
- package/dist/packem_shared/{lifecycle-ChCFTm5Q.js → lifecycle-CJRNbN3x.js} +2 -2
- package/dist/packem_shared/{min-release-age-heJgeP7o.js → min-release-age-aEn0x8Vy.js} +1 -1
- package/dist/packem_shared/{native-config-sync-BOeuyrBj.js → native-config-sync-DdhTLlKL.js} +1 -1
- package/dist/packem_shared/{osv-bloom-QSAn2Dcw.js → osv-bloom-BJhlc_I2.js} +2 -2
- package/dist/packem_shared/{pm-runner-BzGZmzYs.js → pm-runner-BwX5AL3W.js} +1 -1
- package/dist/packem_shared/{provenance-BsBn1f5S.js → provenance-BuiEsWbI.js} +1 -1
- package/dist/packem_shared/{resolve-explicit-CBPr617N.js → resolve-explicit-RgRrUDZv.js} +1 -1
- package/dist/packem_shared/{s1ngularity-j_ArCZAs.js → s1ngularity-Bs9fUf3q.js} +1 -1
- package/dist/packem_shared/{scan-progress-EbvmIh4i.js → scan-progress-DjPT66jy.js} +2 -2
- package/dist/packem_shared/{signatures-CaXzNuEn.js → signatures-LYMy8OR5.js} +1 -1
- package/dist/packem_shared/{typosquats-C1e6RNjF.js → typosquats-znskIR5j.js} +1 -1
- package/dist/packem_shared/watch-BSVsZ_1I.js +1 -0
- package/dist/packem_shared/watch-loop-DLlMLg_J.js +11 -0
- package/index.js +751 -567
- package/package.json +11 -11
- package/schemas/project.schema.json +86 -1
- package/schemas/vis-config.schema.json +255 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## @visulima/vis [1.0.0-alpha.27](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.26...@visulima/vis@1.0.0-alpha.27) (2026-06-02)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **task-runner,vis:** per-task pty + concurrency weight, abort cache gate, fspy scaffolds ([#656](https://github.com/visulima/visulima/issues/656)) ([ca64010](https://github.com/visulima/visulima/commit/ca64010b236903e08273680ea65dec7046fcd18b))
|
|
6
|
+
* **vis:** declarative task arguments + per-target script mode ([#662](https://github.com/visulima/visulima/issues/662)) ([417ca53](https://github.com/visulima/visulima/commit/417ca5395728a0776cbfcd0122ae21e3159a4c48))
|
|
7
|
+
* **vis:** lint + fmt orchestrator ([3a78ed7](https://github.com/visulima/visulima/commit/3a78ed709922e6a35648e0d0eb3f41cc49f89b7a))
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **task-runner:** tolerate dev-only dependency cycles ([#664](https://github.com/visulima/visulima/issues/664)) ([9ad384e](https://github.com/visulima/visulima/commit/9ad384e34927b40823ae104d6b05a581dcd05705)), closes [#411](https://github.com/visulima/visulima/issues/411)
|
|
12
|
+
* **vis:** correct flag name in conflicting-schema error (--projects) ([#667](https://github.com/visulima/visulima/issues/667)) ([c56122b](https://github.com/visulima/visulima/commit/c56122bc6bc654e4a9e118e96b9ba852bc9b784f))
|
|
13
|
+
* **vis:** require explicit opt-in to apply ecosystem updates ([#663](https://github.com/visulima/visulima/issues/663)) ([90cf12d](https://github.com/visulima/visulima/commit/90cf12dffa9dd53cc21849e9a41488dfbe2c8221))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Dependencies
|
|
17
|
+
|
|
18
|
+
* **@visulima/task-runner:** upgraded to 1.0.0-alpha.18
|
|
19
|
+
* **@visulima/tui:** upgraded to 1.0.0-alpha.21
|
|
20
|
+
* **@visulima/error:** upgraded to 6.0.0-alpha.31
|
|
21
|
+
* **@visulima/fs:** upgraded to 5.0.0-alpha.29
|
|
22
|
+
* **@visulima/package:** upgraded to 5.0.0-alpha.28
|
|
23
|
+
|
|
1
24
|
## @visulima/vis [1.0.0-alpha.26](https://github.com/visulima/visulima/compare/@visulima/vis@1.0.0-alpha.25...@visulima/vis@1.0.0-alpha.26) (2026-05-29)
|
|
2
25
|
|
|
3
26
|
### Bug Fixes
|
package/LICENSE.md
CHANGED
|
@@ -1751,6 +1751,23 @@ Repository: git+https://github.com/visulima/visulima.git
|
|
|
1751
1751
|
> > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1752
1752
|
> > SOFTWARE.
|
|
1753
1753
|
>
|
|
1754
|
+
> ---------------------------------------
|
|
1755
|
+
>
|
|
1756
|
+
> ## terminal-size
|
|
1757
|
+
> License: MIT
|
|
1758
|
+
> By: Sindre Sorhus
|
|
1759
|
+
> Repository: sindresorhus/terminal-size
|
|
1760
|
+
>
|
|
1761
|
+
> > MIT License
|
|
1762
|
+
> >
|
|
1763
|
+
> > Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
1764
|
+
> >
|
|
1765
|
+
> > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
1766
|
+
> >
|
|
1767
|
+
> > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
1768
|
+
> >
|
|
1769
|
+
> > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1770
|
+
>
|
|
1754
1771
|
>
|
|
1755
1772
|
>
|
|
1756
1773
|
>
|
|
@@ -8355,23 +8372,6 @@ Repository: git://github.com/spencermountain/suffix-thumb.git
|
|
|
8355
8372
|
|
|
8356
8373
|
---------------------------------------
|
|
8357
8374
|
|
|
8358
|
-
## terminal-size
|
|
8359
|
-
License: MIT
|
|
8360
|
-
By: Sindre Sorhus
|
|
8361
|
-
Repository: sindresorhus/terminal-size
|
|
8362
|
-
|
|
8363
|
-
> MIT License
|
|
8364
|
-
>
|
|
8365
|
-
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
8366
|
-
>
|
|
8367
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
8368
|
-
>
|
|
8369
|
-
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8370
|
-
>
|
|
8371
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
8372
|
-
|
|
8373
|
-
---------------------------------------
|
|
8374
|
-
|
|
8375
8375
|
## validate-npm-package-license
|
|
8376
8376
|
License: Apache-2.0
|
|
8377
8377
|
By: Kyle E. Mitchell, Mark Stacey
|
package/README.md
CHANGED
|
@@ -204,28 +204,30 @@ When aube is the installer, `vis doctor` surfaces aube's effective hardening pos
|
|
|
204
204
|
|
|
205
205
|
## Commands
|
|
206
206
|
|
|
207
|
-
| Command | Alias | Description
|
|
208
|
-
| ----------------------- | ------ |
|
|
209
|
-
| `vis create [template]` | | Scaffold a new project from templates, npm packages, or git repos
|
|
210
|
-
| `vis generate [name]` | | Scaffold files from an in-repo template (native TS or moon-format)
|
|
211
|
-
| `vis init` | | Initialize vis.config.ts with security defaults
|
|
212
|
-
| `vis run <target>` | | Run a target across workspace projects with caching
|
|
213
|
-
| `vis affected <target>` | | Run tasks only on projects affected by git changes
|
|
214
|
-
| `vis ignore <project>` | | CI build gating for Vercel / Netlify "Ignored Build Step"
|
|
215
|
-
| `vis graph` | | Visualize the project dependency graph
|
|
216
|
-
| `vis check [packages]` | `c` | Check for outdated dependencies in workspace catalogs
|
|
217
|
-
| `vis update [packages]` | `up` | Update packages, GitHub Actions, Dockerfiles, and GitLab CI refs
|
|
218
|
-
| `vis install` | `i` | Install dependencies via the detected package manager
|
|
219
|
-
| `vis info <package>` | `view` | Show npm registry metadata for a package (wraps `npm view` et al.)
|
|
220
|
-
| `vis dlx <package>` | | Execute a remote package without permanent installation
|
|
221
|
-
| `vis audit` | | Audit dependencies for security vulnerabilities
|
|
222
|
-
| `vis clean` | | Remove build artifacts, caches, and node_modules
|
|
223
|
-
| `vis cache <action>` | | Inspect cache (`list`, `size`, `hash`, `why`), or `prune` / `clean`
|
|
224
|
-
| `vis hook <action>` | | Manage git hooks (install, uninstall, migrate)
|
|
225
|
-
| `vis secrets [paths]` | | Scan for hardcoded secrets / credentials (Rust-native)
|
|
226
|
-
| `vis toolchain <cmd>` | | Inspect / delegate to the version manager (proto, mise, fnm, volta…)
|
|
227
|
-
| `vis
|
|
228
|
-
| `vis
|
|
207
|
+
| Command | Alias | Description |
|
|
208
|
+
| ----------------------- | ------ | -------------------------------------------------------------------------------------- |
|
|
209
|
+
| `vis create [template]` | | Scaffold a new project from templates, npm packages, or git repos |
|
|
210
|
+
| `vis generate [name]` | | Scaffold files from an in-repo template (native TS or moon-format) |
|
|
211
|
+
| `vis init` | | Initialize vis.config.ts with security defaults |
|
|
212
|
+
| `vis run <target>` | | Run a target across workspace projects with caching |
|
|
213
|
+
| `vis affected <target>` | | Run tasks only on projects affected by git changes |
|
|
214
|
+
| `vis ignore <project>` | | CI build gating for Vercel / Netlify "Ignored Build Step" |
|
|
215
|
+
| `vis graph` | | Visualize the project dependency graph |
|
|
216
|
+
| `vis check [packages]` | `c` | Check for outdated dependencies in workspace catalogs |
|
|
217
|
+
| `vis update [packages]` | `up` | Update packages, GitHub Actions, Dockerfiles, and GitLab CI refs |
|
|
218
|
+
| `vis install` | `i` | Install dependencies via the detected package manager |
|
|
219
|
+
| `vis info <package>` | `view` | Show npm registry metadata for a package (wraps `npm view` et al.) |
|
|
220
|
+
| `vis dlx <package>` | | Execute a remote package without permanent installation |
|
|
221
|
+
| `vis audit` | | Audit dependencies for security vulnerabilities |
|
|
222
|
+
| `vis clean` | | Remove build artifacts, caches, and node_modules |
|
|
223
|
+
| `vis cache <action>` | | Inspect cache (`list`, `size`, `hash`, `why`), or `prune` / `clean` |
|
|
224
|
+
| `vis hook <action>` | | Manage git hooks (install, uninstall, migrate) |
|
|
225
|
+
| `vis secrets [paths]` | | Scan for hardcoded secrets / credentials (Rust-native) |
|
|
226
|
+
| `vis toolchain <cmd>` | | Inspect / delegate to the version manager (proto, mise, fnm, volta…) |
|
|
227
|
+
| `vis lint [files]` | | Orchestrate detected source-code linters (oxlint, biome, eslint, stylelint, deno-lint) |
|
|
228
|
+
| `vis fmt [files]` | | Orchestrate detected formatters (oxfmt, biome, dprint, prettier, deno-fmt) |
|
|
229
|
+
| `vis staged` | | Run tasks on staged files (built-in `lint-staged` replacement) |
|
|
230
|
+
| `vis migrate <type>` | | Migrate from other tools — now including `gitleaks` and `secretlint` |
|
|
229
231
|
|
|
230
232
|
For `vis ignore`, see the [command reference](./docs/commands/ignore.mdx) and the [deployment build gating section](./docs/guides/ci-cd.mdx#deployment-build-gating) of the CI/CD guide.
|
|
231
233
|
|
package/dist/bin.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"./packem_shared/index-
|
|
2
|
+
import"./packem_shared/index-efSniSRN.js";import"./packem_chunks/bin.js";import"./packem_chunks/config.js";import"./packem_shared/readFileSync-CGmzMUF2-D6rUjGDn.js";
|
package/dist/binx.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{N as r,m as o,i as c,T as i,w as a,a as n}from"./packem_shared/index-
|
|
2
|
+
import{N as r,m as o,i as c,T as i,w as a,a as n}from"./packem_shared/index-efSniSRN.js";r();process.argv.includes("--no-color")&&(process.env.NO_COLOR="1",process.env.FORCE_COLOR="0");process.argv.slice(2).some(s=>s==="--version"||s==="-v"||s==="-V")&&(process.stdout.write(`${o.version}
|
|
3
3
|
`),process.exit(0));process.argv.splice(2,0,"dlx");c();const e=i("visx",{packageName:"visx",packageVersion:o.version}),p=process.argv.includes("--debug")||!!process.env.DEBUG;e.addPlugin(a({detailed:p,exitOnError:!1}));e.addCommand(n);(async()=>{try{await e.run({shouldExitProcess:!1})}catch{process.exitCode=process.exitCode||1}finally{process.exit(process.exitCode??0)}})();
|
package/dist/config/index.d.ts
CHANGED
|
@@ -20,6 +20,10 @@ interface SimilarDepFamily {
|
|
|
20
20
|
/** Dep-name prefixes (literal, no glob). Match if `depName.startsWith(prefix)`. */
|
|
21
21
|
prefixes?: string[];
|
|
22
22
|
}
|
|
23
|
+
/** Adapter IDs that can format (adapter `kind` is `"fmt"` or `"both"`). */
|
|
24
|
+
type FmtAdapterId = "biome" | "deno-fmt" | "dprint" | "oxfmt" | "prettier" | "ruff-fmt";
|
|
25
|
+
/** Adapter IDs that can lint (adapter `kind` is `"lint"` or `"both"`). */
|
|
26
|
+
type LintAdapterId = "biome" | "deno-lint" | "eslint" | "markdownlint" | "oxlint" | "ruff-check" | "shellcheck" | "stylelint";
|
|
23
27
|
type VersionManagerName = "asdf" | "corepack" | "fnm" | "mise" | "none" | "nvm" | "proto" | "self-activate" | "volta";
|
|
24
28
|
type RuntimeTool = "aube" | "bun" | "deno" | "go" | "node" | "npm" | "pnpm" | "python" | "ruby" | "rust" | "yarn";
|
|
25
29
|
interface ToolchainConfig {
|
|
@@ -144,6 +148,54 @@ interface ServiceEntry {
|
|
|
144
148
|
visVersion: string;
|
|
145
149
|
}
|
|
146
150
|
/**
|
|
151
|
+
* First-class task arguments: a declarative schema per target that lets a
|
|
152
|
+
* task define its named/positional arguments, validate what the user passes
|
|
153
|
+
* on the CLI, and render a per-task `--help`. The validated values are also
|
|
154
|
+
* exposed to the command as `VIS_ARG_<NAME>` environment variables so the
|
|
155
|
+
* underlying script can read them without re-parsing argv.
|
|
156
|
+
*
|
|
157
|
+
* This module is intentionally pure (no IO) so it is trivially unit-testable;
|
|
158
|
+
* the run handler wires it to the forwarded-args vector and the task env.
|
|
159
|
+
*/
|
|
160
|
+
/** Value type a {@link TaskArgument} coerces to and validates against. */
|
|
161
|
+
type TaskArgumentType = "boolean" | "enum" | "number" | "string";
|
|
162
|
+
/** A coerced task-argument value. */
|
|
163
|
+
type TaskArgumentValue = boolean | number | string;
|
|
164
|
+
/** A single declared argument for a task target. */
|
|
165
|
+
interface TaskArgument {
|
|
166
|
+
/**
|
|
167
|
+
* Short single-character alias (e.g. `r` for `--reporter`, used as `-r`).
|
|
168
|
+
* Must be exactly one character — enforced at run time by
|
|
169
|
+
* {@link validateArgumentSchema}.
|
|
170
|
+
*/
|
|
171
|
+
alias?: string;
|
|
172
|
+
/**
|
|
173
|
+
* Allowed values when {@link TaskArgument.type} is `"enum"`. Must be
|
|
174
|
+
* non-empty (and is required) for `enum` — enforced at run time by
|
|
175
|
+
* {@link validateArgumentSchema}.
|
|
176
|
+
*/
|
|
177
|
+
choices?: string[];
|
|
178
|
+
/** Value applied when the argument is omitted. Skips the required check. */
|
|
179
|
+
default?: TaskArgumentValue;
|
|
180
|
+
/** One-line help text surfaced by per-task `--help`. */
|
|
181
|
+
description?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Canonical name, without the leading `--` (kebab-case by convention).
|
|
184
|
+
* Must start with a letter and contain only letters, digits, `-`, `_` —
|
|
185
|
+
* enforced at run time by {@link validateArgumentSchema}.
|
|
186
|
+
*/
|
|
187
|
+
name: string;
|
|
188
|
+
/**
|
|
189
|
+
* Consume the value from the next free positional argument instead of a
|
|
190
|
+
* `--flag`. Positional args are filled in declaration order.
|
|
191
|
+
*/
|
|
192
|
+
positional?: boolean;
|
|
193
|
+
/** Fail the task when the argument is absent and has no `default`. */
|
|
194
|
+
required?: boolean;
|
|
195
|
+
/** Value type for coercion + validation. Defaults to `"string"`. */
|
|
196
|
+
type?: TaskArgumentType;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
147
199
|
* Semantic classification for a target.
|
|
148
200
|
* - `build`: Generates one or more artifacts; cached by default.
|
|
149
201
|
* - `test`: Validation task (lint, typecheck, unit test). Default type.
|
|
@@ -321,6 +373,18 @@ interface VisTargetOptions {
|
|
|
321
373
|
*/
|
|
322
374
|
shell?: string;
|
|
323
375
|
/**
|
|
376
|
+
* Arguments passed to the per-target shell/interpreter before the command
|
|
377
|
+
* string. Defaults to `["-c"]` (POSIX shells, pwsh). Set this to run the
|
|
378
|
+
* command under an interpreter that uses a different flag — e.g.
|
|
379
|
+
* `shell: "node", shellArgs: ["-e"]` runs the command as inline JS
|
|
380
|
+
* ("script mode"), or `shellArgs: ["-lc"]` for a login shell. Only applies
|
|
381
|
+
* when `shell`/`unixShell`/`windowsShell` resolves to a custom shell.
|
|
382
|
+
*
|
|
383
|
+
* Must be non-empty when set — an empty array would drop the interpreter
|
|
384
|
+
* flag entirely, so the runtime falls back to `-c` defensively.
|
|
385
|
+
*/
|
|
386
|
+
shellArgs?: string[];
|
|
387
|
+
/**
|
|
324
388
|
* Override the workspace `strictEnv` setting for this target. When
|
|
325
389
|
* truthy, the target fails if its command references an env var
|
|
326
390
|
* that resolves to neither the task's effective env nor
|
|
@@ -367,9 +431,16 @@ interface VisTargetConfiguration extends Omit<TargetConfiguration, "options"> {
|
|
|
367
431
|
*/
|
|
368
432
|
aliases?: string[];
|
|
369
433
|
/**
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
434
|
+
* Declarative argument schema for this target. Forwarded CLI args
|
|
435
|
+
* (`vis run <target> -- --flag value`) are validated against it, surfaced
|
|
436
|
+
* by per-task `--help`, and exposed to the command as `VIS_ARG_<NAME>`
|
|
437
|
+
* environment variables.
|
|
438
|
+
*/
|
|
439
|
+
arguments?: TaskArgument[];
|
|
440
|
+
/**
|
|
441
|
+
* One-line description surfaced by `vis list` and per-task `--help`.
|
|
442
|
+
* Kept short — longer docs belong in project READMEs or
|
|
443
|
+
* vis.config.ts comments.
|
|
373
444
|
*/
|
|
374
445
|
description?: string;
|
|
375
446
|
/**
|
|
@@ -517,6 +588,25 @@ interface VisPlugin {
|
|
|
517
588
|
setup?: (hooks: Hookable<VisHooks>) => Promise<void> | void;
|
|
518
589
|
}
|
|
519
590
|
/**
|
|
591
|
+
* Per-adapter override applied by `vis lint` / `vis fmt`. Keyed by
|
|
592
|
+
* adapter id under `lint.adapters` / `fmt.adapters`. Every field is
|
|
593
|
+
* optional — set only what you need to change.
|
|
594
|
+
*/
|
|
595
|
+
interface LintFmtAdapterOverride {
|
|
596
|
+
/**
|
|
597
|
+
* Set to `false` to skip this adapter even when its config file or
|
|
598
|
+
* package.json entry is detected. Defaults to `true` (run when
|
|
599
|
+
* detected).
|
|
600
|
+
*/
|
|
601
|
+
enabled?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
* Extra arguments appended verbatim to every invocation of this
|
|
604
|
+
* adapter. Useful for tool-specific flags vis doesn't expose
|
|
605
|
+
* directly (e.g. `eslint --rulesdir`).
|
|
606
|
+
*/
|
|
607
|
+
extraArgs?: string[];
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
520
610
|
* The 8 Socket.dev-style supply-chain policies. Used in `security.policies`
|
|
521
611
|
* and `security.acceptedRisks[*].policies`. Kept as a const tuple so callers
|
|
522
612
|
* can import the runtime array (`POLICY_NAMES`) for iteration without
|
|
@@ -726,19 +816,6 @@ interface VisConfig {
|
|
|
726
816
|
*/
|
|
727
817
|
codeowners?: CodeownersConfig;
|
|
728
818
|
/**
|
|
729
|
-
* Default base branch used by `vis affected`, `vis ci`, and `vis run --affected`
|
|
730
|
-
* when no explicit `--base` is passed and no CI smart-resolver fires.
|
|
731
|
-
*
|
|
732
|
-
* Resolved as `origin/<defaultBase>` against the local clone; should be a
|
|
733
|
-
* branch name (not a fully-qualified ref) such as `main`, `master`, or `trunk`.
|
|
734
|
-
* Falls back to `main` when omitted.
|
|
735
|
-
*
|
|
736
|
-
* Migrated automatically from `nx.json#affected.defaultBase` /
|
|
737
|
-
* `nx.json#defaultBase` by `vis migrate nx`.
|
|
738
|
-
* @default "main"
|
|
739
|
-
*/
|
|
740
|
-
defaultBase?: string;
|
|
741
|
-
/**
|
|
742
819
|
* Project dependency constraints.
|
|
743
820
|
* Enforced after building the project graph, before running tasks.
|
|
744
821
|
*/
|
|
@@ -810,6 +887,19 @@ interface VisConfig {
|
|
|
810
887
|
templates?: Record<string, string>;
|
|
811
888
|
};
|
|
812
889
|
/**
|
|
890
|
+
* Default base branch used by `vis affected`, `vis ci`, and `vis run --affected`
|
|
891
|
+
* when no explicit `--base` is passed and no CI smart-resolver fires.
|
|
892
|
+
*
|
|
893
|
+
* Resolved as `origin/<defaultBase>` against the local clone; should be a
|
|
894
|
+
* branch name (not a fully-qualified ref) such as `main`, `master`, or `trunk`.
|
|
895
|
+
* Falls back to `main` when omitted.
|
|
896
|
+
*
|
|
897
|
+
* Migrated automatically from `nx.json#affected.defaultBase` /
|
|
898
|
+
* `nx.json#defaultBase` by `vis migrate nx`.
|
|
899
|
+
* @default "main"
|
|
900
|
+
*/
|
|
901
|
+
defaultBase?: string;
|
|
902
|
+
/**
|
|
813
903
|
* Discover `.editorconfig` for indent / line-ending defaults during
|
|
814
904
|
* file transformations (sort-package-json, migrate, hook, pm overrides,
|
|
815
905
|
* workspace catalog rewrites). Per-command flags can still override.
|
|
@@ -849,6 +939,45 @@ interface VisConfig {
|
|
|
849
939
|
*/
|
|
850
940
|
fileGroups?: Record<string, string[]>;
|
|
851
941
|
/**
|
|
942
|
+
* Configuration for `vis fmt` — the formatter orchestrator.
|
|
943
|
+
*
|
|
944
|
+
* Tunes adapter detection precedence, per-extension routing, and
|
|
945
|
+
* per-adapter overrides. Flags on the CLI always win over config.
|
|
946
|
+
*
|
|
947
|
+
* The default fmt precedence is `oxfmt → biome → dprint → prettier
|
|
948
|
+
* → deno-fmt`. When multiple adapters claim the same extension,
|
|
949
|
+
* the first in this order owns it unless overridden here.
|
|
950
|
+
* @example
|
|
951
|
+
* ```
|
|
952
|
+
* fmt: {
|
|
953
|
+
* order: ["biome", "prettier"],
|
|
954
|
+
* extensionOverrides: { md: "dprint" },
|
|
955
|
+
* adapters: { "deno-fmt": { enabled: false } },
|
|
956
|
+
* }
|
|
957
|
+
* ```
|
|
958
|
+
*/
|
|
959
|
+
fmt?: {
|
|
960
|
+
/**
|
|
961
|
+
* Per-adapter overrides. Keyed by `AdapterId`. Set
|
|
962
|
+
* `enabled: false` to skip an adapter even when detected, or
|
|
963
|
+
* `extraArgs` to append flags verbatim.
|
|
964
|
+
*/
|
|
965
|
+
adapters?: Partial<Record<FmtAdapterId, LintFmtAdapterOverride>>;
|
|
966
|
+
/**
|
|
967
|
+
* Pin a file extension (without the leading dot) to a specific
|
|
968
|
+
* adapter, overriding the registry's "first detected adapter
|
|
969
|
+
* wins" routing. Use to e.g. send `.md` to `dprint` even when
|
|
970
|
+
* both prettier and dprint are present.
|
|
971
|
+
*/
|
|
972
|
+
extensionOverrides?: Record<string, FmtAdapterId>;
|
|
973
|
+
/**
|
|
974
|
+
* Override the adapter precedence order. Adapters omitted from
|
|
975
|
+
* this list still run (appended at the end in registry order),
|
|
976
|
+
* but those listed earlier get priority for extension routing.
|
|
977
|
+
*/
|
|
978
|
+
order?: FmtAdapterId[];
|
|
979
|
+
};
|
|
980
|
+
/**
|
|
852
981
|
* Configuration for the `vis generate` in-repo scaffolding command.
|
|
853
982
|
* Points at additional template directories beyond the defaults
|
|
854
983
|
* (`.vis/templates/` and `.moon/templates/`).
|
|
@@ -995,6 +1124,37 @@ interface VisConfig {
|
|
|
995
1124
|
corepack?: "auto" | boolean;
|
|
996
1125
|
};
|
|
997
1126
|
/**
|
|
1127
|
+
* Configuration for `vis lint` — the linter orchestrator.
|
|
1128
|
+
*
|
|
1129
|
+
* Tunes adapter detection precedence and per-adapter overrides.
|
|
1130
|
+
* Flags on the CLI always win over config.
|
|
1131
|
+
*
|
|
1132
|
+
* The default lint precedence is `oxlint → biome → eslint →
|
|
1133
|
+
* stylelint → deno-lint`. Override with `order` to e.g. let biome
|
|
1134
|
+
* fire before oxlint when the workspace standardises on biome.
|
|
1135
|
+
* @example
|
|
1136
|
+
* ```
|
|
1137
|
+
* lint: {
|
|
1138
|
+
* order: ["biome", "eslint"],
|
|
1139
|
+
* adapters: { "deno-lint": { enabled: false } },
|
|
1140
|
+
* }
|
|
1141
|
+
* ```
|
|
1142
|
+
*/
|
|
1143
|
+
lint?: {
|
|
1144
|
+
/**
|
|
1145
|
+
* Per-adapter overrides. Keyed by `AdapterId`. Set
|
|
1146
|
+
* `enabled: false` to skip an adapter even when detected, or
|
|
1147
|
+
* `extraArgs` to append flags verbatim.
|
|
1148
|
+
*/
|
|
1149
|
+
adapters?: Partial<Record<LintAdapterId, LintFmtAdapterOverride>>;
|
|
1150
|
+
/**
|
|
1151
|
+
* Override the adapter precedence order. Adapters omitted from
|
|
1152
|
+
* this list still run (appended at the end in registry order)
|
|
1153
|
+
* unless explicitly disabled under `adapters[id].enabled`.
|
|
1154
|
+
*/
|
|
1155
|
+
order?: LintAdapterId[];
|
|
1156
|
+
};
|
|
1157
|
+
/**
|
|
998
1158
|
* `vis-mcp` promotion notice shown after successful commands when an
|
|
999
1159
|
* AI CLI (Claude Code, Cursor, Windsurf, Continue, Zed, Cline) is
|
|
1000
1160
|
* installed but `@visulima/vis-mcp` is not wired into its config.
|