diffninja 0.3.1 → 0.4.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/README.md +65 -11
- package/dist/executables.d.ts +18 -0
- package/dist/executables.js +32 -0
- package/dist/git.d.ts +26 -1
- package/dist/git.js +56 -4
- package/dist/languages/child-env.d.ts +11 -0
- package/dist/languages/child-env.js +60 -0
- package/dist/languages/grammar-lock.d.ts +569 -0
- package/dist/languages/grammar-lock.js +574 -0
- package/dist/languages/grammars.d.ts +69 -9
- package/dist/languages/grammars.js +186 -119
- package/dist/review/call-flow-html.d.ts +3 -1
- package/dist/review/call-flow-html.js +13 -11
- package/dist/review/change-facts.d.ts +21 -1
- package/dist/review/change-facts.js +271 -49
- package/dist/review/cli.js +13 -1
- package/dist/review/connected-analysis.d.ts +4 -1
- package/dist/review/connected-analysis.js +4 -2
- package/dist/review/connected-html.d.ts +15 -4
- package/dist/review/connected-html.js +342 -35
- package/dist/review/connected.js +47 -14
- package/dist/review/escape-html.d.ts +5 -1
- package/dist/review/escape-html.js +7 -2
- package/dist/review/explanation.d.ts +4 -0
- package/dist/review/explanation.js +6 -1
- package/dist/review/github.d.ts +56 -0
- package/dist/review/github.js +234 -33
- package/dist/review/grammars-command.d.ts +12 -0
- package/dist/review/grammars-command.js +60 -0
- package/dist/review/hidden-characters.d.ts +31 -0
- package/dist/review/hidden-characters.js +113 -0
- package/dist/review/history.js +7 -3
- package/dist/review/html.d.ts +3 -2
- package/dist/review/html.js +19 -18
- package/dist/review/input.js +5 -2
- package/dist/review/intent.d.ts +7 -0
- package/dist/review/intent.js +25 -3
- package/dist/review/markdown.js +11 -0
- package/dist/review/mcp-cli.js +4 -1
- package/dist/review/mcp.d.ts +7 -1
- package/dist/review/mcp.js +145 -59
- package/dist/review/pipeline.d.ts +2 -1
- package/dist/review/pipeline.js +4 -3
- package/dist/review/pr-input.d.ts +7 -0
- package/dist/review/pr-input.js +25 -3
- package/dist/review/process-html.d.ts +1 -5
- package/dist/review/process-html.js +3 -12
- package/dist/review/questions.js +11 -3
- package/dist/review/reference-check.d.ts +5 -1
- package/dist/review/reference-check.js +40 -16
- package/dist/review/report-pages.d.ts +24 -9
- package/dist/review/report-pages.js +111 -28
- package/dist/review/result-budget.d.ts +28 -0
- package/dist/review/result-budget.js +136 -0
- package/dist/review/service.js +26 -2
- package/dist/review/setup.d.ts +1 -1
- package/dist/review/setup.js +9 -4
- package/dist/review/types.d.ts +19 -5
- package/dist/review/types.js +2 -1
- package/dist/review/update-check.d.ts +35 -0
- package/dist/review/update-check.js +76 -0
- package/dist/run.js +11 -5
- package/npm-shrinkwrap.json +3483 -0
- package/package.json +3 -2
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
// GENERATED by scripts/pin-grammars.mjs. Do not edit; change PINS there and rerun it.
|
|
2
|
+
//
|
|
3
|
+
// The tree-sitter grammars `diffninja grammars install` may download, with the
|
|
4
|
+
// registry's integrity hash of every tarball (npm lockfile v3). Nothing outside
|
|
5
|
+
// this file is ever installed on a reviewer's behalf.
|
|
6
|
+
/** The grammar packages and the exact version of each. */
|
|
7
|
+
export const GRAMMAR_PINS = {
|
|
8
|
+
"@tree-sitter-grammars/tree-sitter-lua": "0.2.0",
|
|
9
|
+
"@tree-sitter-grammars/tree-sitter-zig": "1.1.2",
|
|
10
|
+
"tree-sitter-bash": "0.25.1",
|
|
11
|
+
"tree-sitter-c": "0.24.1",
|
|
12
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
13
|
+
"tree-sitter-cpp": "0.23.4",
|
|
14
|
+
"tree-sitter-elixir": "0.3.5",
|
|
15
|
+
"tree-sitter-go": "0.25.0",
|
|
16
|
+
"tree-sitter-haskell": "0.23.1",
|
|
17
|
+
"tree-sitter-java": "0.23.5",
|
|
18
|
+
"tree-sitter-kotlin": "0.3.8",
|
|
19
|
+
"tree-sitter-ocaml": "0.24.2",
|
|
20
|
+
"tree-sitter-perl": "2.0.0",
|
|
21
|
+
"tree-sitter-php": "0.24.2",
|
|
22
|
+
"tree-sitter-python": "0.25.0",
|
|
23
|
+
"tree-sitter-ruby": "0.23.1",
|
|
24
|
+
"tree-sitter-rust": "0.24.0",
|
|
25
|
+
"tree-sitter-scala": "0.24.0",
|
|
26
|
+
"tree-sitter-solidity": "1.2.13",
|
|
27
|
+
"tree-sitter-swift": "0.7.1"
|
|
28
|
+
};
|
|
29
|
+
/** Pinned packages that ship no prebuilt binary and load only after `grammars install --build`. */
|
|
30
|
+
export const GRAMMAR_BUILD_ONLY = ["tree-sitter-kotlin", "tree-sitter-perl"];
|
|
31
|
+
/** The cache directory's package.json; its dependencies are GRAMMAR_PINS. */
|
|
32
|
+
export const GRAMMAR_PACKAGE_JSON = {
|
|
33
|
+
"name": "diffninja-grammar-cache",
|
|
34
|
+
"version": "1.0.0",
|
|
35
|
+
"private": true,
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@tree-sitter-grammars/tree-sitter-lua": "0.2.0",
|
|
38
|
+
"@tree-sitter-grammars/tree-sitter-zig": "1.1.2",
|
|
39
|
+
"tree-sitter-bash": "0.25.1",
|
|
40
|
+
"tree-sitter-c": "0.24.1",
|
|
41
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
42
|
+
"tree-sitter-cpp": "0.23.4",
|
|
43
|
+
"tree-sitter-elixir": "0.3.5",
|
|
44
|
+
"tree-sitter-go": "0.25.0",
|
|
45
|
+
"tree-sitter-haskell": "0.23.1",
|
|
46
|
+
"tree-sitter-java": "0.23.5",
|
|
47
|
+
"tree-sitter-kotlin": "0.3.8",
|
|
48
|
+
"tree-sitter-ocaml": "0.24.2",
|
|
49
|
+
"tree-sitter-perl": "2.0.0",
|
|
50
|
+
"tree-sitter-php": "0.24.2",
|
|
51
|
+
"tree-sitter-python": "0.25.0",
|
|
52
|
+
"tree-sitter-ruby": "0.23.1",
|
|
53
|
+
"tree-sitter-rust": "0.24.0",
|
|
54
|
+
"tree-sitter-scala": "0.24.0",
|
|
55
|
+
"tree-sitter-solidity": "1.2.13",
|
|
56
|
+
"tree-sitter-swift": "0.7.1"
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
/** The cache directory's package-lock.json, exactly as npm resolved it. */
|
|
60
|
+
export const GRAMMAR_PACKAGE_LOCK = {
|
|
61
|
+
"name": "diffninja-grammar-cache",
|
|
62
|
+
"version": "1.0.0",
|
|
63
|
+
"lockfileVersion": 3,
|
|
64
|
+
"requires": true,
|
|
65
|
+
"packages": {
|
|
66
|
+
"": {
|
|
67
|
+
"name": "diffninja-grammar-cache",
|
|
68
|
+
"version": "1.0.0",
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@tree-sitter-grammars/tree-sitter-lua": "0.2.0",
|
|
71
|
+
"@tree-sitter-grammars/tree-sitter-zig": "1.1.2",
|
|
72
|
+
"tree-sitter-bash": "0.25.1",
|
|
73
|
+
"tree-sitter-c": "0.24.1",
|
|
74
|
+
"tree-sitter-c-sharp": "0.23.1",
|
|
75
|
+
"tree-sitter-cpp": "0.23.4",
|
|
76
|
+
"tree-sitter-elixir": "0.3.5",
|
|
77
|
+
"tree-sitter-go": "0.25.0",
|
|
78
|
+
"tree-sitter-haskell": "0.23.1",
|
|
79
|
+
"tree-sitter-java": "0.23.5",
|
|
80
|
+
"tree-sitter-kotlin": "0.3.8",
|
|
81
|
+
"tree-sitter-ocaml": "0.24.2",
|
|
82
|
+
"tree-sitter-perl": "2.0.0",
|
|
83
|
+
"tree-sitter-php": "0.24.2",
|
|
84
|
+
"tree-sitter-python": "0.25.0",
|
|
85
|
+
"tree-sitter-ruby": "0.23.1",
|
|
86
|
+
"tree-sitter-rust": "0.24.0",
|
|
87
|
+
"tree-sitter-scala": "0.24.0",
|
|
88
|
+
"tree-sitter-solidity": "1.2.13",
|
|
89
|
+
"tree-sitter-swift": "0.7.1"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"node_modules/@tree-sitter-grammars/tree-sitter-lua": {
|
|
93
|
+
"version": "0.2.0",
|
|
94
|
+
"resolved": "https://registry.npmjs.org/@tree-sitter-grammars/tree-sitter-lua/-/tree-sitter-lua-0.2.0.tgz",
|
|
95
|
+
"integrity": "sha512-VPk971J3hBUNr7CpZJvgTU5UmEkW8iMQ0Sk6br4O3xL00XFEO4PCjSSGeYYakRgPAJiIR8J594UcBK+7ilBvqw==",
|
|
96
|
+
"hasInstallScript": true,
|
|
97
|
+
"license": "MIT",
|
|
98
|
+
"dependencies": {
|
|
99
|
+
"node-addon-api": "^8.0.0",
|
|
100
|
+
"node-gyp-build": "^4.8.1"
|
|
101
|
+
},
|
|
102
|
+
"peerDependencies": {
|
|
103
|
+
"tree-sitter": "^0.21.1"
|
|
104
|
+
},
|
|
105
|
+
"peerDependenciesMeta": {
|
|
106
|
+
"tree_sitter": {
|
|
107
|
+
"optional": true
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"node_modules/@tree-sitter-grammars/tree-sitter-zig": {
|
|
112
|
+
"version": "1.1.2",
|
|
113
|
+
"resolved": "https://registry.npmjs.org/@tree-sitter-grammars/tree-sitter-zig/-/tree-sitter-zig-1.1.2.tgz",
|
|
114
|
+
"integrity": "sha512-J0L31HZ2isy3F5zb2g5QWQOv2r/pbruQNL9ADhuQv2pn5BQOzxt80WcEJaYXBeuJ8GHxVT42slpCna8k1c8LOw==",
|
|
115
|
+
"hasInstallScript": true,
|
|
116
|
+
"license": "MIT",
|
|
117
|
+
"dependencies": {
|
|
118
|
+
"node-addon-api": "^8.3.0",
|
|
119
|
+
"node-gyp-build": "^4.8.4"
|
|
120
|
+
},
|
|
121
|
+
"peerDependencies": {
|
|
122
|
+
"tree-sitter": "^0.22.1"
|
|
123
|
+
},
|
|
124
|
+
"peerDependenciesMeta": {
|
|
125
|
+
"tree-sitter": {
|
|
126
|
+
"optional": true
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"node_modules/isexe": {
|
|
131
|
+
"version": "2.0.0",
|
|
132
|
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
|
133
|
+
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
|
134
|
+
"license": "ISC"
|
|
135
|
+
},
|
|
136
|
+
"node_modules/node-addon-api": {
|
|
137
|
+
"version": "8.9.2",
|
|
138
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.9.2.tgz",
|
|
139
|
+
"integrity": "sha512-VijLXbi3UACN69I0JVXJsX4tjACjNoQDgv2gTF6sx2wWEi8tkSg2eX8p5gSIFi8z2+DL3oHmY6OyKce38SDolg==",
|
|
140
|
+
"license": "MIT",
|
|
141
|
+
"engines": {
|
|
142
|
+
"node": "^18 || ^20 || >= 21"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"node_modules/node-gyp-build": {
|
|
146
|
+
"version": "4.8.4",
|
|
147
|
+
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
|
|
148
|
+
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
|
|
149
|
+
"license": "MIT",
|
|
150
|
+
"bin": {
|
|
151
|
+
"node-gyp-build": "bin.js",
|
|
152
|
+
"node-gyp-build-optional": "optional.js",
|
|
153
|
+
"node-gyp-build-test": "build-test.js"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"node_modules/tree-sitter-bash": {
|
|
157
|
+
"version": "0.25.1",
|
|
158
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-bash/-/tree-sitter-bash-0.25.1.tgz",
|
|
159
|
+
"integrity": "sha512-7hMytuYIMoXOq24yRulgIxthE9YmggZIOHCyPTTuJcu6EU54tYD+4G39cUb28kxC6jMf/AbPfWGLQtgPTdh3xw==",
|
|
160
|
+
"hasInstallScript": true,
|
|
161
|
+
"license": "MIT",
|
|
162
|
+
"dependencies": {
|
|
163
|
+
"node-addon-api": "^8.2.1",
|
|
164
|
+
"node-gyp-build": "^4.8.2"
|
|
165
|
+
},
|
|
166
|
+
"peerDependencies": {
|
|
167
|
+
"tree-sitter": "^0.25.0"
|
|
168
|
+
},
|
|
169
|
+
"peerDependenciesMeta": {
|
|
170
|
+
"tree-sitter": {
|
|
171
|
+
"optional": true
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"node_modules/tree-sitter-c": {
|
|
176
|
+
"version": "0.24.1",
|
|
177
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-c/-/tree-sitter-c-0.24.1.tgz",
|
|
178
|
+
"integrity": "sha512-lkYwWN3SRecpvaeqmFKkuPNR3ZbtnvHU+4XAEEkJdrp3JfSp2pBrhXOtvfsENUneye76g889Y0ddF2DM0gEDpA==",
|
|
179
|
+
"hasInstallScript": true,
|
|
180
|
+
"license": "MIT",
|
|
181
|
+
"dependencies": {
|
|
182
|
+
"node-addon-api": "^8.3.1",
|
|
183
|
+
"node-gyp-build": "^4.8.4"
|
|
184
|
+
},
|
|
185
|
+
"peerDependencies": {
|
|
186
|
+
"tree-sitter": "^0.22.4"
|
|
187
|
+
},
|
|
188
|
+
"peerDependenciesMeta": {
|
|
189
|
+
"tree-sitter": {
|
|
190
|
+
"optional": true
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"node_modules/tree-sitter-c-sharp": {
|
|
195
|
+
"version": "0.23.1",
|
|
196
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-c-sharp/-/tree-sitter-c-sharp-0.23.1.tgz",
|
|
197
|
+
"integrity": "sha512-9zZ4FlcTRWWfRf6f4PgGhG8saPls6qOOt75tDfX7un9vQZJmARjPrAC6yBNCX2T/VKcCjIDbgq0evFaB3iGhQw==",
|
|
198
|
+
"hasInstallScript": true,
|
|
199
|
+
"license": "MIT",
|
|
200
|
+
"dependencies": {
|
|
201
|
+
"node-addon-api": "^8.2.2",
|
|
202
|
+
"node-gyp-build": "^4.8.2"
|
|
203
|
+
},
|
|
204
|
+
"peerDependencies": {
|
|
205
|
+
"tree-sitter": "^0.21.1"
|
|
206
|
+
},
|
|
207
|
+
"peerDependenciesMeta": {
|
|
208
|
+
"tree-sitter": {
|
|
209
|
+
"optional": true
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"node_modules/tree-sitter-cli": {
|
|
214
|
+
"version": "0.23.2",
|
|
215
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.23.2.tgz",
|
|
216
|
+
"integrity": "sha512-kPPXprOqREX+C/FgUp2Qpt9jd0vSwn+hOgjzVv/7hapdoWpa+VeWId53rf4oNNd29ikheF12BYtGD/W90feMbA==",
|
|
217
|
+
"hasInstallScript": true,
|
|
218
|
+
"license": "MIT",
|
|
219
|
+
"bin": {
|
|
220
|
+
"tree-sitter": "cli.js"
|
|
221
|
+
},
|
|
222
|
+
"engines": {
|
|
223
|
+
"node": ">=12.0.0"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"node_modules/tree-sitter-cpp": {
|
|
227
|
+
"version": "0.23.4",
|
|
228
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-cpp/-/tree-sitter-cpp-0.23.4.tgz",
|
|
229
|
+
"integrity": "sha512-qR5qUDyhZ5jJ6V8/umiBxokRbe89bCGmcq/dk94wI4kN86qfdV8k0GHIUEKaqWgcu42wKal5E97LKpLeVW8sKw==",
|
|
230
|
+
"hasInstallScript": true,
|
|
231
|
+
"license": "MIT",
|
|
232
|
+
"dependencies": {
|
|
233
|
+
"node-addon-api": "^8.2.1",
|
|
234
|
+
"node-gyp-build": "^4.8.2",
|
|
235
|
+
"tree-sitter-c": "^0.23.1"
|
|
236
|
+
},
|
|
237
|
+
"peerDependencies": {
|
|
238
|
+
"tree-sitter": "^0.21.1"
|
|
239
|
+
},
|
|
240
|
+
"peerDependenciesMeta": {
|
|
241
|
+
"tree-sitter": {
|
|
242
|
+
"optional": true
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"node_modules/tree-sitter-cpp/node_modules/tree-sitter-c": {
|
|
247
|
+
"version": "0.23.6",
|
|
248
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-c/-/tree-sitter-c-0.23.6.tgz",
|
|
249
|
+
"integrity": "sha512-0dxXKznVyUA0s6PjNolJNs2yF87O5aL538A/eR6njA5oqX3C3vH4vnx3QdOKwuUdpKEcFdHuiDpRKLLCA/tjvQ==",
|
|
250
|
+
"hasInstallScript": true,
|
|
251
|
+
"license": "MIT",
|
|
252
|
+
"dependencies": {
|
|
253
|
+
"node-addon-api": "^8.3.0",
|
|
254
|
+
"node-gyp-build": "^4.8.4"
|
|
255
|
+
},
|
|
256
|
+
"peerDependencies": {
|
|
257
|
+
"tree-sitter": "^0.22.1"
|
|
258
|
+
},
|
|
259
|
+
"peerDependenciesMeta": {
|
|
260
|
+
"tree-sitter": {
|
|
261
|
+
"optional": true
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
"node_modules/tree-sitter-elixir": {
|
|
266
|
+
"version": "0.3.5",
|
|
267
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-elixir/-/tree-sitter-elixir-0.3.5.tgz",
|
|
268
|
+
"integrity": "sha512-xozQMvYK0aSolcQZAx2d84Xe/YMWFuRPYFlLVxO01bM2GITh5jyiIp0TqPCQa8754UzRAI7A83hZmfiYub5TZQ==",
|
|
269
|
+
"hasInstallScript": true,
|
|
270
|
+
"license": "Apache-2.0",
|
|
271
|
+
"dependencies": {
|
|
272
|
+
"node-addon-api": "^7.1.0",
|
|
273
|
+
"node-gyp-build": "^4.8.0"
|
|
274
|
+
},
|
|
275
|
+
"peerDependencies": {
|
|
276
|
+
"tree-sitter": "^0.21.0"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"node_modules/tree-sitter-elixir/node_modules/node-addon-api": {
|
|
280
|
+
"version": "7.1.1",
|
|
281
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
|
|
282
|
+
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
|
|
283
|
+
"license": "MIT"
|
|
284
|
+
},
|
|
285
|
+
"node_modules/tree-sitter-go": {
|
|
286
|
+
"version": "0.25.0",
|
|
287
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-go/-/tree-sitter-go-0.25.0.tgz",
|
|
288
|
+
"integrity": "sha512-APBc/Dq3xz/e35Xpkhb1blu5UgW+2E3RyGWawZSCNcbGwa7jhSQPS8KsUupuzBla8PCo8+lz9W/JDJjmfRa2tw==",
|
|
289
|
+
"hasInstallScript": true,
|
|
290
|
+
"license": "MIT",
|
|
291
|
+
"dependencies": {
|
|
292
|
+
"node-addon-api": "^8.3.1",
|
|
293
|
+
"node-gyp-build": "^4.8.4"
|
|
294
|
+
},
|
|
295
|
+
"peerDependencies": {
|
|
296
|
+
"tree-sitter": "^0.25.0"
|
|
297
|
+
},
|
|
298
|
+
"peerDependenciesMeta": {
|
|
299
|
+
"tree-sitter": {
|
|
300
|
+
"optional": true
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"node_modules/tree-sitter-haskell": {
|
|
305
|
+
"version": "0.23.1",
|
|
306
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-haskell/-/tree-sitter-haskell-0.23.1.tgz",
|
|
307
|
+
"integrity": "sha512-qG4CYhejveu9DLMLEGBz/n9/TTeGSFLC6wniwOgG6m8/v7Dng8qR0ob0EVG7+XH+9WiOxohpGA23EhceWuxY4w==",
|
|
308
|
+
"hasInstallScript": true,
|
|
309
|
+
"license": "MIT",
|
|
310
|
+
"dependencies": {
|
|
311
|
+
"node-addon-api": "^8.2.2",
|
|
312
|
+
"node-gyp-build": "^4.8.2"
|
|
313
|
+
},
|
|
314
|
+
"peerDependencies": {
|
|
315
|
+
"tree-sitter": "^0.21.1"
|
|
316
|
+
},
|
|
317
|
+
"peerDependenciesMeta": {
|
|
318
|
+
"tree-sitter": {
|
|
319
|
+
"optional": true
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"node_modules/tree-sitter-java": {
|
|
324
|
+
"version": "0.23.5",
|
|
325
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-java/-/tree-sitter-java-0.23.5.tgz",
|
|
326
|
+
"integrity": "sha512-Yju7oQ0Xx7GcUT01mUglPP+bYfvqjNCGdxqigTnew9nLGoII42PNVP3bHrYeMxswiCRM0yubWmN5qk+zsg0zMA==",
|
|
327
|
+
"hasInstallScript": true,
|
|
328
|
+
"license": "MIT",
|
|
329
|
+
"dependencies": {
|
|
330
|
+
"node-addon-api": "^8.2.2",
|
|
331
|
+
"node-gyp-build": "^4.8.2"
|
|
332
|
+
},
|
|
333
|
+
"peerDependencies": {
|
|
334
|
+
"tree-sitter": "^0.21.1"
|
|
335
|
+
},
|
|
336
|
+
"peerDependenciesMeta": {
|
|
337
|
+
"tree-sitter": {
|
|
338
|
+
"optional": true
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
},
|
|
342
|
+
"node_modules/tree-sitter-kotlin": {
|
|
343
|
+
"version": "0.3.8",
|
|
344
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-kotlin/-/tree-sitter-kotlin-0.3.8.tgz",
|
|
345
|
+
"integrity": "sha512-A4obq6bjzmYrA+F0JLLoheFPcofFkctNaZSpnDd+GPn1SfVZLY4/GG4C0cYVBTOShuPBGGAOPLM1JWLZQV4m1g==",
|
|
346
|
+
"hasInstallScript": true,
|
|
347
|
+
"license": "MIT",
|
|
348
|
+
"dependencies": {
|
|
349
|
+
"node-addon-api": "^7.1.0",
|
|
350
|
+
"node-gyp-build": "^4.8.0"
|
|
351
|
+
},
|
|
352
|
+
"peerDependencies": {
|
|
353
|
+
"tree-sitter": "^0.21.0"
|
|
354
|
+
},
|
|
355
|
+
"peerDependenciesMeta": {
|
|
356
|
+
"tree_sitter": {
|
|
357
|
+
"optional": true
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"node_modules/tree-sitter-kotlin/node_modules/node-addon-api": {
|
|
362
|
+
"version": "7.1.1",
|
|
363
|
+
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
|
|
364
|
+
"integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
|
|
365
|
+
"license": "MIT"
|
|
366
|
+
},
|
|
367
|
+
"node_modules/tree-sitter-ocaml": {
|
|
368
|
+
"version": "0.24.2",
|
|
369
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-ocaml/-/tree-sitter-ocaml-0.24.2.tgz",
|
|
370
|
+
"integrity": "sha512-H0RAeCepIyXyTPCQra6yMd7Bn5ZBYkIaddzdLNwVZpM9mCe2e8av+3O6Ojl7Z8YHrV/kYsfHvI2y+Hh7qzcYQQ==",
|
|
371
|
+
"hasInstallScript": true,
|
|
372
|
+
"license": "MIT",
|
|
373
|
+
"dependencies": {
|
|
374
|
+
"node-addon-api": "^8.3.0",
|
|
375
|
+
"node-gyp-build": "^4.8.4"
|
|
376
|
+
},
|
|
377
|
+
"peerDependencies": {
|
|
378
|
+
"tree-sitter": "^0.22.4"
|
|
379
|
+
},
|
|
380
|
+
"peerDependenciesMeta": {
|
|
381
|
+
"tree-sitter": {
|
|
382
|
+
"optional": true
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"node_modules/tree-sitter-perl": {
|
|
387
|
+
"version": "2.0.0",
|
|
388
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-perl/-/tree-sitter-perl-2.0.0.tgz",
|
|
389
|
+
"integrity": "sha512-sKZfFIvw5S18UHHAMe7rRpuZzzkLxaeslmZeflPlFKLfKAWCT8XAIqu/IBWzWR5phkMTZM3DxqOxX2IXC51SdA==",
|
|
390
|
+
"hasInstallScript": true,
|
|
391
|
+
"license": "MIT",
|
|
392
|
+
"dependencies": {
|
|
393
|
+
"node-addon-api": "^8.3.0",
|
|
394
|
+
"node-gyp-build": "^4.8.4"
|
|
395
|
+
},
|
|
396
|
+
"engines": {
|
|
397
|
+
"node": ">= 20.0.0"
|
|
398
|
+
},
|
|
399
|
+
"peerDependencies": {
|
|
400
|
+
"tree-sitter": ">=0.25.0"
|
|
401
|
+
},
|
|
402
|
+
"peerDependenciesMeta": {
|
|
403
|
+
"tree-sitter": {
|
|
404
|
+
"optional": true
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"node_modules/tree-sitter-php": {
|
|
409
|
+
"version": "0.24.2",
|
|
410
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-php/-/tree-sitter-php-0.24.2.tgz",
|
|
411
|
+
"integrity": "sha512-zwgAePc/HozNaWOOfwRAA+3p8yhuehRw8Fb7vn5qd2XjiIc93uJPryDTMYTSjBRjVIUg/KY6pM3rRzs8dSwKfw==",
|
|
412
|
+
"hasInstallScript": true,
|
|
413
|
+
"license": "MIT",
|
|
414
|
+
"dependencies": {
|
|
415
|
+
"node-addon-api": "^8.2.2",
|
|
416
|
+
"node-gyp-build": "^4.8.2"
|
|
417
|
+
},
|
|
418
|
+
"peerDependencies": {
|
|
419
|
+
"tree-sitter": "^0.22.4"
|
|
420
|
+
},
|
|
421
|
+
"peerDependenciesMeta": {
|
|
422
|
+
"tree-sitter": {
|
|
423
|
+
"optional": true
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
"node_modules/tree-sitter-python": {
|
|
428
|
+
"version": "0.25.0",
|
|
429
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-python/-/tree-sitter-python-0.25.0.tgz",
|
|
430
|
+
"integrity": "sha512-eCmJx6zQa35GxaCtQD+wXHOhYqBxEL+bp71W/s3fcDMu06MrtzkVXR437dRrCrbrDbyLuUDJpAgycs7ncngLXw==",
|
|
431
|
+
"hasInstallScript": true,
|
|
432
|
+
"license": "MIT",
|
|
433
|
+
"dependencies": {
|
|
434
|
+
"node-addon-api": "^8.5.0",
|
|
435
|
+
"node-gyp-build": "^4.8.4"
|
|
436
|
+
},
|
|
437
|
+
"peerDependencies": {
|
|
438
|
+
"tree-sitter": "^0.25.0"
|
|
439
|
+
},
|
|
440
|
+
"peerDependenciesMeta": {
|
|
441
|
+
"tree-sitter": {
|
|
442
|
+
"optional": true
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
"node_modules/tree-sitter-ruby": {
|
|
447
|
+
"version": "0.23.1",
|
|
448
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-ruby/-/tree-sitter-ruby-0.23.1.tgz",
|
|
449
|
+
"integrity": "sha512-d9/RXgWjR6HanN7wTYhS5bpBQLz1VkH048Vm3CodPGyJVnamXMGb8oEhDypVCBq4QnHui9sTXuJBBP3WtCw5RA==",
|
|
450
|
+
"hasInstallScript": true,
|
|
451
|
+
"license": "MIT",
|
|
452
|
+
"dependencies": {
|
|
453
|
+
"node-addon-api": "^8.2.2",
|
|
454
|
+
"node-gyp-build": "^4.8.2"
|
|
455
|
+
},
|
|
456
|
+
"peerDependencies": {
|
|
457
|
+
"tree-sitter": "^0.21.1"
|
|
458
|
+
},
|
|
459
|
+
"peerDependenciesMeta": {
|
|
460
|
+
"tree-sitter": {
|
|
461
|
+
"optional": true
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
"node_modules/tree-sitter-rust": {
|
|
466
|
+
"version": "0.24.0",
|
|
467
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-rust/-/tree-sitter-rust-0.24.0.tgz",
|
|
468
|
+
"integrity": "sha512-NWemUDf629Tfc90Y0Z55zuwPCAHkLxWnMf2RznYu4iBkkrQl2o/CHGB7Cr52TyN5F1DAx8FmUnDtCy9iUkXZEQ==",
|
|
469
|
+
"hasInstallScript": true,
|
|
470
|
+
"license": "MIT",
|
|
471
|
+
"dependencies": {
|
|
472
|
+
"node-addon-api": "^8.2.2",
|
|
473
|
+
"node-gyp-build": "^4.8.4"
|
|
474
|
+
},
|
|
475
|
+
"peerDependencies": {
|
|
476
|
+
"tree-sitter": "^0.22.1"
|
|
477
|
+
},
|
|
478
|
+
"peerDependenciesMeta": {
|
|
479
|
+
"tree-sitter": {
|
|
480
|
+
"optional": true
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
"node_modules/tree-sitter-scala": {
|
|
485
|
+
"version": "0.24.0",
|
|
486
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-scala/-/tree-sitter-scala-0.24.0.tgz",
|
|
487
|
+
"integrity": "sha512-vkMuAUrBZ1zZz2XcGDQk18Kz73JkpgaeXzbNVobPke0G35sd9jH32aUxG6OLRKM7et0TbsfqkWf4DeJoGk4K1g==",
|
|
488
|
+
"hasInstallScript": true,
|
|
489
|
+
"license": "MIT",
|
|
490
|
+
"dependencies": {
|
|
491
|
+
"node-addon-api": "^8.2.2",
|
|
492
|
+
"node-gyp-build": "^4.8.2"
|
|
493
|
+
},
|
|
494
|
+
"peerDependencies": {
|
|
495
|
+
"tree-sitter": "^0.21.1"
|
|
496
|
+
},
|
|
497
|
+
"peerDependenciesMeta": {
|
|
498
|
+
"tree-sitter": {
|
|
499
|
+
"optional": true
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"node_modules/tree-sitter-solidity": {
|
|
504
|
+
"version": "1.2.13",
|
|
505
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-solidity/-/tree-sitter-solidity-1.2.13.tgz",
|
|
506
|
+
"integrity": "sha512-nO2AbcAuz2Qba8JnPNe/3FVjRRvGY3ApxSJ8UPIzfynJm4PYCMbBoXxxbprvMgjCbGYR/ZrHGIPKzXV7zBa+lQ==",
|
|
507
|
+
"hasInstallScript": true,
|
|
508
|
+
"license": "MIT",
|
|
509
|
+
"dependencies": {
|
|
510
|
+
"node-addon-api": "^8.2.2",
|
|
511
|
+
"node-gyp-build": "^4.8.2",
|
|
512
|
+
"yarn": "^1.22.21"
|
|
513
|
+
},
|
|
514
|
+
"peerDependencies": {
|
|
515
|
+
"tree-sitter": "^0.25.0"
|
|
516
|
+
},
|
|
517
|
+
"peerDependenciesMeta": {
|
|
518
|
+
"tree_sitter": {
|
|
519
|
+
"optional": true
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"node_modules/tree-sitter-swift": {
|
|
524
|
+
"version": "0.7.1",
|
|
525
|
+
"resolved": "https://registry.npmjs.org/tree-sitter-swift/-/tree-sitter-swift-0.7.1.tgz",
|
|
526
|
+
"integrity": "sha512-pneKVTuGamaBsqqqfB9BvNQjktzh/0IVPR54jLB5Fq/JTDQwYHd0Wo6pVyZ5jAYpbztzq+rJ/rpL9ruxTmSoKw==",
|
|
527
|
+
"hasInstallScript": true,
|
|
528
|
+
"license": "MIT",
|
|
529
|
+
"dependencies": {
|
|
530
|
+
"node-addon-api": "^8.0.0",
|
|
531
|
+
"node-gyp-build": "^4.8.0",
|
|
532
|
+
"tree-sitter-cli": "^0.23",
|
|
533
|
+
"which": "2.0.2"
|
|
534
|
+
},
|
|
535
|
+
"peerDependencies": {
|
|
536
|
+
"tree-sitter": "^0.22.1"
|
|
537
|
+
},
|
|
538
|
+
"peerDependenciesMeta": {
|
|
539
|
+
"tree_sitter": {
|
|
540
|
+
"optional": true
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
},
|
|
544
|
+
"node_modules/which": {
|
|
545
|
+
"version": "2.0.2",
|
|
546
|
+
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
|
547
|
+
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
|
548
|
+
"license": "ISC",
|
|
549
|
+
"dependencies": {
|
|
550
|
+
"isexe": "^2.0.0"
|
|
551
|
+
},
|
|
552
|
+
"bin": {
|
|
553
|
+
"node-which": "bin/node-which"
|
|
554
|
+
},
|
|
555
|
+
"engines": {
|
|
556
|
+
"node": ">= 8"
|
|
557
|
+
}
|
|
558
|
+
},
|
|
559
|
+
"node_modules/yarn": {
|
|
560
|
+
"version": "1.22.22",
|
|
561
|
+
"resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz",
|
|
562
|
+
"integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==",
|
|
563
|
+
"hasInstallScript": true,
|
|
564
|
+
"license": "BSD-2-Clause",
|
|
565
|
+
"bin": {
|
|
566
|
+
"yarn": "bin/yarn.js",
|
|
567
|
+
"yarnpkg": "bin/yarn.js"
|
|
568
|
+
},
|
|
569
|
+
"engines": {
|
|
570
|
+
"node": ">=4.0.0"
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
};
|
|
@@ -10,16 +10,39 @@ export type GrammarModule = {
|
|
|
10
10
|
};
|
|
11
11
|
/** Runtime grammar handle passed to `parser.setLanguage`. */
|
|
12
12
|
export type GrammarLanguage = GrammarModule;
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Where `diffninja grammars install` puts the pinned grammars. Private to
|
|
15
|
+
* diffninja: the shared calldiff cache holds whatever an unpinned install once
|
|
16
|
+
* fetched, and is never read.
|
|
17
|
+
*/
|
|
14
18
|
export declare function grammarCacheDir(): string;
|
|
15
19
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
20
|
+
* Why grammars in this directory must not be loaded, or undefined when it is safe to.
|
|
21
|
+
* It must belong to the user running diffninja and be writable by no one else. A missing
|
|
22
|
+
* directory is no problem, since there is nothing in it to trust. Windows has no uid or mode bits,
|
|
23
|
+
* so nothing is checked there.
|
|
24
|
+
*/
|
|
25
|
+
export declare function cacheDirectoryProblem(dir: string): string | undefined;
|
|
26
|
+
/** The exact version diffninja pins for a grammar package, or undefined when it is not one of them. */
|
|
27
|
+
export declare function pinnedVersion(npmPackage: string): string | undefined;
|
|
28
|
+
/** Fingerprint of the lock this build of diffninja installs from. */
|
|
29
|
+
export declare function grammarLockDigest(): string;
|
|
30
|
+
/**
|
|
31
|
+
* The command that installs these grammars where this diffninja reads them. It names this
|
|
32
|
+
* version, because a cache is read only by a diffninja with the same lock, and `@latest` or
|
|
33
|
+
* whatever `diffninja` is on PATH may have another. Kotlin and Perl need `--build`.
|
|
21
34
|
*/
|
|
22
|
-
export declare function
|
|
35
|
+
export declare function grammarsInstallCommand(npmPackages: readonly string[]): string;
|
|
36
|
+
/**
|
|
37
|
+
* A grammar this review needed is not installed. diffninja never downloads code
|
|
38
|
+
* while it reviews; the person installs the pinned set once, on purpose.
|
|
39
|
+
*/
|
|
40
|
+
export declare class GrammarNotInstalledError extends Error {
|
|
41
|
+
readonly npmPackage: string;
|
|
42
|
+
constructor(npmPackage: string);
|
|
43
|
+
}
|
|
44
|
+
/** The grammars that were needed and absent since the last call, sorted; clears the record. */
|
|
45
|
+
export declare function takeMissingGrammars(): string[];
|
|
23
46
|
/**
|
|
24
47
|
* Absolute path to one of npm's JS entry points (`npm-cli.js`, `npx-cli.js`),
|
|
25
48
|
* or undefined when npm is not installed beside Node.
|
|
@@ -41,9 +64,46 @@ export declare function npmSpawnSpec(args: string[], platform?: NodeJS.Platform)
|
|
|
41
64
|
* Exported for tests and diagnostics.
|
|
42
65
|
*/
|
|
43
66
|
export declare function mislabeledPrebuild(packageRoot: string): string | null;
|
|
67
|
+
/** Runs npm in `cwd`; replaced in tests. Throws with npm's own message when it fails. */
|
|
68
|
+
export type NpmRunner = (cwd: string, args: string[]) => void;
|
|
69
|
+
export interface InstalledGrammars {
|
|
70
|
+
cacheDir: string;
|
|
71
|
+
packages: Array<{
|
|
72
|
+
name: string;
|
|
73
|
+
version: string;
|
|
74
|
+
}>;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Install exactly the pinned grammars, and nothing else, into the cache. This is
|
|
78
|
+
* the only place diffninja downloads grammar code, and only when a person runs
|
|
79
|
+
* `diffninja grammars install`. `npm ci` from the shipped lock refuses any
|
|
80
|
+
* tarball whose sha512 differs, `--ignore-scripts` keeps every install script
|
|
81
|
+
* (the packages' own and their dependencies') from running, and the grammars
|
|
82
|
+
* load from their bundled prebuilt binaries. Reviews never call this.
|
|
83
|
+
*/
|
|
84
|
+
export declare function installPinnedGrammars(options?: {
|
|
85
|
+
cacheDir?: string;
|
|
86
|
+
runNpm?: NpmRunner;
|
|
87
|
+
build?: boolean;
|
|
88
|
+
}): InstalledGrammars;
|
|
89
|
+
export interface GrammarStatus {
|
|
90
|
+
cacheDir: string;
|
|
91
|
+
/** The cache was installed by this diffninja's lock, so its grammars are used. */
|
|
92
|
+
trusted: boolean;
|
|
93
|
+
packages: Array<{
|
|
94
|
+
name: string;
|
|
95
|
+
version: string;
|
|
96
|
+
installed: boolean;
|
|
97
|
+
needsBuild: boolean;
|
|
98
|
+
}>;
|
|
99
|
+
}
|
|
100
|
+
export declare function grammarStatus(cacheDir?: string): GrammarStatus;
|
|
44
101
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
102
|
+
* The grammar package's module. Bundled grammars come from diffninja's own
|
|
103
|
+
* dependencies; every other one from the cache `diffninja grammars install`
|
|
104
|
+
* filled, and only when that cache holds the exact pinned version. Nothing is
|
|
105
|
+
* ever downloaded here: a missing grammar throws GrammarNotInstalledError, which
|
|
106
|
+
* call-flow analysis reports once instead of skipping silently.
|
|
47
107
|
*/
|
|
48
108
|
export declare function loadGrammarPackage(npmPackage: string): GrammarModule;
|
|
49
109
|
/** Resolve the value to pass to parser.setLanguage. */
|