difit 4.0.2 → 4.0.3

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.
Files changed (110) hide show
  1. package/README.ja.md +1 -0
  2. package/README.ko.md +1 -0
  3. package/README.md +1 -0
  4. package/README.zh.md +1 -0
  5. package/dist/cli/index.js +38 -28
  6. package/dist/cli/index.test.js +162 -77
  7. package/dist/client/assets/architecture-PBZL5I3N-DUNTzy9d.js +1 -0
  8. package/dist/client/assets/{architectureDiagram-2XIMDMQ5-CXJTJFYJ.js → architectureDiagram-2XIMDMQ5-BOmef_aT.js} +1 -1
  9. package/dist/client/assets/{blockDiagram-WCTKOSBZ-B60owdAn.js → blockDiagram-WCTKOSBZ-CuovjbLp.js} +1 -1
  10. package/dist/client/assets/{c4Diagram-IC4MRINW-4tg2D_Vt.js → c4Diagram-IC4MRINW-l2hgU0UG.js} +1 -1
  11. package/dist/client/assets/channel-BBMOf_Bn.js +1 -0
  12. package/dist/client/assets/{chunk-4BX2VUAB-CW45MZFx.js → chunk-4BX2VUAB-Bh2XMPGo.js} +1 -1
  13. package/dist/client/assets/{chunk-55IACEB6-Busc3sfI.js → chunk-55IACEB6-r9BRoqNs.js} +1 -1
  14. package/dist/client/assets/{chunk-7E7YKBS2-BVR-8Pma.js → chunk-7E7YKBS2-BUy3or4g.js} +1 -1
  15. package/dist/client/assets/{chunk-7R4GIKGN-DneC7PwP.js → chunk-7R4GIKGN-C7ClNgvP.js} +1 -1
  16. package/dist/client/assets/{chunk-C72U2L5F-CJr98gus.js → chunk-C72U2L5F-_P9RrDdo.js} +1 -1
  17. package/dist/client/assets/{chunk-EGIJ26TM-iD_CSqpR.js → chunk-EGIJ26TM-D-xQ2sZ-.js} +1 -1
  18. package/dist/client/assets/{chunk-FMBD7UC4-BSsJVlRg.js → chunk-FMBD7UC4-OuP8NjEM.js} +1 -1
  19. package/dist/client/assets/{chunk-GEFDOKGD-eDUrsRgt.js → chunk-GEFDOKGD-noJ9o8LM.js} +1 -1
  20. package/dist/client/assets/chunk-GLR3WWYH-DVK9OjRZ.js +2 -0
  21. package/dist/client/assets/chunk-HHEYEP7N-C1QyKuQs.js +1 -0
  22. package/dist/client/assets/{chunk-JSJVCQXG-UCJub_Eo.js → chunk-JSJVCQXG-2AjhqYcu.js} +1 -1
  23. package/dist/client/assets/{chunk-KX2RTZJC-DrhxxMOx.js → chunk-KX2RTZJC-tMPTaDcx.js} +1 -1
  24. package/dist/client/assets/{chunk-KYZI473N-Brv52ZeO.js → chunk-KYZI473N-CGwu81pT.js} +1 -1
  25. package/dist/client/assets/{chunk-L3YUKLVL-BkBigLhQ.js → chunk-L3YUKLVL-DFNfIVVw.js} +1 -1
  26. package/dist/client/assets/{chunk-MX3YWQON-DHRoNbgW.js → chunk-MX3YWQON-BnSlIBhe.js} +1 -1
  27. package/dist/client/assets/{chunk-NQ4KR5QH-BZ86r2qK.js → chunk-NQ4KR5QH-CpfTlpaZ.js} +1 -1
  28. package/dist/client/assets/{chunk-O4XLMI2P-Sr33dk8c.js → chunk-O4XLMI2P-BDGKGscp.js} +1 -1
  29. package/dist/client/assets/{chunk-OZEHJAEY-3F2ff7sj.js → chunk-OZEHJAEY-3OAEqm17.js} +1 -1
  30. package/dist/client/assets/{chunk-PQ6SQG4A-C9acTu_E.js → chunk-PQ6SQG4A-DfQjNfPX.js} +1 -1
  31. package/dist/client/assets/{chunk-PU5JKC2W-PQmA4K_y.js → chunk-PU5JKC2W-DRiL1iN6.js} +1 -1
  32. package/dist/client/assets/chunk-QZHKN3VN-DBD5yPlw.js +1 -0
  33. package/dist/client/assets/{chunk-R5LLSJPH-ChexuO_S.js → chunk-R5LLSJPH-dkcbq1pR.js} +1 -1
  34. package/dist/client/assets/{chunk-WL4C6EOR-oxNV_hhM.js → chunk-WL4C6EOR-BeCB6d6F.js} +1 -1
  35. package/dist/client/assets/{chunk-XIRO2GV7-C9gOnffv.js → chunk-XIRO2GV7-BxmEO1Vi.js} +1 -1
  36. package/dist/client/assets/{chunk-XPW4576I-CcqR6BsE.js → chunk-XPW4576I-jm7TiixU.js} +1 -1
  37. package/dist/client/assets/{chunk-XZSTWKYB-C5JJ0TZR.js → chunk-XZSTWKYB-BGKYCy46.js} +1 -1
  38. package/dist/client/assets/{chunk-YBOYWFTD-B6kAkNgH.js → chunk-YBOYWFTD-C9faLjdm.js} +1 -1
  39. package/dist/client/assets/classDiagram-VBA2DB6C-Depk8rxx.js +1 -0
  40. package/dist/client/assets/classDiagram-v2-RAHNMMFH-DHvQPm8y.js +1 -0
  41. package/dist/client/assets/{cose-bilkent-S5V4N54A-hlDud6Ym.js → cose-bilkent-S5V4N54A-BWD5TWFn.js} +1 -1
  42. package/dist/client/assets/{dagre-BwDYerGQ.js → dagre-Dd1VxucU.js} +1 -1
  43. package/dist/client/assets/{dagre-KLK3FWXG-KnkMUlUE.js → dagre-KLK3FWXG-BJFTyMud.js} +1 -1
  44. package/dist/client/assets/{diagram-E7M64L7V-DcTCIFUG.js → diagram-E7M64L7V-eWdHIl72.js} +1 -1
  45. package/dist/client/assets/{diagram-IFDJBPK2-COcDQunj.js → diagram-IFDJBPK2-C1-sqK0o.js} +1 -1
  46. package/dist/client/assets/{diagram-P4PSJMXO-DmgET9pD.js → diagram-P4PSJMXO-DHeUNvSg.js} +1 -1
  47. package/dist/client/assets/{dist-v55TM3-O.js → dist-FLbYR5UU.js} +1 -1
  48. package/dist/client/assets/{erDiagram-INFDFZHY-ByL02DP-.js → erDiagram-INFDFZHY-CX8FAWmU.js} +1 -1
  49. package/dist/client/assets/{flowDiagram-PKNHOUZH-CW-lseYE.js → flowDiagram-PKNHOUZH-DgBnUaHH.js} +1 -1
  50. package/dist/client/assets/{ganttDiagram-A5KZAMGK-BxLjKRld.js → ganttDiagram-A5KZAMGK-C331HQ-y.js} +1 -1
  51. package/dist/client/assets/gitGraph-HDMCJU4V-DPGoIMlm.js +1 -0
  52. package/dist/client/assets/{gitGraphDiagram-K3NZZRJ6-DLEDjokx.js → gitGraphDiagram-K3NZZRJ6-zEXLThxN.js} +1 -1
  53. package/dist/client/assets/index-BGPkswtu.js +79 -0
  54. package/dist/client/assets/{index-Cn4K2uvR.css → index-Cq_APK7Y.css} +1 -1
  55. package/dist/client/assets/info-3K5VOQVL-CYdIfRwG.js +1 -0
  56. package/dist/client/assets/{infoDiagram-LFFYTUFH-CnmYkyCb.js → infoDiagram-LFFYTUFH-CKx11_2a.js} +1 -1
  57. package/dist/client/assets/{ishikawaDiagram-PHBUUO56-zycn1mVK.js → ishikawaDiagram-PHBUUO56-BlZMQgOe.js} +1 -1
  58. package/dist/client/assets/{journeyDiagram-4ABVD52K-aRoH36nV.js → journeyDiagram-4ABVD52K-C3p_p4rn.js} +1 -1
  59. package/dist/client/assets/{kanban-definition-K7BYSVSG-BGtGv5yb.js → kanban-definition-K7BYSVSG-4XJPQF50.js} +1 -1
  60. package/dist/client/assets/{line-Cm3ZuldI.js → line-Bb6xn3n_.js} +1 -1
  61. package/dist/client/assets/{linear-HJOLPv7E.js → linear-BPttYRJr.js} +1 -1
  62. package/dist/client/assets/{mermaid-parser.core-BvMqHn4b.js → mermaid-parser.core-CjY9NqXx.js} +2 -2
  63. package/dist/client/assets/{mermaid.core-C4SvQTx9.js → mermaid.core-B0ynITdC.js} +3 -3
  64. package/dist/client/assets/{mindmap-definition-YRQLILUH-B8jMe7ir.js → mindmap-definition-YRQLILUH-Dya2e4tr.js} +1 -1
  65. package/dist/client/assets/packet-RMMSAZCW-D7vTTuAT.js +1 -0
  66. package/dist/client/assets/pie-UPGHQEXC-ptFuye_f.js +1 -0
  67. package/dist/client/assets/{pieDiagram-SKSYHLDU-CGWbtgxq.js → pieDiagram-SKSYHLDU-MZ74L9cN.js} +1 -1
  68. package/dist/client/assets/{quadrantDiagram-337W2JSQ-CQ1QKsru.js → quadrantDiagram-337W2JSQ-Da_T39nG.js} +1 -1
  69. package/dist/client/assets/radar-KQ55EAFF-BR1_ZPLF.js +1 -0
  70. package/dist/client/assets/{requirementDiagram-Z7DCOOCP-Co1LyL5T.js → requirementDiagram-Z7DCOOCP-DzlKWGt3.js} +1 -1
  71. package/dist/client/assets/{sankeyDiagram-WA2Y5GQK-BQVbT6bS.js → sankeyDiagram-WA2Y5GQK-BPketwK-.js} +1 -1
  72. package/dist/client/assets/{sequenceDiagram-2WXFIKYE-DGIEkdPm.js → sequenceDiagram-2WXFIKYE-geDrMLZ_.js} +1 -1
  73. package/dist/client/assets/{src-DsmFf7gO.js → src-BuTVwZtT.js} +1 -1
  74. package/dist/client/assets/{stateDiagram-RAJIS63D-DgjKbXnG.js → stateDiagram-RAJIS63D-DOLTjnid.js} +1 -1
  75. package/dist/client/assets/stateDiagram-v2-FVOUBMTO-BIjVI5d6.js +1 -0
  76. package/dist/client/assets/{timeline-definition-YZTLITO2-Dz2dVWjY.js → timeline-definition-YZTLITO2-Cy6Qm4Pd.js} +1 -1
  77. package/dist/client/assets/treemap-KZPCXAKY-Bw93Vsua.js +1 -0
  78. package/dist/client/assets/{vennDiagram-LZ73GAT5-IIH5S1B6.js → vennDiagram-LZ73GAT5-UUQN9akd.js} +1 -1
  79. package/dist/client/assets/{xychartDiagram-JWTSCODW-DeYZhM2j.js → xychartDiagram-JWTSCODW-DiTicxdS.js} +1 -1
  80. package/dist/client/index.html +2 -2
  81. package/dist/server/git-diff-tui.d.ts +2 -2
  82. package/dist/server/git-diff-tui.js +12 -7
  83. package/dist/server/git-diff-tui.test.js +18 -2
  84. package/dist/server/git-diff.d.ts +3 -2
  85. package/dist/server/git-diff.js +29 -6
  86. package/dist/server/git-diff.test.js +52 -3
  87. package/dist/server/server.d.ts +2 -3
  88. package/dist/server/server.js +80 -55
  89. package/dist/server/server.test.js +110 -60
  90. package/dist/tui/App.d.ts +2 -2
  91. package/dist/tui/App.js +4 -3
  92. package/dist/types/diff.d.ts +8 -0
  93. package/dist/utils/diffSelection.d.ts +6 -0
  94. package/dist/utils/diffSelection.js +30 -0
  95. package/package.json +1 -1
  96. package/dist/client/assets/architecture-PBZL5I3N-DFdrPtRG.js +0 -1
  97. package/dist/client/assets/channel-DogeU0Wo.js +0 -1
  98. package/dist/client/assets/chunk-GLR3WWYH-NUOKNaxd.js +0 -2
  99. package/dist/client/assets/chunk-HHEYEP7N-DhuxpkmW.js +0 -1
  100. package/dist/client/assets/chunk-QZHKN3VN-DMRW-mur.js +0 -1
  101. package/dist/client/assets/classDiagram-VBA2DB6C-DlDUg6JI.js +0 -1
  102. package/dist/client/assets/classDiagram-v2-RAHNMMFH-BxzJfV1S.js +0 -1
  103. package/dist/client/assets/gitGraph-HDMCJU4V-CjAGJiCH.js +0 -1
  104. package/dist/client/assets/index-CizZxdOT.js +0 -79
  105. package/dist/client/assets/info-3K5VOQVL-CB6KpH1K.js +0 -1
  106. package/dist/client/assets/packet-RMMSAZCW-CzbC-tXD.js +0 -1
  107. package/dist/client/assets/pie-UPGHQEXC-CmhYIo8p.js +0 -1
  108. package/dist/client/assets/radar-KQ55EAFF-BCa9lsCc.js +0 -1
  109. package/dist/client/assets/stateDiagram-v2-FVOUBMTO-gPrpjL74.js +0 -1
  110. package/dist/client/assets/treemap-KZPCXAKY-DXiPfAB6.js +0 -1
