@posthog/cli 0.7.12 → 0.7.14

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # posthog-cli
2
2
 
3
+ # 0.7.14
4
+
5
+ - feat: add `--env-file <PATH>` to load `POSTHOG_CLI_HOST`, `POSTHOG_CLI_API_KEY`, and `POSTHOG_CLI_PROJECT_ID` (and their legacy aliases) from a dotenv-style file when not set in the process environment. Credentials are resolved atomically from a single source (process env first, then the file), so `POSTHOG_CLI_HOST` from the file cannot redirect a key supplied by the process env.
6
+
7
+ # 0.7.13
8
+
9
+ - chore: bump `cargo-dist` to 0.32.0; the new npm installer drops the bundled transitive deps that were carrying open CVEs (`axios`, `follow-redirects`, `minimatch`, `brace-expansion`)
10
+
3
11
  # 0.7.12
4
12
 
5
13
  - feat: add `--skip-on-conflict` to symbol upload commands for keeping existing symbol sets when content differs
package/README.md CHANGED
@@ -27,6 +27,10 @@ You can authenticate with PostHog interactively for using the CLI locally, but i
27
27
  - `POSTHOG_CLI_API_KEY`: [A posthog personal API key.](https://posthog.com/docs/api#private-endpoint-authentication) (also accepts `POSTHOG_CLI_TOKEN` for backward compatibility)
28
28
  - `POSTHOG_CLI_PROJECT_ID`: The ID number of the project/environment to connect to. E.g. the "2" in `https://us.posthog.com/project/2` (also accepts `POSTHOG_CLI_ENV_ID` for backward compatibility)
29
29
 
30
+ These variables can also be loaded from a dotenv-style file via `--env-file <PATH>` (e.g. `posthog-cli --env-file .env query ...`). The process environment always wins; the file is only consulted if the required variables aren't set. `POSTHOG_CLI_HOST` is only read from the same source that supplied the rest, so a stray host in the file cannot redirect a key supplied by the process env.
31
+
32
+ Full precedence: CLI args → process env → `--env-file` → `~/.posthog/credentials.json` (from `posthog-cli login`).
33
+
30
34
  ### Personal API key scopes
31
35
 
32
36
  Commands require different API scopes. Make sure to set these scopes on your personal API key:
package/binary-install.js CHANGED
@@ -1,10 +1,17 @@
1
- const { createWriteStream, existsSync, mkdirSync, mkdtemp } = require("fs");
1
+ const {
2
+ createWriteStream,
3
+ existsSync,
4
+ mkdirSync,
5
+ mkdtemp,
6
+ rmSync,
7
+ } = require("fs");
2
8
  const { join, sep } = require("path");
3
9
  const { spawnSync } = require("child_process");
4
10
  const { tmpdir } = require("os");
5
11
 
6
- const axios = require("axios");
7
- const rimraf = require("rimraf");
12
+ const https = require("node:https");
13
+ const http = require("node:http");
14
+
8
15
  const tmpDir = tmpdir();
9
16
 
10
17
  const error = (msg) => {
@@ -12,6 +19,135 @@ const error = (msg) => {
12
19
  process.exit(1);
13
20
  };
14
21
 
22
+ function getProxyForUrl(urlString) {
23
+ const url = new URL(urlString);
24
+ const isHttps = url.protocol === "https:";
25
+
26
+ const noProxy = process.env.NO_PROXY || process.env.no_proxy || "";
27
+ if (noProxy === "*") return null;
28
+ if (noProxy) {
29
+ const hostname = url.hostname.toLowerCase();
30
+ const noProxyList = noProxy.split(",").map((s) => s.trim().toLowerCase());
31
+ for (const entry of noProxyList) {
32
+ if (hostname === entry || hostname.endsWith("." + entry)) {
33
+ return null;
34
+ }
35
+ }
36
+ }
37
+
38
+ const proxyEnv = isHttps
39
+ ? process.env.HTTPS_PROXY || process.env.https_proxy
40
+ : process.env.HTTP_PROXY || process.env.http_proxy;
41
+
42
+ if (!proxyEnv) return null;
43
+
44
+ const proxyUrl = new URL(proxyEnv);
45
+
46
+ let auth = null;
47
+ if (proxyUrl.username || proxyUrl.password) {
48
+ auth = `${proxyUrl.username}:${proxyUrl.password}`;
49
+ }
50
+
51
+ return {
52
+ hostname: proxyUrl.hostname,
53
+ port: proxyUrl.port || (proxyUrl.protocol === "https:" ? 443 : 80),
54
+ auth: auth,
55
+ };
56
+ }
57
+
58
+ function connectThroughProxy(proxy, target) {
59
+ return new Promise((resolve, reject) => {
60
+ const headers = {};
61
+ if (proxy.auth) {
62
+ headers["Proxy-Authorization"] =
63
+ "Basic " + Buffer.from(proxy.auth).toString("base64");
64
+ }
65
+
66
+ const connectReq = http.request({
67
+ hostname: proxy.hostname,
68
+ port: proxy.port,
69
+ method: "CONNECT",
70
+ path: `${target.hostname}:${target.port || 443}`,
71
+ headers,
72
+ });
73
+ connectReq.on("connect", (res, socket) => {
74
+ if (res.statusCode === 200) {
75
+ resolve(socket);
76
+ } else {
77
+ reject(new Error(`Proxy CONNECT failed with status ${res.statusCode}`));
78
+ }
79
+ });
80
+ connectReq.on("error", reject);
81
+ connectReq.end();
82
+ });
83
+ }
84
+
85
+ function download(urlString, maxRedirects) {
86
+ if (maxRedirects === undefined) maxRedirects = 5;
87
+ return new Promise((resolve, reject) => {
88
+ if (maxRedirects < 0) {
89
+ return reject(new Error("Too many redirects"));
90
+ }
91
+
92
+ const parsed = new URL(urlString);
93
+ const isHttps = parsed.protocol === "https:";
94
+ const mod = isHttps ? https : http;
95
+ const proxy = getProxyForUrl(urlString);
96
+
97
+ const doRequest = (extraOptions) => {
98
+ const options = Object.assign(
99
+ {
100
+ hostname: parsed.hostname,
101
+ port: parsed.port || (isHttps ? 443 : 80),
102
+ path: parsed.pathname + parsed.search,
103
+ method: "GET",
104
+ headers: { "User-Agent": "cargo-dist-npm-installer" },
105
+ },
106
+ extraOptions || {},
107
+ );
108
+
109
+ if (proxy && !isHttps) {
110
+ // HTTP through HTTP proxy: request the full URL via the proxy
111
+ options.hostname = proxy.hostname;
112
+ options.port = proxy.port;
113
+ options.path = urlString;
114
+ if (proxy.auth) {
115
+ options.headers["Proxy-Authorization"] =
116
+ "Basic " + Buffer.from(proxy.auth).toString("base64");
117
+ }
118
+ }
119
+
120
+ const req = mod.request(options, (res) => {
121
+ if (
122
+ res.statusCode >= 300 &&
123
+ res.statusCode < 400 &&
124
+ res.headers.location
125
+ ) {
126
+ res.resume();
127
+ const nextUrl = new URL(res.headers.location, urlString).toString();
128
+ return download(nextUrl, maxRedirects - 1).then(resolve, reject);
129
+ }
130
+ if (res.statusCode < 200 || res.statusCode >= 300) {
131
+ res.resume();
132
+ return reject(new Error(`HTTP ${res.statusCode} from ${urlString}`));
133
+ }
134
+ resolve(res);
135
+ });
136
+ req.on("error", reject);
137
+ req.end();
138
+ };
139
+
140
+ if (proxy && isHttps) {
141
+ connectThroughProxy(proxy, parsed).then(
142
+ (socket) => doRequest({ socket, agent: false }),
143
+ reject,
144
+ );
145
+ } else {
146
+ doRequest();
147
+ }
148
+ });
149
+ }
150
+
15
151
  class Package {
16
152
  constructor(platform, name, url, filename, zipExt, binaries) {
17
153
  let errors = [];
@@ -72,7 +208,7 @@ class Package {
72
208
  return true;
73
209
  }
74
210
 
75
- install(fetchOptions, suppressLogs = false) {
211
+ install(suppressLogs = false) {
76
212
  if (this.exists()) {
77
213
  if (!suppressLogs) {
78
214
  console.error(
@@ -82,8 +218,10 @@ class Package {
82
218
  return Promise.resolve();
83
219
  }
84
220
 
85
- if (existsSync(this.installDirectory)) {
86
- rimraf.sync(this.installDirectory);
221
+ try {
222
+ rmSync(this.installDirectory, { recursive: true, force: true });
223
+ } catch {
224
+ // ignore - directory may not exist
87
225
  }
88
226
 
89
227
  mkdirSync(this.installDirectory, { recursive: true });
@@ -92,12 +230,13 @@ class Package {
92
230
  console.error(`Downloading release from ${this.url}`);
93
231
  }
94
232
 
95
- return axios({ ...fetchOptions, url: this.url, responseType: "stream" })
233
+ return download(this.url)
96
234
  .then((res) => {
97
235
  return new Promise((resolve, reject) => {
98
236
  mkdtemp(`${tmpDir}${sep}`, (err, directory) => {
237
+ if (err) return reject(err);
99
238
  let tempFile = join(directory, this.filename);
100
- const sink = res.data.pipe(createWriteStream(tempFile));
239
+ const sink = res.pipe(createWriteStream(tempFile));
101
240
  sink.on("error", (err) => reject(err));
102
241
  sink.on("close", () => {
103
242
  if (/\.tar\.*/.test(this.zipExt)) {
@@ -178,10 +317,8 @@ class Package {
178
317
  });
179
318
  }
180
319
 
181
- run(binaryName, fetchOptions) {
182
- const promise = !this.exists()
183
- ? this.install(fetchOptions, true)
184
- : Promise.resolve();
320
+ run(binaryName) {
321
+ const promise = !this.exists() ? this.install(true) : Promise.resolve();
185
322
 
186
323
  promise
187
324
  .then(() => {
@@ -204,7 +341,6 @@ class Package {
204
341
  })
205
342
  .catch((e) => {
206
343
  error(e.message);
207
- process.exit(1);
208
344
  });
209
345
  }
210
346
  }
package/binary.js CHANGED
@@ -1,8 +1,6 @@
1
1
  const { Package } = require("./binary-install");
2
2
  const os = require("os");
3
- const cTable = require("console.table");
4
3
  const libc = require("detect-libc");
5
- const { configureProxy } = require("axios-proxy-builder");
6
4
 
7
5
  const error = (msg) => {
8
6
  console.error(msg);
@@ -11,11 +9,13 @@ const error = (msg) => {
11
9
 
12
10
  const {
13
11
  name,
14
- artifactDownloadUrl,
12
+ artifactDownloadUrls,
15
13
  supportedPlatforms,
16
14
  glibcMinimum,
17
15
  } = require("./package.json");
18
16
 
17
+ // FIXME: implement NPM installer handling of fallback download URLs
18
+ const artifactDownloadUrl = artifactDownloadUrls[0];
19
19
  const builderGlibcMajorVersion = glibcMinimum.major;
20
20
  const builderGlibcMinorVersion = glibcMinimum.series;
21
21
 
@@ -106,17 +106,15 @@ const install = (suppressLogs) => {
106
106
  console.warn("in demo mode, not installing binaries");
107
107
  return;
108
108
  }
109
- const package = getPackage();
110
- const proxy = configureProxy(package.url);
109
+ const pkg = getPackage();
111
110
 
112
- return package.install(proxy, suppressLogs);
111
+ return pkg.install(suppressLogs);
113
112
  };
114
113
 
115
114
  const run = (binaryName) => {
116
- const package = getPackage();
117
- const proxy = configureProxy(package.url);
115
+ const pkg = getPackage();
118
116
 
119
- package.run(binaryName, proxy);
117
+ pkg.run(binaryName);
120
118
  };
121
119
 
122
120
  module.exports = {
@@ -7,151 +7,19 @@
7
7
  "posthog-cli": "run-posthog-cli.js"
8
8
  },
9
9
  "dependencies": {
10
- "axios": "^1.13.5",
11
- "axios-proxy-builder": "^0.1.2",
12
- "console.table": "^0.10.0",
13
- "detect-libc": "^2.1.2",
14
- "rimraf": "^6.1.3"
10
+ "detect-libc": "^2.1.2"
15
11
  },
16
12
  "devDependencies": {
17
- "prettier": "^3.8.1"
13
+ "prettier": "^3.8.3"
18
14
  },
19
15
  "engines": {
20
- "node": ">=14",
16
+ "node": ">=14.14",
21
17
  "npm": ">=6"
22
18
  },
23
19
  "hasInstallScript": true,
24
20
  "license": "MIT",
25
21
  "name": "@posthog/cli",
26
- "version": "0.7.12"
27
- },
28
- "node_modules/@isaacs/cliui": {
29
- "engines": {
30
- "node": ">=18"
31
- },
32
- "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==",
33
- "license": "BlueOak-1.0.0",
34
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz",
35
- "version": "9.0.0"
36
- },
37
- "node_modules/asynckit": {
38
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
39
- "license": "MIT",
40
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
41
- "version": "0.4.0"
42
- },
43
- "node_modules/axios": {
44
- "dependencies": {
45
- "follow-redirects": "^1.15.11",
46
- "form-data": "^4.0.5",
47
- "proxy-from-env": "^1.1.0"
48
- },
49
- "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==",
50
- "license": "MIT",
51
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz",
52
- "version": "1.13.5"
53
- },
54
- "node_modules/axios-proxy-builder": {
55
- "dependencies": {
56
- "tunnel": "^0.0.6"
57
- },
58
- "integrity": "sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==",
59
- "license": "MIT",
60
- "resolved": "https://registry.npmjs.org/axios-proxy-builder/-/axios-proxy-builder-0.1.2.tgz",
61
- "version": "0.1.2"
62
- },
63
- "node_modules/balanced-match": {
64
- "dependencies": {
65
- "jackspeak": "^4.2.3"
66
- },
67
- "engines": {
68
- "node": "20 || >=22"
69
- },
70
- "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==",
71
- "license": "MIT",
72
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz",
73
- "version": "4.0.2"
74
- },
75
- "node_modules/brace-expansion": {
76
- "dependencies": {
77
- "balanced-match": "^4.0.2"
78
- },
79
- "engines": {
80
- "node": "20 || >=22"
81
- },
82
- "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
83
- "license": "MIT",
84
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
85
- "version": "5.0.2"
86
- },
87
- "node_modules/call-bind-apply-helpers": {
88
- "dependencies": {
89
- "es-errors": "^1.3.0",
90
- "function-bind": "^1.1.2"
91
- },
92
- "engines": {
93
- "node": ">= 0.4"
94
- },
95
- "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
96
- "license": "MIT",
97
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
98
- "version": "1.0.2"
99
- },
100
- "node_modules/clone": {
101
- "engines": {
102
- "node": ">=0.8"
103
- },
104
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
105
- "license": "MIT",
106
- "optional": true,
107
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
108
- "version": "1.0.4"
109
- },
110
- "node_modules/combined-stream": {
111
- "dependencies": {
112
- "delayed-stream": "~1.0.0"
113
- },
114
- "engines": {
115
- "node": ">= 0.8"
116
- },
117
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
118
- "license": "MIT",
119
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
120
- "version": "1.0.8"
121
- },
122
- "node_modules/console.table": {
123
- "dependencies": {
124
- "easy-table": "1.1.0"
125
- },
126
- "engines": {
127
- "node": "> 0.10"
128
- },
129
- "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==",
130
- "license": "MIT",
131
- "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz",
132
- "version": "0.10.0"
133
- },
134
- "node_modules/defaults": {
135
- "dependencies": {
136
- "clone": "^1.0.2"
137
- },
138
- "funding": {
139
- "url": "https://github.com/sponsors/sindresorhus"
140
- },
141
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
142
- "license": "MIT",
143
- "optional": true,
144
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
145
- "version": "1.0.4"
146
- },
147
- "node_modules/delayed-stream": {
148
- "engines": {
149
- "node": ">=0.4.0"
150
- },
151
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
152
- "license": "MIT",
153
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
154
- "version": "1.0.0"
22
+ "version": "0.7.14"
155
23
  },
156
24
  "node_modules/detect-libc": {
157
25
  "engines": {
@@ -162,324 +30,6 @@
162
30
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
163
31
  "version": "2.1.2"
164
32
  },
165
- "node_modules/dunder-proto": {
166
- "dependencies": {
167
- "call-bind-apply-helpers": "^1.0.1",
168
- "es-errors": "^1.3.0",
169
- "gopd": "^1.2.0"
170
- },
171
- "engines": {
172
- "node": ">= 0.4"
173
- },
174
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
175
- "license": "MIT",
176
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
177
- "version": "1.0.1"
178
- },
179
- "node_modules/easy-table": {
180
- "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==",
181
- "license": "MIT",
182
- "optionalDependencies": {
183
- "wcwidth": ">=1.0.1"
184
- },
185
- "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz",
186
- "version": "1.1.0"
187
- },
188
- "node_modules/es-define-property": {
189
- "engines": {
190
- "node": ">= 0.4"
191
- },
192
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
193
- "license": "MIT",
194
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
195
- "version": "1.0.1"
196
- },
197
- "node_modules/es-errors": {
198
- "engines": {
199
- "node": ">= 0.4"
200
- },
201
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
202
- "license": "MIT",
203
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
204
- "version": "1.3.0"
205
- },
206
- "node_modules/es-object-atoms": {
207
- "dependencies": {
208
- "es-errors": "^1.3.0"
209
- },
210
- "engines": {
211
- "node": ">= 0.4"
212
- },
213
- "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
214
- "license": "MIT",
215
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
216
- "version": "1.1.1"
217
- },
218
- "node_modules/es-set-tostringtag": {
219
- "dependencies": {
220
- "es-errors": "^1.3.0",
221
- "get-intrinsic": "^1.2.6",
222
- "has-tostringtag": "^1.0.2",
223
- "hasown": "^2.0.2"
224
- },
225
- "engines": {
226
- "node": ">= 0.4"
227
- },
228
- "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
229
- "license": "MIT",
230
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
231
- "version": "2.1.0"
232
- },
233
- "node_modules/follow-redirects": {
234
- "engines": {
235
- "node": ">=4.0"
236
- },
237
- "funding": [
238
- {
239
- "type": "individual",
240
- "url": "https://github.com/sponsors/RubenVerborgh"
241
- }
242
- ],
243
- "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
244
- "license": "MIT",
245
- "peerDependenciesMeta": {
246
- "debug": {
247
- "optional": true
248
- }
249
- },
250
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
251
- "version": "1.15.11"
252
- },
253
- "node_modules/form-data": {
254
- "dependencies": {
255
- "asynckit": "^0.4.0",
256
- "combined-stream": "^1.0.8",
257
- "es-set-tostringtag": "^2.1.0",
258
- "hasown": "^2.0.2",
259
- "mime-types": "^2.1.12"
260
- },
261
- "engines": {
262
- "node": ">= 6"
263
- },
264
- "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
265
- "license": "MIT",
266
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
267
- "version": "4.0.5"
268
- },
269
- "node_modules/function-bind": {
270
- "funding": {
271
- "url": "https://github.com/sponsors/ljharb"
272
- },
273
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
274
- "license": "MIT",
275
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
276
- "version": "1.1.2"
277
- },
278
- "node_modules/get-intrinsic": {
279
- "dependencies": {
280
- "call-bind-apply-helpers": "^1.0.2",
281
- "es-define-property": "^1.0.1",
282
- "es-errors": "^1.3.0",
283
- "es-object-atoms": "^1.1.1",
284
- "function-bind": "^1.1.2",
285
- "get-proto": "^1.0.1",
286
- "gopd": "^1.2.0",
287
- "has-symbols": "^1.1.0",
288
- "hasown": "^2.0.2",
289
- "math-intrinsics": "^1.1.0"
290
- },
291
- "engines": {
292
- "node": ">= 0.4"
293
- },
294
- "funding": {
295
- "url": "https://github.com/sponsors/ljharb"
296
- },
297
- "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
298
- "license": "MIT",
299
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
300
- "version": "1.3.0"
301
- },
302
- "node_modules/get-proto": {
303
- "dependencies": {
304
- "dunder-proto": "^1.0.1",
305
- "es-object-atoms": "^1.0.0"
306
- },
307
- "engines": {
308
- "node": ">= 0.4"
309
- },
310
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
311
- "license": "MIT",
312
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
313
- "version": "1.0.1"
314
- },
315
- "node_modules/glob": {
316
- "dependencies": {
317
- "minimatch": "^10.2.0",
318
- "minipass": "^7.1.2",
319
- "path-scurry": "^2.0.0"
320
- },
321
- "engines": {
322
- "node": "20 || >=22"
323
- },
324
- "funding": {
325
- "url": "https://github.com/sponsors/isaacs"
326
- },
327
- "integrity": "sha512-/g3B0mC+4x724v1TgtBlBtt2hPi/EWptsIAmXUx9Z2rvBYleQcsrmaOzd5LyL50jf/Soi83ZDJmw2+XqvH/EeA==",
328
- "license": "BlueOak-1.0.0",
329
- "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz",
330
- "version": "13.0.3"
331
- },
332
- "node_modules/gopd": {
333
- "engines": {
334
- "node": ">= 0.4"
335
- },
336
- "funding": {
337
- "url": "https://github.com/sponsors/ljharb"
338
- },
339
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
340
- "license": "MIT",
341
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
342
- "version": "1.2.0"
343
- },
344
- "node_modules/has-symbols": {
345
- "engines": {
346
- "node": ">= 0.4"
347
- },
348
- "funding": {
349
- "url": "https://github.com/sponsors/ljharb"
350
- },
351
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
352
- "license": "MIT",
353
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
354
- "version": "1.1.0"
355
- },
356
- "node_modules/has-tostringtag": {
357
- "dependencies": {
358
- "has-symbols": "^1.0.3"
359
- },
360
- "engines": {
361
- "node": ">= 0.4"
362
- },
363
- "funding": {
364
- "url": "https://github.com/sponsors/ljharb"
365
- },
366
- "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
367
- "license": "MIT",
368
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
369
- "version": "1.0.2"
370
- },
371
- "node_modules/hasown": {
372
- "dependencies": {
373
- "function-bind": "^1.1.2"
374
- },
375
- "engines": {
376
- "node": ">= 0.4"
377
- },
378
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
379
- "license": "MIT",
380
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
381
- "version": "2.0.2"
382
- },
383
- "node_modules/jackspeak": {
384
- "dependencies": {
385
- "@isaacs/cliui": "^9.0.0"
386
- },
387
- "engines": {
388
- "node": "20 || >=22"
389
- },
390
- "funding": {
391
- "url": "https://github.com/sponsors/isaacs"
392
- },
393
- "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==",
394
- "license": "BlueOak-1.0.0",
395
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz",
396
- "version": "4.2.3"
397
- },
398
- "node_modules/lru-cache": {
399
- "engines": {
400
- "node": "20 || >=22"
401
- },
402
- "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==",
403
- "license": "BlueOak-1.0.0",
404
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz",
405
- "version": "11.2.6"
406
- },
407
- "node_modules/math-intrinsics": {
408
- "engines": {
409
- "node": ">= 0.4"
410
- },
411
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
412
- "license": "MIT",
413
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
414
- "version": "1.1.0"
415
- },
416
- "node_modules/mime-db": {
417
- "engines": {
418
- "node": ">= 0.6"
419
- },
420
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
421
- "license": "MIT",
422
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
423
- "version": "1.52.0"
424
- },
425
- "node_modules/mime-types": {
426
- "dependencies": {
427
- "mime-db": "1.52.0"
428
- },
429
- "engines": {
430
- "node": ">= 0.6"
431
- },
432
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
433
- "license": "MIT",
434
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
435
- "version": "2.1.35"
436
- },
437
- "node_modules/minimatch": {
438
- "dependencies": {
439
- "brace-expansion": "^5.0.2"
440
- },
441
- "engines": {
442
- "node": "20 || >=22"
443
- },
444
- "funding": {
445
- "url": "https://github.com/sponsors/isaacs"
446
- },
447
- "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==",
448
- "license": "BlueOak-1.0.0",
449
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz",
450
- "version": "10.2.0"
451
- },
452
- "node_modules/minipass": {
453
- "engines": {
454
- "node": ">=16 || 14 >=14.17"
455
- },
456
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
457
- "license": "ISC",
458
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
459
- "version": "7.1.2"
460
- },
461
- "node_modules/package-json-from-dist": {
462
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
463
- "license": "BlueOak-1.0.0",
464
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
465
- "version": "1.0.1"
466
- },
467
- "node_modules/path-scurry": {
468
- "dependencies": {
469
- "lru-cache": "^11.0.0",
470
- "minipass": "^7.1.2"
471
- },
472
- "engines": {
473
- "node": "20 || >=22"
474
- },
475
- "funding": {
476
- "url": "https://github.com/sponsors/isaacs"
477
- },
478
- "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
479
- "license": "BlueOak-1.0.0",
480
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
481
- "version": "2.0.1"
482
- },
483
33
  "node_modules/prettier": {
484
34
  "bin": {
485
35
  "prettier": "bin/prettier.cjs"
@@ -491,56 +41,12 @@
491
41
  "funding": {
492
42
  "url": "https://github.com/prettier/prettier?sponsor=1"
493
43
  },
494
- "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
495
- "license": "MIT",
496
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
497
- "version": "3.8.1"
498
- },
499
- "node_modules/proxy-from-env": {
500
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
501
- "license": "MIT",
502
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
503
- "version": "1.1.0"
504
- },
505
- "node_modules/rimraf": {
506
- "bin": {
507
- "rimraf": "dist/esm/bin.mjs"
508
- },
509
- "dependencies": {
510
- "glob": "^13.0.3",
511
- "package-json-from-dist": "^1.0.1"
512
- },
513
- "engines": {
514
- "node": "20 || >=22"
515
- },
516
- "funding": {
517
- "url": "https://github.com/sponsors/isaacs"
518
- },
519
- "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==",
520
- "license": "BlueOak-1.0.0",
521
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz",
522
- "version": "6.1.3"
523
- },
524
- "node_modules/tunnel": {
525
- "engines": {
526
- "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
527
- },
528
- "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
529
- "license": "MIT",
530
- "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
531
- "version": "0.0.6"
532
- },
533
- "node_modules/wcwidth": {
534
- "dependencies": {
535
- "defaults": "^1.0.3"
536
- },
537
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
44
+ "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==",
538
45
  "license": "MIT",
539
- "optional": true,
540
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
541
- "version": "1.0.1"
46
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz",
47
+ "version": "3.8.3"
542
48
  }
543
49
  },
544
50
  "requires": true,
545
- "version": "0.7.12"
51
+ "version": "0.7.14"
546
52
  }
package/package.json CHANGED
@@ -1,5 +1,7 @@
1
1
  {
2
- "artifactDownloadUrl": "https://github.com/PostHog/posthog/releases/download/posthog-cli/v0.7.12",
2
+ "artifactDownloadUrls": [
3
+ "https://github.com/PostHog/posthog/releases/download/posthog-cli/v0.7.14"
4
+ ],
3
5
  "bin": {
4
6
  "posthog-cli": "run-posthog-cli.js"
5
7
  },
@@ -9,18 +11,14 @@
9
11
  "Hugues <hugues@posthog.com>"
10
12
  ],
11
13
  "dependencies": {
12
- "axios": "^1.13.5",
13
- "axios-proxy-builder": "^0.1.2",
14
- "console.table": "^0.10.0",
15
- "detect-libc": "^2.1.2",
16
- "rimraf": "^6.1.3"
14
+ "detect-libc": "^2.1.2"
17
15
  },
18
16
  "description": "The command line interface for PostHog 🦔",
19
17
  "devDependencies": {
20
- "prettier": "^3.8.1"
18
+ "prettier": "^3.8.3"
21
19
  },
22
20
  "engines": {
23
- "node": ">=14",
21
+ "node": ">=14.14",
24
22
  "npm": ">=6"
25
23
  },
26
24
  "glibcMinimum": {
@@ -116,7 +114,7 @@
116
114
  "zipExt": ".tar.gz"
117
115
  }
118
116
  },
119
- "version": "0.7.12",
117
+ "version": "0.7.14",
120
118
  "volta": {
121
119
  "node": "18.14.1",
122
120
  "npm": "9.5.0"