@onkernel/cli 0.4.5 → 0.4.7
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 +13 -0
- package/lib.js +9 -49
- package/package.json +19 -19
package/README.md
CHANGED
|
@@ -109,6 +109,10 @@ Create an API key from the [Kernel dashboard](https://dashboard.onkernel.com).
|
|
|
109
109
|
### Browser Management
|
|
110
110
|
|
|
111
111
|
- `kernel browsers list` - List running browsers
|
|
112
|
+
- `kernel browsers create` - Create a new browser session
|
|
113
|
+
- `--persistence-id <id>` - Unique identifier for browser session persistence
|
|
114
|
+
- `--stealth` - Launch browser in stealth mode to avoid detection
|
|
115
|
+
- `--headless` - Launch browser without GUI access
|
|
112
116
|
- `kernel browsers delete` - Delete a browser
|
|
113
117
|
- `--by-persistent-id <id>` - Delete by persistent ID
|
|
114
118
|
- `--by-id <id>` - Delete by session ID
|
|
@@ -161,6 +165,15 @@ kernel logs my-app --since 1h --with-timestamps
|
|
|
161
165
|
# List all browsers
|
|
162
166
|
kernel browsers list
|
|
163
167
|
|
|
168
|
+
# Create a new browser session
|
|
169
|
+
kernel browsers create
|
|
170
|
+
|
|
171
|
+
# Create a persistent browser session
|
|
172
|
+
kernel browsers create --persistence-id my-browser-session
|
|
173
|
+
|
|
174
|
+
# Create a headless browser in stealth mode
|
|
175
|
+
kernel browsers create --headless --stealth
|
|
176
|
+
|
|
164
177
|
# Delete a persistent browser
|
|
165
178
|
kernel browsers delete --by-persistent-id my-browser-session --yes
|
|
166
179
|
|
package/lib.js
CHANGED
|
@@ -19,61 +19,31 @@ const getArchive = () => {
|
|
|
19
19
|
|
|
20
20
|
const binDir = path.join(__dirname, "bin");
|
|
21
21
|
|
|
22
|
-
async function extractTar(tarPath, binaries, dir
|
|
22
|
+
async function extractTar(tarPath, binaries, dir) {
|
|
23
23
|
try {
|
|
24
|
-
const filesToExtract = wrappedIn
|
|
25
|
-
? binaries.map((bin) =>
|
|
26
|
-
path.join(wrappedIn, bin).replace(/\\/g, "/"),
|
|
27
|
-
)
|
|
28
|
-
: binaries;
|
|
29
|
-
|
|
30
24
|
await tar.x({
|
|
31
25
|
file: tarPath,
|
|
32
26
|
cwd: dir,
|
|
33
|
-
filter: (path) =>
|
|
27
|
+
filter: (path) => binaries.includes(path),
|
|
34
28
|
});
|
|
35
|
-
|
|
36
|
-
// If wrapped, move files from wrapped directory to bin directory
|
|
37
|
-
if (wrappedIn) {
|
|
38
|
-
const wrappedDir = path.join(dir, wrappedIn);
|
|
39
|
-
for (const binary of binaries) {
|
|
40
|
-
const srcPath = path.join(wrappedDir, binary);
|
|
41
|
-
const destPath = path.join(dir, binary);
|
|
42
|
-
if (fs.existsSync(srcPath)) {
|
|
43
|
-
fs.renameSync(srcPath, destPath);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// Clean up empty wrapped directory
|
|
47
|
-
try {
|
|
48
|
-
fs.rmSync(wrappedDir, { recursive: true, force: true });
|
|
49
|
-
} catch (err) {
|
|
50
|
-
// Ignore cleanup errors
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
console.log(`Successfully extracted ${binaries} to "${dir}"`);
|
|
29
|
+
console.log(`Successfully extracted binaries to "${dir}"`);
|
|
55
30
|
} catch (err) {
|
|
56
31
|
throw new Error(`Extraction failed: ${err.message}`);
|
|
57
32
|
}
|
|
58
33
|
}
|
|
59
34
|
|
|
60
|
-
async function extractZip(zipPath, binaries, dir
|
|
35
|
+
async function extractZip(zipPath, binaries, dir) {
|
|
61
36
|
try {
|
|
62
37
|
const zipData = fs.readFileSync(zipPath);
|
|
63
38
|
const zip = await JSZip.loadAsync(zipData);
|
|
64
|
-
|
|
65
39
|
for (const binary of binaries) {
|
|
66
|
-
|
|
67
|
-
? path.join(wrappedIn, binary).replace(/\\/g, "/")
|
|
68
|
-
: binary;
|
|
69
|
-
|
|
70
|
-
if (!zip.files[binaryPath]) {
|
|
40
|
+
if (!zip.files[binary]) {
|
|
71
41
|
throw new Error(
|
|
72
|
-
`Error: ${
|
|
42
|
+
`Error: ${binary} does not exist in ${zipPath}`,
|
|
73
43
|
);
|
|
74
44
|
}
|
|
75
45
|
|
|
76
|
-
const content = await zip.files[
|
|
46
|
+
const content = await zip.files[binary].async("nodebuffer");
|
|
77
47
|
if (!fs.existsSync(dir)) {
|
|
78
48
|
fs.mkdirSync(dir, { recursive: true });
|
|
79
49
|
}
|
|
@@ -124,21 +94,11 @@ const install = async () => {
|
|
|
124
94
|
fs.chmodSync(bin, 0o755);
|
|
125
95
|
return;
|
|
126
96
|
case "zip":
|
|
127
|
-
return extractZip(
|
|
128
|
-
archivePath,
|
|
129
|
-
archive.bins,
|
|
130
|
-
binDir,
|
|
131
|
-
archive.wrappedIn,
|
|
132
|
-
);
|
|
97
|
+
return extractZip(archivePath, archive.bins, binDir);
|
|
133
98
|
case "tar":
|
|
134
99
|
case "tar.gz":
|
|
135
100
|
case "tgz":
|
|
136
|
-
return extractTar(
|
|
137
|
-
archivePath,
|
|
138
|
-
archive.bins,
|
|
139
|
-
binDir,
|
|
140
|
-
archive.wrappedIn,
|
|
141
|
-
);
|
|
101
|
+
return extractTar(archivePath, archive.bins, binDir);
|
|
142
102
|
case "tar.zst":
|
|
143
103
|
case "tzst":
|
|
144
104
|
case "tar.xz":
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onkernel/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.7",
|
|
4
4
|
"description": "Kernel CLI",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"postinstall": "node install.js",
|
|
@@ -33,75 +33,75 @@
|
|
|
33
33
|
},
|
|
34
34
|
"archives": {
|
|
35
35
|
"darwin-arm64": {
|
|
36
|
-
"name": "kernel_0.4.
|
|
37
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
36
|
+
"name": "kernel_0.4.7_darwin_arm64.tar.gz",
|
|
37
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_darwin_arm64.tar.gz",
|
|
38
38
|
"bins": [
|
|
39
39
|
"kernel"
|
|
40
40
|
],
|
|
41
41
|
"format": "tar.gz",
|
|
42
42
|
"checksum": {
|
|
43
43
|
"algorithm": "sha256",
|
|
44
|
-
"digest": "
|
|
44
|
+
"digest": "61438840ea27d92782da83744ff62ccb9a231fdd2418ec33b95b0862c1597af7"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"darwin-x64": {
|
|
48
|
-
"name": "kernel_0.4.
|
|
49
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
48
|
+
"name": "kernel_0.4.7_darwin_amd64.tar.gz",
|
|
49
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_darwin_amd64.tar.gz",
|
|
50
50
|
"bins": [
|
|
51
51
|
"kernel"
|
|
52
52
|
],
|
|
53
53
|
"format": "tar.gz",
|
|
54
54
|
"checksum": {
|
|
55
55
|
"algorithm": "sha256",
|
|
56
|
-
"digest": "
|
|
56
|
+
"digest": "7e5e9398a00660c984335b102066b1ac9f36240f1b171502fbc53de107e36eca"
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
"linux-arm64": {
|
|
60
|
-
"name": "kernel_0.4.
|
|
61
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
60
|
+
"name": "kernel_0.4.7_linux_arm64.tar.gz",
|
|
61
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_linux_arm64.tar.gz",
|
|
62
62
|
"bins": [
|
|
63
63
|
"kernel"
|
|
64
64
|
],
|
|
65
65
|
"format": "tar.gz",
|
|
66
66
|
"checksum": {
|
|
67
67
|
"algorithm": "sha256",
|
|
68
|
-
"digest": "
|
|
68
|
+
"digest": "6f11e334db2d6da48e81592c697078a69bd20b454ca6148536db31f0273395fe"
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"linux-x64": {
|
|
72
|
-
"name": "kernel_0.4.
|
|
73
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
72
|
+
"name": "kernel_0.4.7_linux_amd64.tar.gz",
|
|
73
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_linux_amd64.tar.gz",
|
|
74
74
|
"bins": [
|
|
75
75
|
"kernel"
|
|
76
76
|
],
|
|
77
77
|
"format": "tar.gz",
|
|
78
78
|
"checksum": {
|
|
79
79
|
"algorithm": "sha256",
|
|
80
|
-
"digest": "
|
|
80
|
+
"digest": "5f15e2fa8d0d2f05e648b74b2858a2a60ed222c7d49d770f156713f156fdaf31"
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"win32-arm64": {
|
|
84
|
-
"name": "kernel_0.4.
|
|
85
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
84
|
+
"name": "kernel_0.4.7_windows_arm64.tar.gz",
|
|
85
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_windows_arm64.tar.gz",
|
|
86
86
|
"bins": [
|
|
87
87
|
"kernel.exe"
|
|
88
88
|
],
|
|
89
89
|
"format": "tar.gz",
|
|
90
90
|
"checksum": {
|
|
91
91
|
"algorithm": "sha256",
|
|
92
|
-
"digest": "
|
|
92
|
+
"digest": "b659d18f260a3c7ac0dc024f5ecbe9fc19d8b3860e307edbe6f83e93fdf5e13b"
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
"win32-x64": {
|
|
96
|
-
"name": "kernel_0.4.
|
|
97
|
-
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.
|
|
96
|
+
"name": "kernel_0.4.7_windows_amd64.tar.gz",
|
|
97
|
+
"url": "https://onkernel-public.s3.us-east-1.amazonaws.com/releases/download/cli/0.4.7/kernel_0.4.7_windows_amd64.tar.gz",
|
|
98
98
|
"bins": [
|
|
99
99
|
"kernel.exe"
|
|
100
100
|
],
|
|
101
101
|
"format": "tar.gz",
|
|
102
102
|
"checksum": {
|
|
103
103
|
"algorithm": "sha256",
|
|
104
|
-
"digest": "
|
|
104
|
+
"digest": "d822da98719437f28d4b37511d17f4d404c9caed590398ecdabef2d370508882"
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
}
|