@@ -46,6 +46,12 @@ export interface DiffCommentCodeSnapshot {
46
46
  content: string;
47
47
  language?: string;
48
48
  }
49
+ export type BaseMode = 'direct' | 'merge-base';
50
+ export interface DiffSelection {
51
+ baseCommitish: string;
52
+ targetCommitish: string;
53
+ baseMode?: BaseMode;
54
+ }
49
55
  export interface DiffResponse {
50
56
  commit: string;
51
57
  files: DiffFile[];
@@ -57,6 +63,7 @@ export interface DiffResponse {
57
63
  targetCommitish?: string;
58
64
  requestedBaseCommitish?: string;
59
65
  requestedTargetCommitish?: string;
66
+ requestedBaseMode?: BaseMode;
60
67
  clearComments?: boolean;
61
68
  repositoryId?: string;
62
69
  commentImports?: CommentImport[];
@@ -144,6 +151,7 @@ export interface DiffContextStorage {
144
151
  version: 2;
145
152
  baseCommitish: string;
146
153
  targetCommitish: string;
154
+ baseMode?: BaseMode;
147
155
  createdAt: string;
148
156
  lastModifiedAt: string;
149
157
  threads: DiffCommentThread[];
@@ -0,0 +1,6 @@
1
+ import type { BaseMode, DiffSelection } from '../types/diff.js';
2
+ export declare function normalizeBaseMode(baseMode?: BaseMode): BaseMode;
3
+ export declare function createDiffSelection(baseCommitish: string, targetCommitish: string, baseMode?: BaseMode): DiffSelection;
4
+ export declare function diffSelectionsEqual(left: DiffSelection | null | undefined, right: DiffSelection | null | undefined): boolean;
5
+ export declare function getDiffSelectionKey(selection: DiffSelection): string;
6
+ export declare function getMergeBaseTargetRef(targetCommitish: string): string;
@@ -0,0 +1,30 @@
1
+ export function normalizeBaseMode(baseMode) {
2
+ return baseMode ?? 'direct';
3
+ }
4
+ export function createDiffSelection(baseCommitish, targetCommitish, baseMode) {
5
+ if (normalizeBaseMode(baseMode) === 'merge-base') {
6
+ return {
7
+ baseCommitish,
8
+ targetCommitish,
9
+ baseMode: 'merge-base',
10
+ };
11
+ }
12
+ return {
13
+ baseCommitish,
14
+ targetCommitish,
15
+ };
16
+ }
17
+ export function diffSelectionsEqual(left, right) {
18
+ return (left?.baseCommitish === right?.baseCommitish &&
19
+ left?.targetCommitish === right?.targetCommitish &&
20
+ normalizeBaseMode(left?.baseMode) === normalizeBaseMode(right?.baseMode));
21
+ }
22
+ export function getDiffSelectionKey(selection) {
23
+ return `${selection.baseCommitish}:${selection.targetCommitish}:${normalizeBaseMode(selection.baseMode)}`;
24
+ }
25
+ export function getMergeBaseTargetRef(targetCommitish) {
26
+ if (targetCommitish === '.' || targetCommitish === 'staged' || targetCommitish === 'working') {
27
+ return 'HEAD';
28
+ }
29
+ return targetCommitish;
30
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "difit",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "description": "A lightweight command-line tool that spins up a local web server to display Git commit diffs in a GitHub-like Files changed view",
5
5
  "keywords": [
6
6
  "cli",
@@ -1 +0,0 @@
1
- import"./chunk-XZSTWKYB-C5JJ0TZR.js";import{n as e}from"./chunk-R5LLSJPH-ChexuO_S.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{it as e,rt as t}from"./chunk-7R4GIKGN-DneC7PwP.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-KnkMUlUE.js","assets/chunk-PU5JKC2W-PQmA4K_y.js","assets/src-DsmFf7gO.js","assets/index-CizZxdOT.js","assets/index-Cn4K2uvR.css","assets/chunk-GEFDOKGD-eDUrsRgt.js","assets/dist-v55TM3-O.js","assets/math-CNhlSIO3.js","assets/chunk-7R4GIKGN-DneC7PwP.js","assets/isArrayLikeObject-icl0H0jo.js","assets/dagre-BwDYerGQ.js","assets/graphlib-WkJoBgka.js","assets/isEmpty-Du8sNmkE.js","assets/_baseUniq-b7bzdUSn.js","assets/_basePickBy-hOr-yGsE.js","assets/clone-DuY6BQEm.js","assets/chunk-KYZI473N-Brv52ZeO.js","assets/chunk-PQ6SQG4A-C9acTu_E.js","assets/chunk-YBOYWFTD-B6kAkNgH.js","assets/rough.esm-KjoEK0it.js","assets/chunk-MX3YWQON-DHRoNbgW.js","assets/chunk-O4XLMI2P-Sr33dk8c.js","assets/line-Cm3ZuldI.js","assets/path-DfRbCp9y.js","assets/array-DOVTz2Mq.js","assets/cose-bilkent-S5V4N54A-hlDud6Ym.js","assets/cytoscape.esm-B3gzQ1NF.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./index-CizZxdOT.js";import{u as t}from"./chunk-GEFDOKGD-eDUrsRgt.js";import{g as n,h as r}from"./src-DsmFf7gO.js";import{s as i,y as a}from"./chunk-7R4GIKGN-DneC7PwP.js";import{a as o,i as s,s as c}from"./chunk-KYZI473N-Brv52ZeO.js";import{a as l,i as u,n as d,r as f}from"./chunk-O4XLMI2P-Sr33dk8c.js";var p={common:i,getConfig:a,insertCluster:s,insertEdge:d,insertEdgeLabel:f,insertMarkers:u,insertNode:o,interpolateToCurve:t,labelHelper:c,log:n,positionEdgeLabel:l},m={},h=r(e=>{for(let t of e)m[t.name]=t},`registerLayoutLoaders`);r(()=>{h([{name:`dagre`,loader:r(async()=>await e(()=>import(`./dagre-KLK3FWXG-KnkMUlUE.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24])),`loader`)},...[{name:`cose-bilkent`,loader:r(async()=>await e(()=>import(`./cose-bilkent-S5V4N54A-hlDud6Ym.js`),__vite__mapDeps([25,3,4,26,2])),`loader`)}]])},`registerDefaultLayoutLoaders`)();var g=r(async(e,t)=>{if(!(e.layoutAlgorithm in m))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);let n=m[e.layoutAlgorithm];return(await n.loader()).render(e,t,p,{algorithm:n.algorithm})},`render`),_=r((e=``,{fallback:t=`dagre`}={})=>{if(e in m)return e;if(t in m)return n.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw Error(`Both layout algorithms ${e} and ${t} are not registered.`)},`getRegisteredLayoutAlgorithm`);export{h as n,g as r,_ as t};
@@ -1 +0,0 @@
1
- import{h as e,p as t}from"./src-DsmFf7gO.js";import{b as n}from"./chunk-7R4GIKGN-DneC7PwP.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-DsmFf7gO.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"./chunk-GEFDOKGD-eDUrsRgt.js";import{h as e}from"./src-DsmFf7gO.js";import"./chunk-7R4GIKGN-DneC7PwP.js";import"./chunk-PU5JKC2W-PQmA4K_y.js";import"./chunk-FMBD7UC4-BSsJVlRg.js";import"./chunk-MX3YWQON-DHRoNbgW.js";import"./chunk-YBOYWFTD-B6kAkNgH.js";import"./chunk-JSJVCQXG-UCJub_Eo.js";import"./chunk-55IACEB6-Busc3sfI.js";import"./chunk-KX2RTZJC-DrhxxMOx.js";import"./chunk-PQ6SQG4A-C9acTu_E.js";import"./chunk-KYZI473N-Brv52ZeO.js";import"./chunk-O4XLMI2P-Sr33dk8c.js";import"./chunk-GLR3WWYH-NUOKNaxd.js";import{i as t,n,r,t as i}from"./chunk-WL4C6EOR-oxNV_hhM.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"./chunk-GEFDOKGD-eDUrsRgt.js";import{h as e}from"./src-DsmFf7gO.js";import"./chunk-7R4GIKGN-DneC7PwP.js";import"./chunk-PU5JKC2W-PQmA4K_y.js";import"./chunk-FMBD7UC4-BSsJVlRg.js";import"./chunk-MX3YWQON-DHRoNbgW.js";import"./chunk-YBOYWFTD-B6kAkNgH.js";import"./chunk-JSJVCQXG-UCJub_Eo.js";import"./chunk-55IACEB6-Busc3sfI.js";import"./chunk-KX2RTZJC-DrhxxMOx.js";import"./chunk-PQ6SQG4A-C9acTu_E.js";import"./chunk-KYZI473N-Brv52ZeO.js";import"./chunk-O4XLMI2P-Sr33dk8c.js";import"./chunk-GLR3WWYH-NUOKNaxd.js";import{i as t,n,r,t as i}from"./chunk-WL4C6EOR-oxNV_hhM.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"./chunk-XZSTWKYB-C5JJ0TZR.js";import{n as e}from"./chunk-7E7YKBS2-BVR-8Pma.js";export{e as createGitGraphServices};