@rowanmanning/node-versions 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -0
- package/data/versions.json +751 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +50 -0
- package/lib/fetch-node-versions.d.ts +2 -0
- package/lib/fetch-node-versions.d.ts.map +1 -0
- package/lib/fetch-node-versions.js +32 -0
- package/lib/load-package.d.ts +2 -0
- package/lib/load-package.d.ts.map +1 -0
- package/lib/load-package.js +29 -0
- package/package.json +27 -0
- package/scripts/fetch-node-versions.d.ts +2 -0
- package/scripts/fetch-node-versions.d.ts.map +1 -0
- package/scripts/fetch-node-versions.js +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
# @rowanmanning/node-versions
|
|
3
|
+
|
|
4
|
+
Get the Node.js versions that a repo says it supports.
|
|
5
|
+
|
|
6
|
+
* [Requirements](#requirements)
|
|
7
|
+
* [Usage](#usage)
|
|
8
|
+
* [Contributing](#contributing)
|
|
9
|
+
* [License](#license)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
This library requires the following to run:
|
|
15
|
+
|
|
16
|
+
* [Node.js](https://nodejs.org/) 18+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
Install with [npm](https://www.npmjs.com/):
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
npm install @rowanmanning/node-versions
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Load one of the methods into your code with `import` or `require`:
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
import { nodeVersions } from '@rowanmanning/node-versions';
|
|
31
|
+
// or
|
|
32
|
+
const { nodeVersions } = require('@rowanmanning/node-versions');
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The following exports are available.
|
|
36
|
+
|
|
37
|
+
### `nodeVersions`
|
|
38
|
+
|
|
39
|
+
An array of strings (`string[]`) that contains every released versions of Node.js, retrieved from <https://nodejs.org/dist/index.json>. The versions are loaded on install rather than at runtime and there's a cached copy in the package that we keep up to date.
|
|
40
|
+
|
|
41
|
+
### `getPackageNodeVersions()`
|
|
42
|
+
|
|
43
|
+
A function to list the Node.js versions that a `package.json` file claims to support. This function has the following signature:
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
(path: string, options?: object) => Promise<string[]>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The `path` argument is required and must be an accessible folder that contains a `package.json` file _or_ the path to a `package.json` file itself.
|
|
50
|
+
|
|
51
|
+
The `options` argument is optional and can be used to change the way the method works. The following options are available:
|
|
52
|
+
|
|
53
|
+
* `majorsOnly`: A `boolean` option defaulting to `false`. If this is set to `true` then the returned versions will have any minor/patch versions removed. E.g. `20.0.0` becomes `20`
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
const versions = await getPackageNodeVersions('/path/to/my/repo');
|
|
57
|
+
// ["v22.5.1", "v20.16.0", "v18.20.4", ...]
|
|
58
|
+
|
|
59
|
+
const versions = await getPackageNodeVersions('/path/to/my/repo', { majorsOnly: true });
|
|
60
|
+
// ["22", "20", "18", ...]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### `getEnginesNodeVersions()`
|
|
64
|
+
|
|
65
|
+
A function to list the supported Node.js versions based on a version range string. This might be useful if, for example, you already have the engines your package supports as a string. This function has the following signature:
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
(engines: string, options?: object) => string[]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The `engines` argument is required and must be a semver range.
|
|
72
|
+
|
|
73
|
+
The `options` argument is optional and can be used to change the way the method works. The following options are available:
|
|
74
|
+
|
|
75
|
+
* `majorsOnly`: A `boolean` option defaulting to `false`. If this is set to `true` then the returned versions will have any minor/patch versions removed. E.g. `20.0.0` becomes `20`
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
const versions = getEnginesNodeVersions('18.x || 20.x || 22.x');
|
|
79
|
+
// ["v22.5.1", "v20.16.0", "v18.20.4", ...]
|
|
80
|
+
|
|
81
|
+
const versions = getEnginesNodeVersions('18.x || 20.x || 22.x', { majorsOnly: true });
|
|
82
|
+
// ["22", "20", "18", ...]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
## Contributing
|
|
87
|
+
|
|
88
|
+
[See the central README for a contribution guide and code of conduct](https://github.com/rowanmanning/repo-tools#contributing).
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## License
|
|
92
|
+
|
|
93
|
+
Licensed under the [MIT](https://github.com/rowanmanning/repo-tools/blob/main/LICENSE) license.<br/>
|
|
94
|
+
Copyright © 2024, Rowan Manning
|
|
@@ -0,0 +1,751 @@
|
|
|
1
|
+
[
|
|
2
|
+
"v22.5.1",
|
|
3
|
+
"v22.5.0",
|
|
4
|
+
"v22.4.1",
|
|
5
|
+
"v22.4.0",
|
|
6
|
+
"v22.3.0",
|
|
7
|
+
"v22.2.0",
|
|
8
|
+
"v22.1.0",
|
|
9
|
+
"v22.0.0",
|
|
10
|
+
"v21.7.3",
|
|
11
|
+
"v21.7.2",
|
|
12
|
+
"v21.7.1",
|
|
13
|
+
"v21.7.0",
|
|
14
|
+
"v21.6.2",
|
|
15
|
+
"v21.6.1",
|
|
16
|
+
"v21.6.0",
|
|
17
|
+
"v21.5.0",
|
|
18
|
+
"v21.4.0",
|
|
19
|
+
"v21.3.0",
|
|
20
|
+
"v21.2.0",
|
|
21
|
+
"v21.1.0",
|
|
22
|
+
"v21.0.0",
|
|
23
|
+
"v20.16.0",
|
|
24
|
+
"v20.15.1",
|
|
25
|
+
"v20.15.0",
|
|
26
|
+
"v20.14.0",
|
|
27
|
+
"v20.13.1",
|
|
28
|
+
"v20.13.0",
|
|
29
|
+
"v20.12.2",
|
|
30
|
+
"v20.12.1",
|
|
31
|
+
"v20.12.0",
|
|
32
|
+
"v20.11.1",
|
|
33
|
+
"v20.11.0",
|
|
34
|
+
"v20.10.0",
|
|
35
|
+
"v20.9.0",
|
|
36
|
+
"v20.8.1",
|
|
37
|
+
"v20.8.0",
|
|
38
|
+
"v20.7.0",
|
|
39
|
+
"v20.6.1",
|
|
40
|
+
"v20.6.0",
|
|
41
|
+
"v20.5.1",
|
|
42
|
+
"v20.5.0",
|
|
43
|
+
"v20.4.0",
|
|
44
|
+
"v20.3.1",
|
|
45
|
+
"v20.3.0",
|
|
46
|
+
"v20.2.0",
|
|
47
|
+
"v20.1.0",
|
|
48
|
+
"v20.0.0",
|
|
49
|
+
"v19.9.0",
|
|
50
|
+
"v19.8.1",
|
|
51
|
+
"v19.8.0",
|
|
52
|
+
"v19.7.0",
|
|
53
|
+
"v19.6.1",
|
|
54
|
+
"v19.6.0",
|
|
55
|
+
"v19.5.0",
|
|
56
|
+
"v19.4.0",
|
|
57
|
+
"v19.3.0",
|
|
58
|
+
"v19.2.0",
|
|
59
|
+
"v19.1.0",
|
|
60
|
+
"v19.0.1",
|
|
61
|
+
"v19.0.0",
|
|
62
|
+
"v18.20.4",
|
|
63
|
+
"v18.20.3",
|
|
64
|
+
"v18.20.2",
|
|
65
|
+
"v18.20.1",
|
|
66
|
+
"v18.20.0",
|
|
67
|
+
"v18.19.1",
|
|
68
|
+
"v18.19.0",
|
|
69
|
+
"v18.18.2",
|
|
70
|
+
"v18.18.1",
|
|
71
|
+
"v18.18.0",
|
|
72
|
+
"v18.17.1",
|
|
73
|
+
"v18.17.0",
|
|
74
|
+
"v18.16.1",
|
|
75
|
+
"v18.16.0",
|
|
76
|
+
"v18.15.0",
|
|
77
|
+
"v18.14.2",
|
|
78
|
+
"v18.14.1",
|
|
79
|
+
"v18.14.0",
|
|
80
|
+
"v18.13.0",
|
|
81
|
+
"v18.12.1",
|
|
82
|
+
"v18.12.0",
|
|
83
|
+
"v18.11.0",
|
|
84
|
+
"v18.10.0",
|
|
85
|
+
"v18.9.1",
|
|
86
|
+
"v18.9.0",
|
|
87
|
+
"v18.8.0",
|
|
88
|
+
"v18.7.0",
|
|
89
|
+
"v18.6.0",
|
|
90
|
+
"v18.5.0",
|
|
91
|
+
"v18.4.0",
|
|
92
|
+
"v18.3.0",
|
|
93
|
+
"v18.2.0",
|
|
94
|
+
"v18.1.0",
|
|
95
|
+
"v18.0.0",
|
|
96
|
+
"v17.9.1",
|
|
97
|
+
"v17.9.0",
|
|
98
|
+
"v17.8.0",
|
|
99
|
+
"v17.7.2",
|
|
100
|
+
"v17.7.1",
|
|
101
|
+
"v17.7.0",
|
|
102
|
+
"v17.6.0",
|
|
103
|
+
"v17.5.0",
|
|
104
|
+
"v17.4.0",
|
|
105
|
+
"v17.3.1",
|
|
106
|
+
"v17.3.0",
|
|
107
|
+
"v17.2.0",
|
|
108
|
+
"v17.1.0",
|
|
109
|
+
"v17.0.1",
|
|
110
|
+
"v17.0.0",
|
|
111
|
+
"v16.20.2",
|
|
112
|
+
"v16.20.1",
|
|
113
|
+
"v16.20.0",
|
|
114
|
+
"v16.19.1",
|
|
115
|
+
"v16.19.0",
|
|
116
|
+
"v16.18.1",
|
|
117
|
+
"v16.18.0",
|
|
118
|
+
"v16.17.1",
|
|
119
|
+
"v16.17.0",
|
|
120
|
+
"v16.16.0",
|
|
121
|
+
"v16.15.1",
|
|
122
|
+
"v16.15.0",
|
|
123
|
+
"v16.14.2",
|
|
124
|
+
"v16.14.1",
|
|
125
|
+
"v16.14.0",
|
|
126
|
+
"v16.13.2",
|
|
127
|
+
"v16.13.1",
|
|
128
|
+
"v16.13.0",
|
|
129
|
+
"v16.12.0",
|
|
130
|
+
"v16.11.1",
|
|
131
|
+
"v16.11.0",
|
|
132
|
+
"v16.10.0",
|
|
133
|
+
"v16.9.1",
|
|
134
|
+
"v16.9.0",
|
|
135
|
+
"v16.8.0",
|
|
136
|
+
"v16.7.0",
|
|
137
|
+
"v16.6.2",
|
|
138
|
+
"v16.6.1",
|
|
139
|
+
"v16.6.0",
|
|
140
|
+
"v16.5.0",
|
|
141
|
+
"v16.4.2",
|
|
142
|
+
"v16.4.1",
|
|
143
|
+
"v16.4.0",
|
|
144
|
+
"v16.3.0",
|
|
145
|
+
"v16.2.0",
|
|
146
|
+
"v16.1.0",
|
|
147
|
+
"v16.0.0",
|
|
148
|
+
"v15.14.0",
|
|
149
|
+
"v15.13.0",
|
|
150
|
+
"v15.12.0",
|
|
151
|
+
"v15.11.0",
|
|
152
|
+
"v15.10.0",
|
|
153
|
+
"v15.9.0",
|
|
154
|
+
"v15.8.0",
|
|
155
|
+
"v15.7.0",
|
|
156
|
+
"v15.6.0",
|
|
157
|
+
"v15.5.1",
|
|
158
|
+
"v15.5.0",
|
|
159
|
+
"v15.4.0",
|
|
160
|
+
"v15.3.0",
|
|
161
|
+
"v15.2.1",
|
|
162
|
+
"v15.2.0",
|
|
163
|
+
"v15.1.0",
|
|
164
|
+
"v15.0.1",
|
|
165
|
+
"v15.0.0",
|
|
166
|
+
"v14.21.3",
|
|
167
|
+
"v14.21.2",
|
|
168
|
+
"v14.21.1",
|
|
169
|
+
"v14.21.0",
|
|
170
|
+
"v14.20.1",
|
|
171
|
+
"v14.20.0",
|
|
172
|
+
"v14.19.3",
|
|
173
|
+
"v14.19.2",
|
|
174
|
+
"v14.19.1",
|
|
175
|
+
"v14.19.0",
|
|
176
|
+
"v14.18.3",
|
|
177
|
+
"v14.18.2",
|
|
178
|
+
"v14.18.1",
|
|
179
|
+
"v14.18.0",
|
|
180
|
+
"v14.17.6",
|
|
181
|
+
"v14.17.5",
|
|
182
|
+
"v14.17.4",
|
|
183
|
+
"v14.17.3",
|
|
184
|
+
"v14.17.2",
|
|
185
|
+
"v14.17.1",
|
|
186
|
+
"v14.17.0",
|
|
187
|
+
"v14.16.1",
|
|
188
|
+
"v14.16.0",
|
|
189
|
+
"v14.15.5",
|
|
190
|
+
"v14.15.4",
|
|
191
|
+
"v14.15.3",
|
|
192
|
+
"v14.15.2",
|
|
193
|
+
"v14.15.1",
|
|
194
|
+
"v14.15.0",
|
|
195
|
+
"v14.14.0",
|
|
196
|
+
"v14.13.1",
|
|
197
|
+
"v14.13.0",
|
|
198
|
+
"v14.12.0",
|
|
199
|
+
"v14.11.0",
|
|
200
|
+
"v14.10.1",
|
|
201
|
+
"v14.10.0",
|
|
202
|
+
"v14.9.0",
|
|
203
|
+
"v14.8.0",
|
|
204
|
+
"v14.7.0",
|
|
205
|
+
"v14.6.0",
|
|
206
|
+
"v14.5.0",
|
|
207
|
+
"v14.4.0",
|
|
208
|
+
"v14.3.0",
|
|
209
|
+
"v14.2.0",
|
|
210
|
+
"v14.1.0",
|
|
211
|
+
"v14.0.0",
|
|
212
|
+
"v13.14.0",
|
|
213
|
+
"v13.13.0",
|
|
214
|
+
"v13.12.0",
|
|
215
|
+
"v13.11.0",
|
|
216
|
+
"v13.10.1",
|
|
217
|
+
"v13.10.0",
|
|
218
|
+
"v13.9.0",
|
|
219
|
+
"v13.8.0",
|
|
220
|
+
"v13.7.0",
|
|
221
|
+
"v13.6.0",
|
|
222
|
+
"v13.5.0",
|
|
223
|
+
"v13.4.0",
|
|
224
|
+
"v13.3.0",
|
|
225
|
+
"v13.2.0",
|
|
226
|
+
"v13.1.0",
|
|
227
|
+
"v13.0.1",
|
|
228
|
+
"v13.0.0",
|
|
229
|
+
"v12.22.12",
|
|
230
|
+
"v12.22.11",
|
|
231
|
+
"v12.22.10",
|
|
232
|
+
"v12.22.9",
|
|
233
|
+
"v12.22.8",
|
|
234
|
+
"v12.22.7",
|
|
235
|
+
"v12.22.6",
|
|
236
|
+
"v12.22.5",
|
|
237
|
+
"v12.22.4",
|
|
238
|
+
"v12.22.3",
|
|
239
|
+
"v12.22.2",
|
|
240
|
+
"v12.22.1",
|
|
241
|
+
"v12.22.0",
|
|
242
|
+
"v12.21.0",
|
|
243
|
+
"v12.20.2",
|
|
244
|
+
"v12.20.1",
|
|
245
|
+
"v12.20.0",
|
|
246
|
+
"v12.19.1",
|
|
247
|
+
"v12.19.0",
|
|
248
|
+
"v12.18.4",
|
|
249
|
+
"v12.18.3",
|
|
250
|
+
"v12.18.2",
|
|
251
|
+
"v12.18.1",
|
|
252
|
+
"v12.18.0",
|
|
253
|
+
"v12.17.0",
|
|
254
|
+
"v12.16.3",
|
|
255
|
+
"v12.16.2",
|
|
256
|
+
"v12.16.1",
|
|
257
|
+
"v12.16.0",
|
|
258
|
+
"v12.15.0",
|
|
259
|
+
"v12.14.1",
|
|
260
|
+
"v12.14.0",
|
|
261
|
+
"v12.13.1",
|
|
262
|
+
"v12.13.0",
|
|
263
|
+
"v12.12.0",
|
|
264
|
+
"v12.11.1",
|
|
265
|
+
"v12.11.0",
|
|
266
|
+
"v12.10.0",
|
|
267
|
+
"v12.9.1",
|
|
268
|
+
"v12.9.0",
|
|
269
|
+
"v12.8.1",
|
|
270
|
+
"v12.8.0",
|
|
271
|
+
"v12.7.0",
|
|
272
|
+
"v12.6.0",
|
|
273
|
+
"v12.5.0",
|
|
274
|
+
"v12.4.0",
|
|
275
|
+
"v12.3.1",
|
|
276
|
+
"v12.3.0",
|
|
277
|
+
"v12.2.0",
|
|
278
|
+
"v12.1.0",
|
|
279
|
+
"v12.0.0",
|
|
280
|
+
"v11.15.0",
|
|
281
|
+
"v11.14.0",
|
|
282
|
+
"v11.13.0",
|
|
283
|
+
"v11.12.0",
|
|
284
|
+
"v11.11.0",
|
|
285
|
+
"v11.10.1",
|
|
286
|
+
"v11.10.0",
|
|
287
|
+
"v11.9.0",
|
|
288
|
+
"v11.8.0",
|
|
289
|
+
"v11.7.0",
|
|
290
|
+
"v11.6.0",
|
|
291
|
+
"v11.5.0",
|
|
292
|
+
"v11.4.0",
|
|
293
|
+
"v11.3.0",
|
|
294
|
+
"v11.2.0",
|
|
295
|
+
"v11.1.0",
|
|
296
|
+
"v11.0.0",
|
|
297
|
+
"v10.24.1",
|
|
298
|
+
"v10.24.0",
|
|
299
|
+
"v10.23.3",
|
|
300
|
+
"v10.23.2",
|
|
301
|
+
"v10.23.1",
|
|
302
|
+
"v10.23.0",
|
|
303
|
+
"v10.22.1",
|
|
304
|
+
"v10.22.0",
|
|
305
|
+
"v10.21.0",
|
|
306
|
+
"v10.20.1",
|
|
307
|
+
"v10.20.0",
|
|
308
|
+
"v10.19.0",
|
|
309
|
+
"v10.18.1",
|
|
310
|
+
"v10.18.0",
|
|
311
|
+
"v10.17.0",
|
|
312
|
+
"v10.16.3",
|
|
313
|
+
"v10.16.2",
|
|
314
|
+
"v10.16.1",
|
|
315
|
+
"v10.16.0",
|
|
316
|
+
"v10.15.3",
|
|
317
|
+
"v10.15.2",
|
|
318
|
+
"v10.15.1",
|
|
319
|
+
"v10.15.0",
|
|
320
|
+
"v10.14.2",
|
|
321
|
+
"v10.14.1",
|
|
322
|
+
"v10.14.0",
|
|
323
|
+
"v10.13.0",
|
|
324
|
+
"v10.12.0",
|
|
325
|
+
"v10.11.0",
|
|
326
|
+
"v10.10.0",
|
|
327
|
+
"v10.9.0",
|
|
328
|
+
"v10.8.0",
|
|
329
|
+
"v10.7.0",
|
|
330
|
+
"v10.6.0",
|
|
331
|
+
"v10.5.0",
|
|
332
|
+
"v10.4.1",
|
|
333
|
+
"v10.4.0",
|
|
334
|
+
"v10.3.0",
|
|
335
|
+
"v10.2.1",
|
|
336
|
+
"v10.2.0",
|
|
337
|
+
"v10.1.0",
|
|
338
|
+
"v10.0.0",
|
|
339
|
+
"v9.11.2",
|
|
340
|
+
"v9.11.1",
|
|
341
|
+
"v9.11.0",
|
|
342
|
+
"v9.10.1",
|
|
343
|
+
"v9.10.0",
|
|
344
|
+
"v9.9.0",
|
|
345
|
+
"v9.8.0",
|
|
346
|
+
"v9.7.1",
|
|
347
|
+
"v9.7.0",
|
|
348
|
+
"v9.6.1",
|
|
349
|
+
"v9.6.0",
|
|
350
|
+
"v9.5.0",
|
|
351
|
+
"v9.4.0",
|
|
352
|
+
"v9.3.0",
|
|
353
|
+
"v9.2.1",
|
|
354
|
+
"v9.2.0",
|
|
355
|
+
"v9.1.0",
|
|
356
|
+
"v9.0.0",
|
|
357
|
+
"v8.17.0",
|
|
358
|
+
"v8.16.2",
|
|
359
|
+
"v8.16.1",
|
|
360
|
+
"v8.16.0",
|
|
361
|
+
"v8.15.1",
|
|
362
|
+
"v8.15.0",
|
|
363
|
+
"v8.14.1",
|
|
364
|
+
"v8.14.0",
|
|
365
|
+
"v8.13.0",
|
|
366
|
+
"v8.12.0",
|
|
367
|
+
"v8.11.4",
|
|
368
|
+
"v8.11.3",
|
|
369
|
+
"v8.11.2",
|
|
370
|
+
"v8.11.1",
|
|
371
|
+
"v8.11.0",
|
|
372
|
+
"v8.10.0",
|
|
373
|
+
"v8.9.4",
|
|
374
|
+
"v8.9.3",
|
|
375
|
+
"v8.9.2",
|
|
376
|
+
"v8.9.1",
|
|
377
|
+
"v8.9.0",
|
|
378
|
+
"v8.8.1",
|
|
379
|
+
"v8.8.0",
|
|
380
|
+
"v8.7.0",
|
|
381
|
+
"v8.6.0",
|
|
382
|
+
"v8.5.0",
|
|
383
|
+
"v8.4.0",
|
|
384
|
+
"v8.3.0",
|
|
385
|
+
"v8.2.1",
|
|
386
|
+
"v8.2.0",
|
|
387
|
+
"v8.1.4",
|
|
388
|
+
"v8.1.3",
|
|
389
|
+
"v8.1.2",
|
|
390
|
+
"v8.1.1",
|
|
391
|
+
"v8.1.0",
|
|
392
|
+
"v8.0.0",
|
|
393
|
+
"v7.10.1",
|
|
394
|
+
"v7.10.0",
|
|
395
|
+
"v7.9.0",
|
|
396
|
+
"v7.8.0",
|
|
397
|
+
"v7.7.4",
|
|
398
|
+
"v7.7.3",
|
|
399
|
+
"v7.7.2",
|
|
400
|
+
"v7.7.1",
|
|
401
|
+
"v7.7.0",
|
|
402
|
+
"v7.6.0",
|
|
403
|
+
"v7.5.0",
|
|
404
|
+
"v7.4.0",
|
|
405
|
+
"v7.3.0",
|
|
406
|
+
"v7.2.1",
|
|
407
|
+
"v7.2.0",
|
|
408
|
+
"v7.1.0",
|
|
409
|
+
"v7.0.0",
|
|
410
|
+
"v6.17.1",
|
|
411
|
+
"v6.17.0",
|
|
412
|
+
"v6.16.0",
|
|
413
|
+
"v6.15.1",
|
|
414
|
+
"v6.15.0",
|
|
415
|
+
"v6.14.4",
|
|
416
|
+
"v6.14.3",
|
|
417
|
+
"v6.14.2",
|
|
418
|
+
"v6.14.1",
|
|
419
|
+
"v6.14.0",
|
|
420
|
+
"v6.13.1",
|
|
421
|
+
"v6.13.0",
|
|
422
|
+
"v6.12.3",
|
|
423
|
+
"v6.12.2",
|
|
424
|
+
"v6.12.1",
|
|
425
|
+
"v6.12.0",
|
|
426
|
+
"v6.11.5",
|
|
427
|
+
"v6.11.4",
|
|
428
|
+
"v6.11.3",
|
|
429
|
+
"v6.11.2",
|
|
430
|
+
"v6.11.1",
|
|
431
|
+
"v6.11.0",
|
|
432
|
+
"v6.10.3",
|
|
433
|
+
"v6.10.2",
|
|
434
|
+
"v6.10.1",
|
|
435
|
+
"v6.10.0",
|
|
436
|
+
"v6.9.5",
|
|
437
|
+
"v6.9.4",
|
|
438
|
+
"v6.9.3",
|
|
439
|
+
"v6.9.2",
|
|
440
|
+
"v6.9.1",
|
|
441
|
+
"v6.9.0",
|
|
442
|
+
"v6.8.1",
|
|
443
|
+
"v6.8.0",
|
|
444
|
+
"v6.7.0",
|
|
445
|
+
"v6.6.0",
|
|
446
|
+
"v6.5.0",
|
|
447
|
+
"v6.4.0",
|
|
448
|
+
"v6.3.1",
|
|
449
|
+
"v6.3.0",
|
|
450
|
+
"v6.2.2",
|
|
451
|
+
"v6.2.1",
|
|
452
|
+
"v6.2.0",
|
|
453
|
+
"v6.1.0",
|
|
454
|
+
"v6.0.0",
|
|
455
|
+
"v5.12.0",
|
|
456
|
+
"v5.11.1",
|
|
457
|
+
"v5.11.0",
|
|
458
|
+
"v5.10.1",
|
|
459
|
+
"v5.10.0",
|
|
460
|
+
"v5.9.1",
|
|
461
|
+
"v5.9.0",
|
|
462
|
+
"v5.8.0",
|
|
463
|
+
"v5.7.1",
|
|
464
|
+
"v5.7.0",
|
|
465
|
+
"v5.6.0",
|
|
466
|
+
"v5.5.0",
|
|
467
|
+
"v5.4.1",
|
|
468
|
+
"v5.4.0",
|
|
469
|
+
"v5.3.0",
|
|
470
|
+
"v5.2.0",
|
|
471
|
+
"v5.1.1",
|
|
472
|
+
"v5.1.0",
|
|
473
|
+
"v5.0.0",
|
|
474
|
+
"v4.9.1",
|
|
475
|
+
"v4.9.0",
|
|
476
|
+
"v4.8.7",
|
|
477
|
+
"v4.8.6",
|
|
478
|
+
"v4.8.5",
|
|
479
|
+
"v4.8.4",
|
|
480
|
+
"v4.8.3",
|
|
481
|
+
"v4.8.2",
|
|
482
|
+
"v4.8.1",
|
|
483
|
+
"v4.8.0",
|
|
484
|
+
"v4.7.3",
|
|
485
|
+
"v4.7.2",
|
|
486
|
+
"v4.7.1",
|
|
487
|
+
"v4.7.0",
|
|
488
|
+
"v4.6.2",
|
|
489
|
+
"v4.6.1",
|
|
490
|
+
"v4.6.0",
|
|
491
|
+
"v4.5.0",
|
|
492
|
+
"v4.4.7",
|
|
493
|
+
"v4.4.6",
|
|
494
|
+
"v4.4.5",
|
|
495
|
+
"v4.4.4",
|
|
496
|
+
"v4.4.3",
|
|
497
|
+
"v4.4.2",
|
|
498
|
+
"v4.4.1",
|
|
499
|
+
"v4.4.0",
|
|
500
|
+
"v4.3.2",
|
|
501
|
+
"v4.3.1",
|
|
502
|
+
"v4.3.0",
|
|
503
|
+
"v4.2.6",
|
|
504
|
+
"v4.2.5",
|
|
505
|
+
"v4.2.4",
|
|
506
|
+
"v4.2.3",
|
|
507
|
+
"v4.2.2",
|
|
508
|
+
"v4.2.1",
|
|
509
|
+
"v4.2.0",
|
|
510
|
+
"v4.1.2",
|
|
511
|
+
"v4.1.1",
|
|
512
|
+
"v4.1.0",
|
|
513
|
+
"v4.0.0",
|
|
514
|
+
"v0.12.18",
|
|
515
|
+
"v0.12.17",
|
|
516
|
+
"v0.12.16",
|
|
517
|
+
"v0.12.15",
|
|
518
|
+
"v0.12.14",
|
|
519
|
+
"v0.12.13",
|
|
520
|
+
"v0.12.12",
|
|
521
|
+
"v0.12.11",
|
|
522
|
+
"v0.12.10",
|
|
523
|
+
"v0.12.9",
|
|
524
|
+
"v0.12.8",
|
|
525
|
+
"v0.12.7",
|
|
526
|
+
"v0.12.6",
|
|
527
|
+
"v0.12.5",
|
|
528
|
+
"v0.12.4",
|
|
529
|
+
"v0.12.3",
|
|
530
|
+
"v0.12.2",
|
|
531
|
+
"v0.12.1",
|
|
532
|
+
"v0.12.0",
|
|
533
|
+
"v0.11.16",
|
|
534
|
+
"v0.11.15",
|
|
535
|
+
"v0.11.14",
|
|
536
|
+
"v0.11.13",
|
|
537
|
+
"v0.11.12",
|
|
538
|
+
"v0.11.11",
|
|
539
|
+
"v0.11.10",
|
|
540
|
+
"v0.11.9",
|
|
541
|
+
"v0.11.8",
|
|
542
|
+
"v0.11.7",
|
|
543
|
+
"v0.11.6",
|
|
544
|
+
"v0.11.5",
|
|
545
|
+
"v0.11.4",
|
|
546
|
+
"v0.11.3",
|
|
547
|
+
"v0.11.2",
|
|
548
|
+
"v0.11.1",
|
|
549
|
+
"v0.11.0",
|
|
550
|
+
"v0.10.48",
|
|
551
|
+
"v0.10.47",
|
|
552
|
+
"v0.10.46",
|
|
553
|
+
"v0.10.45",
|
|
554
|
+
"v0.10.44",
|
|
555
|
+
"v0.10.43",
|
|
556
|
+
"v0.10.42",
|
|
557
|
+
"v0.10.41",
|
|
558
|
+
"v0.10.40",
|
|
559
|
+
"v0.10.39",
|
|
560
|
+
"v0.10.38",
|
|
561
|
+
"v0.10.37",
|
|
562
|
+
"v0.10.36",
|
|
563
|
+
"v0.10.35",
|
|
564
|
+
"v0.10.34",
|
|
565
|
+
"v0.10.33",
|
|
566
|
+
"v0.10.32",
|
|
567
|
+
"v0.10.31",
|
|
568
|
+
"v0.10.30",
|
|
569
|
+
"v0.10.29",
|
|
570
|
+
"v0.10.28",
|
|
571
|
+
"v0.10.27",
|
|
572
|
+
"v0.10.26",
|
|
573
|
+
"v0.10.25",
|
|
574
|
+
"v0.10.24",
|
|
575
|
+
"v0.10.23",
|
|
576
|
+
"v0.10.22",
|
|
577
|
+
"v0.10.21",
|
|
578
|
+
"v0.10.20",
|
|
579
|
+
"v0.10.19",
|
|
580
|
+
"v0.10.18",
|
|
581
|
+
"v0.10.17",
|
|
582
|
+
"v0.10.16",
|
|
583
|
+
"v0.10.15",
|
|
584
|
+
"v0.10.14",
|
|
585
|
+
"v0.10.13",
|
|
586
|
+
"v0.10.12",
|
|
587
|
+
"v0.10.11",
|
|
588
|
+
"v0.10.10",
|
|
589
|
+
"v0.10.9",
|
|
590
|
+
"v0.10.8",
|
|
591
|
+
"v0.10.7",
|
|
592
|
+
"v0.10.6",
|
|
593
|
+
"v0.10.5",
|
|
594
|
+
"v0.10.4",
|
|
595
|
+
"v0.10.3",
|
|
596
|
+
"v0.10.2",
|
|
597
|
+
"v0.10.1",
|
|
598
|
+
"v0.10.0",
|
|
599
|
+
"v0.9.12",
|
|
600
|
+
"v0.9.11",
|
|
601
|
+
"v0.9.10",
|
|
602
|
+
"v0.9.9",
|
|
603
|
+
"v0.9.8",
|
|
604
|
+
"v0.9.7",
|
|
605
|
+
"v0.9.6",
|
|
606
|
+
"v0.9.5",
|
|
607
|
+
"v0.9.4",
|
|
608
|
+
"v0.9.3",
|
|
609
|
+
"v0.9.2",
|
|
610
|
+
"v0.9.1",
|
|
611
|
+
"v0.9.0",
|
|
612
|
+
"v0.8.28",
|
|
613
|
+
"v0.8.27",
|
|
614
|
+
"v0.8.26",
|
|
615
|
+
"v0.8.25",
|
|
616
|
+
"v0.8.24",
|
|
617
|
+
"v0.8.23",
|
|
618
|
+
"v0.8.22",
|
|
619
|
+
"v0.8.21",
|
|
620
|
+
"v0.8.20",
|
|
621
|
+
"v0.8.19",
|
|
622
|
+
"v0.8.18",
|
|
623
|
+
"v0.8.17",
|
|
624
|
+
"v0.8.16",
|
|
625
|
+
"v0.8.15",
|
|
626
|
+
"v0.8.14",
|
|
627
|
+
"v0.8.13",
|
|
628
|
+
"v0.8.12",
|
|
629
|
+
"v0.8.11",
|
|
630
|
+
"v0.8.10",
|
|
631
|
+
"v0.8.9",
|
|
632
|
+
"v0.8.8",
|
|
633
|
+
"v0.8.7",
|
|
634
|
+
"v0.8.6",
|
|
635
|
+
"v0.8.5",
|
|
636
|
+
"v0.8.4",
|
|
637
|
+
"v0.8.3",
|
|
638
|
+
"v0.8.2",
|
|
639
|
+
"v0.8.1",
|
|
640
|
+
"v0.8.0",
|
|
641
|
+
"v0.7.12",
|
|
642
|
+
"v0.7.11",
|
|
643
|
+
"v0.7.10",
|
|
644
|
+
"v0.7.9",
|
|
645
|
+
"v0.7.8",
|
|
646
|
+
"v0.7.7",
|
|
647
|
+
"v0.7.6",
|
|
648
|
+
"v0.7.5",
|
|
649
|
+
"v0.7.4",
|
|
650
|
+
"v0.7.3",
|
|
651
|
+
"v0.7.2",
|
|
652
|
+
"v0.7.1",
|
|
653
|
+
"v0.7.0",
|
|
654
|
+
"v0.6.21",
|
|
655
|
+
"v0.6.20",
|
|
656
|
+
"v0.6.19",
|
|
657
|
+
"v0.6.18",
|
|
658
|
+
"v0.6.17",
|
|
659
|
+
"v0.6.16",
|
|
660
|
+
"v0.6.15",
|
|
661
|
+
"v0.6.14",
|
|
662
|
+
"v0.6.13",
|
|
663
|
+
"v0.6.12",
|
|
664
|
+
"v0.6.11",
|
|
665
|
+
"v0.6.10",
|
|
666
|
+
"v0.6.9",
|
|
667
|
+
"v0.6.8",
|
|
668
|
+
"v0.6.7",
|
|
669
|
+
"v0.6.6",
|
|
670
|
+
"v0.6.5",
|
|
671
|
+
"v0.6.4",
|
|
672
|
+
"v0.6.3",
|
|
673
|
+
"v0.6.2",
|
|
674
|
+
"v0.6.1",
|
|
675
|
+
"v0.6.0",
|
|
676
|
+
"v0.5.10",
|
|
677
|
+
"v0.5.9",
|
|
678
|
+
"v0.5.8",
|
|
679
|
+
"v0.5.7",
|
|
680
|
+
"v0.5.6",
|
|
681
|
+
"v0.5.5",
|
|
682
|
+
"v0.5.4",
|
|
683
|
+
"v0.5.3",
|
|
684
|
+
"v0.5.2",
|
|
685
|
+
"v0.5.1",
|
|
686
|
+
"v0.5.0",
|
|
687
|
+
"v0.4.12",
|
|
688
|
+
"v0.4.11",
|
|
689
|
+
"v0.4.10",
|
|
690
|
+
"v0.4.9",
|
|
691
|
+
"v0.4.8",
|
|
692
|
+
"v0.4.7",
|
|
693
|
+
"v0.4.6",
|
|
694
|
+
"v0.4.5",
|
|
695
|
+
"v0.4.4",
|
|
696
|
+
"v0.4.3",
|
|
697
|
+
"v0.4.2",
|
|
698
|
+
"v0.4.1",
|
|
699
|
+
"v0.4.0",
|
|
700
|
+
"v0.3.8",
|
|
701
|
+
"v0.3.7",
|
|
702
|
+
"v0.3.6",
|
|
703
|
+
"v0.3.5",
|
|
704
|
+
"v0.3.4",
|
|
705
|
+
"v0.3.3",
|
|
706
|
+
"v0.3.2",
|
|
707
|
+
"v0.3.1",
|
|
708
|
+
"v0.3.0",
|
|
709
|
+
"v0.2.6",
|
|
710
|
+
"v0.2.5",
|
|
711
|
+
"v0.2.4",
|
|
712
|
+
"v0.2.3",
|
|
713
|
+
"v0.2.2",
|
|
714
|
+
"v0.2.1",
|
|
715
|
+
"v0.2.0",
|
|
716
|
+
"v0.1.104",
|
|
717
|
+
"v0.1.103",
|
|
718
|
+
"v0.1.102",
|
|
719
|
+
"v0.1.101",
|
|
720
|
+
"v0.1.100",
|
|
721
|
+
"v0.1.99",
|
|
722
|
+
"v0.1.98",
|
|
723
|
+
"v0.1.97",
|
|
724
|
+
"v0.1.96",
|
|
725
|
+
"v0.1.95",
|
|
726
|
+
"v0.1.94",
|
|
727
|
+
"v0.1.93",
|
|
728
|
+
"v0.1.92",
|
|
729
|
+
"v0.1.91",
|
|
730
|
+
"v0.1.90",
|
|
731
|
+
"v0.1.33",
|
|
732
|
+
"v0.1.32",
|
|
733
|
+
"v0.1.31",
|
|
734
|
+
"v0.1.30",
|
|
735
|
+
"v0.1.29",
|
|
736
|
+
"v0.1.28",
|
|
737
|
+
"v0.1.27",
|
|
738
|
+
"v0.1.26",
|
|
739
|
+
"v0.1.25",
|
|
740
|
+
"v0.1.24",
|
|
741
|
+
"v0.1.23",
|
|
742
|
+
"v0.1.22",
|
|
743
|
+
"v0.1.21",
|
|
744
|
+
"v0.1.20",
|
|
745
|
+
"v0.1.19",
|
|
746
|
+
"v0.1.18",
|
|
747
|
+
"v0.1.17",
|
|
748
|
+
"v0.1.16",
|
|
749
|
+
"v0.1.15",
|
|
750
|
+
"v0.1.14"
|
|
751
|
+
]
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const nodeVersions: readonly string[];
|
|
2
|
+
export function getEnginesNodeVersions(engines: string, options?: Options | undefined): string[];
|
|
3
|
+
export function getPackageNodeVersions(path: string, options?: Options | undefined): Promise<string[]>;
|
|
4
|
+
export type Options = {
|
|
5
|
+
majorsOnly?: boolean | undefined;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":";AAkBiC,gDAJtB,MAAM,kCAEJ,MAAM,EAAE,CAoBpB;AAOgC,6CAJtB,MAAM,kCAEJ,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ7B"}
|
package/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { loadPackage } = require('./lib/load-package');
|
|
4
|
+
const possibleNodeVersions = require('./data/versions.json');
|
|
5
|
+
const semver = require('semver');
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {object} Options
|
|
9
|
+
* @property {boolean} [majorsOnly]
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
exports.nodeVersions = Object.freeze(possibleNodeVersions);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} engines
|
|
16
|
+
* @param {Options} [options]
|
|
17
|
+
* @returns {string[]}
|
|
18
|
+
*/
|
|
19
|
+
exports.getEnginesNodeVersions = function getEnginesNodeVersions(engines, options = {}) {
|
|
20
|
+
if (typeof engines !== 'string' || !semver.validRange(engines)) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const supportedNodeVersions = possibleNodeVersions.filter((version) =>
|
|
25
|
+
semver.satisfies(version, engines)
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
// Flag to only return the major versions
|
|
29
|
+
if (options.majorsOnly) {
|
|
30
|
+
const majorVersions = new Set(
|
|
31
|
+
supportedNodeVersions.map((version) => `${semver.major(version)}`)
|
|
32
|
+
);
|
|
33
|
+
return [...majorVersions];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return supportedNodeVersions;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @param {string} path
|
|
41
|
+
* @param {Options} [options]
|
|
42
|
+
* @returns {Promise<string[]>}
|
|
43
|
+
*/
|
|
44
|
+
exports.getPackageNodeVersions = async function getPackageNodeVersions(path, options) {
|
|
45
|
+
const packageJson = await loadPackage(path);
|
|
46
|
+
if (typeof packageJson.engines?.node !== 'string') {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
return exports.getEnginesNodeVersions(packageJson.engines.node, options);
|
|
50
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-node-versions.d.ts","sourceRoot":"","sources":["fetch-node-versions.js"],"names":[],"mappings":"AAW4B,qCAFf,OAAO,CAAC,MAAM,EAAE,CAAC,CAsB7B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const assert = require('node:assert/strict');
|
|
4
|
+
const pkg = require('../package.json');
|
|
5
|
+
|
|
6
|
+
const versionsEndpoint = 'https://nodejs.org/dist/index.json';
|
|
7
|
+
const userAgent = `npm:${pkg.name}/${pkg.version} (${pkg.homepage})`;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @returns {Promise<string[]>}
|
|
11
|
+
*/
|
|
12
|
+
exports.fetchNodeVersions = async function fetchNodeVersions() {
|
|
13
|
+
const response = await fetch(versionsEndpoint, {
|
|
14
|
+
headers: { 'user-agent': userAgent }
|
|
15
|
+
});
|
|
16
|
+
const versions = await response.json();
|
|
17
|
+
|
|
18
|
+
// Validate the version data
|
|
19
|
+
assert.ok(Array.isArray(versions), 'versions are not an array');
|
|
20
|
+
for (const [key, value] of Object.entries(versions)) {
|
|
21
|
+
assert.ok(value, `version (index ${key}) is not an object`);
|
|
22
|
+
assert.equal(typeof value, 'object', `version (index ${key}) is not an object`);
|
|
23
|
+
assert.notEqual(Array.isArray(value), `version (index ${key}) is not an object`);
|
|
24
|
+
assert.equal(
|
|
25
|
+
typeof value?.version,
|
|
26
|
+
'string',
|
|
27
|
+
`version (index ${key}) has a non-string "version" property`
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return versions.map(({ version }) => version);
|
|
32
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-package.d.ts","sourceRoot":"","sources":["load-package.js"],"names":[],"mappings":"AAQsB,kCAHX,MAAM,GACJ,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAsBxC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const PackageJson = require('@npmcli/package-json');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} path
|
|
7
|
+
* @returns {Promise<PackageJson.Content>}
|
|
8
|
+
*/
|
|
9
|
+
exports.loadPackage = async function loadPackage(path) {
|
|
10
|
+
try {
|
|
11
|
+
const pkg = await PackageJson.load(path);
|
|
12
|
+
return pkg.content;
|
|
13
|
+
} catch (/** @type {any} */ cause) {
|
|
14
|
+
if (cause.code === 'ENOENT') {
|
|
15
|
+
throw Object.assign(new Error(`No package.json file found at ${path}`, { cause }), {
|
|
16
|
+
code: 'PACKAGE_JSON_MISSING'
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if (cause.code === 'EJSONPARSE') {
|
|
20
|
+
throw Object.assign(
|
|
21
|
+
new Error(`Invalid package.json file found at ${path}`, { cause }),
|
|
22
|
+
{
|
|
23
|
+
code: 'PACKAGE_JSON_INVALID'
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
throw cause;
|
|
28
|
+
}
|
|
29
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rowanmanning/node-versions",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Get the Node.js versions that a repo says it supports",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"author": "Rowan Manning (https://rowanmanning.com/)",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/rowanmanning/repo-tools.git",
|
|
10
|
+
"directory": "packages/node-versions"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/rowanmanning/repo-tools/tree/main/packages/node-versions#readme",
|
|
13
|
+
"bugs": "https://github.com/rowanmanning/repo-tools/issues",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": "18.x || 20.x || 22.x"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"fetch-versions": "node ./scripts/fetch-node-versions.js",
|
|
20
|
+
"postinstall": "node ./scripts/fetch-node-versions.js || true"
|
|
21
|
+
},
|
|
22
|
+
"main": "index.js",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@npmcli/package-json": "^5.2.0",
|
|
25
|
+
"semver": "^7.6.3"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-node-versions.d.ts","sourceRoot":"","sources":["fetch-node-versions.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { writeFile } = require('node:fs/promises');
|
|
4
|
+
const { resolve: resolvePath } = require('node:path');
|
|
5
|
+
const { fetchNodeVersions } = require('../lib/fetch-node-versions');
|
|
6
|
+
|
|
7
|
+
const filePath = resolvePath(__dirname, '..', 'data', 'versions.json');
|
|
8
|
+
|
|
9
|
+
async function runScript() {
|
|
10
|
+
const versions = await fetchNodeVersions();
|
|
11
|
+
await writeFile(filePath, `${JSON.stringify(versions, null, '\t')}\n`);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
runScript().catch((error) => {
|
|
15
|
+
// biome-ignore lint/nursery/noConsole: required for debugging this script
|
|
16
|
+
console.error(error.stack);
|
|
17
|
+
process.exitCode = 1;
|
|
18
|
+
});
|