local-diff-reviewer 2.0.3 → 2.0.5

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 (74) hide show
  1. package/README.md +7 -1
  2. package/dist/cli/start.js +57 -0
  3. package/dist/web/assets/{arc-D-670Kn4.js → arc-BgnuGk_n.js} +1 -1
  4. package/dist/web/assets/{architectureDiagram-3BPJPVTR-BzwTHU5z.js → architectureDiagram-3BPJPVTR-B1AIDQmd.js} +1 -1
  5. package/dist/web/assets/{blockDiagram-GPEHLZMM-BdDwnuAb.js → blockDiagram-GPEHLZMM-DyN0piOo.js} +1 -1
  6. package/dist/web/assets/{c4Diagram-AAUBKEIU-CXEqG_GU.js → c4Diagram-AAUBKEIU-BnJh8ndh.js} +1 -1
  7. package/dist/web/assets/channel-BjAfYjJa.js +1 -0
  8. package/dist/web/assets/{chunk-2J33WTMH-CZ4V4veG.js → chunk-2J33WTMH-D5WLB66R.js} +1 -1
  9. package/dist/web/assets/{chunk-3OPIFGDE-CSbZWMMk.js → chunk-3OPIFGDE-BzdZGpN2.js} +1 -1
  10. package/dist/web/assets/{chunk-4BX2VUAB-DQKSnAKr.js → chunk-4BX2VUAB-DwwVn0NV.js} +1 -1
  11. package/dist/web/assets/{chunk-55IACEB6-D8bwvdHN.js → chunk-55IACEB6-C2rZcLFX.js} +1 -1
  12. package/dist/web/assets/{chunk-5ZQYHXKU-DvtLcgxK.js → chunk-5ZQYHXKU-CH6eBh6v.js} +1 -1
  13. package/dist/web/assets/{chunk-727SXJPM-H3vpTuXt.js → chunk-727SXJPM-NZ9IMxBz.js} +1 -1
  14. package/dist/web/assets/{chunk-AQP2D5EJ-gvn0I0el.js → chunk-AQP2D5EJ-CvT1UNQA.js} +1 -1
  15. package/dist/web/assets/{chunk-BSJP7CBP-0tfc4u9P.js → chunk-BSJP7CBP-DP8ma6Jj.js} +1 -1
  16. package/dist/web/assets/{chunk-CSCIHK7Q-CmUNorU_.js → chunk-CSCIHK7Q-DdIdCSS3.js} +1 -1
  17. package/dist/web/assets/{chunk-FMBD7UC4-wQoZCxnn.js → chunk-FMBD7UC4-lv-lBpLV.js} +1 -1
  18. package/dist/web/assets/{chunk-KSCS5N6A-C99WFWps.js → chunk-KSCS5N6A-oDJoP7pt.js} +1 -1
  19. package/dist/web/assets/{chunk-L5ZTLDWV-C19pdXo3.js → chunk-L5ZTLDWV-C7ZwcBcm.js} +1 -1
  20. package/dist/web/assets/{chunk-LZXEDZCA-DEg-msWi.js → chunk-LZXEDZCA-BMzU_qpz.js} +2 -2
  21. package/dist/web/assets/{chunk-ND2GUHAM-KEtB8AkU.js → chunk-ND2GUHAM-D-UzjUgU.js} +1 -1
  22. package/dist/web/assets/{chunk-NZK2D7GU-DmtZJoF8.js → chunk-NZK2D7GU-DQB1cecN.js} +1 -1
  23. package/dist/web/assets/{chunk-O5CBEL6O-Cx3xql2c.js → chunk-O5CBEL6O-BB677RzW.js} +1 -1
  24. package/dist/web/assets/chunk-QZHKN3VN-Cy3GfD-j.js +1 -0
  25. package/dist/web/assets/chunk-WU5MYG2G-Dfds65-7.js +1 -0
  26. package/dist/web/assets/{chunk-XPW4576I-D7PZzhoh.js → chunk-XPW4576I-C5dEJRSw.js} +1 -1
  27. package/dist/web/assets/classDiagram-4FO5ZUOK-DxWrkvw5.js +1 -0
  28. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CJlO6YYa.js +1 -0
  29. package/dist/web/assets/{cose-bilkent-S5V4N54A-M9qjyQx9.js → cose-bilkent-S5V4N54A-BWK4ElmW.js} +1 -1
  30. package/dist/web/assets/{dagre-BM42HDAG-D5nWlspM.js → dagre-BM42HDAG-e2ZMaQ5D.js} +1 -1
  31. package/dist/web/assets/{diagram-2AECGRRQ-BhTAme0Q.js → diagram-2AECGRRQ-BI0E1FhF.js} +1 -1
  32. package/dist/web/assets/{diagram-5GNKFQAL-Dc1hSI_F.js → diagram-5GNKFQAL-DKlJKwAv.js} +1 -1
  33. package/dist/web/assets/{diagram-KO2AKTUF-IAnRJdmD.js → diagram-KO2AKTUF-BCo5oQa2.js} +1 -1
  34. package/dist/web/assets/{diagram-LMA3HP47-DHVHjnnV.js → diagram-LMA3HP47-BjJeDHen.js} +1 -1
  35. package/dist/web/assets/{diagram-OG6HWLK6-C_H7osqu.js → diagram-OG6HWLK6-BtBQrfOD.js} +1 -1
  36. package/dist/web/assets/{dist-BG1gu1Ss.js → dist-CZx2PRz1.js} +1 -1
  37. package/dist/web/assets/{erDiagram-TEJ5UH35-DLllKoDy.js → erDiagram-TEJ5UH35-Dl9wcf5M.js} +1 -1
  38. package/dist/web/assets/{flowDiagram-I6XJVG4X-D30CzWi4.js → flowDiagram-I6XJVG4X-CP54nffj.js} +1 -1
  39. package/dist/web/assets/{ganttDiagram-6RSMTGT7-CUYze69W.js → ganttDiagram-6RSMTGT7-C5RBMWjc.js} +1 -1
  40. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DqnAgTPL.js → gitGraphDiagram-PVQCEYII-C8yl49HN.js} +1 -1
  41. package/dist/web/assets/index-By9OWJvf.js +288 -0
  42. package/dist/web/assets/index-CK1mvkAF.css +1 -0
  43. package/dist/web/assets/{infoDiagram-5YYISTIA-DLByNsQT.js → infoDiagram-5YYISTIA-DayrXrB8.js} +1 -1
  44. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-Cfqh-ASX.js → ishikawaDiagram-YF4QCWOH-C7du_Ezh.js} +1 -1
  45. package/dist/web/assets/{journeyDiagram-JHISSGLW--6a-6EC4.js → journeyDiagram-JHISSGLW-6JwFSzPd.js} +1 -1
  46. package/dist/web/assets/{kanban-definition-UN3LZRKU-DqC73u-B.js → kanban-definition-UN3LZRKU-ik2yBsH0.js} +1 -1
  47. package/dist/web/assets/{line-DLfo_7hP.js → line-YuMrnzJR.js} +1 -1
  48. package/dist/web/assets/{linear-DjJbe9Qt.js → linear-DpvUzh7l.js} +1 -1
  49. package/dist/web/assets/{mermaid-parser.core-BgcI22sk.js → mermaid-parser.core-DyGvHoob.js} +1 -1
  50. package/dist/web/assets/{mermaid.core-BcjNq9LF.js → mermaid.core-Ba7N3LyE.js} +3 -3
  51. package/dist/web/assets/{mindmap-definition-RKZ34NQL-hyOI_Nvs.js → mindmap-definition-RKZ34NQL-DPAf0ZDw.js} +1 -1
  52. package/dist/web/assets/{pieDiagram-4H26LBE5-DIRyMqsX.js → pieDiagram-4H26LBE5-DkXBiuqr.js} +1 -1
  53. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-D0Ngh6Zm.js → quadrantDiagram-W4KKPZXB-PPKukGyr.js} +1 -1
  54. package/dist/web/assets/{requirementDiagram-4Y6WPE33-CWgQtiKO.js → requirementDiagram-4Y6WPE33-BHH_vjsX.js} +1 -1
  55. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-BhD0ArVz.js → sankeyDiagram-5OEKKPKP-Cc8eLHvR.js} +1 -1
  56. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-DfJPUW4m.js → sequenceDiagram-3UESZ5HK-BSGVoFlX.js} +1 -1
  57. package/dist/web/assets/{src-DNwcy7qQ.js → src-B2mxvCFt.js} +1 -1
  58. package/dist/web/assets/{stateDiagram-AJRCARHV-Cl55-mV_.js → stateDiagram-AJRCARHV-BLFZv7dX.js} +1 -1
  59. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DpBHC1J9.js +1 -0
  60. package/dist/web/assets/{timeline-definition-PNZ67QCA-C09jbMhf.js → timeline-definition-PNZ67QCA-DKf1ByLg.js} +1 -1
  61. package/dist/web/assets/{vennDiagram-CIIHVFJN-ClTgJwJ3.js → vennDiagram-CIIHVFJN-BspbVNC1.js} +1 -1
  62. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-BPhiawQp.js → wardleyDiagram-YWT4CUSO-Doibp8Wp.js} +1 -1
  63. package/dist/web/assets/{xychartDiagram-2RQKCTM6-D_s4kTlT.js → xychartDiagram-2RQKCTM6-tGtWRI73.js} +1 -1
  64. package/dist/web/index.html +2 -2
  65. package/docs/images/diff-review-ui.jpg +0 -0
  66. package/package.json +1 -1
  67. package/dist/web/assets/channel-CcPqlxfZ.js +0 -1
  68. package/dist/web/assets/chunk-QZHKN3VN-C4n2vK6k.js +0 -1
  69. package/dist/web/assets/chunk-WU5MYG2G-D7WrkCVH.js +0 -1
  70. package/dist/web/assets/classDiagram-4FO5ZUOK-CQky5FXy.js +0 -1
  71. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-CkiVtIc_.js +0 -1
  72. package/dist/web/assets/index-BM79LMhf.css +0 -1
  73. package/dist/web/assets/index-Bj-SGY1j.js +0 -288
  74. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-DFN-iZGL.js +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # diff-review
