@visulima/vis 3.0.5 → 4.0.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.
- package/CHANGELOG.md +45 -0
- package/LICENSE.md +0 -116
- package/README.md +3 -2
- package/dist/bin.js +1 -1
- package/dist/binx.js +1 -1
- package/dist/config/index.d.ts +24 -4
- package/dist/packem_chunks/CONFIG_FILES.js +6 -5
- package/dist/packem_chunks/catalog.js +32 -32
- package/dist/packem_chunks/cli-exec.js +1 -1
- package/dist/packem_chunks/cli-main.js +153 -152
- package/dist/packem_chunks/handler12.js +25 -10
- package/dist/packem_chunks/handler2.js +1 -1
- package/dist/packem_chunks/handler28.js +1 -1
- package/dist/packem_chunks/handler3.js +2 -2
- package/dist/packem_chunks/handler55.js +1 -1
- package/dist/packem_chunks/handler59.js +1 -1
- package/dist/packem_chunks/handler6.js +1 -1
- package/dist/packem_chunks/handler67.js +28 -25
- package/dist/packem_chunks/handler68.js +25 -153
- package/dist/packem_chunks/handler69.js +153 -10
- package/dist/packem_chunks/handler70.js +10 -22
- package/dist/packem_chunks/handler71.js +21 -22
- package/dist/packem_chunks/handler72.js +23 -322
- package/dist/packem_chunks/handler73.js +273 -659
- package/dist/packem_chunks/handler74.js +708 -48
- package/dist/packem_chunks/handler75.js +48 -27
- package/dist/packem_chunks/handler76.js +27 -3
- package/dist/packem_chunks/handler77.js +3 -189
- package/dist/packem_chunks/handler78.js +188 -39
- package/dist/packem_chunks/help-command.js +1 -1
- package/dist/packem_shared/{affected-selection-DIgAsQTu.js → affected-selection-BmUh3_Qp.js} +1 -1
- package/dist/packem_shared/{bin-CVfNImCA.js → bin-D-Es9mva.js} +1 -1
- package/dist/packem_shared/{index-5GrALmsb.js → index-BvYJA7e5.js} +1 -1
- package/dist/packem_shared/lockfile-DVFySxTS.js +1 -0
- package/dist/packem_shared/{package-version-CIhwFJn3.js → package-version-B_KfpWKC.js} +1 -1
- package/dist/packem_shared/{project-name-filter-sYH4Zvsm.js → project-name-filter-D6uEN2ot.js} +1 -1
- package/dist/packem_shared/vis-user-error-By2ZNeEA.js +31 -0
- package/index.d.ts +204 -204
- package/index.js +26 -26
- package/package.json +13 -13
- package/schemas/project.schema.json +2 -2
- package/schemas/vis-config.schema.json +8 -9
- package/skills/vis/SKILL.md +1 -1
- package/dist/packem_shared/lockfile-35RFsJDs.js +0 -1
- package/dist/packem_shared/vis-user-error-CgyYA29v.js +0 -30
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
## @visulima/vis [4.0.0](https://github.com/visulima/visulima/compare/@visulima/vis@3.0.6...@visulima/vis@4.0.0) (2026-09-03)
|
|
2
|
+
|
|
3
|
+
### ⚠ BREAKING CHANGES
|
|
4
|
+
|
|
5
|
+
* **redact:** make nlp detection opt-in via injection (#852)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **redact:** make nlp detection opt-in via injection ([#852](https://github.com/visulima/visulima/issues/852)) ([78e60fd](https://github.com/visulima/visulima/commit/78e60fd3821dbe8c267c6ec71d90659ab4e4b2e1))
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* stop vis ci, cache, preflight and inference failing silently ([#854](https://github.com/visulima/visulima/issues/854)) ([45a97b0](https://github.com/visulima/visulima/commit/45a97b02684c8336662f23a3f2cd2f7227c14692))
|
|
14
|
+
* unbreak the nightly Data Sync job ([#851](https://github.com/visulima/visulima/issues/851)) ([4f94b42](https://github.com/visulima/visulima/commit/4f94b429596b7047cd9b3a2ec2bd9c49caac4a82))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Dependencies
|
|
18
|
+
|
|
19
|
+
* **@visulima/task-runner:** upgraded to 1.0.6
|
|
20
|
+
* **@visulima/tui:** upgraded to 4.0.6
|
|
21
|
+
* **@visulima/tui-kit:** upgraded to 1.0.9
|
|
22
|
+
* **@visulima/cerebro:** upgraded to 3.1.1
|
|
23
|
+
* **@visulima/fs:** upgraded to 6.0.6
|
|
24
|
+
* **@visulima/package:** upgraded to 5.0.19
|
|
25
|
+
* **@visulima/pail:** upgraded to 5.0.0
|
|
26
|
+
* **@visulima/redact:** upgraded to 5.0.0
|
|
27
|
+
* **@visulima/tsconfig:** upgraded to 3.2.13
|
|
28
|
+
|
|
29
|
+
## @visulima/vis [3.0.6](https://github.com/visulima/visulima/compare/@visulima/vis@3.0.5...@visulima/vis@3.0.6) (2026-08-19)
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
* restore commit groups in generated changelogs ([#850](https://github.com/visulima/visulima/issues/850)) ([409ff00](https://github.com/visulima/visulima/commit/409ff0034963eb2ec9ac1b7e85d52916fc1a661f))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Dependencies
|
|
37
|
+
|
|
38
|
+
* **@visulima/secret-scanner:** upgraded to 2.0.1
|
|
39
|
+
* **@visulima/task-runner:** upgraded to 1.0.5
|
|
40
|
+
* **@visulima/tui:** upgraded to 4.0.5
|
|
41
|
+
* **@visulima/tui-kit:** upgraded to 1.0.8
|
|
42
|
+
* **@visulima/fs:** upgraded to 6.0.5
|
|
43
|
+
* **@visulima/package:** upgraded to 5.0.18
|
|
44
|
+
* **@visulima/tsconfig:** upgraded to 3.2.12
|
|
45
|
+
|
|
1
46
|
## @visulima/vis [3.0.5](https://github.com/visulima/visulima/compare/%40visulima%2Fvis%403.0.4...%40visulima%2Fvis%403.0.5) (2026-08-19)
|
|
2
47
|
|
|
3
48
|
|
package/LICENSE.md
CHANGED
|
@@ -10918,35 +10918,6 @@ Repository: git+https://github.com/yarnpkg/berry.git
|
|
|
10918
10918
|
|
|
10919
10919
|
---------------------------------------
|
|
10920
10920
|
|
|
10921
|
-
## compromise
|
|
10922
|
-
License: MIT
|
|
10923
|
-
By: Spencer Kelly
|
|
10924
|
-
Repository: git://github.com/spencermountain/compromise.git
|
|
10925
|
-
|
|
10926
|
-
> The MIT License (MIT)
|
|
10927
|
-
>
|
|
10928
|
-
> Copyright (c) 2019 Spencer Kelly
|
|
10929
|
-
>
|
|
10930
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10931
|
-
> of this software and associated documentation files (the "Software"), to deal
|
|
10932
|
-
> in the Software without restriction, including without limitation the rights
|
|
10933
|
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10934
|
-
> copies of the Software, and to permit persons to whom the Software is
|
|
10935
|
-
> furnished to do so, subject to the following conditions:
|
|
10936
|
-
>
|
|
10937
|
-
> The above copyright notice and this permission notice shall be included in all
|
|
10938
|
-
> copies or substantial portions of the Software.
|
|
10939
|
-
>
|
|
10940
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
10941
|
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
10942
|
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
10943
|
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
10944
|
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
10945
|
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
10946
|
-
> SOFTWARE.
|
|
10947
|
-
|
|
10948
|
-
---------------------------------------
|
|
10949
|
-
|
|
10950
10921
|
## conventional-commits-parser
|
|
10951
10922
|
License: MIT
|
|
10952
10923
|
By: Steve Mao
|
|
@@ -10976,35 +10947,6 @@ Repository: https://github.com/conventional-changelog/conventional-changelog.git
|
|
|
10976
10947
|
|
|
10977
10948
|
---------------------------------------
|
|
10978
10949
|
|
|
10979
|
-
## efrt
|
|
10980
|
-
License: MIT
|
|
10981
|
-
By: Spencer Kelly
|
|
10982
|
-
Repository: git://github.com/spencermountain/efrt.git
|
|
10983
|
-
|
|
10984
|
-
> The MIT License (MIT)
|
|
10985
|
-
>
|
|
10986
|
-
> Copyright (c) 2020 Spencer Kelly
|
|
10987
|
-
>
|
|
10988
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10989
|
-
> of this software and associated documentation files (the "Software"), to deal
|
|
10990
|
-
> in the Software without restriction, including without limitation the rights
|
|
10991
|
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10992
|
-
> copies of the Software, and to permit persons to whom the Software is
|
|
10993
|
-
> furnished to do so, subject to the following conditions:
|
|
10994
|
-
>
|
|
10995
|
-
> The above copyright notice and this permission notice shall be included in all
|
|
10996
|
-
> copies or substantial portions of the Software.
|
|
10997
|
-
>
|
|
10998
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
10999
|
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
11000
|
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
11001
|
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
11002
|
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
11003
|
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
11004
|
-
> SOFTWARE.
|
|
11005
|
-
|
|
11006
|
-
---------------------------------------
|
|
11007
|
-
|
|
11008
10950
|
## fastest-levenshtein
|
|
11009
10951
|
License: MIT
|
|
11010
10952
|
By: Kasper U. Weihe
|
|
@@ -11225,35 +11167,6 @@ Repository: unjs/giget
|
|
|
11225
11167
|
|
|
11226
11168
|
---------------------------------------
|
|
11227
11169
|
|
|
11228
|
-
## grad-school
|
|
11229
|
-
License: MIT
|
|
11230
|
-
By: Spencer Kelly
|
|
11231
|
-
Repository: git+https://github.com/spencermountain/grounder.git
|
|
11232
|
-
|
|
11233
|
-
> MIT License
|
|
11234
|
-
>
|
|
11235
|
-
> Copyright (c) 2021 spencer kelly
|
|
11236
|
-
>
|
|
11237
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11238
|
-
> of this software and associated documentation files (the "Software"), to deal
|
|
11239
|
-
> in the Software without restriction, including without limitation the rights
|
|
11240
|
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11241
|
-
> copies of the Software, and to permit persons to whom the Software is
|
|
11242
|
-
> furnished to do so, subject to the following conditions:
|
|
11243
|
-
>
|
|
11244
|
-
> The above copyright notice and this permission notice shall be included in all
|
|
11245
|
-
> copies or substantial portions of the Software.
|
|
11246
|
-
>
|
|
11247
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
11248
|
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
11249
|
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
11250
|
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
11251
|
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
11252
|
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
11253
|
-
> SOFTWARE.
|
|
11254
|
-
|
|
11255
|
-
---------------------------------------
|
|
11256
|
-
|
|
11257
11170
|
## grammex
|
|
11258
11171
|
License: MIT
|
|
11259
11172
|
Repository: github:fabiospampinato/grammex
|
|
@@ -12145,35 +12058,6 @@ Repository: jslicense/spdx-license-ids
|
|
|
12145
12058
|
|
|
12146
12059
|
---------------------------------------
|
|
12147
12060
|
|
|
12148
|
-
## suffix-thumb
|
|
12149
|
-
License: MIT
|
|
12150
|
-
By: Spencer Kelly
|
|
12151
|
-
Repository: git://github.com/spencermountain/suffix-thumb.git
|
|
12152
|
-
|
|
12153
|
-
> The MIT License (MIT)
|
|
12154
|
-
>
|
|
12155
|
-
> Copyright (c) 2016 Spencer Kelly
|
|
12156
|
-
>
|
|
12157
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12158
|
-
> of this software and associated documentation files (the "Software"), to deal
|
|
12159
|
-
> in the Software without restriction, including without limitation the rights
|
|
12160
|
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12161
|
-
> copies of the Software, and to permit persons to whom the Software is
|
|
12162
|
-
> furnished to do so, subject to the following conditions:
|
|
12163
|
-
>
|
|
12164
|
-
> The above copyright notice and this permission notice shall be included in all
|
|
12165
|
-
> copies or substantial portions of the Software.
|
|
12166
|
-
>
|
|
12167
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
12168
|
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
12169
|
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
12170
|
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
12171
|
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
12172
|
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
12173
|
-
> SOFTWARE.
|
|
12174
|
-
|
|
12175
|
-
---------------------------------------
|
|
12176
|
-
|
|
12177
12061
|
## tinyexec
|
|
12178
12062
|
License: MIT
|
|
12179
12063
|
By: James Garbutt
|
package/README.md
CHANGED
|
@@ -219,6 +219,7 @@ When aube is the installer, `vis doctor` surfaces aube's effective hardening pos
|
|
|
219
219
|
| `vis init` | | Initialize vis.config.ts with security defaults |
|
|
220
220
|
| `vis run <target>` | | Run a target across workspace projects with caching |
|
|
221
221
|
| `vis affected <target>` | | Run tasks only on projects affected by git changes |
|
|
222
|
+
| `vis ci <targets>` | | One-shot CI entry point: toolchain, install, then affected runs for each comma-separated target |
|
|
222
223
|
| `vis ignore <project>` | | CI build gating for Vercel / Netlify "Ignored Build Step" |
|
|
223
224
|
| `vis graph` | | Visualize the project dependency graph |
|
|
224
225
|
| `vis check [packages]` | `c` | Check for outdated dependencies in workspace catalogs |
|
|
@@ -249,7 +250,7 @@ vis cache why @myorg/app:build --json # stable shape for CI
|
|
|
249
250
|
vis cache hash @myorg/app:build # just print the hash + per-bucket inputs
|
|
250
251
|
```
|
|
251
252
|
|
|
252
|
-
`vis cache why` reads `.
|
|
253
|
+
`vis cache why` reads `.vis/last-summary.json` and diffs the task's `hashDetails` (`command`, `nodes`, `runtime`, `implicitDeps`) against the previous run, so you can pinpoint exactly which bucket rotated. Past runs only land in `.vis/runs/` when you pass `--summarize`, so use `vis run :build --summarize` (or set it as a default in CI) for diffs you'll want to inspect later.
|
|
253
254
|
|
|
254
255
|
### Cache retention
|
|
255
256
|
|
|
@@ -266,7 +267,7 @@ vis cache prune --keep-last=30 --max-age-days=14 # combine: 30-newest floor, t
|
|
|
266
267
|
|
|
267
268
|
### Sharing the cache across git worktrees
|
|
268
269
|
|
|
269
|
-
When the workspace is a linked worktree (created with `git worktree add`), vis stores the cache at `<mainWorktreeRoot
|
|
270
|
+
When the workspace is a linked worktree (created with `git worktree add`), vis stores the cache at `<mainWorktreeRoot>/node_modules/.cache/vis` so sibling worktrees driven by parallel agents share one cache instead of rebuilding the same hash N times. Set `sharedWorktreeCache: false` in `vis.config.ts` to opt out, or use `--scope=worktree|shared|all` on `vis cache list/size/prune` to inspect or operate on a specific store.
|
|
270
271
|
|
|
271
272
|
### Quieting successful runs
|
|
272
273
|
|
package/dist/bin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./packem_shared/compile-cache-DoMHRsRZ.js";import"./packem_shared/bin-
|
|
1
|
+
import"./packem_shared/compile-cache-DoMHRsRZ.js";import"./packem_shared/bin-D-Es9mva.js";
|
package/dist/binx.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as r,
|
|
2
|
+
import{a as r,x as i,i as c,d as a,r as d}from"./packem_shared/vis-user-error-By2ZNeEA.js";import{t as n}from"./packem_shared/compile-cache-DoMHRsRZ.js";import{g as o}from"./packem_shared/package-version-B_KfpWKC.js";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()}
|
|
3
3
|
`),process.exit(0));process.argv.splice(2,0,"dlx");n();const e=r("visx",{packageName:"visx",packageVersion:o()}),p=process.argv.includes("--debug")||!!process.env.DEBUG;e.addPlugin(i({concise:c,detailed:p,exitOnError:!1}));e.addCommand(a);d(e);
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1108,12 +1108,13 @@ interface VisConfig {
|
|
|
1108
1108
|
};
|
|
1109
1109
|
/**
|
|
1110
1110
|
* Auto-create targets from detected config files (Project Crystal-style).
|
|
1111
|
-
*
|
|
1112
|
-
* form to disable individual
|
|
1111
|
+
* Detectors run by default; set `false` to disable them entirely, or use
|
|
1112
|
+
* the object form to disable individual ones. See the note at the bottom
|
|
1113
|
+
* of this block for what "unset" allows versus an explicit `true`.
|
|
1113
1114
|
*
|
|
1114
1115
|
* Inferred targets sit *below* explicit ones — the command from
|
|
1115
1116
|
* `package.json#scripts`, `project.json#targets`, or `vis.task.ts`
|
|
1116
|
-
* always wins per-key, so
|
|
1117
|
+
* always wins per-key, so enrichment never changes what runs. As a
|
|
1117
1118
|
* caching aid, when a `package.json` script's command *is* a
|
|
1118
1119
|
* detector's command (optionally with extra flags, no shell
|
|
1119
1120
|
* chaining) and the script declares no `inputs`/`outputs`, the
|
|
@@ -1173,7 +1174,26 @@ interface VisConfig {
|
|
|
1173
1174
|
* opt individual detectors in or out by name. Detectors omitted from
|
|
1174
1175
|
* the object run at their default (enabled). Useful when one
|
|
1175
1176
|
* detector misfires for a given workspace without disabling the rest.
|
|
1176
|
-
*
|
|
1177
|
+
*
|
|
1178
|
+
* **Leaving this unset is not the same as setting `true`.** Detectors
|
|
1179
|
+
* always *enrich* the targets a project already has — adopting their
|
|
1180
|
+
* `type`, `inputs` and `outputs`, which is the caching aid and changes
|
|
1181
|
+
* nothing about what runs. *Synthesizing* a target the project never
|
|
1182
|
+
* had does change what runs, so on the unset default it is limited to
|
|
1183
|
+
* projects that declare no scripts and no targets of their own.
|
|
1184
|
+
* Setting this to `true` (or the object form) opts in to synthesis
|
|
1185
|
+
* everywhere.
|
|
1186
|
+
*
|
|
1187
|
+
* The distinction exists because a package can deliberately omit a
|
|
1188
|
+
* script: a shared eslint-config ships an `eslint.config.js` but no
|
|
1189
|
+
* `lint` script, because linting its own flat-config export crashes
|
|
1190
|
+
* eslint. Synthesizing `lint` there turned a package `pnpm -r run lint`
|
|
1191
|
+
* had always skipped into a failing task, on a workspace that had never
|
|
1192
|
+
* asked for inference.
|
|
1193
|
+
*
|
|
1194
|
+
* Deliberately no `@default` tag: there is no single value that
|
|
1195
|
+
* describes the unset behaviour, and advertising `true` would invite
|
|
1196
|
+
* tooling to write it into a config and silently widen synthesis.
|
|
1177
1197
|
*/
|
|
1178
1198
|
inferTargets?: Record<string, boolean> | boolean;
|
|
1179
1199
|
/**
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import{createRequire as
|
|
2
|
-
`),t),this.filePath=s,this.removedKeys=o}}class
|
|
3
|
-
Chain: ${t.join(" → ")}`:"";super(`Failed to load ${s}: ${r}${n}`,t,{cause:o})}}const
|
|
1
|
+
import{createRequire as I}from"node:module";import{L as x,m as K,T as O}from"../packem_shared/target-merge-B4No-LHM.js";import{v as _,e as a,m as C}from"../packem_shared/index-DHD8wb6Z.js";import{i as M}from"./ts-loader.js";import{otelPlugin as _e}from"../packem_shared/otelPlugin-D8LL2-4L.js";import{definePlugin as Ee}from"../packem_shared/definePlugin-DoUcoYSy.js";import{y as d}from"../packem_shared/isAccessibleSync-DYKTrrvc-CSnBISfV.js";import{h as m}from"../packem_shared/writeFileSync-DJoHk3Ks-CgQ-VNNT.js";import{p as S}from"../packem_shared/readJsonSync-CbryXYxN-B2aSeDpC.js";let N;const F=e=>(N??=I(import.meta.url))(e),l=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,v=e=>{if(typeof l<"u"&&l.versions&&l.versions.node){const[s,t]=l.versions.node.split(".").map(Number);if(s>22||s===22&&t>=3||s===20&&t>=16)return l.getBuiltinModule(e)}return F(e)},{createHash:w}=v("node:crypto"),{readdirSync:$,readFileSync:L}=v("node:fs"),{createRequire:q}=v("node:module");class p extends Error{chain;constructor(s,t,o){super(s,o),this.name=this.constructor.name,this.chain=t}}class P extends p{constructor(s,t){const o=[...t,`${s} (re-enters)`].join(" → ");super(`Config cycle: ${o}`,t)}}class E extends p{filePath;removedKeys;constructor(s,t,o){const r=[`${s} uses removed keys.`,""];for(const n of o){const c=n.location?` (at ${n.location})`:"";r.push(` • ${n.name}${c} → renamed to \`${n.renamedTo}\``);for(const i of n.children??[])r.push(` ↳ ${i.name} → renamed to \`${i.renamedTo}\``)}r.push("","Run `vis migrate self` to auto-rewrite the config (use --dry-run to preview)."),super(r.join(`
|
|
2
|
+
`),t),this.filePath=s,this.removedKeys=o}}class T extends p{constructor(s,t,o){const r=o instanceof Error?o.message:String(o),n=t.length>0?`
|
|
3
|
+
Chain: ${t.join(" → ")}`:"";super(`Failed to load ${s}: ${r}${n}`,t,{cause:o})}}const U=e=>e.join(" → ");class k extends p{constructor(s,t,o){const r=t.length>0?t[t.length-1]:"<unknown>",n=o.length>0?`
|
|
4
4
|
Tried:
|
|
5
5
|
${o.join(`
|
|
6
6
|
`)}`:"";super(`Cannot resolve "${s}" extended from ${r}.${n}
|
|
7
|
-
Chain: ${
|
|
8
|
-
`)
|
|
7
|
+
Chain: ${U(t)}`,t)}}class W extends p{filePath;violations;constructor(s,t,o){const r=[`${s} has an invalid value.`,""];for(const n of o)r.push(` • ${n.location} — expected ${n.expected}, found ${n.found}`);r.push("","See https://visulima.com/docs/packages/vis/configuration for the expected shape."),super(r.join(`
|
|
8
|
+
`),t),this.filePath=s,this.violations=o}}const z=e=>{const s=[];if(Object.hasOwn(e,"targetDefaults")&&s.push({name:"targetDefaults",renamedTo:"tasks"}),Object.hasOwn(e,"taskRunnerOptions")&&s.push({name:"taskRunnerOptions",renamedTo:"taskRunner"}),Object.hasOwn(e,"taskDefaults")){const{taskDefaults:t}=e,o=[];if(Array.isArray(t))for(const[r,n]of t.entries())n&&typeof n=="object"&&(Object.hasOwn(n,"scope")&&o.push({location:`taskDefaults[${r}].scope`,name:"scope",renamedTo:"match"}),Object.hasOwn(n,"targets")&&o.push({location:`taskDefaults[${r}].targets`,name:"targets",renamedTo:"tasks"}));s.push({children:o.length>0?o:void 0,name:"taskDefaults",renamedTo:"scopedTasks"})}else if(Array.isArray(e.scopedTasks))for(const[t,o]of e.scopedTasks.entries())o&&typeof o=="object"&&(Object.hasOwn(o,"scope")&&s.push({location:`scopedTasks[${t}].scope`,name:"scope",renamedTo:"match"}),Object.hasOwn(o,"targets")&&s.push({location:`scopedTasks[${t}].targets`,name:"targets",renamedTo:"tasks"}));return s},B=e=>Object.hasOwn(e,"targets")&&!Object.hasOwn(e,"tasks")?[{name:"targets",renamedTo:"tasks"}]:[],H=(e,s,t)=>{if(!t||typeof t!="object")return;const o=z(t);if(o.length>0)throw new E(e,s,o)},Y=(e,s,t)=>{if(!t||typeof t!="object")return;const o=B(t);if(o.length>0)throw new E(e,s,o)},h=e=>{if(e===null)return"null";if(Array.isArray(e))return"an array";if(typeof e=="object"){const s=Object.keys(e);return s.length>0?`an object with { ${s.join(", ")} }`:"an empty object"}return typeof e},g=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),J=e=>{const s=[];if(!Object.hasOwn(e,"scopedTasks")||e.scopedTasks===void 0)return s;const{scopedTasks:t}=e;if(!Array.isArray(t))return s.push({expected:"an array of `{ match?, tasks }` blocks",found:h(t),location:"scopedTasks"}),s;for(const[o,r]of t.entries()){const n=`scopedTasks[${o}]`;if(!g(r)){s.push({expected:"a `{ match?, tasks }` block",found:h(r),location:n});continue}g(r.tasks)||s.push({expected:"`tasks` to be an object keyed by target name",found:r.tasks===void 0?`a block with { ${Object.keys(r).join(", ")} }`:h(r.tasks),location:`${n}.tasks`}),r.match!==void 0&&!g(r.match)&&s.push({expected:"`match` to be an object of project constraints",found:h(r.match),location:`${n}.match`})}return s},Q=(e,s,t)=>{if(!t||typeof t!="object")return;const o=J(t);if(o.length>0)throw new W(e,s,o)},D=["vis.config.ts","vis.config.mts","vis.config.cts","vis.config.js","vis.config.mjs","vis.config.cjs"],X=new Set(D),A=["vis.task.ts","vis.task.mts","vis.task.cts","vis.task.js","vis.task.mjs","vis.task.cjs"],Z=new Set(A),je=2880,y={blockExoticSubdeps:!0,policies:{installScripts:{strict:!0},publisherChange:{ignoreAfter:43200,mode:"no-downgrade"}}},ee=e=>{if(!e)return{...y};const s=y.policies??{},t=e.policies??{},o={...s,...t};for(const r of Object.keys(s)){const n=s[r],c=t[r];n!==void 0&&c!==void 0&&(o[r]={...n,...c})}return{...y,...e,policies:o}},b=e=>({...e,security:ee(e.security),update:{security:!0,target:"minor",...e.update}}),se=e=>{let s;try{s=$(e)}catch{return}const t=new Set(s.filter(o=>X.has(o)));for(const o of D)if(t.has(o))return a(e,o)},te=e=>{let s;try{s=$(e)}catch{return}const t=new Set(s.filter(o=>Z.has(o)));for(const o of A)if(t.has(o))return a(e,o)},V=e=>w("sha256").update(L(e)).digest("hex"),oe=e=>{const s=w("sha256"),t=[...e].sort();for(const o of t)s.update(o),s.update(":"),s.update(V(o)),s.update(`
|
|
9
|
+
`);return s.digest("hex")},ne=e=>{const s=a(e,"node_modules");if(d(s)){const o=a(s,".cache","vis");return m(o),a(o,"vis-config-cache.json")}const t=x("vis",{create:!0,cwd:e});return t?a(t,"vis-config-cache.json"):void 0},re=(e,s)=>{if(d(e))try{const t=S(e);if(t.hash===s)return t.config}catch{}},ce=(e,s,t)=>{try{m(C(e)),O(e,{config:t,hash:s})}catch{}},ie=e=>e===void 0?[]:Array.isArray(e)?e:[e],ae=(e,s,t)=>{if(_(e))throw new k(e,[...t,s],["Absolute paths in `extends` are not supported. Use a relative path or an npm package name."]);const o=[];if(e.startsWith("./")||e.startsWith("../")){const r=C(s),n=a(r,e);if(o.push(n),d(n))return n;throw new k(e,[...t,s],o)}try{return q(s).resolve(e)}catch{throw o.push(`require.resolve("${e}") from ${s}`),new k(e,[...t,s],o)}},G=async(e,s)=>{let t;try{t=(await M(e)).default??{}}catch(o){throw new T(e,s,o)}try{return(typeof t=="function"?await t()??{}:t)??{}}catch(o){throw new T(e,s,o)}},fe=(e,s)=>{const t={...e,...s};if(e.tasks||s.tasks){const o=new Set([...Object.keys(e.tasks??{}),...Object.keys(s.tasks??{})]),r={};for(const n of o)r[n]=K(e.tasks?.[n],s.tasks?.[n]);t.tasks=r}if((e.scopedTasks||s.scopedTasks)&&(t.scopedTasks=[...e.scopedTasks??[],...s.scopedTasks??[]]),(e.fileGroups||s.fileGroups)&&(t.fileGroups={...e.fileGroups,...s.fileGroups}),(e.taskGroups||s.taskGroups)&&(t.taskGroups={...e.taskGroups,...s.taskGroups}),e.security||s.security){const o=e.security?.policies??{},r=s.security?.policies??{},n={...o,...r};for(const c of Object.keys(o)){const i=o[c],f=r[c];i!==void 0&&f!==void 0&&(n[c]={...i,...f})}t.security={...e.security,...s.security,acceptedRisks:{...e.security?.acceptedRisks,...s.security?.acceptedRisks},policies:n}}return(e.update||s.update)&&(t.update={...e.update,...s.update}),(e.taskRunner||s.taskRunner)&&(t.taskRunner={...e.taskRunner,...s.taskRunner}),delete t.extends,t},R=async(e,s,t,o,r)=>{if(t.has(e))throw new P(e,s);if(!o.has(e)){t.add(e);try{const n=await G(e,s);H(e,s,n),Q(e,s,n);const c=ie(n.extends);for(const i of c){const f=ae(i,e,s);await R(f,[...s,e],t,o,r)}o.set(e,n),r.push(e)}finally{t.delete(e)}}},Te=async(e,s)=>{let t;if(s?.explicitConfigPath){const u=_(s.explicitConfigPath)?s.explicitConfigPath:a(e,s.explicitConfigPath);if(!d(u))throw new Error(`Cannot find config file at ${u}`);t=u}else t=se(e);if(!t)return b({});const o=new Set,r=new Map,n=[];await R(t,[],o,r,n);const c=oe(n),i=ne(e);if(i){const u=re(i,c);if(u)return u}let f={};for(const u of n)f=fe(f,r.get(u));const j=b(f);return i&&ce(i,c,j),j},ue=e=>e.replaceAll(/[^\w.-]+/g,"_"),de=(e,s)=>{const t=a(e,"node_modules"),o=ue(s);if(d(t)){const n=a(t,".cache","vis","task-configs");return m(n),a(n,`${o}.json`)}const r=x("vis",{create:!0,cwd:e});return r?a(r,"task-configs",`${o}.json`):void 0},le=(e,s)=>{if(d(e))try{const t=S(e);if(t.hash===s)return t.config}catch{}},pe=(e,s,t)=>{try{m(C(e)),O(e,{config:t,hash:s})}catch{}},be=async(e,s,t)=>{const o=te(s);if(!o)return;const r=V(o),n=de(e,t);if(n){const f=le(n,r);if(f)return f}const c=await G(o,[]);Y(o,[],c);const i=c;return n&&pe(n,r,i),i},we=e=>e,$e=e=>e;export{D as CONFIG_FILES,je as DEFAULT_MIN_RELEASE_AGE_MINUTES,y as SECURITY_DEFAULTS,A as TASK_CONFIG_FILES,b as applyDefaults,$e as defineConfig,Ee as definePlugin,we as defineTaskConfig,se as findVisConfigFile,te as findVisTaskConfigFile,Te as loadVisConfig,be as loadVisTaskConfig,_e as otelPlugin};
|