depsly 0.1.0__tar.gz
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.
- depsly-0.1.0/PKG-INFO +237 -0
- depsly-0.1.0/README.md +228 -0
- depsly-0.1.0/cli.py +593 -0
- depsly-0.1.0/core/analyze.py +194 -0
- depsly-0.1.0/core/classify.py +52 -0
- depsly-0.1.0/core/graph.py +433 -0
- depsly-0.1.0/core/ingestion.py +140 -0
- depsly-0.1.0/core/models.py +65 -0
- depsly-0.1.0/core/recommend.py +146 -0
- depsly-0.1.0/core/scoring.py +206 -0
- depsly-0.1.0/core/simulate.py +47 -0
- depsly-0.1.0/core/trace.py +84 -0
- depsly-0.1.0/depsly.egg-info/PKG-INFO +237 -0
- depsly-0.1.0/depsly.egg-info/SOURCES.txt +32 -0
- depsly-0.1.0/depsly.egg-info/dependency_links.txt +1 -0
- depsly-0.1.0/depsly.egg-info/entry_points.txt +2 -0
- depsly-0.1.0/depsly.egg-info/requires.txt +1 -0
- depsly-0.1.0/depsly.egg-info/top_level.txt +2 -0
- depsly-0.1.0/pyproject.toml +23 -0
- depsly-0.1.0/setup.cfg +4 -0
- depsly-0.1.0/tests/test_analyze.py +436 -0
- depsly-0.1.0/tests/test_classify.py +110 -0
- depsly-0.1.0/tests/test_cli_analyze.py +60 -0
- depsly-0.1.0/tests/test_cli_json.py +75 -0
- depsly-0.1.0/tests/test_cli_recommend.py +107 -0
- depsly-0.1.0/tests/test_cli_trace.py +90 -0
- depsly-0.1.0/tests/test_graph.py +427 -0
- depsly-0.1.0/tests/test_ingestion.py +253 -0
- depsly-0.1.0/tests/test_models.py +64 -0
- depsly-0.1.0/tests/test_package_scoring.py +136 -0
- depsly-0.1.0/tests/test_recommend.py +134 -0
- depsly-0.1.0/tests/test_scoring.py +155 -0
- depsly-0.1.0/tests/test_simulate.py +89 -0
- depsly-0.1.0/tests/test_trace.py +129 -0
depsly-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: depsly
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Local-first dependency decision CLI for JS/TS projects
|
|
5
|
+
Author: Sabri Shiraz
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: click>=8.0
|
|
9
|
+
|
|
10
|
+
# π Depsly
|
|
11
|
+
|
|
12
|
+
**Depsly is a local-first dependency decision CLI for JavaScript/TypeScript projects.**
|
|
13
|
+
|
|
14
|
+
It helps you answer:
|
|
15
|
+
|
|
16
|
+
- What dependencies actually matter?
|
|
17
|
+
- What should I review first?
|
|
18
|
+
- Why is this transitive package even here?
|
|
19
|
+
- What happens if I remove something?
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## π§ Why Depsly
|
|
24
|
+
|
|
25
|
+
Most dependency tools focus on:
|
|
26
|
+
- vulnerabilities
|
|
27
|
+
- compliance
|
|
28
|
+
- audit reports
|
|
29
|
+
|
|
30
|
+
Depsly focuses on:
|
|
31
|
+
|
|
32
|
+
> **Decision-making**
|
|
33
|
+
|
|
34
|
+
It combines:
|
|
35
|
+
- dependency graph analysis
|
|
36
|
+
- structural impact simulation
|
|
37
|
+
- feasibility-aware recommendations
|
|
38
|
+
|
|
39
|
+
So you can decide **where to spend your time**.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## β¨ What Depsly Does
|
|
44
|
+
|
|
45
|
+
- Builds a full dependency graph from `package-lock.json`
|
|
46
|
+
- Analyzes structural risk (depth, fanout, transitive exposure)
|
|
47
|
+
- Ranks dependencies by **impact Γ actionability**
|
|
48
|
+
- Explains why transitive dependencies exist
|
|
49
|
+
- Simulates structural impact of removing packages
|
|
50
|
+
- Runs entirely **locally** (no code upload required)
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## β‘ Install
|
|
55
|
+
|
|
56
|
+
### Recommended (pipx)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pipx install depsly
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If needed:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pipx install --python python3.11 depsly
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Alternative (pip)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install depsly
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## π Quick Start
|
|
79
|
+
|
|
80
|
+
### Analyze your dependency graph
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
depsly analyze package-lock.json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### Get prioritized recommendations
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
depsly recommend package-lock.json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Trace why a package exists
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
depsly trace package-lock.json @babel/core@7.29.0
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Preview structural impact of removal
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
depsly simulate-remove package-lock.json eslint@9.39.4
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## π§ͺ Example Output
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
Depsly Recommendations
|
|
116
|
+
Project: frontend
|
|
117
|
+
Packages analyzed: 204
|
|
118
|
+
|
|
119
|
+
1. eslint@9.39.4
|
|
120
|
+
Action: REVIEW
|
|
121
|
+
Actionability: MEDIUM
|
|
122
|
+
Reason confidence: HIGH
|
|
123
|
+
Impact: 35%
|
|
124
|
+
Classification: Direct (dev dependency)
|
|
125
|
+
|
|
126
|
+
Why:
|
|
127
|
+
- Direct dev dependency (user-controlled)
|
|
128
|
+
- Structural impact: 35% (71 packages)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## π§ How to Read the Output
|
|
134
|
+
|
|
135
|
+
### Action
|
|
136
|
+
What Depsly suggests:
|
|
137
|
+
|
|
138
|
+
- REVIEW β investigate before changing
|
|
139
|
+
- REMOVE β strong candidate to remove
|
|
140
|
+
- TRACE_UPSTREAM β change parent dependency instead
|
|
141
|
+
- DEFER β low priority
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Actionability
|
|
146
|
+
How easy it is to change:
|
|
147
|
+
|
|
148
|
+
- HIGH β easy to modify
|
|
149
|
+
- MEDIUM β moderate effort
|
|
150
|
+
- LOW β difficult or risky
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Impact
|
|
155
|
+
Percentage of your dependency graph affected.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### Reason confidence
|
|
160
|
+
How strong the structural signal is:
|
|
161
|
+
|
|
162
|
+
- HIGH β direct + clear signals
|
|
163
|
+
- MEDIUM β inferred from structure
|
|
164
|
+
- LOW β limited information
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## π Typical Workflow
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
analyze β recommend β trace β simulate-remove
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## β οΈ Important
|
|
177
|
+
|
|
178
|
+
Structural analysis only.
|
|
179
|
+
Does not guarantee install, build, or runtime correctness.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## π Why Local-First Matters
|
|
184
|
+
|
|
185
|
+
- No source code upload
|
|
186
|
+
- No account required
|
|
187
|
+
- No rate limits
|
|
188
|
+
- Fully deterministic
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## π― Philosophy
|
|
193
|
+
|
|
194
|
+
Depsly is not a scanner.
|
|
195
|
+
|
|
196
|
+
It is a:
|
|
197
|
+
|
|
198
|
+
**Dependency decision support system**
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## π Docs
|
|
203
|
+
|
|
204
|
+
See DOCUMENTATION_INDEX.md for deeper details.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## π§ Status
|
|
209
|
+
|
|
210
|
+
Early release (v0.1.0)
|
|
211
|
+
|
|
212
|
+
Core features are stable:
|
|
213
|
+
- analyze
|
|
214
|
+
- recommend
|
|
215
|
+
- trace
|
|
216
|
+
- simulate-remove
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## π¬ Feedback
|
|
221
|
+
|
|
222
|
+
If you try Depsly on your project, Iβd love to hear:
|
|
223
|
+
- what felt useful
|
|
224
|
+
- what felt off
|
|
225
|
+
- what you expected but didnβt see
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## π Summary
|
|
230
|
+
|
|
231
|
+
Depsly helps you move from:
|
|
232
|
+
|
|
233
|
+
βI have 200 dependenciesβ¦β
|
|
234
|
+
|
|
235
|
+
to:
|
|
236
|
+
|
|
237
|
+
βHereβs exactly what I should look at first.β
|
depsly-0.1.0/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# π Depsly
|
|
2
|
+
|
|
3
|
+
**Depsly is a local-first dependency decision CLI for JavaScript/TypeScript projects.**
|
|
4
|
+
|
|
5
|
+
It helps you answer:
|
|
6
|
+
|
|
7
|
+
- What dependencies actually matter?
|
|
8
|
+
- What should I review first?
|
|
9
|
+
- Why is this transitive package even here?
|
|
10
|
+
- What happens if I remove something?
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## π§ Why Depsly
|
|
15
|
+
|
|
16
|
+
Most dependency tools focus on:
|
|
17
|
+
- vulnerabilities
|
|
18
|
+
- compliance
|
|
19
|
+
- audit reports
|
|
20
|
+
|
|
21
|
+
Depsly focuses on:
|
|
22
|
+
|
|
23
|
+
> **Decision-making**
|
|
24
|
+
|
|
25
|
+
It combines:
|
|
26
|
+
- dependency graph analysis
|
|
27
|
+
- structural impact simulation
|
|
28
|
+
- feasibility-aware recommendations
|
|
29
|
+
|
|
30
|
+
So you can decide **where to spend your time**.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## β¨ What Depsly Does
|
|
35
|
+
|
|
36
|
+
- Builds a full dependency graph from `package-lock.json`
|
|
37
|
+
- Analyzes structural risk (depth, fanout, transitive exposure)
|
|
38
|
+
- Ranks dependencies by **impact Γ actionability**
|
|
39
|
+
- Explains why transitive dependencies exist
|
|
40
|
+
- Simulates structural impact of removing packages
|
|
41
|
+
- Runs entirely **locally** (no code upload required)
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## β‘ Install
|
|
46
|
+
|
|
47
|
+
### Recommended (pipx)
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pipx install depsly
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
If needed:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pipx install --python python3.11 depsly
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### Alternative (pip)
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pip install depsly
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## π Quick Start
|
|
70
|
+
|
|
71
|
+
### Analyze your dependency graph
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
depsly analyze package-lock.json
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Get prioritized recommendations
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
depsly recommend package-lock.json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Trace why a package exists
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
depsly trace package-lock.json @babel/core@7.29.0
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### Preview structural impact of removal
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
depsly simulate-remove package-lock.json eslint@9.39.4
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## π§ͺ Example Output
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
Depsly Recommendations
|
|
107
|
+
Project: frontend
|
|
108
|
+
Packages analyzed: 204
|
|
109
|
+
|
|
110
|
+
1. eslint@9.39.4
|
|
111
|
+
Action: REVIEW
|
|
112
|
+
Actionability: MEDIUM
|
|
113
|
+
Reason confidence: HIGH
|
|
114
|
+
Impact: 35%
|
|
115
|
+
Classification: Direct (dev dependency)
|
|
116
|
+
|
|
117
|
+
Why:
|
|
118
|
+
- Direct dev dependency (user-controlled)
|
|
119
|
+
- Structural impact: 35% (71 packages)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## π§ How to Read the Output
|
|
125
|
+
|
|
126
|
+
### Action
|
|
127
|
+
What Depsly suggests:
|
|
128
|
+
|
|
129
|
+
- REVIEW β investigate before changing
|
|
130
|
+
- REMOVE β strong candidate to remove
|
|
131
|
+
- TRACE_UPSTREAM β change parent dependency instead
|
|
132
|
+
- DEFER β low priority
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Actionability
|
|
137
|
+
How easy it is to change:
|
|
138
|
+
|
|
139
|
+
- HIGH β easy to modify
|
|
140
|
+
- MEDIUM β moderate effort
|
|
141
|
+
- LOW β difficult or risky
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
### Impact
|
|
146
|
+
Percentage of your dependency graph affected.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Reason confidence
|
|
151
|
+
How strong the structural signal is:
|
|
152
|
+
|
|
153
|
+
- HIGH β direct + clear signals
|
|
154
|
+
- MEDIUM β inferred from structure
|
|
155
|
+
- LOW β limited information
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## π Typical Workflow
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
analyze β recommend β trace β simulate-remove
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## β οΈ Important
|
|
168
|
+
|
|
169
|
+
Structural analysis only.
|
|
170
|
+
Does not guarantee install, build, or runtime correctness.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## π Why Local-First Matters
|
|
175
|
+
|
|
176
|
+
- No source code upload
|
|
177
|
+
- No account required
|
|
178
|
+
- No rate limits
|
|
179
|
+
- Fully deterministic
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## π― Philosophy
|
|
184
|
+
|
|
185
|
+
Depsly is not a scanner.
|
|
186
|
+
|
|
187
|
+
It is a:
|
|
188
|
+
|
|
189
|
+
**Dependency decision support system**
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## π Docs
|
|
194
|
+
|
|
195
|
+
See DOCUMENTATION_INDEX.md for deeper details.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## π§ Status
|
|
200
|
+
|
|
201
|
+
Early release (v0.1.0)
|
|
202
|
+
|
|
203
|
+
Core features are stable:
|
|
204
|
+
- analyze
|
|
205
|
+
- recommend
|
|
206
|
+
- trace
|
|
207
|
+
- simulate-remove
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## π¬ Feedback
|
|
212
|
+
|
|
213
|
+
If you try Depsly on your project, Iβd love to hear:
|
|
214
|
+
- what felt useful
|
|
215
|
+
- what felt off
|
|
216
|
+
- what you expected but didnβt see
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## π Summary
|
|
221
|
+
|
|
222
|
+
Depsly helps you move from:
|
|
223
|
+
|
|
224
|
+
βI have 200 dependenciesβ¦β
|
|
225
|
+
|
|
226
|
+
to:
|
|
227
|
+
|
|
228
|
+
βHereβs exactly what I should look at first.β
|