@onkernel/cli 0.15.7 → 0.17.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/install.js CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  // This file was generated by GoReleaser. DO NOT EDIT.
4
4
 
5
- const { install } = require("./lib.js");
5
+ import { install } from "./lib.js";
6
6
  install();
package/lib.js CHANGED
@@ -1,15 +1,21 @@
1
1
  // This file was generated by GoReleaser. DO NOT EDIT.
2
- const { archives, name, version } = require("./package.json");
3
- const fs = require("fs");
4
- const crypto = require("crypto");
5
- const path = require("path");
6
- const JSZip = require("jszip");
7
- const tar = require("tar");
8
- const axios = require("axios");
9
- const { ProxyAgent } = require("proxy-agent");
10
- const { spawnSync } = require("child_process");
2
+ import fs from "fs";
3
+ import crypto from "crypto";
4
+ import http from "http";
5
+ import https from "https";
6
+ import path from "path";
7
+ import JSZip from "jszip";
8
+ import { x as tarExtract } from "tar";
9
+ import { ProxyAgent } from "proxy-agent";
10
+ import { spawnSync } from "child_process";
11
+ import { fileURLToPath } from "url";
12
+
13
+ const { archives, name, version } = JSON.parse(
14
+ fs.readFileSync(new URL("./package.json", import.meta.url), "utf8"),
15
+ );
11
16
 
12
17
  const agent = new ProxyAgent();
18
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
19
 
