@dylanpiercey/work 0.1.0 → 0.1.1
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 +17 -5
- package/bin/work.mjs +208 -9
- package/dist/_D1C-XIqT.js +168 -0
- package/dist/{_Bq7to522.js → _Dzz52ZtI.js} +188 -49
- package/dist/_HbAW5Cbt.js +2 -0
- package/dist/index.mjs +1118 -1151
- package/dist/public/assets/{_Cz5BPBG8.js → _-5UNb9-C.js} +1 -1
- package/dist/public/assets/_-5UNb9-C.js.br +0 -0
- package/dist/public/assets/_06rtP_SB.js +1 -0
- package/dist/public/assets/_14yhXek7.js +1 -0
- package/dist/public/assets/_14yhXek7.js.br +0 -0
- package/dist/public/assets/_1JXC9nFp.js +1 -0
- package/dist/public/assets/_1JXC9nFp.js.br +0 -0
- package/dist/public/assets/_1Yit_Y5R.js +1 -0
- package/dist/public/assets/_1ZPfR2B8.js +6 -0
- package/dist/public/assets/_1ZPfR2B8.js.br +0 -0
- package/dist/public/assets/{_D2un443j.js → _1xOByopP.js} +1 -1
- package/dist/public/assets/_1xOByopP.js.br +0 -0
- package/dist/public/assets/{_C_37_B6u.js → _3aBl7SEn.js} +1 -1
- package/dist/public/assets/_3aBl7SEn.js.br +0 -0
- package/dist/public/assets/_5aMLV2Vy.js +1 -0
- package/dist/public/assets/{_BwP07uVS.js → _7YrArFMB.js} +1 -1
- package/dist/public/assets/_7YrArFMB.js.br +0 -0
- package/dist/public/assets/{_ClldMY37.js → _B1-W0Sn2.js} +1 -1
- package/dist/public/assets/_B1-W0Sn2.js.br +0 -0
- package/dist/public/assets/{_8dvK2NDJ.js → _B1D0PIz3.js} +1 -1
- package/dist/public/assets/_B1D0PIz3.js.br +0 -0
- package/dist/public/assets/_B1agoKUa.js +1 -0
- package/dist/public/assets/_B3NfNm8M.js +1591 -0
- package/dist/public/assets/_B3NfNm8M.js.br +0 -0
- package/dist/public/assets/{_BDa-iwuj.js → _B7VYILLZ.js} +1 -1
- package/dist/public/assets/_B7VYILLZ.js.br +0 -0
- package/dist/public/assets/_B7sPBy0J.js +1 -0
- package/dist/public/assets/_B81p6DSw.js +1 -0
- package/dist/public/assets/_BAkSKCkz.js +1 -0
- package/dist/public/assets/{_B582D2rg.js → _BDUjU8Ev.js} +1 -1
- package/dist/public/assets/{_Bv3qNE1b.js → _BHU5aikZ.js} +1 -1
- package/dist/public/assets/_BHZPTv1U.js +1 -0
- package/dist/public/assets/{_DxEm-Gwj.js → _BKHtiW96.js} +1 -1
- package/dist/public/assets/_BKHtiW96.js.br +0 -0
- package/dist/public/assets/{_C0_s45qg.js → _BKIx7IZP.js} +1 -1
- package/dist/public/assets/_BKIx7IZP.js.br +0 -0
- package/dist/public/assets/{_Bp8-V8yl.js → _BLfzQY-3.js} +1 -1
- package/dist/public/assets/_BLfzQY-3.js.br +0 -0
- package/dist/public/assets/{_ch_yXAap.js → _BPSTqkJn.js} +1 -1
- package/dist/public/assets/_BPSTqkJn.js.br +0 -0
- package/dist/public/assets/_BQZOimBB.js +1 -0
- package/dist/public/assets/{_DfI982PI.js → _BRQ6iQ5p.js} +1 -1
- package/dist/public/assets/_BRQ6iQ5p.js.br +0 -0
- package/dist/public/assets/_BRVURc4u.js +1 -0
- package/dist/public/assets/{_CTINBWaG.js → _BSFJEuJX.js} +1 -1
- package/dist/public/assets/_BSFJEuJX.js.br +0 -0
- package/dist/public/assets/{_CMSBfO6u.js → _BSWN-v3P.js} +1 -1
- package/dist/public/assets/_BSWN-v3P.js.br +0 -0
- package/dist/public/assets/_BTVAQr2c.js +1 -0
- package/dist/public/assets/_BUD1pBC0.js +1 -0
- package/dist/public/assets/_BVGzCczb.js +1 -0
- package/dist/public/assets/{_j2tDSMvo.js → _BVQosHjY.js} +1 -1
- package/dist/public/assets/_BVQosHjY.js.br +0 -0
- package/dist/public/assets/{_9kX9D09B.js → _B_0C2_RO.js} +1 -1
- package/dist/public/assets/_B_0C2_RO.js.br +0 -0
- package/dist/public/assets/_BaA31ms5.js +1 -0
- package/dist/public/assets/_BgCHJGlO.js +1 -0
- package/dist/public/assets/_BhpRLDbL.js +1 -0
- package/dist/public/assets/_BhpRLDbL.js.br +0 -0
- package/dist/public/assets/_BkKcjMAC.js +1 -0
- package/dist/public/assets/{_xyw_DS5P.js → _BkcPY2j0.js} +1 -1
- package/dist/public/assets/_BkcPY2j0.js.br +0 -0
- package/dist/public/assets/_BlTVd_3d.js +1 -0
- package/dist/public/assets/_BlqlLmEY.js +1 -0
- package/dist/public/assets/_BoNfxc9P.js +1 -0
- package/dist/public/assets/_BqswW9B9.js +1 -0
- package/dist/public/assets/_BricqzsO.js +1 -0
- package/dist/public/assets/_BrreckIa.js +1 -0
- package/dist/public/assets/{_BpoeUr5j.js → _BsJZPHmz.js} +1 -1
- package/dist/public/assets/_BsJZPHmz.js.br +0 -0
- package/dist/public/assets/_BtRYwaBb.js +1 -0
- package/dist/public/assets/{_B7GwDeKK.js → _BtZ2AatF.js} +1 -1
- package/dist/public/assets/_BvPBKjRP.js +1 -0
- package/dist/public/assets/_BvPBKjRP.js.br +0 -0
- package/dist/public/assets/_ByrrjMU9.js +1 -0
- package/dist/public/assets/{_CpjSCB1I.js → _BzGHediB.js} +1 -1
- package/dist/public/assets/_BzGHediB.js.br +0 -0
- package/dist/public/assets/_BzvTKm92.js +1 -0
- package/dist/public/assets/{_D1uRW1qz.js → _C-EkQeP_.js} +1 -1
- package/dist/public/assets/_C-EkQeP_.js.br +0 -0
- package/dist/public/assets/{_Bv3e3rg8.js → _C0Ib7MZF.js} +1 -1
- package/dist/public/assets/_C0Ib7MZF.js.br +0 -0
- package/dist/public/assets/_C2p1Z5Lf.js +86 -0
- package/dist/public/assets/_C2p1Z5Lf.js.br +0 -0
- package/dist/public/assets/_C3iiOlxd.js +1 -0
- package/dist/public/assets/{_De7P3jUH.js → _C81nSl09.js} +1 -1
- package/dist/public/assets/_C81nSl09.js.br +0 -0
- package/dist/public/assets/{_BvXp6HpX.js → _C8bqYk4J.js} +1 -1
- package/dist/public/assets/_C8bqYk4J.js.br +0 -0
- package/dist/public/assets/_C98JZr09.js +1 -0
- package/dist/public/assets/_C98JZr09.js.br +0 -0
- package/dist/public/assets/_CB4VkmGZ.js +1 -0
- package/dist/public/assets/{_bcsuBP7T.js → _CCVkYcN5.js} +1 -1
- package/dist/public/assets/_CCVkYcN5.js.br +0 -0
- package/dist/public/assets/{_DC-78WeM.js → _CDY0RpYX.js} +1 -1
- package/dist/public/assets/_CDY0RpYX.js.br +0 -0
- package/dist/public/assets/_CE2GEqMx.js +1 -0
- package/dist/public/assets/_CE2GEqMx.js.br +0 -0
- package/dist/public/assets/{_BbbOvNRH.js → _CFUREq1M.js} +1 -1
- package/dist/public/assets/_CFUREq1M.js.br +0 -0
- package/dist/public/assets/_CHdh6bII.js +1 -0
- package/dist/public/assets/{_wcshV0sZ.js → _CHdpLB95.js} +1 -1
- package/dist/public/assets/_CHdpLB95.js.br +0 -0
- package/dist/public/assets/{_D4q8XSMI.js → _CKLGAGKJ.js} +1 -1
- package/dist/public/assets/_CKLGAGKJ.js.br +0 -0
- package/dist/public/assets/_CMRt2lyQ.js +1 -0
- package/dist/public/assets/_CN1zW1AT.js +1 -0
- package/dist/public/assets/_CN1zW1AT.js.br +0 -0
- package/dist/public/assets/_CUILmj9R.js +1 -0
- package/dist/public/assets/_CUhP8KQ8.js +1 -0
- package/dist/public/assets/{_DaMVRI8f.js → _CUsrMpdL.js} +1 -1
- package/dist/public/assets/_CUsrMpdL.js.br +0 -0
- package/dist/public/assets/_CVG0_w9T.js +1 -0
- package/dist/public/assets/{_CamWDaoG.js → _CWG813ur.js} +1 -1
- package/dist/public/assets/_CWG813ur.js.br +0 -0
- package/dist/public/assets/{_DSVLaMWS.js → _CY87Y7QL.js} +1 -1
- package/dist/public/assets/_CY87Y7QL.js.br +0 -0
- package/dist/public/assets/_CYAsKva_.js +1 -0
- package/dist/public/assets/_CajKYNSY.js +1 -0
- package/dist/public/assets/{_D0aoEFRx.js → _Cb_k_JA_.js} +1 -1
- package/dist/public/assets/_Cb_k_JA_.js.br +0 -0
- package/dist/public/assets/_Ce8PlfMD.js +1 -0
- package/dist/public/assets/{_Bm4SHrNp.js → _CfGEGt_k.js} +1 -1
- package/dist/public/assets/_CfGEGt_k.js.br +0 -0
- package/dist/public/assets/{_DqhphdU4.js → _CfdK8EeQ.js} +1 -1
- package/dist/public/assets/_CfdK8EeQ.js.br +0 -0
- package/dist/public/assets/_CgOKmAwr.js +1 -0
- package/dist/public/assets/{_eoa1EOU-.js → _CiYQhf81.js} +1 -1
- package/dist/public/assets/_CiYQhf81.js.br +0 -0
- package/dist/public/assets/_Cj9DHPRL.js +1 -0
- package/dist/public/assets/{_CxAPL49a.js → _ClHPjF-1.js} +1 -1
- package/dist/public/assets/_ClHPjF-1.js.br +0 -0
- package/dist/public/assets/{_DDl8KSWJ.js → _Cmmdd2e3.js} +1 -1
- package/dist/public/assets/_Cmmdd2e3.js.br +0 -0
- package/dist/public/assets/{_BZKB4fhr.js → _Cn9Ia4SS.js} +1 -1
- package/dist/public/assets/_Cn9Ia4SS.js.br +0 -0
- package/dist/public/assets/_CnTzFbuG.js +1 -0
- package/dist/public/assets/{_BE_Jyvqd.js → _CqCenHOp.js} +1 -1
- package/dist/public/assets/_CqCenHOp.js.br +0 -0
- package/dist/public/assets/{_Dp3IZdH8.js → _CtqGSS84.js} +1 -1
- package/dist/public/assets/_CtqGSS84.js.br +0 -0
- package/dist/public/assets/_CttfwM-c.js +1 -0
- package/dist/public/assets/{_D6kktUFn.js → _CxA3Yab0.js} +1 -1
- package/dist/public/assets/_CxA3Yab0.js.br +0 -0
- package/dist/public/assets/{_Bx1CW-sF.js → _Cx_aJfDp.js} +1 -1
- package/dist/public/assets/_Cx_aJfDp.js.br +0 -0
- package/dist/public/assets/_D2L_ILOW.js +1 -0
- package/dist/public/assets/_D47lCu0c.js +1 -0
- package/dist/public/assets/_D5W-uGIK.js +1 -0
- package/dist/public/assets/_D6BbZLrc.js +1 -0
- package/dist/public/assets/_D6RVeCAn.js +1 -0
- package/dist/public/assets/_D75V4jV-.js +1 -0
- package/dist/public/assets/{_CyBCIknf.js → _D9r_Fn0I.js} +1 -1
- package/dist/public/assets/_D9r_Fn0I.js.br +0 -0
- package/dist/public/assets/{_8G2Mv7jG.js → _DBD57l1T.js} +1 -1
- package/dist/public/assets/_DBD57l1T.js.br +0 -0
- package/dist/public/assets/_DCWILZgL.js +1 -0
- package/dist/public/assets/{_COcePo2y.js → _DEOryr7w.js} +1 -1
- package/dist/public/assets/_DEOryr7w.js.br +0 -0
- package/dist/public/assets/_DF54Iz7o.js +1 -0
- package/dist/public/assets/_DFamU2Uj.js +2 -0
- package/dist/public/assets/_DFamU2Uj.js.br +0 -0
- package/dist/public/assets/_DHmBuyCO.js +1 -0
- package/dist/public/assets/_DHmBuyCO.js.br +0 -0
- package/dist/public/assets/{_BywcP-As.js → _DJqEBkNd.js} +1 -1
- package/dist/public/assets/_DJqEBkNd.js.br +0 -0
- package/dist/public/assets/{_BUvqweu0.js → _DL3w8c_p.js} +1 -1
- package/dist/public/assets/_DL3w8c_p.js.br +0 -0
- package/dist/public/assets/_DLVL-4MP.js +1 -0
- package/dist/public/assets/{_wXDh-Z2N.js → _DM60dKRs.js} +1 -1
- package/dist/public/assets/_DM60dKRs.js.br +0 -0
- package/dist/public/assets/{_BBWaxDkO.js → _DMJHTH74.js} +1 -1
- package/dist/public/assets/_DMJHTH74.js.br +0 -0
- package/dist/public/assets/_DMLv6KA6.js +1 -0
- package/dist/public/assets/_DQYpgyzr.js +1 -0
- package/dist/public/assets/_DQYpgyzr.js.br +0 -0
- package/dist/public/assets/{_SGDxiwE1.js → _DQyjuXTi.js} +1 -1
- package/dist/public/assets/_DQyjuXTi.js.br +0 -0
- package/dist/public/assets/{_DrIgZJzN.js → _DRHCy0UF.js} +1 -1
- package/dist/public/assets/_DRHCy0UF.js.br +0 -0
- package/dist/public/assets/{_D4rOX-Fa.js → _DSUBv-Bl.js} +1 -1
- package/dist/public/assets/_DSUBv-Bl.js.br +0 -0
- package/dist/public/assets/{_CYjE__ml.js → _DUFM9qLV.js} +1 -1
- package/dist/public/assets/_DUFM9qLV.js.br +0 -0
- package/dist/public/assets/{_BNW5Jiec.js → _DUs3ZGbj.js} +1 -1
- package/dist/public/assets/_DUs3ZGbj.js.br +0 -0
- package/dist/public/assets/{_Dytf99zx.js → _DX5u6Wvm.js} +1 -1
- package/dist/public/assets/_DX5u6Wvm.js.br +0 -0
- package/dist/public/assets/{_CHuLFr1f.js → _DZvkgS3V.js} +1 -1
- package/dist/public/assets/_DZvkgS3V.js.br +0 -0
- package/dist/public/assets/{_D9sS4J_w.js → _Dbm6zAQS.js} +1 -1
- package/dist/public/assets/_Dbm6zAQS.js.br +0 -0
- package/dist/public/assets/{_D4dJ2qEE.js → _DcOkTFth.js} +1 -1
- package/dist/public/assets/_Ddf1gumD.js +1 -0
- package/dist/public/assets/_De6E9M7R.js +1 -0
- package/dist/public/assets/{_DFWOMF-B.js → _DgWKSW-Y.js} +1 -1
- package/dist/public/assets/_DgWKSW-Y.js.br +0 -0
- package/dist/public/assets/_DhEN6T4v.js +1 -0
- package/dist/public/assets/{_D4quFMVQ.js → _Di1ccq_2.js} +1 -1
- package/dist/public/assets/_Di1ccq_2.js.br +0 -0
- package/dist/public/assets/{_CUXajOKj.js → _DifjKObE.js} +1 -1
- package/dist/public/assets/_DifjKObE.js.br +0 -0
- package/dist/public/assets/_Dn10ABa-.js +1 -0
- package/dist/public/assets/{_MCwIJAuJ.js → _Do1ltY2a.js} +1 -1
- package/dist/public/assets/_Do1ltY2a.js.br +0 -0
- package/dist/public/assets/{_Ct3RF80L.js → _DomK7Scb.js} +1 -1
- package/dist/public/assets/_DomK7Scb.js.br +0 -0
- package/dist/public/assets/_DtWggCxt.js +1 -0
- package/dist/public/assets/_DtqqybyQ.js +1 -0
- package/dist/public/assets/{_CEJUcePr.js → _DvKnakqk.js} +1 -1
- package/dist/public/assets/_DvKnakqk.js.br +0 -0
- package/dist/public/assets/_DxD_AC3a.js +1 -0
- package/dist/public/assets/_DxD_AC3a.js.br +0 -0
- package/dist/public/assets/_Dxo7m9cG.js +1 -0
- package/dist/public/assets/{_DkCaEf_h.js → _DzKW89Sx.js} +1 -1
- package/dist/public/assets/_DzKW89Sx.js.br +0 -0
- package/dist/public/assets/_DzTHCioH.js +1 -0
- package/dist/public/assets/{_C654p96Z.js → _EefWj858.js} +1 -1
- package/dist/public/assets/_EefWj858.js.br +0 -0
- package/dist/public/assets/{_zSAfqXcm.js → _FlITqTCo.js} +1 -1
- package/dist/public/assets/_FlITqTCo.js.br +0 -0
- package/dist/public/assets/_GkEw2S0T.js +1 -0
- package/dist/public/assets/{_Dd6X3e7w.js → _HM_QqtJi.js} +1 -1
- package/dist/public/assets/_HM_QqtJi.js.br +0 -0
- package/dist/public/assets/{_CEXHZd73.js → _HmkI4Rfn.js} +1 -1
- package/dist/public/assets/_HmkI4Rfn.js.br +0 -0
- package/dist/public/assets/{_d5u7EI97.js → _JEvx8ub4.js} +1 -1
- package/dist/public/assets/_JEvx8ub4.js.br +0 -0
- package/dist/public/assets/_JOb8B3tz.js +1 -0
- package/dist/public/assets/_LEIhjFrO.js +1 -0
- package/dist/public/assets/_STJhwy7U.js +1 -0
- package/dist/public/assets/_TrcWRD8T.js +15 -0
- package/dist/public/assets/_TrcWRD8T.js.br +0 -0
- package/dist/public/assets/{_CAkPJLeF.js → _UaKPY71M.js} +1 -1
- package/dist/public/assets/_UaKPY71M.js.br +0 -0
- package/dist/public/assets/_UhK3lkm0.js +1 -0
- package/dist/public/assets/_VPLoEBTS.js +1 -0
- package/dist/public/assets/_Zeftz3t1.js +1 -0
- package/dist/public/assets/{_Bhx319Hi.js → __cyRVmTO.js} +1 -1
- package/dist/public/assets/__cyRVmTO.js.br +0 -0
- package/dist/public/assets/_awfYTHit.js +1 -0
- package/dist/public/assets/{_DcMIlvz-.js → _dsj7vMTW.js} +1 -1
- package/dist/public/assets/_dsj7vMTW.js.br +0 -0
- package/dist/public/assets/_eqpiOhSM.js +1 -0
- package/dist/public/assets/{_CZ_OWtIT.js → _iutZ4EDe.js} +1 -1
- package/dist/public/assets/_iutZ4EDe.js.br +0 -0
- package/dist/public/assets/{_BOGkzMx9.js → _kWQ0dtYZ.js} +1 -1
- package/dist/public/assets/_kWQ0dtYZ.js.br +0 -0
- package/dist/public/assets/_knvMqXQh.js +1 -0
- package/dist/public/assets/_lwC7sIgC.js +1 -0
- package/dist/public/assets/_m2tRa0jk.js +1 -0
- package/dist/public/assets/_m2tRa0jk.js.br +0 -0
- package/dist/public/assets/{_CIb7xw_1.js → _pXG8fRON.js} +1 -1
- package/dist/public/assets/_pXG8fRON.js.br +0 -0
- package/dist/public/assets/_r541ENtr.js +1 -0
- package/dist/public/assets/_rrUx1wn3.js +1 -0
- package/dist/public/assets/_tJvcu7sD.js +1 -0
- package/dist/public/assets/{_Bf8WYPfh.js → _vcLBrU2m.js} +1 -1
- package/dist/public/assets/_vcLBrU2m.js.br +0 -0
- package/dist/public/assets/_xZC4Vm70.js +1 -0
- package/dist/public/assets/_yAr5r-uL.js +1 -0
- package/dist/public/assets/{_DbvaGqOl.js → _yUmRJIJ6.js} +1 -1
- package/dist/public/assets/_yUmRJIJ6.js.br +0 -0
- package/dist/public/assets/app-shell-CVYlktwa.css +1 -0
- package/dist/public/assets/app-shell-CVYlktwa.css.br +0 -0
- package/dist/public/assets/files-view-CTadakLK.js +2 -0
- package/dist/public/assets/manage-workspace-HUAS6qjy.js +2 -0
- package/dist/public/assets/new-CirJkJFl.js +1 -0
- package/dist/public/assets/new-workspace-C3t1nA6z.js +2 -0
- package/dist/public/assets/review-view-DKPNtgmc.js +2 -0
- package/dist/public/assets/settings-CirJkJFl.js +1 -0
- package/dist/public/assets/settings-page-DH-9cN-8.js +2 -0
- package/dist/public/assets/styles-CIeNhVxC.css +1 -0
- package/dist/public/assets/styles-CIeNhVxC.css.br +0 -0
- package/dist/public/assets/w-CirJkJFl.js +1 -0
- package/dist/public/assets/w._-BnShhzdq.js +1 -0
- package/dist/public/assets/w._-CirJkJFl.js +1 -0
- package/dist/public/assets/w._-aCTYfruH.js +1 -0
- package/lib/setup/doctor.d.mts +12 -1
- package/lib/setup/doctor.mjs +54 -9
- package/lib/setup/tailscale.d.mts +53 -0
- package/lib/setup/tailscale.mjs +179 -0
- package/package.json +1 -1
- package/dist/_CkwTsHKB.js +0 -2
- package/dist/public/assets/_1RHVsAcK.js +0 -1
- package/dist/public/assets/_4CShjaLP.js +0 -1
- package/dist/public/assets/_68JtNDO1.js +0 -1
- package/dist/public/assets/_8G2Mv7jG.js.br +0 -0
- package/dist/public/assets/_8dvK2NDJ.js.br +0 -0
- package/dist/public/assets/_94L2SIJF.js +0 -1
- package/dist/public/assets/_9AnDb3YH.js +0 -1
- package/dist/public/assets/_9kX9D09B.js.br +0 -0
- package/dist/public/assets/_9lErVegn.js +0 -1
- package/dist/public/assets/_B0oyGUU5.js +0 -1
- package/dist/public/assets/_B0oyGUU5.js.br +0 -0
- package/dist/public/assets/_B1mPnLlp.js +0 -1
- package/dist/public/assets/_B4fi2SSA.js +0 -1
- package/dist/public/assets/_B7Qx25UP.js +0 -1
- package/dist/public/assets/_B7b8EVjA.js +0 -1
- package/dist/public/assets/_BBWaxDkO.js.br +0 -0
- package/dist/public/assets/_BDa-iwuj.js.br +0 -0
- package/dist/public/assets/_BEKHKNmM.js +0 -1
- package/dist/public/assets/_BE_Jyvqd.js.br +0 -0
- package/dist/public/assets/_BFU-kJkk.js +0 -1
- package/dist/public/assets/_BIJ2O2oU.js +0 -1
- package/dist/public/assets/_BJ59XAZ9.js +0 -1
- package/dist/public/assets/_BKqRYfOI.js +0 -15
- package/dist/public/assets/_BKqRYfOI.js.br +0 -0
- package/dist/public/assets/_BKr9Dzz1.js +0 -1
- package/dist/public/assets/_BN7xvxS_.js +0 -1
- package/dist/public/assets/_BNQTVBlH.js +0 -1
- package/dist/public/assets/_BNW5Jiec.js.br +0 -0
- package/dist/public/assets/_BOGkzMx9.js.br +0 -0
- package/dist/public/assets/_BUEpqQ_m.js +0 -1
- package/dist/public/assets/_BUvqweu0.js.br +0 -0
- package/dist/public/assets/_BZKB4fhr.js.br +0 -0
- package/dist/public/assets/_BZo9BjDF.js +0 -1
- package/dist/public/assets/_BbbOvNRH.js.br +0 -0
- package/dist/public/assets/_BdUNnSlC.js +0 -1
- package/dist/public/assets/_Bf8WYPfh.js.br +0 -0
- package/dist/public/assets/_Bhx319Hi.js.br +0 -0
- package/dist/public/assets/_Bm4SHrNp.js.br +0 -0
- package/dist/public/assets/_Bmrqq8Ro.js +0 -2
- package/dist/public/assets/_Bmrqq8Ro.js.br +0 -0
- package/dist/public/assets/_BnHZ6Npj.js +0 -1
- package/dist/public/assets/_BoDxRJLS.js +0 -1
- package/dist/public/assets/_BoDxRJLS.js.br +0 -0
- package/dist/public/assets/_Bo_Ru664.js +0 -1
- package/dist/public/assets/_Bp8-V8yl.js.br +0 -0
- package/dist/public/assets/_BpoeUr5j.js.br +0 -0
- package/dist/public/assets/_Bq2G_Tid.js +0 -1
- package/dist/public/assets/_BsyoLB_D.js +0 -1
- package/dist/public/assets/_Bv3e3rg8.js.br +0 -0
- package/dist/public/assets/_BvXp6HpX.js.br +0 -0
- package/dist/public/assets/_BwP07uVS.js.br +0 -0
- package/dist/public/assets/_Bx1CW-sF.js.br +0 -0
- package/dist/public/assets/_BywcP-As.js.br +0 -0
- package/dist/public/assets/_Bzgtwt3G.js +0 -1
- package/dist/public/assets/_Bzgtwt3G.js.br +0 -0
- package/dist/public/assets/_C0_s45qg.js.br +0 -0
- package/dist/public/assets/_C0ePgF6b.js +0 -1
- package/dist/public/assets/_C0oVtTqO.js +0 -1
- package/dist/public/assets/_C0oVtTqO.js.br +0 -0
- package/dist/public/assets/_C654p96Z.js.br +0 -0
- package/dist/public/assets/_C8_1Y2-z.js +0 -1
- package/dist/public/assets/_C8_1Y2-z.js.br +0 -0
- package/dist/public/assets/_C8v1AZFP.js +0 -1
- package/dist/public/assets/_CAkPJLeF.js.br +0 -0
- package/dist/public/assets/_CB0D5cRH.js +0 -1
- package/dist/public/assets/_CD05JUTh.js +0 -1
- package/dist/public/assets/_CEJUcePr.js.br +0 -0
- package/dist/public/assets/_CEXHZd73.js.br +0 -0
- package/dist/public/assets/_CHcUMVR7.js +0 -1
- package/dist/public/assets/_CHuLFr1f.js.br +0 -0
- package/dist/public/assets/_CIb7xw_1.js.br +0 -0
- package/dist/public/assets/_CMSBfO6u.js.br +0 -0
- package/dist/public/assets/_CN7GPyBo.js +0 -1
- package/dist/public/assets/_COcePo2y.js.br +0 -0
- package/dist/public/assets/_CTINBWaG.js.br +0 -0
- package/dist/public/assets/_CTWrnAbz.js +0 -1
- package/dist/public/assets/_CUXajOKj.js.br +0 -0
- package/dist/public/assets/_CVru3vzC.js +0 -1
- package/dist/public/assets/_CYjE__ml.js.br +0 -0
- package/dist/public/assets/_CZ_OWtIT.js.br +0 -0
- package/dist/public/assets/_C_37_B6u.js.br +0 -0
- package/dist/public/assets/_C_CIQL7J.js +0 -1
- package/dist/public/assets/_C_CIQL7J.js.br +0 -0
- package/dist/public/assets/_C_WdpYbK.js +0 -1
- package/dist/public/assets/_CaiH3VN9.js +0 -1
- package/dist/public/assets/_CamWDaoG.js.br +0 -0
- package/dist/public/assets/_CdDElA0V.js +0 -1
- package/dist/public/assets/_CfnsClzZ.js +0 -1
- package/dist/public/assets/_Cgo1fRhJ.js +0 -1
- package/dist/public/assets/_Cgo1fRhJ.js.br +0 -0
- package/dist/public/assets/_CjhGrlf3.js +0 -1
- package/dist/public/assets/_CjlbL4C_.js +0 -1
- package/dist/public/assets/_CjogTUXK.js +0 -1
- package/dist/public/assets/_ClldMY37.js.br +0 -0
- package/dist/public/assets/_CmFq6Gtp.js +0 -1
- package/dist/public/assets/_CoAPOKiP.js +0 -1
- package/dist/public/assets/_CoUUgh9P.js +0 -1
- package/dist/public/assets/_CpjSCB1I.js.br +0 -0
- package/dist/public/assets/_Ct3RF80L.js.br +0 -0
- package/dist/public/assets/_CtYy5eZs.js +0 -1
- package/dist/public/assets/_CxAPL49a.js.br +0 -0
- package/dist/public/assets/_CyBCIknf.js.br +0 -0
- package/dist/public/assets/_Cz5BPBG8.js.br +0 -0
- package/dist/public/assets/_D-eEFXaI.js +0 -1
- package/dist/public/assets/_D0aoEFRx.js.br +0 -0
- package/dist/public/assets/_D1uRW1qz.js.br +0 -0
- package/dist/public/assets/_D2oIr2T2.js +0 -1
- package/dist/public/assets/_D2un443j.js.br +0 -0
- package/dist/public/assets/_D3MPx4-f.js +0 -1
- package/dist/public/assets/_D4q8XSMI.js.br +0 -0
- package/dist/public/assets/_D4quFMVQ.js.br +0 -0
- package/dist/public/assets/_D4rOX-Fa.js.br +0 -0
- package/dist/public/assets/_D5edrSyA.js +0 -1
- package/dist/public/assets/_D6kktUFn.js.br +0 -0
- package/dist/public/assets/_D80-qtVY.js +0 -1
- package/dist/public/assets/_D9-3EVA4.js +0 -1
- package/dist/public/assets/_D9sS4J_w.js.br +0 -0
- package/dist/public/assets/_DBLpxTDi.js +0 -1
- package/dist/public/assets/_DByHQ7nW.js +0 -1591
- package/dist/public/assets/_DByHQ7nW.js.br +0 -0
- package/dist/public/assets/_DC-78WeM.js.br +0 -0
- package/dist/public/assets/_DDl8KSWJ.js.br +0 -0
- package/dist/public/assets/_DFWOMF-B.js.br +0 -0
- package/dist/public/assets/_DKb-rt9n.js +0 -1
- package/dist/public/assets/_DMnSJCF_.js +0 -1
- package/dist/public/assets/_DOOIlrPh.js +0 -1
- package/dist/public/assets/_DPW-0yKP.js +0 -1
- package/dist/public/assets/_DR3BmvWU.js +0 -1
- package/dist/public/assets/_DSVLaMWS.js.br +0 -0
- package/dist/public/assets/_DYNGNKLk.js +0 -1
- package/dist/public/assets/_DZnEgCbj.js +0 -1
- package/dist/public/assets/_DaMVRI8f.js.br +0 -0
- package/dist/public/assets/_DbvaGqOl.js.br +0 -0
- package/dist/public/assets/_DcMIlvz-.js.br +0 -0
- package/dist/public/assets/_Dd6X3e7w.js.br +0 -0
- package/dist/public/assets/_De7P3jUH.js.br +0 -0
- package/dist/public/assets/_DeiFEAar.js +0 -1
- package/dist/public/assets/_DfI982PI.js.br +0 -0
- package/dist/public/assets/_DfZ6emcw.js +0 -1
- package/dist/public/assets/_Dj1lZ1pa.js +0 -86
- package/dist/public/assets/_Dj1lZ1pa.js.br +0 -0
- package/dist/public/assets/_DkCaEf_h.js.br +0 -0
- package/dist/public/assets/_DonAis0J.js +0 -1
- package/dist/public/assets/_Dp3IZdH8.js.br +0 -0
- package/dist/public/assets/_DqYih4xk.js +0 -1
- package/dist/public/assets/_DqYih4xk.js.br +0 -0
- package/dist/public/assets/_DqhphdU4.js.br +0 -0
- package/dist/public/assets/_DrIgZJzN.js.br +0 -0
- package/dist/public/assets/_Dt4hHR05.js +0 -1
- package/dist/public/assets/_DtTbTraA.js +0 -1
- package/dist/public/assets/_DwMxAJKP.js +0 -1
- package/dist/public/assets/_DxEm-Gwj.js.br +0 -0
- package/dist/public/assets/_Dytf99zx.js.br +0 -0
- package/dist/public/assets/_EAgv5jR9.js +0 -1
- package/dist/public/assets/_Iecpd0kS.js +0 -1
- package/dist/public/assets/_Iecpd0kS.js.br +0 -0
- package/dist/public/assets/_MCwIJAuJ.js.br +0 -0
- package/dist/public/assets/_NM79Lu3L.js +0 -6
- package/dist/public/assets/_NM79Lu3L.js.br +0 -0
- package/dist/public/assets/_QpNKKuS9.js +0 -1
- package/dist/public/assets/_SGDxiwE1.js.br +0 -0
- package/dist/public/assets/_TA8pE7z9.js +0 -1
- package/dist/public/assets/_bE4sNDeU.js +0 -1
- package/dist/public/assets/_bcsuBP7T.js.br +0 -0
- package/dist/public/assets/_cdcAU4yY.js +0 -1
- package/dist/public/assets/_ch_yXAap.js.br +0 -0
- package/dist/public/assets/_d5u7EI97.js.br +0 -0
- package/dist/public/assets/_eoa1EOU-.js.br +0 -0
- package/dist/public/assets/_j2tDSMvo.js.br +0 -0
- package/dist/public/assets/_jNhIFgbc.js +0 -1
- package/dist/public/assets/_kDYiTaag.js +0 -1
- package/dist/public/assets/_lNMVVbUx.js +0 -1
- package/dist/public/assets/_nwJ7Hu3S.js +0 -1
- package/dist/public/assets/_tmDtUACa.js +0 -1
- package/dist/public/assets/_tmDtUACa.js.br +0 -0
- package/dist/public/assets/_wXDh-Z2N.js.br +0 -0
- package/dist/public/assets/_wcshV0sZ.js.br +0 -0
- package/dist/public/assets/_x-NwqgCn.js +0 -1
- package/dist/public/assets/_xyw_DS5P.js.br +0 -0
- package/dist/public/assets/_zSAfqXcm.js.br +0 -0
- package/dist/public/assets/app-shell-ChQoVC5b.css +0 -1
- package/dist/public/assets/app-shell-ChQoVC5b.css.br +0 -0
- package/dist/public/assets/files-view-CLtLp_BW.js +0 -2
- package/dist/public/assets/files-view-CNHQapdI.css +0 -1
- package/dist/public/assets/files-view-CNHQapdI.css.br +0 -0
- package/dist/public/assets/group.css.ts-BG82htKb.css +0 -1
- package/dist/public/assets/group.css.ts-BG82htKb.css.br +0 -0
- package/dist/public/assets/icon-folder-DJOHuEpD.css +0 -1
- package/dist/public/assets/icon-folder-DJOHuEpD.css.br +0 -0
- package/dist/public/assets/icon-search-DsJuFXUJ.css +0 -1
- package/dist/public/assets/icon-search-DsJuFXUJ.css.br +0 -0
- package/dist/public/assets/manage-workspace-NBcFDyrB.js +0 -2
- package/dist/public/assets/manage-workspace-f_Np32TD.css +0 -1
- package/dist/public/assets/modal-view-KVNBpNYi.css +0 -1
- package/dist/public/assets/modal-view-KVNBpNYi.css.br +0 -0
- package/dist/public/assets/new-DHI77GvL.js +0 -1
- package/dist/public/assets/new-workspace-BFE-HpD_.css +0 -1
- package/dist/public/assets/new-workspace-BFE-HpD_.css.br +0 -0
- package/dist/public/assets/new-workspace-BRzimdd5.js +0 -2
- package/dist/public/assets/port-chip-CUUIDOVM.css +0 -1
- package/dist/public/assets/port-chip-CUUIDOVM.css.br +0 -0
- package/dist/public/assets/prompt-dialog-BGs6RXOV.css +0 -1
- package/dist/public/assets/prompt-dialog-BGs6RXOV.css.br +0 -0
- package/dist/public/assets/quick-open-Gx4so1bl.css +0 -1
- package/dist/public/assets/quick-open-Gx4so1bl.css.br +0 -0
- package/dist/public/assets/repo-picker-CUhd0vJN.css +0 -1
- package/dist/public/assets/repo-picker-CUhd0vJN.css.br +0 -4
- package/dist/public/assets/review-view-DFEK9VBa.js +0 -2
- package/dist/public/assets/review-view-deUY3OE5.css +0 -1
- package/dist/public/assets/review-view-deUY3OE5.css.br +0 -0
- package/dist/public/assets/section-CziSOSBR.css +0 -1
- package/dist/public/assets/section-CziSOSBR.css.br +0 -0
- package/dist/public/assets/settings-DHI77GvL.js +0 -1
- package/dist/public/assets/settings-page-OOtPOzIn.js +0 -2
- package/dist/public/assets/settings-page-wZhd7FLi.css +0 -1
- package/dist/public/assets/settings-page-wZhd7FLi.css.br +0 -0
- package/dist/public/assets/skill-row-BoCyFIXg.css +0 -1
- package/dist/public/assets/sso-auth-DV76tTpE.css +0 -1
- package/dist/public/assets/sso-auth-DV76tTpE.css.br +0 -0
- package/dist/public/assets/w-DHI77GvL.js +0 -1
- package/dist/public/assets/w._-DHI77GvL.js +0 -1
- package/dist/public/assets/w._-DsTgq3-C.js +0 -1
- package/dist/public/assets/w._-igEOSPR-.js +0 -1
|
@@ -347,11 +347,12 @@ function bridgeForServer(dataDir) {
|
|
|
347
347
|
}
|
|
348
348
|
//#endregion
|
|
349
349
|
//#region src/server/migrations.ts
|
|
350
|
-
var STEPS = [
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
db
|
|
350
|
+
var STEPS = [
|
|
351
|
+
{
|
|
352
|
+
version: 1,
|
|
353
|
+
name: "baseline",
|
|
354
|
+
up(db) {
|
|
355
|
+
db.exec(`
|
|
355
356
|
CREATE TABLE workspaces (
|
|
356
357
|
id TEXT PRIMARY KEY,
|
|
357
358
|
name TEXT NOT NULL,
|
|
@@ -421,49 +422,58 @@ var STEPS = [{
|
|
|
421
422
|
PRIMARY KEY (workspace_id, worktree, branch, path)
|
|
422
423
|
);
|
|
423
424
|
`);
|
|
424
|
-
|
|
425
|
-
},
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
db
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
version: 2,
|
|
429
|
+
name: "drop what 0.0.x kept for its upgrades",
|
|
430
|
+
up(db) {
|
|
431
|
+
db.exec(`
|
|
430
432
|
DELETE FROM review_marks WHERE path = '';
|
|
431
433
|
DELETE FROM settings
|
|
432
434
|
WHERE key IN ('review-cleared-diff-v2', 'ui.diff-uncommitted', 'diff-uncommitted')
|
|
433
435
|
OR key GLOB 'review.seen:*';
|
|
434
436
|
`);
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
437
|
+
for (const name of [
|
|
438
|
+
"tab",
|
|
439
|
+
"diff-filter",
|
|
440
|
+
"diff-folded",
|
|
441
|
+
"diff-collapsed",
|
|
442
|
+
"diff-focus",
|
|
443
|
+
"diff-pos",
|
|
444
|
+
"files-recent"
|
|
445
|
+
]) {
|
|
446
|
+
const prefix = `ui.${name}:`;
|
|
447
|
+
db.prepare("DELETE FROM settings WHERE key GLOB ? AND substr(key, ?) NOT IN (SELECT id FROM workspaces)").run(`${prefix}*`, prefix.length + 1);
|
|
448
|
+
}
|
|
449
|
+
const pref = (key) => db.prepare("SELECT value FROM settings WHERE key = ?").get(key)?.value;
|
|
450
|
+
const parse = (text) => {
|
|
451
|
+
try {
|
|
452
|
+
return text === void 0 ? void 0 : JSON.parse(text);
|
|
453
|
+
} catch {
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
const font = parse(pref("ui.term-font"));
|
|
458
|
+
if (font && typeof font === "object") {
|
|
459
|
+
for (const device of ["desktop", "touch"]) if (Number.isInteger(font[device])) db.prepare("INSERT OR IGNORE INTO settings (key, value) VALUES (?, ?)").run(`ui.term-font-${device}`, String(font[device]));
|
|
460
|
+
}
|
|
461
|
+
db.exec("DELETE FROM settings WHERE key = 'ui.term-font'");
|
|
462
|
+
const keys = parse(pref("ui.phone-keys"));
|
|
463
|
+
if (Array.isArray(keys)) db.prepare("UPDATE settings SET value = ? WHERE key = 'ui.phone-keys'").run(JSON.stringify({
|
|
464
|
+
base: [],
|
|
465
|
+
extra: keys
|
|
466
|
+
}));
|
|
446
467
|
}
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
const font = parse(pref("ui.term-font"));
|
|
456
|
-
if (font && typeof font === "object") {
|
|
457
|
-
for (const device of ["desktop", "touch"]) if (Number.isInteger(font[device])) db.prepare("INSERT OR IGNORE INTO settings (key, value) VALUES (?, ?)").run(`ui.term-font-${device}`, String(font[device]));
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
version: 3,
|
|
471
|
+
name: "drop the typing-prediction pref",
|
|
472
|
+
up(db) {
|
|
473
|
+
db.exec("DELETE FROM settings WHERE key = 'ui.term-predict'");
|
|
458
474
|
}
|
|
459
|
-
db.exec("DELETE FROM settings WHERE key = 'ui.term-font'");
|
|
460
|
-
const keys = parse(pref("ui.phone-keys"));
|
|
461
|
-
if (Array.isArray(keys)) db.prepare("UPDATE settings SET value = ? WHERE key = 'ui.phone-keys'").run(JSON.stringify({
|
|
462
|
-
base: [],
|
|
463
|
-
extra: keys
|
|
464
|
-
}));
|
|
465
475
|
}
|
|
466
|
-
|
|
476
|
+
];
|
|
467
477
|
var LATEST = STEPS.at(-1).version;
|
|
468
478
|
/** The database at `file`, at the latest version: an empty one is built by
|
|
469
479
|
* every step, an existing one gets those it lacks — each in a transaction
|
|
@@ -979,6 +989,94 @@ function agentLabel$1(id) {
|
|
|
979
989
|
const parsed = parseAgentId(id);
|
|
980
990
|
return parsed ? `${parsed.family.label}${parsed.suffix ? ` ${parsed.suffix}` : ""}` : id;
|
|
981
991
|
}
|
|
992
|
+
/** `tailscale version` prints the short version first (`1.76.1`, or
|
|
993
|
+
* `1.77.30` on an unstable track), then commit lines. */
|
|
994
|
+
function parseVersion(text) {
|
|
995
|
+
return /\b(\d+)\.(\d+)\.(\d+)\b/.exec(text || "")?.[0] ?? null;
|
|
996
|
+
}
|
|
997
|
+
function atLeast(version, min) {
|
|
998
|
+
const a = version.split(".").map(Number);
|
|
999
|
+
const b = min.split(".").map(Number);
|
|
1000
|
+
for (let i = 0; i < 3; i++) if (a[i] !== b[i]) return a[i] > b[i];
|
|
1001
|
+
return true;
|
|
1002
|
+
}
|
|
1003
|
+
/** The target the CLI writes (`http://127.0.0.1:7171`) or one a hand-made
|
|
1004
|
+
* or older config holds (`localhost:7171`, `http://[::1]:7171`, `7171`),
|
|
1005
|
+
* when it is work's port on this machine. */
|
|
1006
|
+
function targetsPort(proxy, port) {
|
|
1007
|
+
if (/^\d+$/.test(proxy)) return proxy === String(port);
|
|
1008
|
+
let url;
|
|
1009
|
+
try {
|
|
1010
|
+
url = new URL(proxy.includes("://") ? proxy : `http://${proxy}`);
|
|
1011
|
+
} catch {
|
|
1012
|
+
return false;
|
|
1013
|
+
}
|
|
1014
|
+
return url.protocol === "http:" && [
|
|
1015
|
+
"127.0.0.1",
|
|
1016
|
+
"localhost",
|
|
1017
|
+
"[::1]"
|
|
1018
|
+
].includes(url.hostname) && url.port === String(port);
|
|
1019
|
+
}
|
|
1020
|
+
/** The URL a `Web` entry (`<name>:<port>`) is opened at: https unless its
|
|
1021
|
+
* port is served as plain HTTP (`--http=<port>`). */
|
|
1022
|
+
function webUrl(config, hostPort) {
|
|
1023
|
+
const i = hostPort.lastIndexOf(":");
|
|
1024
|
+
const host = hostPort.slice(0, i);
|
|
1025
|
+
const port = hostPort.slice(i + 1);
|
|
1026
|
+
const tls = !config.TCP?.[port]?.HTTP;
|
|
1027
|
+
return `${tls ? "https" : "http"}://${host}${port === (tls ? "443" : "80") ? "" : `:${port}`}/`;
|
|
1028
|
+
}
|
|
1029
|
+
/** Where `tailscale serve status --json` (an ipn.ServeConfig; `{}` or
|
|
1030
|
+
* `null` when empty) serves work's port, and whether Funnel publishes that
|
|
1031
|
+
* to the internet — or null. Only a handler at `/` counts: work serves
|
|
1032
|
+
* every page, asset and websocket from the root. */
|
|
1033
|
+
function serveOf(config, port) {
|
|
1034
|
+
for (const [hostPort, web] of Object.entries(config?.Web || {})) {
|
|
1035
|
+
const proxy = web?.Handlers?.["/"]?.Proxy;
|
|
1036
|
+
if (!proxy || !targetsPort(proxy, port)) continue;
|
|
1037
|
+
const url = webUrl(config, hostPort);
|
|
1038
|
+
return {
|
|
1039
|
+
url,
|
|
1040
|
+
host: new URL(url).hostname,
|
|
1041
|
+
funnel: !!config.AllowFunnel?.[hostPort]
|
|
1042
|
+
};
|
|
1043
|
+
}
|
|
1044
|
+
return null;
|
|
1045
|
+
}
|
|
1046
|
+
function hosts(value) {
|
|
1047
|
+
return (value || "").split(",").map((s) => s.trim()).filter(Boolean);
|
|
1048
|
+
}
|
|
1049
|
+
/**
|
|
1050
|
+
* The probe `work doctor` and `work setup` read, from the CLI's output:
|
|
1051
|
+
* `version` (`tailscale version`), `status` (`tailscale status --json`,
|
|
1052
|
+
* null when tailscaled did not answer) and `serve` (`tailscale serve
|
|
1053
|
+
* status --json`). `allowedHosts` is the WORK_ALLOWED_HOSTS the service
|
|
1054
|
+
* runs with.
|
|
1055
|
+
*/
|
|
1056
|
+
function readTailscale({ path, version: versionText, status, serve }, { port, allowedHosts }) {
|
|
1057
|
+
const version = parseVersion(versionText);
|
|
1058
|
+
const name = String(status?.Self?.DNSName || "").replace(/\.$/, "").toLowerCase() || null;
|
|
1059
|
+
const certs = status?.CertDomains;
|
|
1060
|
+
const https = Array.isArray(certs) ? certs.some((d) => d.toLowerCase() === name) : status && "CertDomains" in status ? false : null;
|
|
1061
|
+
const served = serveOf(serve, port);
|
|
1062
|
+
const root = name ? serve?.Web?.[`${name}:443`]?.Handlers?.["/"] : null;
|
|
1063
|
+
return {
|
|
1064
|
+
installed: true,
|
|
1065
|
+
path,
|
|
1066
|
+
version,
|
|
1067
|
+
serveCli: !!version && atLeast(version, "1.52.0"),
|
|
1068
|
+
state: status?.BackendState ?? null,
|
|
1069
|
+
running: status?.BackendState === "Running" && !!name,
|
|
1070
|
+
name,
|
|
1071
|
+
https,
|
|
1072
|
+
port: String(port),
|
|
1073
|
+
serve: served && {
|
|
1074
|
+
...served,
|
|
1075
|
+
allowed: hosts(allowedHosts).some((h) => h.toLowerCase() === served.host)
|
|
1076
|
+
},
|
|
1077
|
+
rootTaken: !served && root ? root.Proxy || root.Path || root.Redirect || "text" : null
|
|
1078
|
+
};
|
|
1079
|
+
}
|
|
982
1080
|
//#endregion
|
|
983
1081
|
//#region lib/setup/doctor.mjs
|
|
984
1082
|
var home = os.homedir();
|
|
@@ -1282,11 +1380,50 @@ async function ghExtensions() {
|
|
|
1282
1380
|
}
|
|
1283
1381
|
return out;
|
|
1284
1382
|
}
|
|
1383
|
+
function parseJson(text) {
|
|
1384
|
+
try {
|
|
1385
|
+
return JSON.parse(text);
|
|
1386
|
+
} catch {
|
|
1387
|
+
return null;
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
/** Tailscale here and what its serve config does with work's port
|
|
1391
|
+
* (lib/setup/tailscale.mjs), from read-only commands. `port` and
|
|
1392
|
+
* `allowedHosts` default to this process's own, which are the server's
|
|
1393
|
+
* when the server asks. */
|
|
1394
|
+
async function tailscaleProbe({ port, allowedHosts } = {}) {
|
|
1395
|
+
const bin = which("tailscale");
|
|
1396
|
+
if (!bin) return { installed: false };
|
|
1397
|
+
const [version, status, serve] = await Promise.all([
|
|
1398
|
+
run(bin, ["version"], { timeout: 5e3 }),
|
|
1399
|
+
run(bin, [
|
|
1400
|
+
"status",
|
|
1401
|
+
"--json",
|
|
1402
|
+
"--peers=false"
|
|
1403
|
+
], { timeout: 5e3 }),
|
|
1404
|
+
run(bin, [
|
|
1405
|
+
"serve",
|
|
1406
|
+
"status",
|
|
1407
|
+
"--json"
|
|
1408
|
+
], { timeout: 5e3 })
|
|
1409
|
+
]);
|
|
1410
|
+
return readTailscale({
|
|
1411
|
+
path: tilde(bin),
|
|
1412
|
+
version: version.stdout,
|
|
1413
|
+
status: status.ok ? parseJson(status.stdout) : null,
|
|
1414
|
+
serve: serve.ok ? parseJson(serve.stdout) : null
|
|
1415
|
+
}, {
|
|
1416
|
+
port: port || process.env.PORT || process.env.WORK_APP_PORT || "7171",
|
|
1417
|
+
allowedHosts: allowedHosts ?? process.env.WORK_ALLOWED_HOSTS
|
|
1418
|
+
});
|
|
1419
|
+
}
|
|
1285
1420
|
/**
|
|
1286
1421
|
* Full readiness snapshot.
|
|
1287
1422
|
*
|
|
1288
|
-
* @param {{ hosts?: string[] }} [opts]
|
|
1289
|
-
* github.com and any host gh is
|
|
1423
|
+
* @param {{ hosts?: string[], port?: string, allowedHosts?: string }} [opts]
|
|
1424
|
+
* configured GitHub hosts (settings); github.com and any host gh is
|
|
1425
|
+
* already signed in to are always included. `port` and `allowedHosts`
|
|
1426
|
+
* are the service's, for the Tailscale probe.
|
|
1290
1427
|
*/
|
|
1291
1428
|
async function doctor(opts = {}) {
|
|
1292
1429
|
const hostSet = /* @__PURE__ */ new Set([
|
|
@@ -1294,12 +1431,13 @@ async function doctor(opts = {}) {
|
|
|
1294
1431
|
...opts.hosts || [],
|
|
1295
1432
|
...ghKnownHosts()
|
|
1296
1433
|
]);
|
|
1297
|
-
const [versions, github, awake, extensions, helpers] = await Promise.all([
|
|
1434
|
+
const [versions, github, awake, extensions, helpers, tailscale] = await Promise.all([
|
|
1298
1435
|
miseVersions(),
|
|
1299
1436
|
Promise.all([...hostSet].map(githubHostStatus)),
|
|
1300
1437
|
canStayAwake(),
|
|
1301
1438
|
ghExtensions(),
|
|
1302
|
-
staleGhHelpers()
|
|
1439
|
+
staleGhHelpers(),
|
|
1440
|
+
tailscaleProbe(opts)
|
|
1303
1441
|
]);
|
|
1304
1442
|
const tools = TOOLS.map((t) => {
|
|
1305
1443
|
if (t.ghExtension) {
|
|
@@ -1341,7 +1479,8 @@ async function doctor(opts = {}) {
|
|
|
1341
1479
|
agents,
|
|
1342
1480
|
github,
|
|
1343
1481
|
awake,
|
|
1344
|
-
staleGhHelpers: helpers
|
|
1482
|
+
staleGhHelpers: helpers,
|
|
1483
|
+
tailscale
|
|
1345
1484
|
};
|
|
1346
1485
|
}
|
|
1347
1486
|
//#endregion
|
|
@@ -5862,7 +6001,7 @@ var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
5862
6001
|
var crypto$3 = __require("crypto");
|
|
5863
6002
|
var asn1 = require_asn1();
|
|
5864
6003
|
var jws = require_jws();
|
|
5865
|
-
var { URL } = __require("url");
|
|
6004
|
+
var { URL: URL$1 } = __require("url");
|
|
5866
6005
|
var WebPushConstants = require_web_push_constants();
|
|
5867
6006
|
var urlBase64Helper = require_urlsafe_base64_helper();
|
|
5868
6007
|
/**
|
|
@@ -5913,7 +6052,7 @@ var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
5913
6052
|
if (typeof subject !== "string" || subject.length === 0) throw new Error("The subject value must be a string containing an https: URL or mailto: address. " + subject);
|
|
5914
6053
|
let subjectParseResult = null;
|
|
5915
6054
|
try {
|
|
5916
|
-
subjectParseResult = new URL(subject);
|
|
6055
|
+
subjectParseResult = new URL$1(subject);
|
|
5917
6056
|
} catch (err) {
|
|
5918
6057
|
throw new Error("Vapid subject is not a valid URL. " + subject);
|
|
5919
6058
|
}
|
|
@@ -5975,7 +6114,7 @@ var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
5975
6114
|
if (!audience) throw new Error("No audience could be generated for VAPID.");
|
|
5976
6115
|
if (typeof audience !== "string" || audience.length === 0) throw new Error("The audience value must be a string containing the origin of a push service. " + audience);
|
|
5977
6116
|
try {
|
|
5978
|
-
new URL(audience);
|
|
6117
|
+
new URL$1(audience);
|
|
5979
6118
|
} catch (err) {
|
|
5980
6119
|
throw new Error("VAPID audience is not a url. " + audience);
|
|
5981
6120
|
}
|
|
@@ -7606,7 +7745,7 @@ function publishChange(sessionId) {
|
|
|
7606
7745
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
7607
7746
|
if (row?.workspace_id) {
|
|
7608
7747
|
const workspaceId = row.workspace_id;
|
|
7609
|
-
import("./
|
|
7748
|
+
import("./_HbAW5Cbt.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
7610
7749
|
return;
|
|
7611
7750
|
}
|
|
7612
7751
|
publish("sessions.changed");
|