diffing 0.4.0 → 0.5.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/README.md +41 -7
- package/dist/cli-agent-BatQgghr.mjs +499 -0
- package/dist/cli-agent-BwZE05CQ.mjs +499 -0
- package/dist/cli-agent-CLvCYpmH.mjs +499 -0
- package/dist/cli-agent-CX8Fa1Ph.mjs +499 -0
- package/dist/cli-agent-SILzesQP.mjs +513 -0
- package/dist/cli-agent-USzLoAit.mjs +499 -0
- package/dist/cli-gh-BV5az425.mjs +147 -0
- package/dist/cli-gh-Bo6fOHQR.mjs +147 -0
- package/dist/cli-gh-D1LoWJl-.mjs +147 -0
- package/dist/cli-gh-DROAJlHi.mjs +147 -0
- package/dist/cli-gh-DiT8BWwu.mjs +147 -0
- package/dist/cli.mjs +97 -3373
- package/dist/client/assets/{angular-html-BVFBJbbm.js → angular-html-BENRjrvE.js} +1 -1
- package/dist/client/assets/{angular-ts-CbJB4bNJ.js → angular-ts-BkliueKG.js} +1 -1
- package/dist/client/assets/{apl-MzqTwOQT.js → apl-KTyp4w2D.js} +1 -1
- package/dist/client/assets/{arc-DkYz3FVO.js → arc-C_OSvkyP.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-CU3k1-_g.js → architectureDiagram-3BPJPVTR-mnE1gNyZ.js} +1 -1
- package/dist/client/assets/{astro-DDblGxmh.js → astro-yRj4to-g.js} +1 -1
- package/dist/client/assets/{blade-DlgT3iuV.js → blade-C9-yC6OZ.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-1lwkHRY_.js → blockDiagram-GPEHLZMM-CRvSVyKN.js} +1 -1
- package/dist/client/assets/{c-BL61MF4M.js → c-Ct9jvrYE.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-BPBjnNM8.js → c4Diagram-AAUBKEIU-DjKSb2e1.js} +1 -1
- package/dist/client/assets/channel-C-4se7DL.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-C_SASPYW.js → chunk-2J33WTMH-qCKs_d3h.js} +1 -1
- package/dist/client/assets/{chunk-3OPIFGDE-CTcbOBts.js → chunk-3OPIFGDE-CKlSXswq.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BipHnfY4.js → chunk-4BX2VUAB-hTW5Y0Nd.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BzJYLlnc.js → chunk-55IACEB6-s0GqpI90.js} +1 -1
- package/dist/client/assets/{chunk-5ZQYHXKU-CorupEGf.js → chunk-5ZQYHXKU-udG-lpX4.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-Cqjzb4FZ.js → chunk-727SXJPM-DVxTc02y.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DcaAmtSe.js → chunk-AQP2D5EJ-B3tUnmo8.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-CiBjSxwv.js → chunk-BSJP7CBP-kRRlTujo.js} +1 -1
- package/dist/client/assets/{chunk-CSCIHK7Q-BTbf6qN3.js → chunk-CSCIHK7Q-DCuKIUBq.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-BA8_ZS2e.js → chunk-FMBD7UC4-ubdx7k5v.js} +1 -1
- package/dist/client/assets/{chunk-KSCS5N6A-ChcT2GOp.js → chunk-KSCS5N6A-DQL7OmPt.js} +1 -1
- package/dist/client/assets/{chunk-L5ZTLDWV-BjzpE0xm.js → chunk-L5ZTLDWV-CiL1m8Rv.js} +1 -1
- package/dist/client/assets/{chunk-LZXEDZCA-Bu0azrf_.js → chunk-LZXEDZCA-CCM9Cjch.js} +2 -2
- package/dist/client/assets/{chunk-ND2GUHAM-Co55RNsd.js → chunk-ND2GUHAM-CwaTnKF0.js} +1 -1
- package/dist/client/assets/{chunk-NZK2D7GU-CtPYeO8_.js → chunk-NZK2D7GU-B7fSEZrX.js} +1 -1
- package/dist/client/assets/{chunk-O5CBEL6O-CzRKb_Hn.js → chunk-O5CBEL6O-B6YFcOS-.js} +1 -1
- package/dist/client/assets/chunk-QZHKN3VN-AyjK8EAt.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-9-4Xqnl2.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-CYH9wUok.js → chunk-XPW4576I-CXr3zzSB.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BTJ4Aj_7.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-D0haGZVz.js +1 -0
- package/dist/client/assets/{cobol-D37UDAkO.js → cobol-DsFmMC48.js} +1 -1
- package/dist/client/assets/{coffee-NCjhDwWZ.js → coffee-C2yB8Qe3.js} +1 -1
- package/dist/client/assets/{cose-bilkent-S5V4N54A-B8RnQ-yF.js → cose-bilkent-S5V4N54A-GMtsBHu-.js} +1 -1
- package/dist/client/assets/{cpp-CQUNgUz4.js → cpp-BaQo5sKT.js} +1 -1
- package/dist/client/assets/{crystal-DGHLJtZ_.js → crystal-DqA_S2VB.js} +1 -1
- package/dist/client/assets/{css-xCgEbp_3.js → css-Dx2FXpZT.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CvmQMXPT.js → dagre-BM42HDAG-BsXOZT1Y.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-wIyWTlXo.js → diagram-2AECGRRQ-CR6siaeN.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-BLMMWtHj.js → diagram-5GNKFQAL-CDZR1QcC.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-Duz_hHky.js → diagram-KO2AKTUF-Di30mzpa.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CftQIrJ1.js → diagram-LMA3HP47-gAYk3RNx.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-7odjt2qL.js → diagram-OG6HWLK6-CJquOKkB.js} +1 -1
- package/dist/client/assets/{dist-PmPhNea3.js → dist-Dt4KwfbE.js} +1 -1
- package/dist/client/assets/{edge-C6_UFojU.js → edge-CQpty0x5.js} +1 -1
- package/dist/client/assets/{elixir-B12MoaTY.js → elixir-BcaGdZXN.js} +1 -1
- package/dist/client/assets/{elm-C80KxC_R.js → elm-CP76VjNp.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DOeyf617.js → erDiagram-TEJ5UH35-Bn7AKn4C.js} +1 -1
- package/dist/client/assets/{erb-DqelkF7l.js → erb-5-RC0m2F.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-BJX7W8r0.js → flowDiagram-I6XJVG4X-0xHUbQwP.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-CFWnCca0.js → ganttDiagram-6RSMTGT7-DPMd_wXW.js} +1 -1
- package/dist/client/assets/{git-rebase-7L4r_tbx.js → git-rebase-Bqj-6hRc.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-oNErRHPR.js → gitGraphDiagram-PVQCEYII-B3-X4FvC.js} +1 -1
- package/dist/client/assets/{glimmer-js-8OQAbTGs.js → glimmer-js-B9DDu9wr.js} +1 -1
- package/dist/client/assets/{glimmer-ts-3IyQiCHC.js → glimmer-ts-C67nh0lS.js} +1 -1
- package/dist/client/assets/{glsl-Bi_bzGJK.js → glsl-4_qCLsUA.js} +1 -1
- package/dist/client/assets/{graphql-YcGxsBfT.js → graphql-BPnYvj3r.js} +1 -1
- package/dist/client/assets/{hack-C9IpUqi6.js → hack-lddqozaa.js} +1 -1
- package/dist/client/assets/{haml-YWDwVGeX.js → haml-ap0ZMUQp.js} +1 -1
- package/dist/client/assets/{handlebars-zyG7ocdI.js → handlebars-DzkaM9As.js} +1 -1
- package/dist/client/assets/{html-CHYhpzfH.js → html-CokHrq1C.js} +1 -1
- package/dist/client/assets/{html-derivative-BhgSILdB.js → html-derivative-C_RIVbdg.js} +1 -1
- package/dist/client/assets/{http-BPv6bUpq.js → http-Ch6kOrN2.js} +1 -1
- package/dist/client/assets/{hurl-CpohSten.js → hurl-C10trGis.js} +1 -1
- package/dist/client/assets/{index-BIrpcT6-.js → index-HMLOzXE5.js} +94 -94
- package/dist/client/assets/{index-CMyunQt6.css → index-tBAqyUGu.css} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-D1xM4RZP.js → infoDiagram-5YYISTIA-CrNF878y.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-7DsxXa1L.js → ishikawaDiagram-YF4QCWOH-KGxvlsNl.js} +1 -1
- package/dist/client/assets/{java-Bt4sAY2m.js → java-CRDLxWFu.js} +1 -1
- package/dist/client/assets/{javascript-DZjI42QZ.js → javascript-BJrijFXZ.js} +1 -1
- package/dist/client/assets/{jinja-D2zTW07t.js → jinja-Dq3vAj4T.js} +1 -1
- package/dist/client/assets/{jison-Dz-ndIM5.js → jison-PSOWkXj1.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-C_A1TmoL.js → journeyDiagram-JHISSGLW-CtS0cOcB.js} +1 -1
- package/dist/client/assets/{json-Ykn4LhOH.js → json-Ue4paT4d.js} +1 -1
- package/dist/client/assets/{jsx-Ce8SKNSt.js → jsx-D60Fd_vz.js} +1 -1
- package/dist/client/assets/{julia-DlfibiGU.js → julia-7UqDDEkb.js} +1 -1
- package/dist/client/assets/{just-CT2PIeY2.js → just-2Nqw-G9g.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-ccKLE8Df.js → kanban-definition-UN3LZRKU-iXUnaPci.js} +1 -1
- package/dist/client/assets/{latex-Dkfo8_p4.js → latex-CAORCICD.js} +1 -1
- package/dist/client/assets/{line-BbqJI7bZ.js → line-BvDfaxy7.js} +1 -1
- package/dist/client/assets/{linear-B7c0dSOq.js → linear-BPNP_vs-.js} +1 -1
- package/dist/client/assets/{liquid-dWmg5egV.js → liquid-B1dMHpLg.js} +1 -1
- package/dist/client/assets/{lua-6hNhLpj8.js → lua-CVg9faio.js} +1 -1
- package/dist/client/assets/{marko-DTVuQVoJ.js → marko-CIj0-gvZ.js} +1 -1
- package/dist/client/assets/{mdc-LbJVW6cj.js → mdc-Dcm42qXg.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-f-eKVdX9.js → mermaid-parser.core-akPZ8Xt7.js} +1 -1
- package/dist/client/assets/{mermaid.core-ClMOD6O3.js → mermaid.core-DTef5PVY.js} +3 -3
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-vaLTR09L.js → mindmap-definition-RKZ34NQL-jM52CcWE.js} +1 -1
- package/dist/client/assets/{nginx-BvMTgdwH.js → nginx-zzgwPZum.js} +1 -1
- package/dist/client/assets/{nim-BdGYhiTu.js → nim-Au_jXrfv.js} +1 -1
- package/dist/client/assets/{perl-DamEOAxn.js → perl-CAllCqkR.js} +1 -1
- package/dist/client/assets/{php-DtubpAAy.js → php-CgM1w-IE.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-yuTkGKaM.js → pieDiagram-4H26LBE5-BdI8P976.js} +1 -1
- package/dist/client/assets/{pug-CMYtl1BN.js → pug-uy7R6gmf.js} +1 -1
- package/dist/client/assets/{qml-D76DCV4U.js → qml-XvGkfj7l.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Db00tlGp.js → quadrantDiagram-W4KKPZXB-CTUrE6VT.js} +1 -1
- package/dist/client/assets/{r-gMTLVmYP.js → r-DFRLw0D7.js} +1 -1
- package/dist/client/assets/{razor-1oOg77PO.js → razor-e63ackHA.js} +1 -1
- package/dist/client/assets/{regexp-BJzbycG8.js → regexp-BmysD-wZ.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CwCGFaVe.js → requirementDiagram-4Y6WPE33-oNojoZNX.js} +1 -1
- package/dist/client/assets/{rst-Be7RtxcU.js → rst-BdbFuh_U.js} +1 -1
- package/dist/client/assets/{ruby-oyNd3WUZ.js → ruby-CSdAL4us.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-D78nH-eA.js → sankeyDiagram-5OEKKPKP-Dj7lZz55.js} +1 -1
- package/dist/client/assets/{sas-Bx8dCxcK.js → sas-JtqALwix.js} +1 -1
- package/dist/client/assets/{scss-DzZEPh1d.js → scss-BKQrDG10.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CEy9mjHg.js → sequenceDiagram-3UESZ5HK-BNpcmJ78.js} +1 -1
- package/dist/client/assets/{shellscript-t9s0AoBc.js → shellscript-jk-NKrK3.js} +1 -1
- package/dist/client/assets/{shellsession-NczJO6Io.js → shellsession-C_OxJCjJ.js} +1 -1
- package/dist/client/assets/{soy-Dl6InSac.js → soy-6C-zhFL7.js} +1 -1
- package/dist/client/assets/{sql-DXkZEc28.js → sql-N-x_YojG.js} +1 -1
- package/dist/client/assets/{src-DCIMHd9M.js → src-i7-w__4l.js} +1 -1
- package/dist/client/assets/{stata-DmpUDP7M.js → stata-Dkub6QBh.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Cz0qtN4R.js → stateDiagram-AJRCARHV-D30q2ZVZ.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CyrdNaut.js +1 -0
- package/dist/client/assets/{surrealql-BAZp4tA6.js → surrealql-2pOLFG_P.js} +1 -1
- package/dist/client/assets/{svelte-DXBMAgu7.js → svelte-CuvADzyi.js} +1 -1
- package/dist/client/assets/{templ-CF-yfRM7.js → templ-DtOxTonk.js} +1 -1
- package/dist/client/assets/{tex-D5tGX-j9.js → tex-BwPRGOZW.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-B6_u5aFI.js → timeline-definition-PNZ67QCA-7FTcWUjq.js} +1 -1
- package/dist/client/assets/{ts-tags-DWMVxoO1.js → ts-tags-Cn_Y5EDf.js} +1 -1
- package/dist/client/assets/{tsx-C6QVlWvX.js → tsx-RC8FAazO.js} +1 -1
- package/dist/client/assets/{twig-DKFN0Lvm.js → twig-DtQFIjP0.js} +1 -1
- package/dist/client/assets/{typescript-DVfrnfSW.js → typescript-DX6qUod4.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-C_-TQFos.js → vennDiagram-CIIHVFJN-B4eT2YKy.js} +1 -1
- package/dist/client/assets/{vue-BCLQ-g1T.js → vue-D8H1bCQ7.js} +1 -1
- package/dist/client/assets/{vue-html-Ddr0JbE-.js → vue-html-B0YmCSWB.js} +1 -1
- package/dist/client/assets/{vue-vine-CX36RUs5.js → vue-vine-Buj2gfKi.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-BJQg7Pb-.js → wardleyDiagram-YWT4CUSO-_PA_cSF5.js} +1 -1
- package/dist/client/assets/{xml-FnMA1W8C.js → xml-KzFmzaXc.js} +1 -1
- package/dist/client/assets/{xsl-CLduN3zs.js → xsl-x0R4ZCXO.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-1Ux8tle4.js → xychartDiagram-2RQKCTM6-g1emmBmb.js} +1 -1
- package/dist/client/assets/{yaml-B6hNfHm7.js → yaml-BCE-GuGS.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/mcp-BMTZLQuB.mjs +758 -0
- package/dist/mcp-BUF2nEL7.mjs +1036 -0
- package/dist/mcp-Bpx76OGU.mjs +945 -0
- package/dist/mcp-C1T7LI0H.mjs +1036 -0
- package/dist/mcp-C4Bjmf9m.mjs +1047 -0
- package/dist/mcp-CFxcdEcJ.mjs +733 -0
- package/dist/mcp-CwjThGi2.mjs +913 -0
- package/dist/mcp-D4OsB9lt.mjs +1047 -0
- package/dist/mcp-DJ2batvt.mjs +913 -0
- package/dist/mcp-Ds_lPX_o.mjs +913 -0
- package/dist/plan-format-B6nbAw_c.mjs +132 -0
- package/dist/server-95UE5bgh.mjs +3367 -0
- package/dist/server-B0cS95Lf.mjs +3488 -0
- package/dist/server-Bj-6KlK5.mjs +3367 -0
- package/dist/server-Bpf84Il0.mjs +3367 -0
- package/dist/server-CYSpLbdA.mjs +3360 -0
- package/dist/server-Dov7jbV3.mjs +3367 -0
- package/dist/server-eQ2E4Axo.mjs +3367 -0
- package/dist/server-lock-C_wPtEsH.mjs +909 -0
- package/dist/server-lock-Cbu3qHdu.mjs +924 -0
- package/dist/server-lock-D32inEn9.mjs +924 -0
- package/dist/server-lock-Ddcat0HF.mjs +851 -0
- package/dist/server-lock-Ujbcgq28.mjs +954 -0
- package/dist/update-check-CXeSZANo.mjs +129 -0
- package/package.json +3 -2
- package/dist/client/assets/channel-BX6tZjG6.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-BCSN705V.js +0 -1
- package/dist/client/assets/chunk-WU5MYG2G-xPWDnrji.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-7xfBUC5E.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CFM5yYso.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Dye5cILT.js +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
//#region src/lib/update-check.ts
|
|
6
|
+
/**
|
|
7
|
+
* Strips ANSI escape sequences from a string to compute its visible/display length.
|
|
8
|
+
*/
|
|
9
|
+
function stripAnsi(str) {
|
|
10
|
+
return str.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, "");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Compare two semver version strings to see if the latest version is newer.
|
|
14
|
+
*/
|
|
15
|
+
function isNewerVersion(current, latest) {
|
|
16
|
+
const clean = (v) => v.replace(/^v/, "");
|
|
17
|
+
const cParts = clean(current).split(".").map(Number);
|
|
18
|
+
const lParts = clean(latest).split(".").map(Number);
|
|
19
|
+
for (let i = 0; i < 3; i++) {
|
|
20
|
+
const cVal = cParts[i] ?? 0;
|
|
21
|
+
const lVal = lParts[i] ?? 0;
|
|
22
|
+
if (Number.isNaN(cVal) || Number.isNaN(lVal)) continue;
|
|
23
|
+
if (lVal > cVal) return true;
|
|
24
|
+
if (lVal < cVal) return false;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Queries the npm registry asynchronously with a 1-second timeout.
|
|
30
|
+
*/
|
|
31
|
+
async function checkForUpdates(currentVersion) {
|
|
32
|
+
try {
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const id = setTimeout(() => controller.abort(), 1e3);
|
|
35
|
+
const res = await fetch("https://registry.npmjs.org/diffing/latest", { signal: controller.signal });
|
|
36
|
+
clearTimeout(id);
|
|
37
|
+
if (!res.ok) return null;
|
|
38
|
+
const data = await res.json();
|
|
39
|
+
if (!data.version) return null;
|
|
40
|
+
return {
|
|
41
|
+
hasUpdate: isNewerVersion(currentVersion, data.version),
|
|
42
|
+
latestVersion: data.version
|
|
43
|
+
};
|
|
44
|
+
} catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Prints a beautifully styled console box letting the user know a new version is available.
|
|
50
|
+
*/
|
|
51
|
+
function printUpdateDisclaimer(current, latest) {
|
|
52
|
+
const borderCol = "\x1B[38;5;220m";
|
|
53
|
+
const bold = "\x1B[1m";
|
|
54
|
+
const reset = "\x1B[0m";
|
|
55
|
+
const boxWidth = 66;
|
|
56
|
+
const top = borderCol + "╭" + "─".repeat(boxWidth) + "╮\x1B[0m";
|
|
57
|
+
const bottom = borderCol + "╰" + "─".repeat(boxWidth) + "╯\x1B[0m";
|
|
58
|
+
const side = borderCol + "│\x1B[0m";
|
|
59
|
+
const l1 = `🚀 ${bold}Update available!${reset} v${current} → \x1b[38;5;82mv${latest}${reset}`;
|
|
60
|
+
const l2 = `Run ${bold}diffing update${reset} to easily upgrade to the latest version.`;
|
|
61
|
+
const printRow = (content) => {
|
|
62
|
+
const displayLength = stripAnsi(content).length + (content.includes("🚀") ? 1 : 0);
|
|
63
|
+
const totalPadding = boxWidth - 4 - displayLength;
|
|
64
|
+
const pad = " ".repeat(Math.max(0, totalPadding));
|
|
65
|
+
console.log(`${side} ${content}${pad} ${side}`);
|
|
66
|
+
};
|
|
67
|
+
console.log();
|
|
68
|
+
console.log(top);
|
|
69
|
+
printRow("");
|
|
70
|
+
printRow(l1);
|
|
71
|
+
printRow(l2);
|
|
72
|
+
printRow("");
|
|
73
|
+
console.log(bottom);
|
|
74
|
+
console.log();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Executes the update command process.
|
|
78
|
+
*/
|
|
79
|
+
async function runUpdateCommand() {
|
|
80
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
81
|
+
const pkgPath = existsSync(resolve(__dirname, "..", "package.json")) ? resolve(__dirname, "..", "package.json") : resolve(__dirname, "..", "..", "package.json");
|
|
82
|
+
const currentVersion = JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
83
|
+
console.log("Checking for updates...");
|
|
84
|
+
const updateInfo = await checkForUpdates(currentVersion);
|
|
85
|
+
if (!updateInfo || !updateInfo.hasUpdate) {
|
|
86
|
+
console.log(`\x1b[38;5;82mYou are already on the latest version of diffing (v${currentVersion})!\x1b[0m`);
|
|
87
|
+
return 0;
|
|
88
|
+
}
|
|
89
|
+
const latest = updateInfo.latestVersion;
|
|
90
|
+
console.log(`\n\x1b[38;5;75mUpdating diffing: v${currentVersion} → v${latest}...\x1b[0m\n`);
|
|
91
|
+
let cmd = "npm";
|
|
92
|
+
let args = [
|
|
93
|
+
"install",
|
|
94
|
+
"-g",
|
|
95
|
+
"diffing@latest"
|
|
96
|
+
];
|
|
97
|
+
try {
|
|
98
|
+
const { execSync } = await import("node:child_process");
|
|
99
|
+
execSync("pnpm --version", { stdio: "ignore" });
|
|
100
|
+
cmd = "pnpm";
|
|
101
|
+
args = [
|
|
102
|
+
"add",
|
|
103
|
+
"-g",
|
|
104
|
+
"diffing@latest"
|
|
105
|
+
];
|
|
106
|
+
} catch {}
|
|
107
|
+
console.log(`Running: ${cmd} ${args.join(" ")}\n`);
|
|
108
|
+
const exitCode = await new Promise((res) => {
|
|
109
|
+
const child = spawn(cmd, args, {
|
|
110
|
+
stdio: "inherit",
|
|
111
|
+
shell: true
|
|
112
|
+
});
|
|
113
|
+
child.on("close", (code) => {
|
|
114
|
+
res(code ?? 0);
|
|
115
|
+
});
|
|
116
|
+
child.on("error", (err) => {
|
|
117
|
+
console.error(`Failed to start update process: ${err.message}`);
|
|
118
|
+
res(1);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
if (exitCode === 0) console.log(`\n\x1b[38;5;82mSuccessfully updated diffing to v${latest}!\x1b[0m\n`);
|
|
122
|
+
else {
|
|
123
|
+
console.error(`\n\x1b[38;5;196mFailed to update diffing. Please try running the command manually with sudo if required:\x1b[0m`);
|
|
124
|
+
console.error(` sudo ${cmd} ${args.join(" ")}\n`);
|
|
125
|
+
}
|
|
126
|
+
return exitCode;
|
|
127
|
+
}
|
|
128
|
+
//#endregion
|
|
129
|
+
export { checkForUpdates, printUpdateDisclaimer, runUpdateCommand };
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "diffing",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "local-first CLI for reviewing, navigating, and discussing git diffs with AI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"packageManager": "pnpm@
|
|
7
|
+
"packageManager": "pnpm@11.6.0",
|
|
8
8
|
"homepage": "https://github.com/ahmedragab20/diffing",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"@pierre/diffs": "^1.1.11",
|
|
72
72
|
"@testing-library/jest-dom": "^6.9.1",
|
|
73
73
|
"@testing-library/react": "^16.3.2",
|
|
74
|
+
"@testing-library/user-event": "^14.6.1",
|
|
74
75
|
"@types/node": "^25.5.2",
|
|
75
76
|
"@types/react": "^19.1.2",
|
|
76
77
|
"@types/react-dom": "^19.1.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as e,ot as t}from"./chunk-CSCIHK7Q-BTbf6qN3.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-DCIMHd9M.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e,p as t}from"./src-DCIMHd9M.js";import{x as n}from"./chunk-CSCIHK7Q-BTbf6qN3.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-DCIMHd9M.js";import"./chunk-CSCIHK7Q-BTbf6qN3.js";import"./chunk-5ZQYHXKU-CorupEGf.js";import"./chunk-O5CBEL6O-CzRKb_Hn.js";import"./chunk-FMBD7UC4-BA8_ZS2e.js";import"./chunk-BSJP7CBP-CiBjSxwv.js";import"./chunk-L5ZTLDWV-BjzpE0xm.js";import"./chunk-ND2GUHAM-Co55RNsd.js";import"./chunk-55IACEB6-BzJYLlnc.js";import"./chunk-2J33WTMH-C_SASPYW.js";import"./chunk-NZK2D7GU-CtPYeO8_.js";import"./chunk-3OPIFGDE-CTcbOBts.js";import"./chunk-KSCS5N6A-ChcT2GOp.js";import"./chunk-LZXEDZCA-Bu0azrf_.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-Cqjzb4FZ.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-DCIMHd9M.js";import"./chunk-CSCIHK7Q-BTbf6qN3.js";import"./chunk-5ZQYHXKU-CorupEGf.js";import"./chunk-O5CBEL6O-CzRKb_Hn.js";import"./chunk-FMBD7UC4-BA8_ZS2e.js";import"./chunk-BSJP7CBP-CiBjSxwv.js";import"./chunk-L5ZTLDWV-BjzpE0xm.js";import"./chunk-ND2GUHAM-Co55RNsd.js";import"./chunk-55IACEB6-BzJYLlnc.js";import"./chunk-2J33WTMH-C_SASPYW.js";import"./chunk-NZK2D7GU-CtPYeO8_.js";import"./chunk-3OPIFGDE-CTcbOBts.js";import"./chunk-KSCS5N6A-ChcT2GOp.js";import"./chunk-LZXEDZCA-Bu0azrf_.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-Cqjzb4FZ.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h as e}from"./src-DCIMHd9M.js";import"./chunk-CSCIHK7Q-BTbf6qN3.js";import"./chunk-5ZQYHXKU-CorupEGf.js";import"./chunk-O5CBEL6O-CzRKb_Hn.js";import"./chunk-BSJP7CBP-CiBjSxwv.js";import"./chunk-L5ZTLDWV-BjzpE0xm.js";import"./chunk-55IACEB6-BzJYLlnc.js";import"./chunk-2J33WTMH-C_SASPYW.js";import"./chunk-NZK2D7GU-CtPYeO8_.js";import"./chunk-3OPIFGDE-CTcbOBts.js";import"./chunk-KSCS5N6A-ChcT2GOp.js";import"./chunk-LZXEDZCA-Bu0azrf_.js";import{i as t,n,r,t as i}from"./chunk-AQP2D5EJ-DcaAmtSe.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|