prehook 0.1.0__py3-none-win_amd64.whl
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.
|
Binary file
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: prehook
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Classifier: Development Status :: 3 - Alpha
|
|
5
|
+
Classifier: Environment :: Console
|
|
6
|
+
Classifier: Intended Audience :: Developers
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Programming Language :: Rust
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
11
|
+
Summary: Run git hooks as shell commands from pyproject.toml
|
|
12
|
+
Keywords: git,hooks,pre-commit,linter,formatter
|
|
13
|
+
Author-email: Christian Tanul <git@christiantanul.com>
|
|
14
|
+
License-Expression: MIT
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
17
|
+
Project-URL: Repository, https://github.com/scriptogre/prehook
|
|
18
|
+
|
|
19
|
+
# `prehook`
|
|
20
|
+
|
|
21
|
+
Run git hooks as shell commands from `pyproject.toml`.
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
1. Add commands to `pyproject.toml`:
|
|
26
|
+
|
|
27
|
+
```toml
|
|
28
|
+
[tool.prehook]
|
|
29
|
+
hooks = [
|
|
30
|
+
"uvx ruff check --fix",
|
|
31
|
+
"uvx ruff format",
|
|
32
|
+
]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
2. Install the git hooks:
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
uvx prehook install
|
|
39
|
+
```
|
|
40
|
+
_This creates a script in your `.git/hooks/`._
|
|
41
|
+
|
|
42
|
+
3. `git commit -m "unfinished commit"`
|
|
43
|
+
|
|
44
|
+
To run hooks manually:
|
|
45
|
+
|
|
46
|
+
```sh
|
|
47
|
+
uvx prehook run
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To uninstall:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
uvx prehook uninstall
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Why?
|
|
57
|
+
|
|
58
|
+
I've used `pre-commit` for a long time, and it's a great tool.
|
|
59
|
+
|
|
60
|
+
But for projects where I just need to run `ruff check` and `ruff format`, setting up a separate config file with repo URLs and rev hases felt like too much.
|
|
61
|
+
|
|
62
|
+
So I made this. Hooks live in `pyproject.toml`, and they're just shell commands.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## Configuration
|
|
66
|
+
|
|
67
|
+
### Simple form
|
|
68
|
+
|
|
69
|
+
Commands run in order. If any command exits non-zero, the commit is blocked.
|
|
70
|
+
|
|
71
|
+
```toml
|
|
72
|
+
[tool.prehook]
|
|
73
|
+
hooks = [
|
|
74
|
+
"uvx ruff check --fix",
|
|
75
|
+
"uvx ruff format",
|
|
76
|
+
]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
A single command works too:
|
|
80
|
+
|
|
81
|
+
```toml
|
|
82
|
+
[tool.prehook]
|
|
83
|
+
hooks = ["just lint"]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Full form
|
|
87
|
+
|
|
88
|
+
For naming, stages, or per-hook options:
|
|
89
|
+
|
|
90
|
+
```toml
|
|
91
|
+
[tool.prehook]
|
|
92
|
+
hooks = [
|
|
93
|
+
{ name = "lint", run = "uvx ruff check --fix" },
|
|
94
|
+
{ name = "typecheck", run = "uvx pyright" },
|
|
95
|
+
{ name = "format", run = "uvx ruff format" },
|
|
96
|
+
]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
| Key | Default | Description |
|
|
100
|
+
|-----------|----------------------|----------------------------------|
|
|
101
|
+
| `run` | required | Command to execute. |
|
|
102
|
+
| `name` | derived from command | Label for output and `SKIP`. |
|
|
103
|
+
| `stages` | `["pre-commit"]` | Which git hook stages to run in. |
|
|
104
|
+
| `verbose` | `false` | Show output even on success. |
|
|
105
|
+
|
|
106
|
+
### Global options
|
|
107
|
+
|
|
108
|
+
```toml
|
|
109
|
+
[tool.prehook]
|
|
110
|
+
fail_fast = true
|
|
111
|
+
parallel = true
|
|
112
|
+
hooks = [...]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
| Key | Default | Description |
|
|
116
|
+
|-------------|---------|-----------------------------|
|
|
117
|
+
| `fail_fast` | `false` | Stop after first failure. |
|
|
118
|
+
| `parallel` | `false` | Run all hooks concurrently. |
|
|
119
|
+
|
|
120
|
+
### Parallel mode
|
|
121
|
+
|
|
122
|
+
When `parallel = true`, all hooks run at the same time. If two commands must run in order (e.g. fix then format), combine them:
|
|
123
|
+
|
|
124
|
+
```toml
|
|
125
|
+
[tool.prehook]
|
|
126
|
+
parallel = true
|
|
127
|
+
hooks = [
|
|
128
|
+
{ name = "lint+format", run = "uvx ruff check --fix && uvx ruff format" },
|
|
129
|
+
{ name = "typecheck", run = "uvx pyright" },
|
|
130
|
+
]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Stages
|
|
134
|
+
|
|
135
|
+
Hooks run on `pre-commit` by default. To run on other git hooks (e.g. `pre-push`), set `stages`:
|
|
136
|
+
|
|
137
|
+
```toml
|
|
138
|
+
[tool.prehook]
|
|
139
|
+
hooks = [
|
|
140
|
+
{ name = "lint", run = "uvx ruff check" },
|
|
141
|
+
{ name = "test", run = "pytest", stages = ["pre-push"] },
|
|
142
|
+
]
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`prehook install` detects all stages in your config and installs the right git hooks automatically.
|
|
146
|
+
|
|
147
|
+
### Skipping hooks
|
|
148
|
+
|
|
149
|
+
Skip all hooks:
|
|
150
|
+
|
|
151
|
+
```sh
|
|
152
|
+
git commit --no-verify -m "wip"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Skip specific hooks by name:
|
|
156
|
+
|
|
157
|
+
```sh
|
|
158
|
+
SKIP=typecheck git commit -m "wip"
|
|
159
|
+
SKIP=lint,typecheck git commit -m "wip"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Alternatives
|
|
163
|
+
|
|
164
|
+
If this tool doesn't do what you need, these are worth a look:
|
|
165
|
+
|
|
166
|
+
| Tool | Config | What it does well |
|
|
167
|
+
|------------------------------------------------------|---------------------------|---------------------------------------------------------------------------|
|
|
168
|
+
| [pre-commit](https://pre-commit.com) | `.pre-commit-config.yaml` | Huge ecosystem of ready-made hooks, multi-language virtualenv management. |
|
|
169
|
+
| [lefthook](https://github.com/evilmartians/lefthook) | `lefthook.yml` | Fast, language-agnostic, great parallel execution. |
|
|
170
|
+
| [prek](https://github.com/j178/prek) | `prek.toml` | Compatible with pre-commit configs, written in Rust, parallel execution. |
|
|
171
|
+
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
prehook-0.1.0.data/scripts/prehook.exe,sha256=mMKdyHeKfN24o3Q5Vcwtf3XC5-_N9DaK_LCnww1SsSU,617472
|
|
2
|
+
prehook-0.1.0.dist-info/METADATA,sha256=s884slOq2_95bkMSCMB4hqlJA5396FQg10W0h9KKgNY,4744
|
|
3
|
+
prehook-0.1.0.dist-info/WHEEL,sha256=T1DkkvVlw1bn9taKYXZyic2iz5lp4CFExsOlxcRDXDI,94
|
|
4
|
+
prehook-0.1.0.dist-info/sboms/prehook.cyclonedx.json,sha256=Z8g1zOdiYa7NGFcrIY7Gy-b1e6R4yZPn8PdaaEjLc6I,18699
|
|
5
|
+
prehook-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bomFormat": "CycloneDX",
|
|
3
|
+
"specVersion": "1.5",
|
|
4
|
+
"version": 1,
|
|
5
|
+
"serialNumber": "urn:uuid:90effdeb-05f1-4578-a200-d9bbc851803a",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"timestamp": "2026-06-13T16:19:35.229899000Z",
|
|
8
|
+
"tools": [
|
|
9
|
+
{
|
|
10
|
+
"vendor": "CycloneDX",
|
|
11
|
+
"name": "cargo-cyclonedx",
|
|
12
|
+
"version": "0.5.9"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"component": {
|
|
16
|
+
"type": "application",
|
|
17
|
+
"bom-ref": "path+file:///D:/a/prehook/prehook#0.1.0",
|
|
18
|
+
"name": "prehook",
|
|
19
|
+
"version": "0.1.0",
|
|
20
|
+
"scope": "required",
|
|
21
|
+
"purl": "pkg:cargo/prehook@0.1.0?download_url=file://.",
|
|
22
|
+
"components": [
|
|
23
|
+
{
|
|
24
|
+
"type": "application",
|
|
25
|
+
"bom-ref": "path+file:///D:/a/prehook/prehook#0.1.0 bin-target-0",
|
|
26
|
+
"name": "prehook",
|
|
27
|
+
"version": "0.1.0",
|
|
28
|
+
"purl": "pkg:cargo/prehook@0.1.0?download_url=file://.#src/main.rs"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"properties": [
|
|
33
|
+
{
|
|
34
|
+
"name": "cdx:rustc:sbom:target:all_targets",
|
|
35
|
+
"value": "true"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"components": [
|
|
40
|
+
{
|
|
41
|
+
"type": "library",
|
|
42
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2",
|
|
43
|
+
"name": "equivalent",
|
|
44
|
+
"version": "1.0.2",
|
|
45
|
+
"description": "Traits for key comparison in maps.",
|
|
46
|
+
"scope": "required",
|
|
47
|
+
"hashes": [
|
|
48
|
+
{
|
|
49
|
+
"alg": "SHA-256",
|
|
50
|
+
"content": "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"licenses": [
|
|
54
|
+
{
|
|
55
|
+
"expression": "Apache-2.0 OR MIT"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"purl": "pkg:cargo/equivalent@1.0.2",
|
|
59
|
+
"externalReferences": [
|
|
60
|
+
{
|
|
61
|
+
"type": "vcs",
|
|
62
|
+
"url": "https://github.com/indexmap-rs/equivalent"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "library",
|
|
68
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.17.1",
|
|
69
|
+
"name": "hashbrown",
|
|
70
|
+
"version": "0.17.1",
|
|
71
|
+
"description": "A Rust port of Google's SwissTable hash map",
|
|
72
|
+
"scope": "required",
|
|
73
|
+
"hashes": [
|
|
74
|
+
{
|
|
75
|
+
"alg": "SHA-256",
|
|
76
|
+
"content": "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"licenses": [
|
|
80
|
+
{
|
|
81
|
+
"expression": "MIT OR Apache-2.0"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"purl": "pkg:cargo/hashbrown@0.17.1",
|
|
85
|
+
"externalReferences": [
|
|
86
|
+
{
|
|
87
|
+
"type": "vcs",
|
|
88
|
+
"url": "https://github.com/rust-lang/hashbrown"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"type": "library",
|
|
94
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#indexmap@2.14.0",
|
|
95
|
+
"name": "indexmap",
|
|
96
|
+
"version": "2.14.0",
|
|
97
|
+
"description": "A hash table with consistent order and fast iteration.",
|
|
98
|
+
"scope": "required",
|
|
99
|
+
"hashes": [
|
|
100
|
+
{
|
|
101
|
+
"alg": "SHA-256",
|
|
102
|
+
"content": "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"licenses": [
|
|
106
|
+
{
|
|
107
|
+
"expression": "Apache-2.0 OR MIT"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"purl": "pkg:cargo/indexmap@2.14.0",
|
|
111
|
+
"externalReferences": [
|
|
112
|
+
{
|
|
113
|
+
"type": "documentation",
|
|
114
|
+
"url": "https://docs.rs/indexmap/"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"type": "vcs",
|
|
118
|
+
"url": "https://github.com/indexmap-rs/indexmap"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"type": "library",
|
|
124
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
|
|
125
|
+
"author": "David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>",
|
|
126
|
+
"name": "proc-macro2",
|
|
127
|
+
"version": "1.0.106",
|
|
128
|
+
"description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
|
|
129
|
+
"scope": "required",
|
|
130
|
+
"hashes": [
|
|
131
|
+
{
|
|
132
|
+
"alg": "SHA-256",
|
|
133
|
+
"content": "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
"licenses": [
|
|
137
|
+
{
|
|
138
|
+
"expression": "MIT OR Apache-2.0"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"purl": "pkg:cargo/proc-macro2@1.0.106",
|
|
142
|
+
"externalReferences": [
|
|
143
|
+
{
|
|
144
|
+
"type": "documentation",
|
|
145
|
+
"url": "https://docs.rs/proc-macro2"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "vcs",
|
|
149
|
+
"url": "https://github.com/dtolnay/proc-macro2"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"type": "library",
|
|
155
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
|
|
156
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
157
|
+
"name": "quote",
|
|
158
|
+
"version": "1.0.45",
|
|
159
|
+
"description": "Quasi-quoting macro quote!(...)",
|
|
160
|
+
"scope": "required",
|
|
161
|
+
"hashes": [
|
|
162
|
+
{
|
|
163
|
+
"alg": "SHA-256",
|
|
164
|
+
"content": "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"licenses": [
|
|
168
|
+
{
|
|
169
|
+
"expression": "MIT OR Apache-2.0"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"purl": "pkg:cargo/quote@1.0.45",
|
|
173
|
+
"externalReferences": [
|
|
174
|
+
{
|
|
175
|
+
"type": "documentation",
|
|
176
|
+
"url": "https://docs.rs/quote/"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"type": "vcs",
|
|
180
|
+
"url": "https://github.com/dtolnay/quote"
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"type": "library",
|
|
186
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228",
|
|
187
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
188
|
+
"name": "serde",
|
|
189
|
+
"version": "1.0.228",
|
|
190
|
+
"description": "A generic serialization/deserialization framework",
|
|
191
|
+
"scope": "required",
|
|
192
|
+
"hashes": [
|
|
193
|
+
{
|
|
194
|
+
"alg": "SHA-256",
|
|
195
|
+
"content": "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"licenses": [
|
|
199
|
+
{
|
|
200
|
+
"expression": "MIT OR Apache-2.0"
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"purl": "pkg:cargo/serde@1.0.228",
|
|
204
|
+
"externalReferences": [
|
|
205
|
+
{
|
|
206
|
+
"type": "documentation",
|
|
207
|
+
"url": "https://docs.rs/serde"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "website",
|
|
211
|
+
"url": "https://serde.rs"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"type": "vcs",
|
|
215
|
+
"url": "https://github.com/serde-rs/serde"
|
|
216
|
+
}
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"type": "library",
|
|
221
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228",
|
|
222
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
223
|
+
"name": "serde_core",
|
|
224
|
+
"version": "1.0.228",
|
|
225
|
+
"description": "Serde traits only, with no support for derive -- use the `serde` crate instead",
|
|
226
|
+
"scope": "required",
|
|
227
|
+
"hashes": [
|
|
228
|
+
{
|
|
229
|
+
"alg": "SHA-256",
|
|
230
|
+
"content": "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"licenses": [
|
|
234
|
+
{
|
|
235
|
+
"expression": "MIT OR Apache-2.0"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
"purl": "pkg:cargo/serde_core@1.0.228",
|
|
239
|
+
"externalReferences": [
|
|
240
|
+
{
|
|
241
|
+
"type": "documentation",
|
|
242
|
+
"url": "https://docs.rs/serde_core"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"type": "website",
|
|
246
|
+
"url": "https://serde.rs"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"type": "vcs",
|
|
250
|
+
"url": "https://github.com/serde-rs/serde"
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"type": "library",
|
|
256
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.228",
|
|
257
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
258
|
+
"name": "serde_derive",
|
|
259
|
+
"version": "1.0.228",
|
|
260
|
+
"description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]",
|
|
261
|
+
"scope": "required",
|
|
262
|
+
"hashes": [
|
|
263
|
+
{
|
|
264
|
+
"alg": "SHA-256",
|
|
265
|
+
"content": "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
|
266
|
+
}
|
|
267
|
+
],
|
|
268
|
+
"licenses": [
|
|
269
|
+
{
|
|
270
|
+
"expression": "MIT OR Apache-2.0"
|
|
271
|
+
}
|
|
272
|
+
],
|
|
273
|
+
"purl": "pkg:cargo/serde_derive@1.0.228",
|
|
274
|
+
"externalReferences": [
|
|
275
|
+
{
|
|
276
|
+
"type": "documentation",
|
|
277
|
+
"url": "https://serde.rs/derive.html"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"type": "website",
|
|
281
|
+
"url": "https://serde.rs"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"type": "vcs",
|
|
285
|
+
"url": "https://github.com/serde-rs/serde"
|
|
286
|
+
}
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"type": "library",
|
|
291
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_spanned@1.1.1",
|
|
292
|
+
"name": "serde_spanned",
|
|
293
|
+
"version": "1.1.1",
|
|
294
|
+
"description": "Serde-compatible spanned Value",
|
|
295
|
+
"scope": "required",
|
|
296
|
+
"hashes": [
|
|
297
|
+
{
|
|
298
|
+
"alg": "SHA-256",
|
|
299
|
+
"content": "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"licenses": [
|
|
303
|
+
{
|
|
304
|
+
"expression": "MIT OR Apache-2.0"
|
|
305
|
+
}
|
|
306
|
+
],
|
|
307
|
+
"purl": "pkg:cargo/serde_spanned@1.1.1",
|
|
308
|
+
"externalReferences": [
|
|
309
|
+
{
|
|
310
|
+
"type": "vcs",
|
|
311
|
+
"url": "https://github.com/toml-rs/toml"
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"type": "library",
|
|
317
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117",
|
|
318
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
319
|
+
"name": "syn",
|
|
320
|
+
"version": "2.0.117",
|
|
321
|
+
"description": "Parser for Rust source code",
|
|
322
|
+
"scope": "required",
|
|
323
|
+
"hashes": [
|
|
324
|
+
{
|
|
325
|
+
"alg": "SHA-256",
|
|
326
|
+
"content": "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"licenses": [
|
|
330
|
+
{
|
|
331
|
+
"expression": "MIT OR Apache-2.0"
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
"purl": "pkg:cargo/syn@2.0.117",
|
|
335
|
+
"externalReferences": [
|
|
336
|
+
{
|
|
337
|
+
"type": "documentation",
|
|
338
|
+
"url": "https://docs.rs/syn"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"type": "vcs",
|
|
342
|
+
"url": "https://github.com/dtolnay/syn"
|
|
343
|
+
}
|
|
344
|
+
]
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
"type": "library",
|
|
348
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#toml@1.1.2+spec-1.1.0",
|
|
349
|
+
"name": "toml",
|
|
350
|
+
"version": "1.1.2+spec-1.1.0",
|
|
351
|
+
"description": "A native Rust encoder and decoder of TOML-formatted files and streams. Provides implementations of the standard Serialize/Deserialize traits for TOML data to facilitate deserializing and serializing Rust structures. ",
|
|
352
|
+
"scope": "required",
|
|
353
|
+
"hashes": [
|
|
354
|
+
{
|
|
355
|
+
"alg": "SHA-256",
|
|
356
|
+
"content": "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
"licenses": [
|
|
360
|
+
{
|
|
361
|
+
"expression": "MIT OR Apache-2.0"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"purl": "pkg:cargo/toml@1.1.2+spec-1.1.0",
|
|
365
|
+
"externalReferences": [
|
|
366
|
+
{
|
|
367
|
+
"type": "vcs",
|
|
368
|
+
"url": "https://github.com/toml-rs/toml"
|
|
369
|
+
}
|
|
370
|
+
]
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"type": "library",
|
|
374
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#toml_datetime@1.1.1+spec-1.1.0",
|
|
375
|
+
"name": "toml_datetime",
|
|
376
|
+
"version": "1.1.1+spec-1.1.0",
|
|
377
|
+
"description": "A TOML-compatible datetime type",
|
|
378
|
+
"scope": "required",
|
|
379
|
+
"hashes": [
|
|
380
|
+
{
|
|
381
|
+
"alg": "SHA-256",
|
|
382
|
+
"content": "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
|
|
383
|
+
}
|
|
384
|
+
],
|
|
385
|
+
"licenses": [
|
|
386
|
+
{
|
|
387
|
+
"expression": "MIT OR Apache-2.0"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"purl": "pkg:cargo/toml_datetime@1.1.1+spec-1.1.0",
|
|
391
|
+
"externalReferences": [
|
|
392
|
+
{
|
|
393
|
+
"type": "vcs",
|
|
394
|
+
"url": "https://github.com/toml-rs/toml"
|
|
395
|
+
}
|
|
396
|
+
]
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"type": "library",
|
|
400
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#toml_parser@1.1.2+spec-1.1.0",
|
|
401
|
+
"name": "toml_parser",
|
|
402
|
+
"version": "1.1.2+spec-1.1.0",
|
|
403
|
+
"description": "Yet another format-preserving TOML parser.",
|
|
404
|
+
"scope": "required",
|
|
405
|
+
"hashes": [
|
|
406
|
+
{
|
|
407
|
+
"alg": "SHA-256",
|
|
408
|
+
"content": "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"licenses": [
|
|
412
|
+
{
|
|
413
|
+
"expression": "MIT OR Apache-2.0"
|
|
414
|
+
}
|
|
415
|
+
],
|
|
416
|
+
"purl": "pkg:cargo/toml_parser@1.1.2+spec-1.1.0",
|
|
417
|
+
"externalReferences": [
|
|
418
|
+
{
|
|
419
|
+
"type": "vcs",
|
|
420
|
+
"url": "https://github.com/toml-rs/toml"
|
|
421
|
+
}
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
"type": "library",
|
|
426
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#toml_writer@1.1.1+spec-1.1.0",
|
|
427
|
+
"name": "toml_writer",
|
|
428
|
+
"version": "1.1.1+spec-1.1.0",
|
|
429
|
+
"description": "A low-level interface for writing out TOML ",
|
|
430
|
+
"scope": "required",
|
|
431
|
+
"hashes": [
|
|
432
|
+
{
|
|
433
|
+
"alg": "SHA-256",
|
|
434
|
+
"content": "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db"
|
|
435
|
+
}
|
|
436
|
+
],
|
|
437
|
+
"licenses": [
|
|
438
|
+
{
|
|
439
|
+
"expression": "MIT OR Apache-2.0"
|
|
440
|
+
}
|
|
441
|
+
],
|
|
442
|
+
"purl": "pkg:cargo/toml_writer@1.1.1+spec-1.1.0",
|
|
443
|
+
"externalReferences": [
|
|
444
|
+
{
|
|
445
|
+
"type": "vcs",
|
|
446
|
+
"url": "https://github.com/toml-rs/toml"
|
|
447
|
+
}
|
|
448
|
+
]
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
"type": "library",
|
|
452
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24",
|
|
453
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
454
|
+
"name": "unicode-ident",
|
|
455
|
+
"version": "1.0.24",
|
|
456
|
+
"description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
|
|
457
|
+
"scope": "required",
|
|
458
|
+
"hashes": [
|
|
459
|
+
{
|
|
460
|
+
"alg": "SHA-256",
|
|
461
|
+
"content": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
"licenses": [
|
|
465
|
+
{
|
|
466
|
+
"expression": "(MIT OR Apache-2.0) AND Unicode-3.0"
|
|
467
|
+
}
|
|
468
|
+
],
|
|
469
|
+
"purl": "pkg:cargo/unicode-ident@1.0.24",
|
|
470
|
+
"externalReferences": [
|
|
471
|
+
{
|
|
472
|
+
"type": "documentation",
|
|
473
|
+
"url": "https://docs.rs/unicode-ident"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"type": "vcs",
|
|
477
|
+
"url": "https://github.com/dtolnay/unicode-ident"
|
|
478
|
+
}
|
|
479
|
+
]
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"type": "library",
|
|
483
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#winnow@1.0.3",
|
|
484
|
+
"name": "winnow",
|
|
485
|
+
"version": "1.0.3",
|
|
486
|
+
"description": "A byte-oriented, zero-copy, parser combinators library",
|
|
487
|
+
"scope": "required",
|
|
488
|
+
"hashes": [
|
|
489
|
+
{
|
|
490
|
+
"alg": "SHA-256",
|
|
491
|
+
"content": "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1"
|
|
492
|
+
}
|
|
493
|
+
],
|
|
494
|
+
"licenses": [
|
|
495
|
+
{
|
|
496
|
+
"expression": "MIT"
|
|
497
|
+
}
|
|
498
|
+
],
|
|
499
|
+
"purl": "pkg:cargo/winnow@1.0.3",
|
|
500
|
+
"externalReferences": [
|
|
501
|
+
{
|
|
502
|
+
"type": "vcs",
|
|
503
|
+
"url": "https://github.com/winnow-rs/winnow"
|
|
504
|
+
}
|
|
505
|
+
]
|
|
506
|
+
}
|
|
507
|
+
],
|
|
508
|
+
"dependencies": [
|
|
509
|
+
{
|
|
510
|
+
"ref": "path+file:///D:/a/prehook/prehook#0.1.0",
|
|
511
|
+
"dependsOn": [
|
|
512
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228",
|
|
513
|
+
"registry+https://github.com/rust-lang/crates.io-index#toml@1.1.2+spec-1.1.0"
|
|
514
|
+
]
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.17.1"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#indexmap@2.14.0",
|
|
524
|
+
"dependsOn": [
|
|
525
|
+
"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2",
|
|
526
|
+
"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.17.1",
|
|
527
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228"
|
|
528
|
+
]
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
|
|
532
|
+
"dependsOn": [
|
|
533
|
+
"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
534
|
+
]
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
|
|
538
|
+
"dependsOn": [
|
|
539
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106"
|
|
540
|
+
]
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228",
|
|
544
|
+
"dependsOn": [
|
|
545
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228",
|
|
546
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.228"
|
|
547
|
+
]
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.228",
|
|
554
|
+
"dependsOn": [
|
|
555
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
|
|
556
|
+
"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
|
|
557
|
+
"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117"
|
|
558
|
+
]
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde_spanned@1.1.1",
|
|
562
|
+
"dependsOn": [
|
|
563
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228"
|
|
564
|
+
]
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.117",
|
|
568
|
+
"dependsOn": [
|
|
569
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.106",
|
|
570
|
+
"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.45",
|
|
571
|
+
"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
572
|
+
]
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#toml@1.1.2+spec-1.1.0",
|
|
576
|
+
"dependsOn": [
|
|
577
|
+
"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.14.0",
|
|
578
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228",
|
|
579
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_spanned@1.1.1",
|
|
580
|
+
"registry+https://github.com/rust-lang/crates.io-index#toml_datetime@1.1.1+spec-1.1.0",
|
|
581
|
+
"registry+https://github.com/rust-lang/crates.io-index#toml_parser@1.1.2+spec-1.1.0",
|
|
582
|
+
"registry+https://github.com/rust-lang/crates.io-index#toml_writer@1.1.1+spec-1.1.0",
|
|
583
|
+
"registry+https://github.com/rust-lang/crates.io-index#winnow@1.0.3"
|
|
584
|
+
]
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#toml_datetime@1.1.1+spec-1.1.0",
|
|
588
|
+
"dependsOn": [
|
|
589
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228"
|
|
590
|
+
]
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#toml_parser@1.1.2+spec-1.1.0",
|
|
594
|
+
"dependsOn": [
|
|
595
|
+
"registry+https://github.com/rust-lang/crates.io-index#winnow@1.0.3"
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#toml_writer@1.1.1+spec-1.1.0"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#winnow@1.0.3"
|
|
606
|
+
}
|
|
607
|
+
]
|
|
608
|
+
}
|