brew-tui 2.2.2 → 2.3.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/build/{brew-tui-bar-installer-GTV4OEZW.js → brew-tui-bar-installer-LS6N5D5P.js} +5 -3
- package/build/{brewfile-manager-HWTPBXPO.js → brewfile-manager-DNRM6CQ7.js} +3 -3
- package/build/chunk-7R4ME2NC.js +342 -0
- package/build/chunk-7R4ME2NC.js.map +1 -0
- package/build/chunk-CCAT52XY.js +138 -0
- package/build/chunk-CCAT52XY.js.map +1 -0
- package/build/{version-check-QY3SQ6XI.js → chunk-HXTTSU3T.js} +6 -5
- package/build/{chunk-ZC23DNMK.js → chunk-PYDQHHI2.js} +22 -354
- package/build/chunk-PYDQHHI2.js.map +1 -0
- package/build/{chunk-F2S7TGCS.js → chunk-SDQYHY2L.js} +3 -1
- package/build/chunk-SDQYHY2L.js.map +1 -0
- package/build/{chunk-Y45AXONF.js → chunk-UZMGXQKF.js} +2 -2
- package/build/{chunk-YUE5NRTE.js → chunk-YEMLGOXS.js} +23 -3
- package/build/chunk-YEMLGOXS.js.map +1 -0
- package/build/doctor-VRBE2VXF.js +133 -0
- package/build/doctor-VRBE2VXF.js.map +1 -0
- package/build/index.js +59 -159
- package/build/index.js.map +1 -1
- package/build/postinstall.js +10 -5
- package/build/postinstall.js.map +1 -1
- package/build/{sync-engine-G5ML7TJ5.js → sync-engine-KTH4K3NG.js} +4 -3
- package/build/version-check-3JMI6HOO.js +15 -0
- package/build/version-check-3JMI6HOO.js.map +1 -0
- package/package.json +1 -1
- package/build/chunk-F2S7TGCS.js.map +0 -1
- package/build/chunk-YUE5NRTE.js.map +0 -1
- package/build/chunk-ZC23DNMK.js.map +0 -1
- /package/build/{brew-tui-bar-installer-GTV4OEZW.js.map → brew-tui-bar-installer-LS6N5D5P.js.map} +0 -0
- /package/build/{brewfile-manager-HWTPBXPO.js.map → brewfile-manager-DNRM6CQ7.js.map} +0 -0
- /package/build/{version-check-QY3SQ6XI.js.map → chunk-HXTTSU3T.js.map} +0 -0
- /package/build/{chunk-Y45AXONF.js.map → chunk-UZMGXQKF.js.map} +0 -0
- /package/build/{sync-engine-G5ML7TJ5.js.map → sync-engine-KTH4K3NG.js.map} +0 -0
package/build/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useLicenseStore,
|
|
3
|
+
verifyStoreIntegrity
|
|
4
|
+
} from "./chunk-CCAT52XY.js";
|
|
1
5
|
import {
|
|
2
6
|
brewUpdate,
|
|
3
7
|
casksToListItems,
|
|
@@ -24,21 +28,21 @@ import {
|
|
|
24
28
|
uninstallPackage,
|
|
25
29
|
unpinPackage,
|
|
26
30
|
validatePackageName
|
|
27
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-UZMGXQKF.js";
|
|
28
32
|
import {
|
|
29
|
-
activate,
|
|
30
33
|
applyConflictResolutions,
|
|
31
|
-
deactivate,
|
|
32
34
|
decryptPayload,
|
|
33
|
-
getDegradationLevel,
|
|
34
|
-
isExpired,
|
|
35
|
-
loadLicense,
|
|
36
35
|
loadSyncConfig,
|
|
37
|
-
needsRevalidation,
|
|
38
36
|
readSyncEnvelope,
|
|
39
|
-
revalidate,
|
|
40
37
|
sync
|
|
41
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-7R4ME2NC.js";
|
|
39
|
+
import {
|
|
40
|
+
activate,
|
|
41
|
+
deactivate,
|
|
42
|
+
getDegradationLevel,
|
|
43
|
+
loadLicense,
|
|
44
|
+
revalidate
|
|
45
|
+
} from "./chunk-PYDQHHI2.js";
|
|
42
46
|
import {
|
|
43
47
|
fetchWithRetry
|
|
44
48
|
} from "./chunk-NRRQECXA.js";
|
|
@@ -47,7 +51,7 @@ import {
|
|
|
47
51
|
t,
|
|
48
52
|
tp,
|
|
49
53
|
useLocaleStore
|
|
50
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-SDQYHY2L.js";
|
|
51
55
|
import {
|
|
52
56
|
checkCompliance
|
|
53
57
|
} from "./chunk-S3NRCC23.js";
|
|
@@ -670,132 +674,12 @@ function AppLayout({ children }) {
|
|
|
670
674
|
] });
|
|
671
675
|
}
|
|
672
676
|
|
|
673
|
-
// src/stores/license-store.ts
|
|
674
|
-
import { create as create2 } from "zustand";
|
|
675
|
-
|
|
676
|
-
// src/lib/license/anti-tamper.ts
|
|
677
|
-
var _originalIsPro = null;
|
|
678
|
-
var _originalGetState = null;
|
|
679
|
-
var _storeApi = null;
|
|
680
|
-
function initStoreIntegrity(store) {
|
|
681
|
-
_storeApi = store;
|
|
682
|
-
_originalIsPro = store.getState().isPro;
|
|
683
|
-
_originalGetState = store.getState;
|
|
684
|
-
}
|
|
685
|
-
function verifyStoreIntegrity() {
|
|
686
|
-
if (!_storeApi || !_originalIsPro || !_originalGetState) return false;
|
|
687
|
-
const state = _storeApi.getState();
|
|
688
|
-
if (state.isPro !== _originalIsPro) return false;
|
|
689
|
-
if (_storeApi.getState !== _originalGetState) return false;
|
|
690
|
-
if (state.status === "free" && state.isPro()) return false;
|
|
691
|
-
return true;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
// src/stores/license-store.ts
|
|
695
|
-
var REVALIDATION_CHECK_MS = 60 * 60 * 1e3;
|
|
696
|
-
var _revalidatingPromise = null;
|
|
697
|
-
var _revalidationInterval = null;
|
|
698
|
-
async function doRevalidation(license, set) {
|
|
699
|
-
const result = await revalidate(license);
|
|
700
|
-
if (result === "expired") {
|
|
701
|
-
set({ status: "expired", license: { ...license, status: "expired" }, degradation: "expired" });
|
|
702
|
-
} else {
|
|
703
|
-
const updated = await loadLicense();
|
|
704
|
-
const effective = updated ?? license;
|
|
705
|
-
set({ license: effective, degradation: getDegradationLevel(effective) });
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
var useLicenseStore = create2((set, get) => ({
|
|
709
|
-
status: "validating",
|
|
710
|
-
license: null,
|
|
711
|
-
error: null,
|
|
712
|
-
degradation: "none",
|
|
713
|
-
initialize: async () => {
|
|
714
|
-
initStoreIntegrity(useLicenseStore);
|
|
715
|
-
await ensureDataDirs();
|
|
716
|
-
const license = await loadLicense();
|
|
717
|
-
if (!license) {
|
|
718
|
-
set({ status: "free", license: null, degradation: "none" });
|
|
719
|
-
return;
|
|
720
|
-
}
|
|
721
|
-
if (isExpired(license)) {
|
|
722
|
-
set({ status: "expired", license, degradation: "expired" });
|
|
723
|
-
return;
|
|
724
|
-
}
|
|
725
|
-
const level = getDegradationLevel(license);
|
|
726
|
-
if (level === "expired") {
|
|
727
|
-
set({ status: "expired", license, degradation: "expired" });
|
|
728
|
-
return;
|
|
729
|
-
}
|
|
730
|
-
set({ status: license.plan, license, degradation: level });
|
|
731
|
-
if (needsRevalidation(license)) {
|
|
732
|
-
if (!_revalidatingPromise) {
|
|
733
|
-
_revalidatingPromise = doRevalidation(license, set).finally(() => {
|
|
734
|
-
_revalidatingPromise = null;
|
|
735
|
-
});
|
|
736
|
-
}
|
|
737
|
-
await _revalidatingPromise;
|
|
738
|
-
}
|
|
739
|
-
if (_revalidationInterval) clearInterval(_revalidationInterval);
|
|
740
|
-
_revalidationInterval = setInterval(() => {
|
|
741
|
-
const current = get().license;
|
|
742
|
-
const status = get().status;
|
|
743
|
-
if (!current || status !== "pro" && status !== "team") return;
|
|
744
|
-
if (!needsRevalidation(current)) return;
|
|
745
|
-
if (_revalidatingPromise) return;
|
|
746
|
-
_revalidatingPromise = doRevalidation(current, set).finally(() => {
|
|
747
|
-
_revalidatingPromise = null;
|
|
748
|
-
});
|
|
749
|
-
}, REVALIDATION_CHECK_MS);
|
|
750
|
-
_revalidationInterval.unref();
|
|
751
|
-
},
|
|
752
|
-
activate: async (key) => {
|
|
753
|
-
set({ error: null });
|
|
754
|
-
try {
|
|
755
|
-
const license = await activate(key);
|
|
756
|
-
set({ status: license.plan, license, degradation: "none" });
|
|
757
|
-
return true;
|
|
758
|
-
} catch (err) {
|
|
759
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
760
|
-
set({ error: msg });
|
|
761
|
-
return false;
|
|
762
|
-
}
|
|
763
|
-
},
|
|
764
|
-
deactivate: async () => {
|
|
765
|
-
const { license } = get();
|
|
766
|
-
if (license) {
|
|
767
|
-
const { remoteSuccess } = await deactivate(license);
|
|
768
|
-
if (!remoteSuccess) {
|
|
769
|
-
set({ status: "free", license: null, degradation: "none", error: "License removed locally but server deactivation failed. It may remain active remotely." });
|
|
770
|
-
return;
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
set({ status: "free", license: null, degradation: "none", error: null });
|
|
774
|
-
},
|
|
775
|
-
revalidate: async () => {
|
|
776
|
-
const { license } = get();
|
|
777
|
-
if (!license) return;
|
|
778
|
-
try {
|
|
779
|
-
await doRevalidation(license, set);
|
|
780
|
-
} catch (err) {
|
|
781
|
-
set({ error: err instanceof Error ? err.message : String(err) });
|
|
782
|
-
}
|
|
783
|
-
},
|
|
784
|
-
// Team is a superset of Pro — team users have full Pro access plus team features.
|
|
785
|
-
// Pro users do NOT get Team features (Compliance) without paying for the Team tier.
|
|
786
|
-
isPro: () => {
|
|
787
|
-
const s = get().status;
|
|
788
|
-
return s === "pro" || s === "team";
|
|
789
|
-
},
|
|
790
|
-
isTeam: () => get().status === "team"
|
|
791
|
-
}));
|
|
792
|
-
|
|
793
677
|
// src/hooks/use-keyboard.ts
|
|
794
678
|
import { useInput } from "ink";
|
|
795
679
|
|
|
796
680
|
// src/stores/modal-store.ts
|
|
797
|
-
import { create as
|
|
798
|
-
var useModalStore =
|
|
681
|
+
import { create as create2 } from "zustand";
|
|
682
|
+
var useModalStore = create2((set) => ({
|
|
799
683
|
_count: 0,
|
|
800
684
|
isOpen: false,
|
|
801
685
|
openModal: () => set((s) => {
|
|
@@ -1041,7 +925,7 @@ function useVisibleRows({
|
|
|
1041
925
|
}
|
|
1042
926
|
|
|
1043
927
|
// src/stores/brew-store.ts
|
|
1044
|
-
import { create as
|
|
928
|
+
import { create as create3 } from "zustand";
|
|
1045
929
|
var BREW_UPDATE_COOLDOWN_MS = 5 * 60 * 1e3;
|
|
1046
930
|
var fetchAllInFlight = null;
|
|
1047
931
|
var brewUpdateInFlight = null;
|
|
@@ -1055,7 +939,7 @@ function setError(set, key, error) {
|
|
|
1055
939
|
function recordFetchTime(set, key) {
|
|
1056
940
|
set((s) => ({ lastFetchedAt: { ...s.lastFetchedAt, [key]: Date.now() } }));
|
|
1057
941
|
}
|
|
1058
|
-
var useBrewStore =
|
|
942
|
+
var useBrewStore = create3((set, get) => ({
|
|
1059
943
|
formulae: [],
|
|
1060
944
|
casks: [],
|
|
1061
945
|
outdated: { formulae: [], casks: [] },
|
|
@@ -1196,7 +1080,7 @@ var useBrewStore = create4((set, get) => ({
|
|
|
1196
1080
|
}));
|
|
1197
1081
|
|
|
1198
1082
|
// src/stores/security-store.ts
|
|
1199
|
-
import { create as
|
|
1083
|
+
import { create as create4 } from "zustand";
|
|
1200
1084
|
|
|
1201
1085
|
// src/lib/security/osv-api.ts
|
|
1202
1086
|
var OSV_BATCH_URL = "https://api.osv.dev/v1/querybatch";
|
|
@@ -1469,7 +1353,7 @@ function verifyPro(license, status) {
|
|
|
1469
1353
|
|
|
1470
1354
|
// src/stores/security-store.ts
|
|
1471
1355
|
var CACHE_TTL_MS = 30 * 60 * 1e3;
|
|
1472
|
-
var useSecurityStore =
|
|
1356
|
+
var useSecurityStore = create4((set, get) => ({
|
|
1473
1357
|
summary: null,
|
|
1474
1358
|
loading: false,
|
|
1475
1359
|
error: null,
|
|
@@ -1497,8 +1381,8 @@ var useSecurityStore = create5((set, get) => ({
|
|
|
1497
1381
|
}));
|
|
1498
1382
|
|
|
1499
1383
|
// src/stores/brewfile-store.ts
|
|
1500
|
-
import { create as
|
|
1501
|
-
var useBrewfileStore =
|
|
1384
|
+
import { create as create5 } from "zustand";
|
|
1385
|
+
var useBrewfileStore = create5((set, get) => ({
|
|
1502
1386
|
schema: null,
|
|
1503
1387
|
drift: null,
|
|
1504
1388
|
loading: false,
|
|
@@ -1550,8 +1434,8 @@ var useBrewfileStore = create6((set, get) => ({
|
|
|
1550
1434
|
}));
|
|
1551
1435
|
|
|
1552
1436
|
// src/stores/sync-store.ts
|
|
1553
|
-
import { create as
|
|
1554
|
-
var useSyncStore =
|
|
1437
|
+
import { create as create6 } from "zustand";
|
|
1438
|
+
var useSyncStore = create6((set, get) => ({
|
|
1555
1439
|
config: null,
|
|
1556
1440
|
lastResult: null,
|
|
1557
1441
|
conflicts: [],
|
|
@@ -1602,8 +1486,8 @@ var useSyncStore = create7((set, get) => ({
|
|
|
1602
1486
|
}));
|
|
1603
1487
|
|
|
1604
1488
|
// src/stores/compliance-store.ts
|
|
1605
|
-
import { create as
|
|
1606
|
-
var useComplianceStore =
|
|
1489
|
+
import { create as create7 } from "zustand";
|
|
1490
|
+
var useComplianceStore = create7((set, get) => ({
|
|
1607
1491
|
policy: null,
|
|
1608
1492
|
report: null,
|
|
1609
1493
|
loading: false,
|
|
@@ -3245,7 +3129,7 @@ import { useEffect as useEffect14, useRef as useRef9, useState as useState11 } f
|
|
|
3245
3129
|
import { Box as Box25 } from "ink";
|
|
3246
3130
|
|
|
3247
3131
|
// src/stores/profile-store.ts
|
|
3248
|
-
import { create as
|
|
3132
|
+
import { create as create8 } from "zustand";
|
|
3249
3133
|
|
|
3250
3134
|
// src/lib/profiles/profile-manager.ts
|
|
3251
3135
|
import { readFile, writeFile as writeFile2, readdir, rm, rename } from "fs/promises";
|
|
@@ -3412,7 +3296,7 @@ function getIsPro() {
|
|
|
3412
3296
|
const { license, status } = useLicenseStore.getState();
|
|
3413
3297
|
return verifyPro(license, status);
|
|
3414
3298
|
}
|
|
3415
|
-
var useProfileStore =
|
|
3299
|
+
var useProfileStore = create8((set) => ({
|
|
3416
3300
|
profileNames: [],
|
|
3417
3301
|
selectedProfile: null,
|
|
3418
3302
|
loading: false,
|
|
@@ -3817,7 +3701,7 @@ import { useEffect as useEffect15, useRef as useRef10, useState as useState12 }
|
|
|
3817
3701
|
import { Box as Box26, Text as Text28 } from "ink";
|
|
3818
3702
|
|
|
3819
3703
|
// src/stores/cleanup-store.ts
|
|
3820
|
-
import { create as
|
|
3704
|
+
import { create as create9 } from "zustand";
|
|
3821
3705
|
|
|
3822
3706
|
// src/lib/cleanup/cleanup-analyzer.ts
|
|
3823
3707
|
import { execFile } from "child_process";
|
|
@@ -3898,7 +3782,7 @@ async function analyzeCleanup(isPro, formulae, leaves) {
|
|
|
3898
3782
|
}
|
|
3899
3783
|
|
|
3900
3784
|
// src/stores/cleanup-store.ts
|
|
3901
|
-
var useCleanupStore =
|
|
3785
|
+
var useCleanupStore = create9((set, get) => ({
|
|
3902
3786
|
summary: null,
|
|
3903
3787
|
selected: /* @__PURE__ */ new Set(),
|
|
3904
3788
|
loading: false,
|
|
@@ -4091,12 +3975,12 @@ import { useEffect as useEffect16, useState as useState13, useMemo as useMemo5 }
|
|
|
4091
3975
|
import { Box as Box27, Text as Text29 } from "ink";
|
|
4092
3976
|
|
|
4093
3977
|
// src/stores/history-store.ts
|
|
4094
|
-
import { create as
|
|
3978
|
+
import { create as create10 } from "zustand";
|
|
4095
3979
|
function getStrongIsPro() {
|
|
4096
3980
|
const { license, status } = useLicenseStore.getState();
|
|
4097
3981
|
return verifyPro(license, status);
|
|
4098
3982
|
}
|
|
4099
|
-
var useHistoryStore =
|
|
3983
|
+
var useHistoryStore = create10((set) => ({
|
|
4100
3984
|
entries: [],
|
|
4101
3985
|
loading: false,
|
|
4102
3986
|
error: null,
|
|
@@ -4668,7 +4552,7 @@ function AccountView() {
|
|
|
4668
4552
|
status === "pro" || status === "team" || status === "expired" ? `v ${t("hint_revalidate")} ` : "",
|
|
4669
4553
|
revalidating ? t("account_revalidating") : "",
|
|
4670
4554
|
" ",
|
|
4671
|
-
t("app_version", { version: "2.
|
|
4555
|
+
t("app_version", { version: "2.3.0" })
|
|
4672
4556
|
] }) })
|
|
4673
4557
|
] });
|
|
4674
4558
|
}
|
|
@@ -4678,7 +4562,7 @@ import { useCallback as useCallback3, useEffect as useEffect18, useRef as useRef
|
|
|
4678
4562
|
import { Box as Box30, Text as Text32 } from "ink";
|
|
4679
4563
|
|
|
4680
4564
|
// src/stores/rollback-store.ts
|
|
4681
|
-
import { create as
|
|
4565
|
+
import { create as create11 } from "zustand";
|
|
4682
4566
|
|
|
4683
4567
|
// src/lib/rollback/rollback-engine.ts
|
|
4684
4568
|
import { readdir as readdir2 } from "fs/promises";
|
|
@@ -4857,7 +4741,7 @@ async function* executeRollbackPlan(plan, isPro) {
|
|
|
4857
4741
|
}
|
|
4858
4742
|
|
|
4859
4743
|
// src/stores/rollback-store.ts
|
|
4860
|
-
var useRollbackStore =
|
|
4744
|
+
var useRollbackStore = create11((set) => ({
|
|
4861
4745
|
snapshots: [],
|
|
4862
4746
|
loading: false,
|
|
4863
4747
|
error: null,
|
|
@@ -6176,7 +6060,7 @@ async function reportError(err, context = {}) {
|
|
|
6176
6060
|
const config = await resolveConfig();
|
|
6177
6061
|
if (!config.enabled || !config.endpoint) return;
|
|
6178
6062
|
const machineId = await getMachineId();
|
|
6179
|
-
const version = true ? "2.
|
|
6063
|
+
const version = true ? "2.3.0" : "unknown";
|
|
6180
6064
|
await postReport(buildReport("error", err, context, machineId, version), config);
|
|
6181
6065
|
}
|
|
6182
6066
|
async function installCrashReporter() {
|
|
@@ -6185,7 +6069,7 @@ async function installCrashReporter() {
|
|
|
6185
6069
|
if (!config.enabled || !config.endpoint) return;
|
|
6186
6070
|
_installed = true;
|
|
6187
6071
|
const machineId = await getMachineId();
|
|
6188
|
-
const version = true ? "2.
|
|
6072
|
+
const version = true ? "2.3.0" : "unknown";
|
|
6189
6073
|
process.on("uncaughtException", (err) => {
|
|
6190
6074
|
void postReport(buildReport("fatal", err, { kind: "uncaughtException" }, machineId, version), config);
|
|
6191
6075
|
});
|
|
@@ -6200,7 +6084,18 @@ import { jsx as jsx39 } from "react/jsx-runtime";
|
|
|
6200
6084
|
var [, , command, arg] = process.argv;
|
|
6201
6085
|
async function runCli() {
|
|
6202
6086
|
if (command === "--version" || command === "-v" || command === "version") {
|
|
6203
|
-
|
|
6087
|
+
const cliVersion = "2.3.0";
|
|
6088
|
+
process.stdout.write(cliVersion + "\n");
|
|
6089
|
+
if (process.platform === "darwin") {
|
|
6090
|
+
try {
|
|
6091
|
+
const { readBrewTUIBarVersion } = await import("./version-check-3JMI6HOO.js");
|
|
6092
|
+
const appVersion = await readBrewTUIBarVersion();
|
|
6093
|
+
if (appVersion && appVersion !== cliVersion) {
|
|
6094
|
+
process.stderr.write(t("cli_versionMismatchWarning", { installed: appVersion, expected: cliVersion }) + "\n");
|
|
6095
|
+
}
|
|
6096
|
+
} catch {
|
|
6097
|
+
}
|
|
6098
|
+
}
|
|
6204
6099
|
return;
|
|
6205
6100
|
}
|
|
6206
6101
|
await ensureDataDirs();
|
|
@@ -6308,7 +6203,7 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6308
6203
|
} catch {
|
|
6309
6204
|
}
|
|
6310
6205
|
try {
|
|
6311
|
-
const { loadBrewfile: loadBrewfile2, computeDrift: computeDrift2 } = await import("./brewfile-manager-
|
|
6206
|
+
const { loadBrewfile: loadBrewfile2, computeDrift: computeDrift2 } = await import("./brewfile-manager-DNRM6CQ7.js");
|
|
6312
6207
|
const schema = await loadBrewfile2();
|
|
6313
6208
|
if (schema) {
|
|
6314
6209
|
const drift = await computeDrift2(schema);
|
|
@@ -6317,7 +6212,7 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6317
6212
|
} catch {
|
|
6318
6213
|
}
|
|
6319
6214
|
try {
|
|
6320
|
-
const { loadSyncConfig: loadSyncConfig2 } = await import("./sync-engine-
|
|
6215
|
+
const { loadSyncConfig: loadSyncConfig2 } = await import("./sync-engine-KTH4K3NG.js");
|
|
6321
6216
|
const syncConfig = await loadSyncConfig2();
|
|
6322
6217
|
if (syncConfig?.lastSync) {
|
|
6323
6218
|
console.log(`Sync: last sync ${formatDate(syncConfig.lastSync)}`);
|
|
@@ -6341,7 +6236,7 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6341
6236
|
if (command === "install-brewbar") {
|
|
6342
6237
|
console.warn(t("cli_brewtuibarLegacyAlias", { legacy: command, current: "install-brew-tui-bar" }));
|
|
6343
6238
|
}
|
|
6344
|
-
const { installBrewTUIBar } = await import("./brew-tui-bar-installer-
|
|
6239
|
+
const { installBrewTUIBar } = await import("./brew-tui-bar-installer-LS6N5D5P.js");
|
|
6345
6240
|
try {
|
|
6346
6241
|
console.log(t("cli_brewtuibarInstalling"));
|
|
6347
6242
|
await installBrewTUIBar(false, arg === "--force");
|
|
@@ -6356,7 +6251,7 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6356
6251
|
if (command === "uninstall-brewbar") {
|
|
6357
6252
|
console.warn(t("cli_brewtuibarLegacyAlias", { legacy: command, current: "uninstall-brew-tui-bar" }));
|
|
6358
6253
|
}
|
|
6359
|
-
const { uninstallBrewTUIBar } = await import("./brew-tui-bar-installer-
|
|
6254
|
+
const { uninstallBrewTUIBar } = await import("./brew-tui-bar-installer-LS6N5D5P.js");
|
|
6360
6255
|
try {
|
|
6361
6256
|
await uninstallBrewTUIBar();
|
|
6362
6257
|
console.log(t("cli_brewtuibarUninstalled"));
|
|
@@ -6366,6 +6261,11 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6366
6261
|
}
|
|
6367
6262
|
return;
|
|
6368
6263
|
}
|
|
6264
|
+
if (command === "doctor") {
|
|
6265
|
+
const { runDoctor } = await import("./doctor-VRBE2VXF.js");
|
|
6266
|
+
await runDoctor();
|
|
6267
|
+
return;
|
|
6268
|
+
}
|
|
6369
6269
|
if (command === "delete-account") {
|
|
6370
6270
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
6371
6271
|
const answer = await rl.question(t("delete_account_confirm") + " (y/N): ");
|
|
@@ -6386,7 +6286,7 @@ Snapshots: ${snapshots.length} (latest: ${latest ? formatDate(latest.capturedAt)
|
|
|
6386
6286
|
async function ensureBrewTUIBarRunning() {
|
|
6387
6287
|
if (process.platform !== "darwin") return;
|
|
6388
6288
|
await useLicenseStore.getState().initialize();
|
|
6389
|
-
const { syncAndLaunchBrewTUIBar } = await import("./brew-tui-bar-installer-
|
|
6289
|
+
const { syncAndLaunchBrewTUIBar } = await import("./brew-tui-bar-installer-LS6N5D5P.js");
|
|
6390
6290
|
await syncAndLaunchBrewTUIBar();
|
|
6391
6291
|
}
|
|
6392
6292
|
runCli().catch((err) => {
|