2
2
 
3
- ![Diff 审查台界面截图](https://cdn.jsdelivr.net/npm/local-diff-reviewer@latest/docs/images/diff-review-ui.jpg)
3
+ ![Diff 审查台界面截图](https://raw.githubusercontent.com/Mone-Lee/diff-review/master/docs/images/diff-review-ui.jpg)
4
4
 
5
5
  AI chat 里的本地代码审查工具。可以直接用 CLI 打开,也可以安装成 agent skill。
6
6
 
@@ -173,6 +173,12 @@ npm whoami --registry=https://registry.npmjs.org/
173
173
 
174
174
  只有在 `npm publish` 成功后,才会自动推送提交和标签到 GitHub。
175
175
 
176
+ ### CI 标签校验说明
177
+
178
+ 仓库的 GitHub Actions 标签检查任务(`.github/workflows/release-check.yml`)会在推送语义化标签(如 `v2.0.4`)时执行校验(安装依赖、`skill:check`、`release:check`、标签版本一致性检查),但不会执行 `npm publish`。
179
+
180
+ 当前发布策略是手动发布:由本地 `npm run release` 完成 `npm publish` 与 Git 推送。
181
+
176
182
  ## 本地开发
177
183
 
178
184
  ```bash
package/dist/cli/start.js CHANGED
@@ -479,6 +479,20 @@ async function readFileForPreview(file, mode, repoRoot) {
479
479
  }
480
480
  return { content: await readFile2(join2(repoRoot, targetPath), "utf8"), deleted: false };
481
481
  }
482
+ async function readDiffFileContents(file, mode, repoRoot) {
483
+ const [oldContent, newContent] = await Promise.all([
484
+ readDiffSideContent(file, mode, repoRoot, "old"),
485
+ readDiffSideContent(file, mode, repoRoot, "new")
486
+ ]);
487
+ const oldLines = splitContentLines(oldContent);
488
+ const newLines = splitContentLines(newContent);
489
+ return {
490
+ oldLines,
491
+ newLines,
492
+ oldTotalLines: oldLines.length,
493
+ newTotalLines: newLines.length
494
+ };
495
+ }
482
496
  function parseReviewMode(args) {
483
497
  const filtered = args.filter(Boolean);
484
498
  if (filtered.length === 0 || filtered[0] === "working") return { kind: "working" };
@@ -497,6 +511,31 @@ function isSafeRepoPath(repoRoot, path) {
497
511
  async function gitShow(revPath, repoRoot) {
498
512
  return execGitStdout(["show", revPath], repoRoot);
499
513
  }
514
+ async function readDiffSideContent(file, mode, repoRoot, side) {
515
+ const path = side === "old" ? file.oldPath : file.path;
516
+ if (!path || path === "/dev/null") return "";
517
+ if (!isSafeRepoPath(repoRoot, path)) {
518
+ throw new Error(`Unsafe file path: ${path}`);
519
+ }
520
+ if (side === "old") {
521
+ if (file.status === "added") return "";
522
+ if (mode.kind === "staged") return gitShow(`HEAD:${path}`, repoRoot);
523
+ if (mode.kind === "revision") return gitShow(`${mode.base}:${path}`, repoRoot);
524
+ return file.status === "deleted" ? gitShow(`HEAD:${path}`, repoRoot) : readFile2(join2(repoRoot, path), "utf8");
525
+ }
526
+ if (file.status === "deleted") return "";
527
+ if (mode.kind === "staged") return gitShow(`:${path}`, repoRoot);
528
+ if (mode.kind === "revision") return gitShow(`${mode.target}:${path}`, repoRoot);
529
+ return readFile2(join2(repoRoot, path), "utf8");
530
+ }
531
+ function splitContentLines(content) {
532
+ const normalized = content.replace(/\r\n/g, "\n");
533
+ const lines = normalized.split("\n");
534
+ if (lines.length > 0 && lines.at(-1) === "") {
535
+ lines.pop();
536
+ }
537
+ return lines;
538
+ }
500
539
  async function execGitStdout(args, cwd) {
501
540
  const { stdout } = await execGit(args, cwd);
502
541
  return stdout;
@@ -798,6 +837,24 @@ async function startServer(state, port = 4966) {
798
837
  next(error);
799
838
  }
800
839
  });
840
+ app.get("/api/diff-file-contents", async (req, res, next) => {
841
+ try {
842
+ const filePath = String(req.query.path ?? "");
843
+ if (!filePath) {
844
+ res.status(400).json({ error: "File path is required" });
845
+ return;
846
+ }
847
+ const file = state.diffFiles.find((item) => item.path === filePath || item.oldPath === filePath);
848
+ if (!file) {
849
+ res.status(404).json({ error: "Diff file not found" });
850
+ return;
851
+ }
852
+ const contents = await readDiffFileContents(file, state.session.mode, state.session.repoRoot);
853
+ res.json(contents);
854
+ } catch (error) {
855
+ next(error);
856
+ }
857
+ });
801
858
  app.get("/api/markdown-asset", (req, res) => {
802
859
  const relativePath = String(req.query.path ?? "").trim();
803
860
  if (!relativePath) {
@@ -1 +1 @@
1
- import{n as e,t}from"./path-BJQEcSo7.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-BG1gu1Ss.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i)if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};
1
+ import{n as e,t}from"./path-BJQEcSo7.js";import{a as n,c as r,d as i,f as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,u as p}from"./dist-CZx2PRz1.js";function m(e){return e.innerRadius}function h(e){return e.outerRadius}function g(e){return e.startAngle}function _(e){return e.endAngle}function v(e){return e&&e.padAngle}function y(e,t,n,r,i,a,o,s){var c=n-e,l=r-t,u=o-i,d=s-a,f=d*c-u*l;if(!(f*f<1e-12))return f=(u*(t-a)-d*(e-i))/f,[e+f*c,t+f*l]}function b(e,t,n,r,i,a,o){var c=e-n,l=t-r,u=(o?a:-a)/d(c*c+l*l),f=u*l,p=-u*c,m=e+f,h=t+p,g=n+f,_=r+p,v=(m+g)/2,y=(h+_)/2,b=g-m,x=_-h,S=b*b+x*x,C=i-a,w=m*_-g*h,T=(x<0?-1:1)*d(s(0,C*C*S-w*w)),E=(w*x-b*T)/S,D=(-w*b-x*T)/S,O=(w*x+b*T)/S,k=(-w*b+x*T)/S,A=E-v,j=D-y,M=O-v,N=k-y;return A*A+j*j>M*M+N*N&&(E=O,D=k),{cx:E,cy:D,x01:-f,y01:-p,x11:E*(i/C-1),y11:D*(i/C-1)}}function x(){var s=m,x=h,S=e(0),C=null,w=g,T=_,E=v,D=null,O=t(k);function k(){var e,t,m=+s.apply(this,arguments),h=+x.apply(this,arguments),g=w.apply(this,arguments)-r,_=T.apply(this,arguments)-r,v=l(_-g),k=_>g;if(D||=e=O(),h<m&&(t=h,h=m,m=t),!(h>1e-12))D.moveTo(0,0);else if(v>c-1e-12)D.moveTo(h*u(g),h*a(g)),D.arc(0,0,h,g,_,!k),m>1e-12&&(D.moveTo(m*u(_),m*a(_)),D.arc(0,0,m,_,g,k));else{var A=g,j=_,M=g,N=_,P=v,F=v,I=E.apply(this,arguments)/2,L=I>1e-12&&(C?+C.apply(this,arguments):d(m*m+h*h)),R=p(l(h-m)/2,+S.apply(this,arguments)),z=R,B=R,V,H;if(L>1e-12){var U=o(L/m*a(I)),W=o(L/h*a(I));(P-=U*2)>1e-12?(U*=k?1:-1,M+=U,N-=U):(P=0,M=N=(g+_)/2),(F-=W*2)>1e-12?(W*=k?1:-1,A+=W,j-=W):(F=0,A=j=(g+_)/2)}var G=h*u(A),K=h*a(A),q=m*u(N),J=m*a(N);if(R>1e-12){var Y=h*u(j),X=h*a(j),Z=m*u(M),Q=m*a(M),$;if(v<i)if($=y(G,K,Z,Q,Y,X,q,J)){var ee=G-$[0],te=K-$[1],ne=Y-$[0],re=X-$[1],ie=1/a(f((ee*ne+te*re)/(d(ee*ee+te*te)*d(ne*ne+re*re)))/2),ae=d($[0]*$[0]+$[1]*$[1]);z=p(R,(m-ae)/(ie-1)),B=p(R,(h-ae)/(ie+1))}else z=B=0}F>1e-12?B>1e-12?(V=b(Z,Q,G,K,h,B,k),H=b(Y,X,q,J,h,B,k),D.moveTo(V.cx+V.x01,V.cy+V.y01),B<R?D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,B,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,h,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),!k),D.arc(H.cx,H.cy,B,n(H.y11,H.x11),n(H.y01,H.x01),!k))):(D.moveTo(G,K),D.arc(0,0,h,A,j,!k)):D.moveTo(G,K),!(m>1e-12)||!(P>1e-12)?D.lineTo(q,J):z>1e-12?(V=b(q,J,Y,X,m,-z,k),H=b(G,K,Z,Q,m,-z,k),D.lineTo(V.cx+V.x01,V.cy+V.y01),z<R?D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(H.y01,H.x01),!k):(D.arc(V.cx,V.cy,z,n(V.y01,V.x01),n(V.y11,V.x11),!k),D.arc(0,0,m,n(V.cy+V.y11,V.cx+V.x11),n(H.cy+H.y11,H.cx+H.x11),k),D.arc(H.cx,H.cy,z,n(H.y11,H.x11),n(H.y01,H.x01),!k))):D.arc(0,0,m,N,M,k)}if(D.closePath(),e)return D=null,e+``||null}return k.centroid=function(){var e=(+s.apply(this,arguments)+ +x.apply(this,arguments))/2,t=(+w.apply(this,arguments)+ +T.apply(this,arguments))/2-i/2;return[u(t)*e,a(t)*e]},k.innerRadius=function(t){return arguments.length?(s=typeof t==`function`?t:e(+t),k):s},k.outerRadius=function(t){return arguments.length?(x=typeof t==`function`?t:e(+t),k):x},k.cornerRadius=function(t){return arguments.length?(S=typeof t==`function`?t:e(+t),k):S},k.padRadius=function(t){return arguments.length?(C=t==null?null:typeof t==`function`?t:e(+t),k):C},k.startAngle=function(t){return arguments.length?(w=typeof t==`function`?t:e(+t),k):w},k.endAngle=function(t){return arguments.length?(T=typeof t==`function`?t:e(+t),k):T},k.padAngle=function(t){return arguments.length?(E=typeof t==`function`?t:e(+t),k):E},k.context=function(e){return arguments.length?(D=e??null,k):D},k}export{x as t};