14
20
  const getArchive = () => {
15
21
  let target = `${process.platform}-${process.arch}`;
@@ -30,7 +36,7 @@ async function extractTar(tarPath, binaries, dir, wrappedIn) {
30
36
  )
31
37
  : binaries;
32
38
 
33
- await tar.x({
39
+ await tarExtract({
34
40
  file: tarPath,
35
41
  cwd: dir,
36
42
  filter: (path) => filesToExtract.includes(path),
@@ -173,7 +179,7 @@ const verify = (filename, checksum) => {
173
179
  }
174
180
  };
175
181
 
176
- const download = async (url, filename) => {
182
+ const download = async (url, filename, maxRedirects = 10) => {
177
183
  try {
178
184
  console.log(`Downloading ${url} to ${filename}...`);
179
185
  const dir = path.dirname(filename);
@@ -181,27 +187,56 @@ const download = async (url, filename) => {
181
187
  fs.mkdirSync(dir, { recursive: true });
182
188
  }
183
189
 
184
- const response = await axios({
185
- method: "GET",
186
- url: url,
187
- responseType: "stream",
188
- timeout: 300000, // 5min
189
- httpAgent: agent,
190
- httpsAgent: agent,
191
- });
190
+ return new Promise((resolve, reject) => {
191
+ const parsedUrl = new URL(url);
192
+ const mod = parsedUrl.protocol === "https:" ? https : http;
192
193
 
193
- const writer = fs.createWriteStream(filename);
194
- response.data.pipe(writer);
194
+ const request = mod.get(url, { agent }, (response) => {
195
+ if (
196
+ response.statusCode >= 300 &&
197
+ response.statusCode < 400 &&
198
+ response.headers.location
199
+ ) {
200
+ if (maxRedirects <= 0) {
201
+ reject(new Error("Too many redirects"));
202
+ return;
203
+ }
204
+ download(response.headers.location, filename, maxRedirects - 1)
205
+ .then(resolve)
206
+ .catch(reject);
207
+ return;
208
+ }
195
209
 
196
- return new Promise((resolve, reject) => {
197
- writer.on("finish", () => {
198
- console.log(`Download complete: ${filename}`);
199
- resolve(dir);
210
+ if (response.statusCode !== 200) {
211
+ reject(
212
+ new Error(
213
+ `HTTP ${response.statusCode}: ${response.statusMessage}`,
214
+ ),
215
+ );
216
+ return;
217
+ }
218
+
219
+ const writer = fs.createWriteStream(filename);
220
+ response.pipe(writer);
221
+
222
+ writer.on("finish", () => {
223
+ console.log(`Download complete: ${filename}`);
224
+ resolve(dir);
225
+ });
226
+
227
+ writer.on("error", (err) => {
228
+ console.error(`Error writing file: ${err.message}`);
229
+ reject(err);
230
+ });
231
+ });
232
+
233
+ request.on("error", (err) => {
234
+ reject(new Error(`Request failed: ${err.message}`));
200
235
  });
201
236
 
202
- writer.on("error", (err) => {
203
- console.error(`Error writing file: ${err.message}`);
204
- reject(err);
237
+ request.setTimeout(300000, () => {
238
+ request.destroy();
239
+ reject(new Error("Request timed out"));
205
240
  });
206
241
  });
207
242
  } catch (err) {
@@ -216,8 +251,9 @@ function exists(archive) {
216
251
  return archive.bins.every((bin) => fs.existsSync(path.join(binDir, bin)));
217
252
  }
218
253
 
219
- module.exports = {
254
+ export {
220
255
  install,
221
256
  run,
222
257
  getArchive,
258
+ download,
223
259
  };
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@onkernel/cli",
3
- "version": "0.15.7",
3
+ "type": "module",
4
+ "version": "0.17.0",
4
5
  "description": "Kernel CLI",
5
6
  "scripts": {
6
7
  "postinstall": "node install.js",
@@ -27,82 +28,81 @@
27
28
  "kernel": "run-kernel.js"
28
29
  },
29
30
  "dependencies": {
30
- "axios": "^1.8.2",
31
- "jszip": "^3.10.1",
32
- "proxy-agent": "^6.5.0",
33
- "tar": "^7.4.3"
31
+ "jszip": "3.10.1",
32
+ "proxy-agent": "8.0.1",
33
+ "tar": "7.5.13"
34
34
  },
35
35
  "archives": {
36
36
  "darwin-arm64": {
37
- "name": "kernel_0.15.7_darwin_arm64.tar.gz",
38
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_darwin_arm64.tar.gz",
37
+ "name": "kernel_0.17.0_darwin_arm64.tar.gz",
38
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_darwin_arm64.tar.gz",
39
39
  "bins": [
40
40
  "kernel"
41
41
  ],
42
42
  "format": "tar.gz",
43
43
  "checksum": {
44
44
  "algorithm": "sha256",
45
- "digest": "d2954ef2f3b38569a0d48f276b491116494b22eb45fde7a4b02bf9fb67d74342"
45
+ "digest": "7a222b96b92eb563a34db1c1c98c1eb9c22e30b0de6ca48f0fc19a8b4efc9cae"
46
46
  }
47
47
  },
48
48
  "darwin-x64": {
49
- "name": "kernel_0.15.7_darwin_amd64.tar.gz",
50
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_darwin_amd64.tar.gz",
49
+ "name": "kernel_0.17.0_darwin_amd64.tar.gz",
50
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_darwin_amd64.tar.gz",
51
51
  "bins": [
52
52
  "kernel"
53
53
  ],
54
54
  "format": "tar.gz",
55
55
  "checksum": {
56
56
  "algorithm": "sha256",
57
- "digest": "0fea034f64005473d58e693f30ddc28e675116d1207c603d4989aefbc5df194c"
57
+ "digest": "48fdf571cfe25fcbbe09e1e919e723dcc33af56a7bb804fc223b45007572a47c"
58
58
  }
59
59
  },
60
60
  "linux-arm64": {
61
- "name": "kernel_0.15.7_linux_arm64.tar.gz",
62
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_linux_arm64.tar.gz",
61
+ "name": "kernel_0.17.0_linux_arm64.tar.gz",
62
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_linux_arm64.tar.gz",
63
63
  "bins": [
64
64
  "kernel"
65
65
  ],
66
66
  "format": "tar.gz",
67
67
  "checksum": {
68
68
  "algorithm": "sha256",
69
- "digest": "6908816449c3928409552487b5e1d8580349db83bf454c53498a50f38b927896"
69
+ "digest": "4d02ce80eb866826708de26a36c6f221aa2f81ead381befc9d26a9faaba6ed72"
70
70
  }
71
71
  },
72
72
  "linux-x64": {
73
- "name": "kernel_0.15.7_linux_amd64.tar.gz",
74
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_linux_amd64.tar.gz",
73
+ "name": "kernel_0.17.0_linux_amd64.tar.gz",
74
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_linux_amd64.tar.gz",
75
75
  "bins": [
76
76
  "kernel"
77
77
  ],
78
78
  "format": "tar.gz",
79
79
  "checksum": {
80
80
  "algorithm": "sha256",
81
- "digest": "b8611fa6758c9b6678b4c45c1b68973992a18fd04111254ef9f93558954462ef"
81
+ "digest": "e2f7944d923988d7f9482d260eae593c8dbdc42e54edcc88aa93281193438613"
82
82
  }
83
83
  },
84
84
  "win32-arm64": {
85
- "name": "kernel_0.15.7_windows_arm64.tar.gz",
86
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_windows_arm64.tar.gz",
85
+ "name": "kernel_0.17.0_windows_arm64.tar.gz",
86
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_windows_arm64.tar.gz",
87
87
  "bins": [
88
88
  "kernel.exe"
89
89
  ],
90
90
  "format": "tar.gz",
91
91
  "checksum": {
92
92
  "algorithm": "sha256",
93
- "digest": "88756d92bc603c26ea5f0a36cfbb54f3a60a318e36e7172006a7642675e81dfa"
93
+ "digest": "15e9c66e44ee3ec0f3c483899fc6078b08356cc37cef9338e7b84e3feec66c23"
94
94
  }
95
95
  },
96
96
  "win32-x64": {
97
- "name": "kernel_0.15.7_windows_amd64.tar.gz",
98
- "url": "https://github.com/kernel/cli/releases/download/v0.15.7/kernel_0.15.7_windows_amd64.tar.gz",
97
+ "name": "kernel_0.17.0_windows_amd64.tar.gz",
98
+ "url": "https://github.com/kernel/cli/releases/download/v0.17.0/kernel_0.17.0_windows_amd64.tar.gz",
99
99
  "bins": [
100
100
  "kernel.exe"
101
101
  ],
102
102
  "format": "tar.gz",
103
103
  "checksum": {
104
104
  "algorithm": "sha256",
105
- "digest": "1239ff87fd975ee65b539ef96ffe4e62df83bfb7a89c8fddcbc91cbbf75a86e4"
105
+ "digest": "7048f5e4ce9f7ae6145f7f1f00b2450ba434e52fa4359c40660d2c197c1ffc9f"
106
106
  }
107
107
  }
108
108
  }
package/run-kernel.js CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  // This file was generated by GoReleaser. DO NOT EDIT.
4
4
 
5
- const { run } = require("./lib.js");
5
+ import { run } from "./lib.js";
6
6
  run("kernel").then((code) => process.exit(code));