@visulima/vis 1.0.0-alpha.1 → 1.0.0-alpha.10
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 +350 -12
- package/LICENSE.md +70 -0
- package/README.md +250 -9
- package/dist/bin.js +1 -146
- package/dist/errors/index.d.ts +26 -0
- package/dist/errors/index.js +1 -0
- package/dist/generate/index.d.ts +157 -0
- package/dist/generate/index.js +1 -0
- package/dist/packem_chunks/bin.js +87 -0
- package/dist/packem_chunks/config.js +2 -0
- package/dist/packem_chunks/fix.js +53 -0
- package/dist/packem_chunks/handler.js +1 -0
- package/dist/packem_chunks/handler10.js +1 -0
- package/dist/packem_chunks/handler11.js +1 -0
- package/dist/packem_chunks/handler12.js +2 -0
- package/dist/packem_chunks/handler13.js +1 -0
- package/dist/packem_chunks/handler14.js +5 -0
- package/dist/packem_chunks/handler15.js +1 -0
- package/dist/packem_chunks/handler16.js +20 -0
- package/dist/packem_chunks/handler17.js +1 -0
- package/dist/packem_chunks/handler18.js +1 -0
- package/dist/packem_chunks/handler19.js +1 -0
- package/dist/packem_chunks/handler2.js +1 -0
- package/dist/packem_chunks/handler20.js +1 -0
- package/dist/packem_chunks/handler21.js +1 -0
- package/dist/packem_chunks/handler22.js +5 -0
- package/dist/packem_chunks/handler23.js +1 -0
- package/dist/packem_chunks/handler24.js +1 -0
- package/dist/packem_chunks/handler25.js +5 -0
- package/dist/packem_chunks/handler26.js +1 -0
- package/dist/packem_chunks/handler27.js +3 -0
- package/dist/packem_chunks/handler28.js +1 -0
- package/dist/packem_chunks/handler29.js +7 -0
- package/dist/packem_chunks/handler3.js +2 -0
- package/dist/packem_chunks/handler30.js +23 -0
- package/dist/packem_chunks/handler31.js +3 -0
- package/dist/packem_chunks/handler32.js +2 -0
- package/dist/packem_chunks/handler33.js +24 -0
- package/dist/packem_chunks/handler34.js +2 -0
- package/dist/packem_chunks/handler35.js +19 -0
- package/dist/packem_chunks/handler36.js +428 -0
- package/dist/packem_chunks/handler37.js +22 -0
- package/dist/packem_chunks/handler38.js +22 -0
- package/dist/packem_chunks/handler39.js +22 -0
- package/dist/packem_chunks/handler4.js +4 -0
- package/dist/packem_chunks/handler40.js +3 -0
- package/dist/packem_chunks/handler41.js +10 -0
- package/dist/packem_chunks/handler42.js +153 -0
- package/dist/packem_chunks/handler43.js +42 -0
- package/dist/packem_chunks/handler44.js +3 -0
- package/dist/packem_chunks/handler45.js +27 -0
- package/dist/packem_chunks/handler5.js +2 -0
- package/dist/packem_chunks/handler6.js +13 -0
- package/dist/packem_chunks/handler7.js +8 -0
- package/dist/packem_chunks/handler8.js +1 -0
- package/dist/packem_chunks/handler9.js +1 -0
- package/dist/packem_chunks/index.js +7 -0
- package/dist/packem_chunks/loader.js +1 -0
- package/dist/packem_shared/VisConfigCycleError-CAYNC7d-.js +1 -0
- package/dist/packem_shared/VisConfigError-B5LP1zRf.js +1 -0
- package/dist/packem_shared/VisConfigLoadError-CeqBSd2Z.js +2 -0
- package/dist/packem_shared/VisConfigNotFoundError-DZ9KC527.js +5 -0
- package/dist/packem_shared/VisUpdateApp-D-L4_-Iu.js +1 -0
- package/dist/packem_shared/_commonjsHelpers-D6W6KoPK.js +1 -0
- package/dist/packem_shared/ai-analysis-CGuy7dfE.js +67 -0
- package/dist/packem_shared/ai-cache-Bynt6Y9x.js +1 -0
- package/dist/packem_shared/cache-directory-D72ZEag2.js +1 -0
- package/dist/packem_shared/catalog-BVPerCwG.js +12 -0
- package/dist/packem_shared/dependency-scan-Du0tBu64.js +2 -0
- package/dist/packem_shared/docker-BcfqH4Av.js +2 -0
- package/dist/packem_shared/failure-log-DqYen0LC.js +2 -0
- package/dist/packem_shared/flakiness-DSIHZGBT.js +1 -0
- package/dist/packem_shared/run-summary-utils-C24Aaf9E.js +1 -0
- package/dist/packem_shared/runtime-check-CGHal8SO.js +1 -0
- package/dist/packem_shared/selectors-CfH9ZY08.js +3 -0
- package/dist/packem_shared/symbols-CQmER5MT.js +1 -0
- package/dist/packem_shared/target-merge-DNa-6eWu.js +1 -0
- package/dist/packem_shared/toolchain-DQfTQY8E.js +5 -0
- package/dist/packem_shared/typosquats-DOR8izpX.js +1 -0
- package/dist/packem_shared/use-measured-height-DjYgUOKk.js +1 -0
- package/dist/packem_shared/utils-DrNg0XTR.js +1 -0
- package/dist/packem_shared/xxh3-DrAUNq4n.js +1 -0
- package/index.js +601 -0
- package/package.json +67 -24
- package/schemas/project.schema.json +422 -0
- package/schemas/vis-config.schema.json +377 -0
- package/dist/ai-analysis.d.ts +0 -40
- package/dist/ai-cache.d.ts +0 -21
- package/dist/bin.d.ts +0 -1
- package/dist/catalog.d.ts +0 -110
- package/dist/commands/affected.d.ts +0 -3
- package/dist/commands/ai.d.ts +0 -3
- package/dist/commands/analyze.d.ts +0 -3
- package/dist/commands/check.d.ts +0 -3
- package/dist/commands/graph.d.ts +0 -3
- package/dist/commands/hook/constants.d.ts +0 -8
- package/dist/commands/hook/index.d.ts +0 -3
- package/dist/commands/hook/install.d.ts +0 -7
- package/dist/commands/hook/migrate.d.ts +0 -27
- package/dist/commands/hook/uninstall.d.ts +0 -3
- package/dist/commands/migrate/constants.d.ts +0 -12
- package/dist/commands/migrate/deps.d.ts +0 -32
- package/dist/commands/migrate/index.d.ts +0 -3
- package/dist/commands/migrate/json.d.ts +0 -20
- package/dist/commands/migrate/lint-staged.d.ts +0 -62
- package/dist/commands/migrate/types.d.ts +0 -20
- package/dist/commands/run.d.ts +0 -3
- package/dist/commands/staged.d.ts +0 -3
- package/dist/commands/update.d.ts +0 -3
- package/dist/config.d.ts +0 -40
- package/dist/config.js +0 -1
- package/dist/package-manager.d.ts +0 -23
- package/dist/workspace.d.ts +0 -58
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://visulima.com/schemas/vis-config.schema.json",
|
|
4
|
+
"title": "vis.config.ts",
|
|
5
|
+
"description": "Workspace configuration for @visulima/vis. Used by defineConfig() in vis.config.ts. This schema is for non-TypeScript editors; TypeScript users get autocomplete from defineConfig() types.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"properties": {
|
|
9
|
+
"ai": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"description": "AI analysis configuration.",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"properties": {
|
|
14
|
+
"cacheTtl": { "type": "number", "description": "Cache TTL in milliseconds." },
|
|
15
|
+
"priority": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"description": "Override default provider priority. Higher number = preferred.",
|
|
18
|
+
"additionalProperties": { "type": "number" }
|
|
19
|
+
},
|
|
20
|
+
"provider": { "type": "string", "description": "Use a specific provider (e.g. \"claude\", \"gemini\")." }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"codeowners": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Controls vis sync codeowners output.",
|
|
26
|
+
"additionalProperties": false,
|
|
27
|
+
"properties": {
|
|
28
|
+
"orderBy": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["file-source", "project-id"],
|
|
31
|
+
"default": "file-source"
|
|
32
|
+
},
|
|
33
|
+
"provider": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": ["github", "gitlab", "bitbucket", "other"],
|
|
36
|
+
"default": "github"
|
|
37
|
+
},
|
|
38
|
+
"globalPaths": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"description": "Workspace-level paths and their owners (e.g. \"/.github/**\": [\"@org/platform\"]).",
|
|
41
|
+
"additionalProperties": {
|
|
42
|
+
"type": "array",
|
|
43
|
+
"items": { "type": "string" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"constraints": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"description": "Project dependency constraints enforced before running tasks.",
|
|
51
|
+
"additionalProperties": false,
|
|
52
|
+
"properties": {
|
|
53
|
+
"enforceLayerRelationships": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"description": "Projects can only depend on the same or lower layer: configuration < library < scaffolding < tool < automation < application.",
|
|
56
|
+
"default": false
|
|
57
|
+
},
|
|
58
|
+
"tagRelationships": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"description": "Tag-based rules. Key = source tag, value = allowed dependency tags.",
|
|
61
|
+
"additionalProperties": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": { "type": "string" }
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"typeBoundaries": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"additionalProperties": false,
|
|
69
|
+
"properties": {
|
|
70
|
+
"enforceApplicationBoundary": {
|
|
71
|
+
"type": "boolean",
|
|
72
|
+
"description": "No project may depend on an application.",
|
|
73
|
+
"default": true
|
|
74
|
+
},
|
|
75
|
+
"allowedDependencyTypes": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"description": "Maps project types to allowed dependency types.",
|
|
78
|
+
"additionalProperties": {
|
|
79
|
+
"type": "array",
|
|
80
|
+
"items": { "type": "string" }
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"dependencyKindRules": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"additionalProperties": false,
|
|
88
|
+
"properties": {
|
|
89
|
+
"noDevDependencyOnProductionDep": { "type": "boolean", "default": false },
|
|
90
|
+
"noProductionDependencyOnApplication": { "type": "boolean", "default": false }
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"install": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"description": "Installer backend selection. Lets `vis install` (and friends) use aube — a fast Rust-native PM that reads/writes pnpm/npm/yarn/bun lockfiles in place — or pin a specific conventional PM. Aube must be installed separately; vis does not bundle it.",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"properties": {
|
|
100
|
+
"backend": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"enum": ["auto", "aube", "pnpm", "npm", "yarn", "bun"],
|
|
103
|
+
"default": "auto",
|
|
104
|
+
"description": "Which PM runs install/add/remove. `auto` uses aube when it is on PATH and falls back to the lockfile-detected PM. Explicit names error if the binary is missing. CLI flag `--installer` and env var `VIS_INSTALLER` override this."
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"create": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"description": "Configuration for vis create scaffolding command.",
|
|
111
|
+
"additionalProperties": false,
|
|
112
|
+
"properties": {
|
|
113
|
+
"auth": { "type": "string", "description": "Authorization token for private templates." },
|
|
114
|
+
"defaultEditor": { "type": "string", "enum": ["vscode"] },
|
|
115
|
+
"defaultPm": { "type": "string", "enum": ["pnpm", "npm", "yarn", "bun"] },
|
|
116
|
+
"defaultProvider": { "type": "string", "enum": ["github", "gitlab", "bitbucket", "sourcehut"], "default": "github" },
|
|
117
|
+
"gitInit": { "type": "boolean", "default": false },
|
|
118
|
+
"install": { "type": "boolean", "default": true },
|
|
119
|
+
"preferOffline": { "type": "boolean", "default": false },
|
|
120
|
+
"registry": {
|
|
121
|
+
"oneOf": [{ "type": "string" }, { "type": "boolean", "const": false }]
|
|
122
|
+
},
|
|
123
|
+
"templates": {
|
|
124
|
+
"type": "object",
|
|
125
|
+
"description": "Named template aliases mapping short names to giget source strings.",
|
|
126
|
+
"additionalProperties": { "type": "string" }
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"overrides": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"description": "Package override mappings applied during migration.",
|
|
133
|
+
"additionalProperties": { "type": "string" }
|
|
134
|
+
},
|
|
135
|
+
"security": {
|
|
136
|
+
"type": "object",
|
|
137
|
+
"description": "Supply-chain security settings.",
|
|
138
|
+
"additionalProperties": false,
|
|
139
|
+
"properties": {
|
|
140
|
+
"allowBuilds": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"description": "Allow (true) or deny (false) build scripts per package.",
|
|
143
|
+
"additionalProperties": { "type": "boolean" }
|
|
144
|
+
},
|
|
145
|
+
"blockExoticSubdeps": { "type": "boolean", "default": false },
|
|
146
|
+
"minimumReleaseAge": { "type": "number", "description": "Minutes since publish before allowing install.", "default": 0 },
|
|
147
|
+
"minimumReleaseAgeExclude": { "type": "array", "items": { "type": "string" } },
|
|
148
|
+
"socket": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"additionalProperties": false,
|
|
151
|
+
"properties": {
|
|
152
|
+
"acceptedRisks": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"additionalProperties": {
|
|
155
|
+
"type": "object",
|
|
156
|
+
"required": ["reason", "acceptedAt", "acceptedScore"],
|
|
157
|
+
"properties": {
|
|
158
|
+
"reason": { "type": "string" },
|
|
159
|
+
"acceptedAt": { "type": "string", "format": "date-time" },
|
|
160
|
+
"acceptedScore": { "type": "number" }
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"apiToken": { "type": "string" },
|
|
165
|
+
"cacheTtlMs": { "type": "number", "default": 3600000 },
|
|
166
|
+
"enabled": { "type": "boolean", "default": false },
|
|
167
|
+
"minimumScore": { "type": "number", "default": 0.4 },
|
|
168
|
+
"timeoutMs": { "type": "number", "default": 15000 }
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"strictDepBuilds": { "type": "boolean", "default": false },
|
|
172
|
+
"trustPolicy": { "type": "string", "enum": ["off", "no-downgrade"], "default": "off" },
|
|
173
|
+
"trustPolicyExclude": { "type": "array", "items": { "type": "string" } },
|
|
174
|
+
"trustPolicyIgnoreAfter": { "type": "number" },
|
|
175
|
+
"typosquatAllowlist": { "type": "array", "items": { "type": "string" } }
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"sortPackageJson": {
|
|
179
|
+
"type": "object",
|
|
180
|
+
"additionalProperties": false,
|
|
181
|
+
"properties": {
|
|
182
|
+
"sortScripts": { "type": "boolean", "default": false }
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"toolchain": {
|
|
186
|
+
"type": "object",
|
|
187
|
+
"description": "Toolchain (Node / pnpm / python / ...) management. Delegates to proto / mise / fnm / volta / asdf / nvm / corepack.",
|
|
188
|
+
"additionalProperties": false,
|
|
189
|
+
"properties": {
|
|
190
|
+
"autoInstall": {
|
|
191
|
+
"type": "boolean",
|
|
192
|
+
"description": "Run the right manager install on engines.node mismatch before vis run / vis ci proceed. Default: true when a manager is detected on PATH."
|
|
193
|
+
},
|
|
194
|
+
"preferredManager": {
|
|
195
|
+
"type": "string",
|
|
196
|
+
"enum": ["proto", "mise", "fnm", "volta", "asdf", "nvm", "corepack", "none"],
|
|
197
|
+
"description": "Explicit manager override, bypasses auto-detection. Note: self-activate is resolved automatically for pnpm/yarn + packageManager pins and is not a valid override."
|
|
198
|
+
},
|
|
199
|
+
"tools": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"description": "Override engines/packageManager-derived pins.",
|
|
202
|
+
"additionalProperties": false,
|
|
203
|
+
"properties": {
|
|
204
|
+
"bun": { "type": "string" },
|
|
205
|
+
"deno": { "type": "string" },
|
|
206
|
+
"go": { "type": "string" },
|
|
207
|
+
"node": { "type": "string" },
|
|
208
|
+
"npm": { "type": "string" },
|
|
209
|
+
"pnpm": { "type": "string" },
|
|
210
|
+
"python": { "type": "string" },
|
|
211
|
+
"ruby": { "type": "string" },
|
|
212
|
+
"rust": { "type": "string" },
|
|
213
|
+
"yarn": { "type": "string" }
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"staged": {
|
|
219
|
+
"description": "Staged file patterns and commands (replaces lint-staged). Accepts string, string[], {title, task}, or mixed arrays. Function-form tasks are supported at runtime but are not JSON-schema-representable.",
|
|
220
|
+
"type": "object",
|
|
221
|
+
"additionalProperties": {
|
|
222
|
+
"oneOf": [
|
|
223
|
+
{ "type": "string" },
|
|
224
|
+
{ "type": "array", "items": { "oneOf": [{ "type": "string" }, { "type": "object" }] } },
|
|
225
|
+
{
|
|
226
|
+
"type": "object",
|
|
227
|
+
"required": ["title"],
|
|
228
|
+
"properties": {
|
|
229
|
+
"title": { "type": "string" }
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
"targetDefaults": {
|
|
236
|
+
"type": "object",
|
|
237
|
+
"description": "Default target configurations applied to all projects with a matching target.",
|
|
238
|
+
"additionalProperties": { "$ref": "project.schema.json#/$defs/targetConfiguration" }
|
|
239
|
+
},
|
|
240
|
+
"fileGroups": {
|
|
241
|
+
"type": "object",
|
|
242
|
+
"description": "Named file-group patterns, reusable via @filegroup:<name> in target inputs.",
|
|
243
|
+
"additionalProperties": {
|
|
244
|
+
"type": "array",
|
|
245
|
+
"items": { "type": "string" }
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"namedInputs": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"description": "Named input patterns inherited by every project target.",
|
|
251
|
+
"additionalProperties": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": {
|
|
254
|
+
"oneOf": [
|
|
255
|
+
{ "type": "string" },
|
|
256
|
+
{ "$ref": "project.schema.json#/$defs/fileSetInput" },
|
|
257
|
+
{ "$ref": "project.schema.json#/$defs/environmentInput" },
|
|
258
|
+
{ "$ref": "project.schema.json#/$defs/runtimeInput" },
|
|
259
|
+
{ "$ref": "project.schema.json#/$defs/externalDependencyInput" }
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"taskDefaults": {
|
|
265
|
+
"type": "array",
|
|
266
|
+
"description": "Cascading task-default blocks scoped by project metadata.",
|
|
267
|
+
"items": {
|
|
268
|
+
"type": "object",
|
|
269
|
+
"required": ["targets"],
|
|
270
|
+
"additionalProperties": false,
|
|
271
|
+
"properties": {
|
|
272
|
+
"scope": {
|
|
273
|
+
"type": "object",
|
|
274
|
+
"description": "Scope predicate — all fields must match for the block to apply.",
|
|
275
|
+
"additionalProperties": false,
|
|
276
|
+
"properties": {
|
|
277
|
+
"tags": { "type": "array", "items": { "type": "string" } },
|
|
278
|
+
"projectType": { "type": "string", "enum": ["library", "application"] },
|
|
279
|
+
"layer": {
|
|
280
|
+
"oneOf": [
|
|
281
|
+
{ "type": "string", "enum": ["configuration", "library", "scaffolding", "tool", "automation", "application"] },
|
|
282
|
+
{
|
|
283
|
+
"type": "array",
|
|
284
|
+
"items": { "type": "string", "enum": ["configuration", "library", "scaffolding", "tool", "automation", "application"] }
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
},
|
|
288
|
+
"stack": {
|
|
289
|
+
"oneOf": [
|
|
290
|
+
{ "type": "string", "enum": ["backend", "frontend", "data", "infrastructure", "systems"] },
|
|
291
|
+
{ "type": "array", "items": { "type": "string", "enum": ["backend", "frontend", "data", "infrastructure", "systems"] } }
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
"language": {
|
|
295
|
+
"oneOf": [{ "type": "string" }, { "type": "array", "items": { "type": "string" } }]
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
"targets": {
|
|
300
|
+
"type": "object",
|
|
301
|
+
"additionalProperties": { "$ref": "project.schema.json#/$defs/targetConfiguration" }
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"taskRunnerOptions": {
|
|
307
|
+
"type": "object",
|
|
308
|
+
"description": "Task runner engine options.",
|
|
309
|
+
"additionalProperties": false,
|
|
310
|
+
"properties": {
|
|
311
|
+
"parallel": { "oneOf": [{ "type": "number" }, { "type": "boolean" }], "default": 3 },
|
|
312
|
+
"smartLockfileHashing": { "type": "boolean", "default": false },
|
|
313
|
+
"frameworkInference": { "type": "boolean", "default": false },
|
|
314
|
+
"autoFingerprint": { "type": "boolean", "default": false },
|
|
315
|
+
"cacheDiagnostics": { "type": "boolean", "default": false },
|
|
316
|
+
"cacheDirectory": { "type": "string" },
|
|
317
|
+
"dryRun": { "type": "boolean", "default": false },
|
|
318
|
+
"summarize": { "type": "boolean", "default": false },
|
|
319
|
+
"skipNxCache": { "type": "boolean" },
|
|
320
|
+
"globalInputs": { "type": "array", "items": { "type": "string" } },
|
|
321
|
+
"globalEnv": { "type": "array", "items": { "type": "string" } },
|
|
322
|
+
"maxCacheAge": { "type": "number" },
|
|
323
|
+
"maxCacheSize": { "type": "string" },
|
|
324
|
+
"remoteCache": {
|
|
325
|
+
"type": "object",
|
|
326
|
+
"required": ["url"],
|
|
327
|
+
"additionalProperties": false,
|
|
328
|
+
"properties": {
|
|
329
|
+
"url": { "type": "string" },
|
|
330
|
+
"token": { "type": "string" },
|
|
331
|
+
"teamId": { "type": "string" },
|
|
332
|
+
"read": { "type": "boolean", "default": true },
|
|
333
|
+
"write": { "type": "boolean", "default": true }
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
},
|
|
338
|
+
"tui": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"additionalProperties": false,
|
|
341
|
+
"properties": {
|
|
342
|
+
"autoExit": {
|
|
343
|
+
"oneOf": [{ "type": "boolean" }, { "type": "number" }],
|
|
344
|
+
"description": "Auto-exit TUI after completion. false=stay open, true=3s countdown, number=custom seconds.",
|
|
345
|
+
"default": false
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
"update": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"description": "Defaults for vis check and vis update commands.",
|
|
352
|
+
"additionalProperties": false,
|
|
353
|
+
"properties": {
|
|
354
|
+
"depFields": { "type": "array", "items": { "type": "string" } },
|
|
355
|
+
"exclude": { "type": "array", "items": { "type": "string" } },
|
|
356
|
+
"format": { "type": "string", "enum": ["table", "json", "minimal"] },
|
|
357
|
+
"ignore": { "type": "array", "items": { "type": "string" } },
|
|
358
|
+
"include": { "type": "array", "items": { "type": "string" } },
|
|
359
|
+
"includeLocked": { "type": "boolean", "default": false },
|
|
360
|
+
"install": { "type": "boolean" },
|
|
361
|
+
"minimumReleaseAge": { "type": "number" },
|
|
362
|
+
"minimumReleaseAgeExclude": { "type": "array", "items": { "type": "string" } },
|
|
363
|
+
"packageMode": {
|
|
364
|
+
"type": "object",
|
|
365
|
+
"additionalProperties": { "type": "string", "enum": ["latest", "minor", "patch"] }
|
|
366
|
+
},
|
|
367
|
+
"prerelease": { "type": "boolean" },
|
|
368
|
+
"security": { "type": "boolean" },
|
|
369
|
+
"target": { "type": "string", "enum": ["latest", "minor", "patch"] }
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"versionConstraint": {
|
|
373
|
+
"type": "string",
|
|
374
|
+
"description": "Minimum vis CLI version required. Accepts semver ranges (e.g. \">=1.0.0\", \"^1.2.0\")."
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
package/dist/ai-analysis.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import type { AiProviderInfo } from "@visulima/find-ai-runner";
|
|
2
|
-
import type { OutdatedEntry } from "./catalog.d.ts";
|
|
3
|
-
interface AiConfig {
|
|
4
|
-
/** Cache TTL in milliseconds. Overrides default (1h / 30min for security). */
|
|
5
|
-
cacheTtl?: number;
|
|
6
|
-
/** Override default provider priority. Higher = preferred. */
|
|
7
|
-
priority?: Record<string, number>;
|
|
8
|
-
/** Use a specific provider, skip auto-detection. */
|
|
9
|
-
provider?: string;
|
|
10
|
-
}
|
|
11
|
-
type AnalysisType = "compatibility" | "impact" | "recommend" | "security";
|
|
12
|
-
declare const DEFAULT_PRIORITY: Record<string, number>;
|
|
13
|
-
/** Resolve which AI provider to use based on config and availability. */
|
|
14
|
-
declare const resolveProvider: (config?: AiConfig) => AiProviderInfo | undefined;
|
|
15
|
-
interface AiRecommendation {
|
|
16
|
-
action: "defer" | "review" | "skip" | "update";
|
|
17
|
-
breakingChanges: string[];
|
|
18
|
-
effort: "high" | "low" | "medium";
|
|
19
|
-
package: string;
|
|
20
|
-
reason: string;
|
|
21
|
-
riskLevel: "critical" | "high" | "low" | "medium";
|
|
22
|
-
}
|
|
23
|
-
interface AiAnalysisResult {
|
|
24
|
-
analysisType: AnalysisType;
|
|
25
|
-
provider: string;
|
|
26
|
-
recommendations: AiRecommendation[];
|
|
27
|
-
summary: string;
|
|
28
|
-
warnings: string[];
|
|
29
|
-
}
|
|
30
|
-
declare const validateAnalysisType: (type: string) => AnalysisType;
|
|
31
|
-
declare const buildAnalysisPrompt: (outdated: OutdatedEntry[], analysisType?: AnalysisType) => string;
|
|
32
|
-
declare const extractJson: (text: string) => unknown | undefined;
|
|
33
|
-
declare const normalizeRecommendation: (raw: Record<string, unknown>) => AiRecommendation;
|
|
34
|
-
declare const parseAiResponse: (text: string, provider: string, analysisType: AnalysisType) => AiAnalysisResult;
|
|
35
|
-
declare const ruleBasedAnalysis: (outdated: OutdatedEntry[], analysisType: AnalysisType) => AiAnalysisResult;
|
|
36
|
-
declare const formatAiAnalysis: (result: AiAnalysisResult) => string;
|
|
37
|
-
declare const formatAiAnalysisJson: (result: AiAnalysisResult) => string;
|
|
38
|
-
declare const runAiAnalysis: (outdated: OutdatedEntry[], logger: Console, config?: AiConfig, analysisType?: AnalysisType) => Promise<AiAnalysisResult>;
|
|
39
|
-
export type { AiAnalysisResult, AiConfig, AiRecommendation, AnalysisType };
|
|
40
|
-
export { buildAnalysisPrompt, DEFAULT_PRIORITY, extractJson, formatAiAnalysis, formatAiAnalysisJson, normalizeRecommendation, parseAiResponse, resolveProvider, ruleBasedAnalysis, runAiAnalysis, validateAnalysisType, };
|
package/dist/ai-cache.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { AiAnalysisResult, AnalysisType } from "./ai-analysis.d.ts";
|
|
2
|
-
import type { OutdatedEntry } from "./catalog.d.ts";
|
|
3
|
-
interface CacheEntry {
|
|
4
|
-
createdAt: number;
|
|
5
|
-
result: AiAnalysisResult;
|
|
6
|
-
ttlMs: number;
|
|
7
|
-
}
|
|
8
|
-
interface CacheStats {
|
|
9
|
-
entries: number;
|
|
10
|
-
newestEntry: number | undefined;
|
|
11
|
-
oldestEntry: number | undefined;
|
|
12
|
-
totalSizeBytes: number;
|
|
13
|
-
}
|
|
14
|
-
declare const buildCacheKey: (provider: string, analysisType: string, outdated: Pick<OutdatedEntry, "currentRange" | "packageName" | "targetVersion">[]) => string;
|
|
15
|
-
declare const getCachedAnalysis: (cacheKey: string) => AiAnalysisResult | undefined;
|
|
16
|
-
declare const setCachedAnalysis: (cacheKey: string, result: AiAnalysisResult, ttlMs: number) => void;
|
|
17
|
-
declare const getTtlForAnalysisType: (analysisType: AnalysisType | string, configTtl?: number) => number;
|
|
18
|
-
declare const getCacheStats: () => CacheStats;
|
|
19
|
-
declare const clearCache: () => number;
|
|
20
|
-
export type { CacheEntry, CacheStats };
|
|
21
|
-
export { buildCacheKey, clearCache, getCachedAnalysis, getCacheStats, getTtlForAnalysisType, setCachedAnalysis };
|
package/dist/bin.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/catalog.d.ts
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
type UpdateTarget = "latest" | "minor" | "patch";
|
|
2
|
-
interface ParsedVersion {
|
|
3
|
-
major: number;
|
|
4
|
-
minor: number;
|
|
5
|
-
patch: number;
|
|
6
|
-
prerelease: string;
|
|
7
|
-
}
|
|
8
|
-
interface SecurityVulnerability {
|
|
9
|
-
cvssScore?: number;
|
|
10
|
-
fixedVersions: string[];
|
|
11
|
-
id: string;
|
|
12
|
-
severity: "CRITICAL" | "HIGH" | "LOW" | "MODERATE" | "UNKNOWN";
|
|
13
|
-
summary: string;
|
|
14
|
-
}
|
|
15
|
-
interface OutdatedEntry {
|
|
16
|
-
catalogName: string;
|
|
17
|
-
currentRange: string;
|
|
18
|
-
newRange: string;
|
|
19
|
-
packageName: string;
|
|
20
|
-
targetVersion: string;
|
|
21
|
-
updateType: "major" | "minor" | "patch";
|
|
22
|
-
vulnerabilities?: SecurityVulnerability[];
|
|
23
|
-
}
|
|
24
|
-
interface CatalogCheckOptions {
|
|
25
|
-
exclude: string[];
|
|
26
|
-
include: string[];
|
|
27
|
-
includePrerelease: boolean;
|
|
28
|
-
security?: boolean;
|
|
29
|
-
target: UpdateTarget;
|
|
30
|
-
}
|
|
31
|
-
interface ReadCatalogOptions {
|
|
32
|
-
dev?: boolean;
|
|
33
|
-
prod?: boolean;
|
|
34
|
-
}
|
|
35
|
-
declare const parseVersion: (input: string) => ParsedVersion | undefined;
|
|
36
|
-
declare const extractPrefix: (range: string) => string;
|
|
37
|
-
declare const getUpdateType: (current: ParsedVersion, target: ParsedVersion) => "major" | "minor" | "none" | "patch";
|
|
38
|
-
declare const isNewer: (current: ParsedVersion, target: ParsedVersion) => boolean;
|
|
39
|
-
declare const matchesPattern: (name: string, pattern: string) => boolean;
|
|
40
|
-
declare const matchesFilters: (name: string, include: string[], exclude: string[]) => boolean;
|
|
41
|
-
declare const parseCatalogsFromYaml: (content: string) => Map<string, Map<string, string>>;
|
|
42
|
-
interface BunPackageJson {
|
|
43
|
-
workspaces?: {
|
|
44
|
-
catalog?: Record<string, string>;
|
|
45
|
-
catalogs?: Record<string, Record<string, string>>;
|
|
46
|
-
packages?: string[];
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
declare const parseBunCatalogs: (pkg: BunPackageJson) => Map<string, Map<string, string>>;
|
|
50
|
-
declare const parseCompositeCatalogName: (name: string) => {
|
|
51
|
-
depType: string;
|
|
52
|
-
relativePath: string;
|
|
53
|
-
} | undefined;
|
|
54
|
-
declare const readPackageJsonDeps: (workspaceRoot: string, options?: ReadCatalogOptions) => Map<string, Map<string, string>>;
|
|
55
|
-
declare const hasPackageJsonDeps: (workspaceRoot: string) => boolean;
|
|
56
|
-
declare const applyPackageJsonUpdates: (workspaceRoot: string, updates: OutdatedEntry[]) => void;
|
|
57
|
-
type CatalogProvider = "bun" | "pnpm";
|
|
58
|
-
declare const hasCatalogs: (workspaceRoot: string, packageManager?: string) => boolean;
|
|
59
|
-
declare const readCatalogs: (workspaceRoot: string, packageManager?: string, options?: ReadCatalogOptions) => Map<string, Map<string, string>>;
|
|
60
|
-
interface NpmrcConfig {
|
|
61
|
-
authTokens: Map<string, string>;
|
|
62
|
-
defaultRegistry: string;
|
|
63
|
-
registries: Map<string, string>;
|
|
64
|
-
}
|
|
65
|
-
declare const parseNpmrc: (content: string) => NpmrcConfig;
|
|
66
|
-
declare const loadNpmrc: (workspaceRoot: string) => NpmrcConfig;
|
|
67
|
-
declare const getRegistryForPackage: (packageName: string, config: NpmrcConfig) => {
|
|
68
|
-
token?: string;
|
|
69
|
-
url: string;
|
|
70
|
-
};
|
|
71
|
-
interface RegistryVersionInfo {
|
|
72
|
-
latest: string;
|
|
73
|
-
versions: string[];
|
|
74
|
-
}
|
|
75
|
-
declare const fetchPackageVersions: (packageName: string, registryConfig?: {
|
|
76
|
-
authToken?: string;
|
|
77
|
-
url: string;
|
|
78
|
-
}, timeoutMs?: number) => Promise<RegistryVersionInfo>;
|
|
79
|
-
declare const fetchVulnerabilities: (packages: {
|
|
80
|
-
name: string;
|
|
81
|
-
version: string;
|
|
82
|
-
}[], timeoutMs?: number) => Promise<Map<string, SecurityVulnerability[]>>;
|
|
83
|
-
declare const findTargetVersion: (versions: string[], latest: string, currentRange: string, target: UpdateTarget, includePrerelease: boolean) => string | undefined;
|
|
84
|
-
interface CheckOutdatedResult {
|
|
85
|
-
failed: string[];
|
|
86
|
-
outdated: OutdatedEntry[];
|
|
87
|
-
}
|
|
88
|
-
declare const checkOutdated: (catalogs: Map<string, Map<string, string>>, options: CatalogCheckOptions, npmrcConfig?: NpmrcConfig, onProgress?: (current: number, total: number) => void) => Promise<CheckOutdatedResult>;
|
|
89
|
-
declare const createBackup: (workspaceRoot: string, packageManager?: string, updates?: OutdatedEntry[]) => string | undefined;
|
|
90
|
-
declare const restoreFromBackup: (workspaceRoot: string, packageManager?: string) => boolean;
|
|
91
|
-
declare const hasBackup: (workspaceRoot: string, packageManager?: string) => boolean;
|
|
92
|
-
type OutputFormat = "json" | "minimal" | "table";
|
|
93
|
-
declare const formatOutdatedJson: (result: CheckOutdatedResult) => string;
|
|
94
|
-
declare const formatOutdatedMinimal: (outdated: OutdatedEntry[]) => string;
|
|
95
|
-
declare const toFilterArray: (value: string | string[] | undefined) => string[];
|
|
96
|
-
declare const groupByCatalog: (entries: OutdatedEntry[]) => Map<string, OutdatedEntry[]>;
|
|
97
|
-
declare const formatOutdatedTable: (outdated: OutdatedEntry[], logger: Console) => void;
|
|
98
|
-
declare const formatSummary: (outdated: OutdatedEntry[]) => string;
|
|
99
|
-
declare const detectJsonIndent: (content: string) => number | string;
|
|
100
|
-
declare const applyCatalogUpdates: (workspaceRoot: string, updates: OutdatedEntry[], packageManager?: string, backup?: boolean) => string | undefined;
|
|
101
|
-
declare const promptPackageSelection: (outdated: OutdatedEntry[]) => Promise<OutdatedEntry[]>;
|
|
102
|
-
interface ChangelogInfo {
|
|
103
|
-
npmUrl: string;
|
|
104
|
-
packageName: string;
|
|
105
|
-
releaseUrl?: string;
|
|
106
|
-
repoUrl?: string;
|
|
107
|
-
}
|
|
108
|
-
declare const fetchChangelogInfo: (packages: OutdatedEntry[], timeoutMs?: number) => Promise<ChangelogInfo[]>;
|
|
109
|
-
export type { CatalogCheckOptions, CatalogProvider, ChangelogInfo, CheckOutdatedResult, NpmrcConfig, OutdatedEntry, OutputFormat, ParsedVersion, ReadCatalogOptions, SecurityVulnerability, UpdateTarget, };
|
|
110
|
-
export { applyCatalogUpdates, applyPackageJsonUpdates, checkOutdated, createBackup, detectJsonIndent, extractPrefix, fetchChangelogInfo, fetchPackageVersions, fetchVulnerabilities, findTargetVersion, formatOutdatedJson, formatOutdatedMinimal, formatOutdatedTable, formatSummary, getRegistryForPackage, getUpdateType, groupByCatalog, hasBackup, hasCatalogs, hasPackageJsonDeps, isNewer, loadNpmrc, matchesFilters, matchesPattern, parseBunCatalogs, parseCatalogsFromYaml, parseCompositeCatalogName, parseNpmrc, parseVersion, promptPackageSelection, readCatalogs, readPackageJsonDeps, restoreFromBackup, toFilterArray, };
|
package/dist/commands/ai.d.ts
DELETED
package/dist/commands/check.d.ts
DELETED
package/dist/commands/graph.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
declare const HOOKS: readonly ["pre-commit", "pre-merge-commit", "prepare-commit-msg", "commit-msg", "post-commit", "applypatch-msg", "pre-applypatch", "post-applypatch", "pre-rebase", "post-rewrite", "post-checkout", "post-merge", "pre-push", "pre-auto-gc"];
|
|
2
|
-
declare const DEFAULT_HOOKS_DIRECTORY = ".vis-hooks";
|
|
3
|
-
interface InstallResult {
|
|
4
|
-
isError: boolean;
|
|
5
|
-
message: string;
|
|
6
|
-
}
|
|
7
|
-
export type { InstallResult };
|
|
8
|
-
export { DEFAULT_HOOKS_DIRECTORY, HOOKS };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { InstallResult } from "./constants.d.ts";
|
|
2
|
-
/**
|
|
3
|
-
* Generates the shell script that dispatches to user-defined hooks.
|
|
4
|
-
*/
|
|
5
|
-
declare const hookScript: (directory: string) => string;
|
|
6
|
-
declare const installHooks: (directory?: string) => InstallResult;
|
|
7
|
-
export { hookScript, installHooks };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { PackageManagerType } from "../migrate/types.d.ts";
|
|
2
|
-
import type { InstallResult } from "./constants.d.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Detects which husky directory is in use, if any.
|
|
5
|
-
*/
|
|
6
|
-
declare const detectHuskyDirectory: (root: string) => string | undefined;
|
|
7
|
-
/**
|
|
8
|
-
* Transforms a husky hook script for vis.
|
|
9
|
-
* Removes the common.sh sourcing line since vis handles PATH setup in its dispatcher.
|
|
10
|
-
*/
|
|
11
|
-
declare const transformHookScript: (content: string) => string;
|
|
12
|
-
/**
|
|
13
|
-
* Detects the package manager used in the project.
|
|
14
|
-
*/
|
|
15
|
-
declare const detectPackageManager: (root: string) => PackageManagerType;
|
|
16
|
-
/**
|
|
17
|
-
* Cleans husky references from package.json scripts.
|
|
18
|
-
*/
|
|
19
|
-
declare const cleanPackageJsonScripts: (root: string) => {
|
|
20
|
-
modified: boolean;
|
|
21
|
-
removedScriptReferences: string[];
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Migrates from husky to vis hooks.
|
|
25
|
-
*/
|
|
26
|
-
declare const migrateFromHusky: (root: string, hooksDirectory: string, logger: Console) => InstallResult;
|
|
27
|
-
export { cleanPackageJsonScripts, detectHuskyDirectory, detectPackageManager, migrateFromHusky, transformHookScript };
|