@dylanpiercey/work 0.0.86 → 0.0.88
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/bin/work.mjs +9 -0
- package/dist/{_CExzMbX7.js → _BdPU13C_.js} +16 -2
- package/dist/{_D5j6bTJl.js → _CoU5siEE.js} +79 -72
- package/dist/{_BDBtGsdY.js → _Cz8F94WW.js} +291 -257
- package/dist/_Dj0ybKwE.js +2 -0
- package/dist/index.mjs +622 -454
- package/dist/public/assets/{_C_GySFna.js → _07qJecSc.js} +1 -1
- package/dist/public/assets/_07qJecSc.js.br +0 -0
- package/dist/public/assets/{_B_hYt6WL.js → _B04Rz6or.js} +1 -1
- package/dist/public/assets/_B04Rz6or.js.br +0 -0
- package/dist/public/assets/{_olWgegfx.js → _B07KnwWv.js} +1 -1
- package/dist/public/assets/{_CiyoX76R.js → _B1fvNVfH.js} +1 -1
- package/dist/public/assets/_B1fvNVfH.js.br +0 -0
- package/dist/public/assets/{_4c6ZP_DE2.js → _B8HQGdOD2.js} +1 -1
- package/dist/public/assets/_B8HQGdOD2.js.br +0 -0
- package/dist/public/assets/{_Drl9WI2Q.js → _B9D_0ZQr.js} +1 -1
- package/dist/public/assets/_B9D_0ZQr.js.br +0 -0
- package/dist/public/assets/{_CVI5Z1ap.js → _BG6UrECj.js} +1 -1
- package/dist/public/assets/_BG6UrECj.js.br +0 -0
- package/dist/public/assets/{_DfayPfGn.js → _BJhC5Swa.js} +1 -1
- package/dist/public/assets/_BJhC5Swa.js.br +0 -0
- package/dist/public/assets/{_B_iQ_vXs.js → _BK1AsBrt.js} +1 -1
- package/dist/public/assets/_BK1AsBrt.js.br +0 -0
- package/dist/public/assets/{_DOiBi4I0.js → _BNlnm23c.js} +1 -1
- package/dist/public/assets/_BNlnm23c.js.br +0 -0
- package/dist/public/assets/{_8DabaQc42.js → _BOo2ADNE2.js} +1 -1
- package/dist/public/assets/_BOo2ADNE2.js.br +0 -0
- package/dist/public/assets/{_CQ8XIG32.js → _BR-j-QRg.js} +1 -1
- package/dist/public/assets/_BR-j-QRg.js.br +0 -0
- package/dist/public/assets/{_D8NtarGl2.js → _BWg4qN7U2.js} +1 -1
- package/dist/public/assets/_BWg4qN7U2.js.br +0 -0
- package/dist/public/assets/{_DlKqfl3x.js → _BYwpUM-g.js} +1 -1
- package/dist/public/assets/_BYwpUM-g.js.br +0 -0
- package/dist/public/assets/{_Byj_kDek2.js → _BcDcSdJH2.js} +1 -1
- package/dist/public/assets/_BcDcSdJH2.js.br +0 -0
- package/dist/public/assets/{_BrHg1vmp2.js → _BcboNVrv2.js} +1 -1
- package/dist/public/assets/_BcboNVrv2.js.br +0 -0
- package/dist/public/assets/{_ZPETJBJo2.js → _Bed4-hRw2.js} +1 -1
- package/dist/public/assets/_Bed4-hRw2.js.br +0 -0
- package/dist/public/assets/{_B38vzMde2.js → _Bev6eZfU2.js} +1 -1
- package/dist/public/assets/_Bev6eZfU2.js.br +0 -0
- package/dist/public/assets/{_DtvBiqKq.js → _BqGM5Qj0.js} +1 -1
- package/dist/public/assets/_BqGM5Qj0.js.br +0 -0
- package/dist/public/assets/{_BE6VqQVA.js → _BrwDJWFC.js} +1 -1
- package/dist/public/assets/_BrwDJWFC.js.br +0 -0
- package/dist/public/assets/{_DymTiS2l2.js → _Bw9AEf9U2.js} +1 -1
- package/dist/public/assets/_Bw9AEf9U2.js.br +0 -0
- package/dist/public/assets/{_En2Jcy8J.js → _BwbHWVEx.js} +1 -1
- package/dist/public/assets/_BwbHWVEx.js.br +0 -0
- package/dist/public/assets/{_Q62npO-T.js → _BwuFR15N.js} +1 -1
- package/dist/public/assets/_BwuFR15N.js.br +0 -0
- package/dist/public/assets/{_CN4RWjdg.js → _C3--a3ig.js} +1 -1
- package/dist/public/assets/_C3--a3ig.js.br +0 -0
- package/dist/public/assets/{_BRgDp6dq2.js → _C3ByoAdu2.js} +1 -1
- package/dist/public/assets/_C3ByoAdu2.js.br +0 -0
- package/dist/public/assets/{_BXoOogd_.js → _C7T0iOcK.js} +1 -1
- package/dist/public/assets/_C7T0iOcK.js.br +0 -0
- package/dist/public/assets/{_BqEupx9T.js → _CKZUxuhA.js} +1 -1
- package/dist/public/assets/_CKZUxuhA.js.br +0 -0
- package/dist/public/assets/{_CR7jZl_o.js → _CPukMy5X.js} +1 -1
- package/dist/public/assets/_CPukMy5X.js.br +0 -0
- package/dist/public/assets/{_BcLoolnz2.js → _CRi3sQaK2.js} +1 -1
- package/dist/public/assets/_CRi3sQaK2.js.br +0 -0
- package/dist/public/assets/{_1MO3zLi0.js → _CWGKayAn.js} +1 -1
- package/dist/public/assets/_CWGKayAn.js.br +0 -0
- package/dist/public/assets/{_BVR2bnH7.js → _CWMWI6ue.js} +1 -1
- package/dist/public/assets/_CWMWI6ue.js.br +0 -0
- package/dist/public/assets/{_DboFmLJ5.js → _CZ4weotP.js} +1 -1
- package/dist/public/assets/_CZ4weotP.js.br +0 -0
- package/dist/public/assets/{_B7tW52ox2.js → _CdOTbzEk2.js} +1 -1
- package/dist/public/assets/_CdOTbzEk2.js.br +0 -0
- package/dist/public/assets/{_CXbfNROI.js → _CkjdmXvh.js} +1 -1
- package/dist/public/assets/_CkjdmXvh.js.br +0 -0
- package/dist/public/assets/{_CUy49fiW.js → _Cld64l7w.js} +1 -1
- package/dist/public/assets/_Cld64l7w.js.br +0 -0
- package/dist/public/assets/{_DHjOV863.js → _CmY7d5sh.js} +1 -1
- package/dist/public/assets/_CmY7d5sh.js.br +0 -0
- package/dist/public/assets/{_DHQRi0uw2.js → _CpwxuUbM2.js} +1 -1
- package/dist/public/assets/_CpwxuUbM2.js.br +0 -0
- package/dist/public/assets/{_C669lqE1.js → _Cshjy-tr.js} +1 -1
- package/dist/public/assets/_Cshjy-tr.js.br +0 -0
- package/dist/public/assets/{_BDKexg9K.js → _Cwzls7ul.js} +1 -1
- package/dist/public/assets/{_BDKexg9K.js.br → _Cwzls7ul.js.br} +0 -0
- package/dist/public/assets/{_Bl32WbGR.js → _Cx97qUQa.js} +1 -1
- package/dist/public/assets/_Cx97qUQa.js.br +0 -0
- package/dist/public/assets/{_BjHYQyTW2.js → _CxUl3SEz2.js} +1 -1
- package/dist/public/assets/_CxUl3SEz2.js.br +0 -0
- package/dist/public/assets/{_BpaSM2Ut.js → _CyD33Xwe.js} +1 -1
- package/dist/public/assets/_CyD33Xwe.js.br +0 -0
- package/dist/public/assets/{_Cb4BQ87V2.js → _D45Y3kzM2.js} +1 -1
- package/dist/public/assets/_D45Y3kzM2.js.br +0 -0
- package/dist/public/assets/{_CekDvoOm2.js → _DCmGRWXl2.js} +1 -1
- package/dist/public/assets/_DCmGRWXl2.js.br +0 -0
- package/dist/public/assets/{_ELEfU1ZJ2.js → _DESBqf832.js} +1 -1
- package/dist/public/assets/_DESBqf832.js.br +0 -0
- package/dist/public/assets/{_LIg4gQDB2.js → _DHmeJbF12.js} +1 -1
- package/dist/public/assets/_DHmeJbF12.js.br +0 -0
- package/dist/public/assets/{_B6HRx3mv.js → _DIOpQGuO.js} +1 -1
- package/dist/public/assets/_DIOpQGuO.js.br +0 -0
- package/dist/public/assets/{_3_osenBu.js → _DO2j2wai.js} +1 -1
- package/dist/public/assets/_DO2j2wai.js.br +0 -0
- package/dist/public/assets/{_t1bRY80J.js → _DOihbSbE.js} +1 -1
- package/dist/public/assets/_DOihbSbE.js.br +0 -0
- package/dist/public/assets/{_RRBED5IT.js → _DW5_6QEJ.js} +1 -1
- package/dist/public/assets/_DW5_6QEJ.js.br +0 -0
- package/dist/public/assets/{_BW-Z7z3K.js → _DY1ZTiKf.js} +20 -20
- package/dist/public/assets/_DY1ZTiKf.js.br +0 -0
- package/dist/public/assets/{_BneLpkUj.js → _Df4EyoB-.js} +1 -1
- package/dist/public/assets/_Df4EyoB-.js.br +0 -0
- package/dist/public/assets/{_CXQb7FHW.js → _Dq3Fnsny.js} +1 -1
- package/dist/public/assets/_Dq3Fnsny.js.br +0 -0
- package/dist/public/assets/{_DRSO79wd.js → _DrOqesVG.js} +1 -1
- package/dist/public/assets/_DrOqesVG.js.br +0 -0
- package/dist/public/assets/{_DLV-pFpn.js → _Dtt87bkn.js} +1 -1
- package/dist/public/assets/_Dtt87bkn.js.br +0 -0
- package/dist/public/assets/{_D7MBKQAt.js → _DwGOtsEM.js} +1 -1
- package/dist/public/assets/_DwGOtsEM.js.br +0 -0
- package/dist/public/assets/{_BmRxh0Eh2.js → _DwK4Diby2.js} +1 -1
- package/dist/public/assets/{_CR_N8Jxw2.js → _Dye_WaXg2.js} +1 -1
- package/dist/public/assets/_Dye_WaXg2.js.br +0 -0
- package/dist/public/assets/{_IuMur5Ym.js → _Dz2BYxkE.js} +1 -1
- package/dist/public/assets/_Dz2BYxkE.js.br +0 -0
- package/dist/public/assets/{_sRlPXrhp2.js → _EWc7i02-2.js} +1 -1
- package/dist/public/assets/_EWc7i02-2.js.br +0 -0
- package/dist/public/assets/{_DxQEc7cj2.js → _EoZ_xBXq2.js} +1 -1
- package/dist/public/assets/{_BfKlqNx9.js → _Fiqv8D5E.js} +1 -1
- package/dist/public/assets/_Fiqv8D5E.js.br +0 -0
- package/dist/public/assets/{_BuVTK0nK.js → _GrrScuAr.js} +1 -1
- package/dist/public/assets/_GrrScuAr.js.br +0 -0
- package/dist/public/assets/{_DbJsbj5D.js → _Hqm5mf9S.js} +1 -1
- package/dist/public/assets/_Hqm5mf9S.js.br +0 -0
- package/dist/public/assets/{_BdWFr75M2.js → _U8cSRlqn2.js} +1 -1
- package/dist/public/assets/_U8cSRlqn2.js.br +0 -0
- package/dist/public/assets/{_DIFhW7d2.js → _aJR0pEfl.js} +1 -1
- package/dist/public/assets/_aJR0pEfl.js.br +0 -0
- package/dist/public/assets/{_oLZchIMS.js → _aWRBkGVy.js} +1 -1
- package/dist/public/assets/_aWRBkGVy.js.br +0 -0
- package/dist/public/assets/{_BpQROnKB.js → _cCTeyYAY.js} +1 -1
- package/dist/public/assets/_cCTeyYAY.js.br +0 -0
- package/dist/public/assets/{_c1k15BL72.js → _i31Rddpf2.js} +1 -1
- package/dist/public/assets/_i31Rddpf2.js.br +0 -0
- package/dist/public/assets/{_BxhMnvoI2.js → _ix4YrGtW2.js} +1 -1
- package/dist/public/assets/_ix4YrGtW2.js.br +0 -0
- package/dist/public/assets/{_YkjHoUJ2.js → _j4GDdAJs.js} +1 -1
- package/dist/public/assets/_j4GDdAJs.js.br +0 -0
- package/dist/public/assets/{_gzI_71qk.js → _k2rzFYXw.js} +1 -1
- package/dist/public/assets/_k2rzFYXw.js.br +0 -0
- package/dist/public/assets/{_HJ4l6yxN.js → _nNPOLNo7.js} +1 -1
- package/dist/public/assets/_nNPOLNo7.js.br +0 -0
- package/dist/public/assets/{_D31bJ4DY.js → _vfKZvCts.js} +1 -1
- package/dist/public/assets/_vfKZvCts.js.br +0 -0
- package/dist/public/assets/{_DK0ZyRpN.js → _wu7LU_F-.js} +1 -1
- package/dist/public/assets/_wu7LU_F-.js.br +0 -0
- package/dist/public/assets/{_TNYXBRTD.js → _x05B0wD3.js} +6 -6
- package/dist/public/assets/_x05B0wD3.js.br +0 -0
- package/dist/public/assets/app-page-DOL8nhko.css +1 -0
- package/dist/public/assets/app-page-DOL8nhko.css.br +0 -0
- package/dist/public/assets/diff-view-6DYaXCWP.css +1 -0
- package/dist/public/assets/diff-view-6DYaXCWP.css.br +0 -0
- package/dist/public/assets/new-hKsQDica.js +1 -0
- package/dist/public/assets/settings-hKsQDica.js +1 -0
- package/dist/public/assets/w-hKsQDica.js +1 -0
- package/dist/public/assets/w._-CyAQSfuD.js +1 -0
- package/dist/public/assets/w._-hKsQDica.js +1 -0
- package/package.json +1 -1
- package/dist/_DkOK1JPO.js +0 -2
- package/dist/public/assets/_1MO3zLi0.js.br +0 -0
- package/dist/public/assets/_3_osenBu.js.br +0 -0
- package/dist/public/assets/_4c6ZP_DE2.js.br +0 -0
- package/dist/public/assets/_8DabaQc42.js.br +0 -0
- package/dist/public/assets/_B38vzMde2.js.br +0 -0
- package/dist/public/assets/_B6HRx3mv.js.br +0 -0
- package/dist/public/assets/_B7tW52ox2.js.br +0 -0
- package/dist/public/assets/_BE6VqQVA.js.br +0 -0
- package/dist/public/assets/_BRgDp6dq2.js.br +0 -0
- package/dist/public/assets/_BVR2bnH7.js.br +0 -0
- package/dist/public/assets/_BW-Z7z3K.js.br +0 -0
- package/dist/public/assets/_BXoOogd_.js.br +0 -0
- package/dist/public/assets/_B_hYt6WL.js.br +0 -0
- package/dist/public/assets/_B_iQ_vXs.js.br +0 -0
- package/dist/public/assets/_BcLoolnz2.js.br +0 -0
- package/dist/public/assets/_BdWFr75M2.js.br +0 -0
- package/dist/public/assets/_BfKlqNx9.js.br +0 -0
- package/dist/public/assets/_BjHYQyTW2.js.br +0 -0
- package/dist/public/assets/_Bl32WbGR.js.br +0 -0
- package/dist/public/assets/_BneLpkUj.js.br +0 -0
- package/dist/public/assets/_BpQROnKB.js.br +0 -0
- package/dist/public/assets/_BpaSM2Ut.js.br +0 -0
- package/dist/public/assets/_BqEupx9T.js.br +0 -0
- package/dist/public/assets/_BrHg1vmp2.js.br +0 -0
- package/dist/public/assets/_BuVTK0nK.js.br +0 -0
- package/dist/public/assets/_BxhMnvoI2.js.br +0 -0
- package/dist/public/assets/_Byj_kDek2.js.br +0 -0
- package/dist/public/assets/_C669lqE1.js.br +0 -0
- package/dist/public/assets/_CN4RWjdg.js.br +0 -0
- package/dist/public/assets/_CQ8XIG32.js.br +0 -0
- package/dist/public/assets/_CR7jZl_o.js.br +0 -0
- package/dist/public/assets/_CR_N8Jxw2.js.br +0 -0
- package/dist/public/assets/_CUy49fiW.js.br +0 -0
- package/dist/public/assets/_CVI5Z1ap.js.br +0 -0
- package/dist/public/assets/_CXQb7FHW.js.br +0 -0
- package/dist/public/assets/_CXbfNROI.js.br +0 -0
- package/dist/public/assets/_C_GySFna.js.br +0 -0
- package/dist/public/assets/_Cb4BQ87V2.js.br +0 -0
- package/dist/public/assets/_CekDvoOm2.js.br +0 -0
- package/dist/public/assets/_CiyoX76R.js.br +0 -0
- package/dist/public/assets/_D31bJ4DY.js.br +0 -0
- package/dist/public/assets/_D7MBKQAt.js.br +0 -0
- package/dist/public/assets/_D8NtarGl2.js.br +0 -0
- package/dist/public/assets/_DHQRi0uw2.js.br +0 -0
- package/dist/public/assets/_DHjOV863.js.br +0 -0
- package/dist/public/assets/_DIFhW7d2.js.br +0 -0
- package/dist/public/assets/_DK0ZyRpN.js.br +0 -0
- package/dist/public/assets/_DLV-pFpn.js.br +0 -0
- package/dist/public/assets/_DOiBi4I0.js.br +0 -0
- package/dist/public/assets/_DRSO79wd.js.br +0 -0
- package/dist/public/assets/_DbJsbj5D.js.br +0 -0
- package/dist/public/assets/_DboFmLJ5.js.br +0 -0
- package/dist/public/assets/_DfayPfGn.js.br +0 -0
- package/dist/public/assets/_DlKqfl3x.js.br +0 -0
- package/dist/public/assets/_Drl9WI2Q.js.br +0 -0
- package/dist/public/assets/_DtvBiqKq.js.br +0 -0
- package/dist/public/assets/_DymTiS2l2.js.br +0 -0
- package/dist/public/assets/_ELEfU1ZJ2.js.br +0 -0
- package/dist/public/assets/_En2Jcy8J.js.br +0 -0
- package/dist/public/assets/_HJ4l6yxN.js.br +0 -0
- package/dist/public/assets/_IuMur5Ym.js.br +0 -0
- package/dist/public/assets/_LIg4gQDB2.js.br +0 -0
- package/dist/public/assets/_Q62npO-T.js.br +0 -0
- package/dist/public/assets/_RRBED5IT.js.br +0 -0
- package/dist/public/assets/_TNYXBRTD.js.br +0 -0
- package/dist/public/assets/_YkjHoUJ2.js.br +0 -0
- package/dist/public/assets/_ZPETJBJo2.js.br +0 -0
- package/dist/public/assets/_c1k15BL72.js.br +0 -0
- package/dist/public/assets/_gzI_71qk.js.br +0 -0
- package/dist/public/assets/_oLZchIMS.js.br +0 -0
- package/dist/public/assets/_sRlPXrhp2.js.br +0 -0
- package/dist/public/assets/_t1bRY80J.js.br +0 -0
- package/dist/public/assets/app-page-D2MGNs24.css +0 -1
- package/dist/public/assets/app-page-D2MGNs24.css.br +0 -0
- package/dist/public/assets/diff-view-UG7NdbBG.css +0 -1
- package/dist/public/assets/diff-view-UG7NdbBG.css.br +0 -0
- package/dist/public/assets/new-BAusPvMv.js +0 -1
- package/dist/public/assets/settings-BAusPvMv.js +0 -1
- package/dist/public/assets/w-BAusPvMv.js +0 -1
- package/dist/public/assets/w._-BAusPvMv.js +0 -1
- package/dist/public/assets/w._-CuEUWcak.js +0 -1
package/bin/work.mjs
CHANGED
|
@@ -473,6 +473,15 @@ function serviceEnv() {
|
|
|
473
473
|
if (value) env[key] = value;
|
|
474
474
|
}
|
|
475
475
|
if (Object.keys(env).some((k) => /^https?_proxy$/i.test(k))) env.NODE_USE_ENV_PROXY = "1";
|
|
476
|
+
// launchd passes no locale, and under the C locale tmux mangles the \t
|
|
477
|
+
// separators the server splits pane listings on — every session read dead
|
|
478
|
+
// on macOS. The server defends itself (exec.ts utf8Locale), but the
|
|
479
|
+
// service env is what panes and helper processes inherit, so carry the
|
|
480
|
+
// shell's UTF-8 locale through, or pin a bare one.
|
|
481
|
+
const locale = ["LC_ALL", "LC_CTYPE", "LANG"]
|
|
482
|
+
.map((key) => (key in process.env ? process.env[key] : installed[key]))
|
|
483
|
+
.find((value) => /utf-?8/i.test(value || ""));
|
|
484
|
+
env.LC_CTYPE = locale || (process.platform === "darwin" ? "UTF-8" : "C.UTF-8");
|
|
476
485
|
return env;
|
|
477
486
|
}
|
|
478
487
|
|
|
@@ -61,7 +61,21 @@ var tmux = (args, env) => run$1("tmux", [
|
|
|
61
61
|
"-L",
|
|
62
62
|
TMUX_SOCKET,
|
|
63
63
|
...args
|
|
64
|
-
], void 0, env);
|
|
64
|
+
], void 0, utf8Locale(env ?? process.env));
|
|
65
|
+
/** launchd starts the service with no locale at all, and under a non-UTF-8
|
|
66
|
+
* locale tmux replaces characters it deems unprintable in format output —
|
|
67
|
+
* including the \t separators sessionStates and the scraper split on, which
|
|
68
|
+
* came back as `_` and made every session read dead on macOS. Panes get a
|
|
69
|
+
* UTF-8 locale from cleanEnv; our own tmux clients need the same guarantee. */
|
|
70
|
+
function utf8Locale(env) {
|
|
71
|
+
const out = {};
|
|
72
|
+
for (const [key, value] of Object.entries(env)) if (value !== void 0) out[key] = value;
|
|
73
|
+
if (!/utf-?8/i.test(out.LC_ALL || out.LC_CTYPE || out.LANG || "")) {
|
|
74
|
+
delete out.LC_ALL;
|
|
75
|
+
out.LC_CTYPE = process.platform === "darwin" ? "UTF-8" : "C.UTF-8";
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
65
79
|
//#endregion
|
|
66
80
|
//#region src/server/db.ts
|
|
67
81
|
var db = new DatabaseSync(path.join(config.dataDir, "work.db"));
|
|
@@ -6505,7 +6519,7 @@ function publishChange(sessionId) {
|
|
|
6505
6519
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
6506
6520
|
if (row?.workspace_id) {
|
|
6507
6521
|
const workspaceId = row.workspace_id;
|
|
6508
|
-
import("./
|
|
6522
|
+
import("./_Dj0ybKwE.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
6509
6523
|
return;
|
|
6510
6524
|
}
|
|
6511
6525
|
publish("sessions.changed");
|
|
@@ -2162,8 +2162,82 @@ var toast_default = _template("A", (input) => {
|
|
|
2162
2162
|
});
|
|
2163
2163
|
_resume_branch($scope0_id);
|
|
2164
2164
|
});
|
|
2165
|
-
|
|
2166
|
-
|
|
2165
|
+
//#endregion
|
|
2166
|
+
//#region src/client/prefs.ts
|
|
2167
|
+
/** UI preferences, stored server-side (settings table) so every device
|
|
2168
|
+
* sees the same state — nothing user-visible is per-browser. The map is
|
|
2169
|
+
* seeded from SSR (`hydrate`) and refreshed by `sync()`; getters return
|
|
2170
|
+
* defaults only before either runs. Writes update the map immediately and
|
|
2171
|
+
* post fire-and-forget. */
|
|
2172
|
+
var prefs = /* @__PURE__ */ new Map();
|
|
2173
|
+
var written = /* @__PURE__ */ new Set();
|
|
2174
|
+
function get(key) {
|
|
2175
|
+
return prefs.get(key) ?? null;
|
|
2176
|
+
}
|
|
2177
|
+
function set(key, value) {
|
|
2178
|
+
written.add(key);
|
|
2179
|
+
if (value === null) prefs.delete(key);
|
|
2180
|
+
else prefs.set(key, value);
|
|
2181
|
+
post(key, value);
|
|
2182
|
+
}
|
|
2183
|
+
function post(key, value) {
|
|
2184
|
+
return fetch("/api/prefs", {
|
|
2185
|
+
method: "POST",
|
|
2186
|
+
headers: { "content-type": "application/json" },
|
|
2187
|
+
body: JSON.stringify({
|
|
2188
|
+
key,
|
|
2189
|
+
value
|
|
2190
|
+
}),
|
|
2191
|
+
keepalive: true
|
|
2192
|
+
}).catch(() => {});
|
|
2193
|
+
}
|
|
2194
|
+
function sideNavOpen() {
|
|
2195
|
+
return get("side-nav") !== "0";
|
|
2196
|
+
}
|
|
2197
|
+
function workspaceTab(workspaceId) {
|
|
2198
|
+
return get(`tab:${workspaceId}`);
|
|
2199
|
+
}
|
|
2200
|
+
function setWorkspaceTab(workspaceId, sessionId) {
|
|
2201
|
+
set(`tab:${workspaceId}`, sessionId);
|
|
2202
|
+
}
|
|
2203
|
+
function diffTreeOpen() {
|
|
2204
|
+
return get("diff-tree") !== "0";
|
|
2205
|
+
}
|
|
2206
|
+
function diffScope() {
|
|
2207
|
+
const v = get("diff-scope");
|
|
2208
|
+
if (v === "working" || v === "dirty") return v;
|
|
2209
|
+
return get("diff-uncommitted") === "1" ? "working" : "committed";
|
|
2210
|
+
}
|
|
2211
|
+
function setDiffScope(scope) {
|
|
2212
|
+
set("diff-scope", scope);
|
|
2213
|
+
}
|
|
2214
|
+
/** Review file filter, per workspace — survives a reload and follows the
|
|
2215
|
+
* review to another device. */
|
|
2216
|
+
function diffFilter(workspaceId) {
|
|
2217
|
+
return get(`diff-filter:${workspaceId}`) || "";
|
|
2218
|
+
}
|
|
2219
|
+
function diffPos(workspaceId) {
|
|
2220
|
+
const v = get(`diff-pos:${workspaceId}`);
|
|
2221
|
+
if (!v) return null;
|
|
2222
|
+
try {
|
|
2223
|
+
const p = JSON.parse(v);
|
|
2224
|
+
return p && typeof p.key === "string" ? p : null;
|
|
2225
|
+
} catch {
|
|
2226
|
+
return null;
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
function setDiffPos(workspaceId, pos) {
|
|
2230
|
+
set(`diff-pos:${workspaceId}`, pos ? JSON.stringify(pos) : null);
|
|
2231
|
+
}
|
|
2232
|
+
function theme() {
|
|
2233
|
+
const v = get("theme");
|
|
2234
|
+
return v === "light" || v === "dark" ? v : "system";
|
|
2235
|
+
}
|
|
2236
|
+
function setTheme(mode) {
|
|
2237
|
+
set("theme", mode === "system" ? null : mode);
|
|
2238
|
+
}
|
|
2239
|
+
var sectionCount = "_bl _I _J";
|
|
2240
|
+
var row = "_bw _bo";
|
|
2167
2241
|
var iconBtn = "_0 _j";
|
|
2168
2242
|
//#endregion
|
|
2169
2243
|
//#region src/tags/icons/icon-refresh.marko
|
|
@@ -2259,73 +2333,6 @@ function fuzzy(query, text) {
|
|
|
2259
2333
|
return true;
|
|
2260
2334
|
}
|
|
2261
2335
|
//#endregion
|
|
2262
|
-
//#region src/client/prefs.ts
|
|
2263
|
-
/** UI preferences, stored server-side (settings table) so every device
|
|
2264
|
-
* sees the same state — nothing user-visible is per-browser. The map is
|
|
2265
|
-
* seeded from SSR (`hydrate`) and refreshed by `sync()`; getters return
|
|
2266
|
-
* defaults only before either runs. Writes update the map immediately and
|
|
2267
|
-
* post fire-and-forget. */
|
|
2268
|
-
var prefs = /* @__PURE__ */ new Map();
|
|
2269
|
-
var written = /* @__PURE__ */ new Set();
|
|
2270
|
-
function get(key) {
|
|
2271
|
-
return prefs.get(key) ?? null;
|
|
2272
|
-
}
|
|
2273
|
-
function set(key, value) {
|
|
2274
|
-
written.add(key);
|
|
2275
|
-
if (value === null) prefs.delete(key);
|
|
2276
|
-
else prefs.set(key, value);
|
|
2277
|
-
post(key, value);
|
|
2278
|
-
}
|
|
2279
|
-
function post(key, value) {
|
|
2280
|
-
return fetch("/api/prefs", {
|
|
2281
|
-
method: "POST",
|
|
2282
|
-
headers: { "content-type": "application/json" },
|
|
2283
|
-
body: JSON.stringify({
|
|
2284
|
-
key,
|
|
2285
|
-
value
|
|
2286
|
-
}),
|
|
2287
|
-
keepalive: true
|
|
2288
|
-
}).catch(() => {});
|
|
2289
|
-
}
|
|
2290
|
-
function sideNavOpen() {
|
|
2291
|
-
return get("side-nav") !== "0";
|
|
2292
|
-
}
|
|
2293
|
-
function workspaceTab(workspaceId) {
|
|
2294
|
-
return get(`tab:${workspaceId}`);
|
|
2295
|
-
}
|
|
2296
|
-
function setWorkspaceTab(workspaceId, sessionId) {
|
|
2297
|
-
set(`tab:${workspaceId}`, sessionId);
|
|
2298
|
-
}
|
|
2299
|
-
function diffTreeOpen() {
|
|
2300
|
-
return get("diff-tree") !== "0";
|
|
2301
|
-
}
|
|
2302
|
-
function diffScope() {
|
|
2303
|
-
const v = get("diff-scope");
|
|
2304
|
-
if (v === "working" || v === "dirty") return v;
|
|
2305
|
-
return get("diff-uncommitted") === "1" ? "working" : "committed";
|
|
2306
|
-
}
|
|
2307
|
-
function setDiffScope(scope) {
|
|
2308
|
-
set("diff-scope", scope);
|
|
2309
|
-
}
|
|
2310
|
-
/** Review file filter, per workspace — survives a reload and follows the
|
|
2311
|
-
* review to another device. */
|
|
2312
|
-
function diffFilter(workspaceId) {
|
|
2313
|
-
return get(`diff-filter:${workspaceId}`) || "";
|
|
2314
|
-
}
|
|
2315
|
-
function diffPos(workspaceId) {
|
|
2316
|
-
const v = get(`diff-pos:${workspaceId}`);
|
|
2317
|
-
if (!v) return null;
|
|
2318
|
-
try {
|
|
2319
|
-
const p = JSON.parse(v);
|
|
2320
|
-
return p && typeof p.key === "string" ? p : null;
|
|
2321
|
-
} catch {
|
|
2322
|
-
return null;
|
|
2323
|
-
}
|
|
2324
|
-
}
|
|
2325
|
-
function setDiffPos(workspaceId, pos) {
|
|
2326
|
-
set(`diff-pos:${workspaceId}`, pos ? JSON.stringify(pos) : null);
|
|
2327
|
-
}
|
|
2328
|
-
//#endregion
|
|
2329
2336
|
//#region src/tags/icons/icon-sidebar.marko
|
|
2330
2337
|
var icon_sidebar_default = _template("W", (input) => {
|
|
2331
2338
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
@@ -2342,7 +2349,7 @@ var icon_sidebar_default = _template("W", (input) => {
|
|
|
2342
2349
|
});
|
|
2343
2350
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
2344
2351
|
});
|
|
2345
|
-
var findInput = "
|
|
2346
|
-
var findIconBtn = "
|
|
2352
|
+
var findInput = "_ff _l";
|
|
2353
|
+
var findIconBtn = "_fi _j";
|
|
2347
2354
|
//#endregion
|
|
2348
|
-
export {
|
|
2355
|
+
export { _dynamic_tag as $, btnLg as A, withPageAssets as At, _attr as B, toast_default as C, _subscribe as Ct, repoLabel as D, _try as Dt, parseRepoUrl as E, _trailers as Et, inputLg as F, _attr_or as G, _attr_details_or_dialog_open as H, metaTrunc as I, _attrs as J, _attr_select_value as K, phase as L, iconBtnLg as M, iconBtnRow as N, repoWebUrl as O, _var as Ot, iconBtnXs as P, _content_resume as Q, tone as R, workspaceTab as S, _set_serialize_reason as St, icon_base_default as T, _to_text as Tt, _attr_input_value as U, _attr_class as V, _attr_option_value as W, _await as X, _attrs_partial as Y, _content as Z, setDiffScope as _, _scope_with_id as _t, rankRepos as a, _flush_head as at, sideNavOpen as b, _serialize_guard as bt, icon_refresh_default as c, _hoist_read_error as ct, sectionCount as d, _if as dt, _el as et, diffFilter as f, _peek_scope_id as ft, setDiffPos as g, _scope_reason as gt, diffTreeOpen as h, _scope_id as ht, fuzzy as i, _existing_scope as it, btnSm as j, writeScope as jt, setPrimaryHost as k, attrTag as kt, iconBtn as l, _html as lt, diffScope as m, _resume_branch as mt, findInput as n, _el_resume as nt, icon_search_default as o, _for_of as ot, diffPos as p, _resume as pt, _attr_style as q, icon_sidebar_default as r, _escape as rt, icon_back_default as s, _hoist as st, findIconBtn as t, _el_read_error as tt, row as u, _id as ut, setTheme as v, _script as vt, icon_xmark_default as w, _template as wt, theme as x, _serialize_if as xt, setWorkspaceTab as y, _sep as yt, $global as z };
|