@sendly/cli 3.27.1 → 3.32.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.
@@ -0,0 +1,38 @@
1
+ const HOMEBREW_PREFIX_MARKERS = [
2
+ "/opt/homebrew/",
3
+ "/usr/local/Cellar/",
4
+ "/home/linuxbrew/",
5
+ "/Cellar/",
6
+ ];
7
+ export function detectInstallPath() {
8
+ // Strongest signal — the env var that `brew shellenv` sets.
9
+ if (process.env.HOMEBREW_CELLAR) {
10
+ return "homebrew";
11
+ }
12
+ // Fallback — look at the bin path. `process.argv[1]` is the entry
13
+ // script; for Homebrew installs it lives under Cellar/libexec. For npm
14
+ // globals it lives under the npm prefix (e.g. /usr/local/lib/node_modules).
15
+ const binPath = process.argv[1] ?? "";
16
+ for (const marker of HOMEBREW_PREFIX_MARKERS) {
17
+ if (binPath.includes(marker))
18
+ return "homebrew";
19
+ }
20
+ // `node_modules` is the tell-tale for any npm install (global or local).
21
+ if (binPath.includes("/node_modules/"))
22
+ return "npm";
23
+ return "unknown";
24
+ }
25
+ /**
26
+ * Human-readable upgrade command for the detected install path.
27
+ */
28
+ export function upgradeCommandFor(path) {
29
+ switch (path) {
30
+ case "homebrew":
31
+ return "brew upgrade sendly";
32
+ case "npm":
33
+ return "npm install -g @sendly/cli@latest";
34
+ default:
35
+ return "npm install -g @sendly/cli@latest # or: brew upgrade sendly";
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0LWluc3RhbGwtcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvZGV0ZWN0LWluc3RhbGwtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsTUFBTSx1QkFBdUIsR0FBRztJQUM5QixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixVQUFVO0NBQ1gsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsNERBQTREO0lBQzVELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsa0VBQWtFO0lBQ2xFLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsS0FBSyxNQUFNLE1BQU0sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzdDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXJELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFpQjtJQUNqRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxVQUFVO1lBQ2IsT0FBTyxxQkFBcUIsQ0FBQztRQUMvQixLQUFLLEtBQUs7WUFDUixPQUFPLG1DQUFtQyxDQUFDO1FBQzdDO1lBQ0UsT0FBTyw4REFBOEQsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGV0ZWN0IGhvdyB0aGUgYEBzZW5kbHkvY2xpYCBiaW5hcnkgd2FzIGluc3RhbGxlZCBzbyBgc2VuZGx5IHVwZ3JhZGVgXG4gKiBjYW4gc2hlbGwgb3V0IHRvIHRoZSBjb3JyZWN0IHBhY2thZ2UgbWFuYWdlci5cbiAqXG4gKiBXZSBzdXBwb3J0IHR3byBpbnN0YWxsIHBhdGhzIGV4cGxpY2l0bHk6XG4gKiAgIC0gSG9tZWJyZXcg4oCUIGZyb20gdGhlIFNlbmRseUhRL2hvbWVicmV3LXRhcCBmb3JtdWxhIChgYnJldyBpbnN0YWxsIHNlbmRseWApLlxuICogICAgIERldGVjdGVkIHZpYSB0aGUgYEhPTUVCUkVXX0NFTExBUmAgZW52IHZhciAoc2V0IGJ5IGV2ZXJ5IGJyZXctbWFuYWdlZFxuICogICAgIHNoZWxsKSBPUiBieSB0aGUgYmluYXJ5IHBhdGggbGl2aW5nIHVuZGVyIGEgSG9tZWJyZXctb3duZWQgcHJlZml4LlxuICogICAtIG5wbSBnbG9iYWwg4oCUIGBucG0gaW5zdGFsbCAtZyBAc2VuZGx5L2NsaWAuIFRoaXMgaXMgdGhlIGRlZmF1bHQgYW5kXG4gKiAgICAgd2hhdCB3ZSBmYWxsIGJhY2sgdG8gd2hlbiB3ZSBjYW4ndCBpZGVudGlmeSBIb21lYnJldy5cbiAqXG4gKiBSZXR1cm5zIGBcInVua25vd25cImAgb25seSB3aGVuIHdlIGNhbid0IGRldGVybWluZSBlaXRoZXIuIFRoYXQncyByYXJlIGluXG4gKiBwcmFjdGljZSAobnBtIGluc3RhbGxzIGludG8gcHJlZGljdGFibGUgcGF0aHMpIGJ1dCB3ZSBoYW5kbGUgaXRcbiAqIGdyYWNlZnVsbHkgaW4gdGhlIGB1cGdyYWRlYCBjb21tYW5kIGJ5IHByaW50aW5nIGJvdGggb3B0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFsbFBhdGggPSBcImhvbWVicmV3XCIgfCBcIm5wbVwiIHwgXCJ1bmtub3duXCI7XG5cbmNvbnN0IEhPTUVCUkVXX1BSRUZJWF9NQVJLRVJTID0gW1xuICBcIi9vcHQvaG9tZWJyZXcvXCIsXG4gIFwiL3Vzci9sb2NhbC9DZWxsYXIvXCIsXG4gIFwiL2hvbWUvbGludXhicmV3L1wiLFxuICBcIi9DZWxsYXIvXCIsXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0SW5zdGFsbFBhdGgoKTogSW5zdGFsbFBhdGgge1xuICAvLyBTdHJvbmdlc3Qgc2lnbmFsIOKAlCB0aGUgZW52IHZhciB0aGF0IGBicmV3IHNoZWxsZW52YCBzZXRzLlxuICBpZiAocHJvY2Vzcy5lbnYuSE9NRUJSRVdfQ0VMTEFSKSB7XG4gICAgcmV0dXJuIFwiaG9tZWJyZXdcIjtcbiAgfVxuXG4gIC8vIEZhbGxiYWNrIOKAlCBsb29rIGF0IHRoZSBiaW4gcGF0aC4gYHByb2Nlc3MuYXJndlsxXWAgaXMgdGhlIGVudHJ5XG4gIC8vIHNjcmlwdDsgZm9yIEhvbWVicmV3IGluc3RhbGxzIGl0IGxpdmVzIHVuZGVyIENlbGxhci9saWJleGVjLiBGb3IgbnBtXG4gIC8vIGdsb2JhbHMgaXQgbGl2ZXMgdW5kZXIgdGhlIG5wbSBwcmVmaXggKGUuZy4gL3Vzci9sb2NhbC9saWIvbm9kZV9tb2R1bGVzKS5cbiAgY29uc3QgYmluUGF0aCA9IHByb2Nlc3MuYXJndlsxXSA/PyBcIlwiO1xuICBmb3IgKGNvbnN0IG1hcmtlciBvZiBIT01FQlJFV19QUkVGSVhfTUFSS0VSUykge1xuICAgIGlmIChiaW5QYXRoLmluY2x1ZGVzKG1hcmtlcikpIHJldHVybiBcImhvbWVicmV3XCI7XG4gIH1cblxuICAvLyBgbm9kZV9tb2R1bGVzYCBpcyB0aGUgdGVsbC10YWxlIGZvciBhbnkgbnBtIGluc3RhbGwgKGdsb2JhbCBvciBsb2NhbCkuXG4gIGlmIChiaW5QYXRoLmluY2x1ZGVzKFwiL25vZGVfbW9kdWxlcy9cIikpIHJldHVybiBcIm5wbVwiO1xuXG4gIHJldHVybiBcInVua25vd25cIjtcbn1cblxuLyoqXG4gKiBIdW1hbi1yZWFkYWJsZSB1cGdyYWRlIGNvbW1hbmQgZm9yIHRoZSBkZXRlY3RlZCBpbnN0YWxsIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGdyYWRlQ29tbWFuZEZvcihwYXRoOiBJbnN0YWxsUGF0aCk6IHN0cmluZyB7XG4gIHN3aXRjaCAocGF0aCkge1xuICAgIGNhc2UgXCJob21lYnJld1wiOlxuICAgICAgcmV0dXJuIFwiYnJldyB1cGdyYWRlIHNlbmRseVwiO1xuICAgIGNhc2UgXCJucG1cIjpcbiAgICAgIHJldHVybiBcIm5wbSBpbnN0YWxsIC1nIEBzZW5kbHkvY2xpQGxhdGVzdFwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gXCJucG0gaW5zdGFsbCAtZyBAc2VuZGx5L2NsaUBsYXRlc3QgICMgb3I6IGJyZXcgdXBncmFkZSBzZW5kbHlcIjtcbiAgfVxufVxuIl19