@imenam/mcp-documentor 1.0.54 → 1.0.56
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 +1 -0
- package/dist/shared/read-only.d.ts +4 -0
- package/dist/shared/read-only.js +11 -0
- package/dist/src/core/code-ref-resolver.d.ts +14 -0
- package/dist/src/core/code-ref-resolver.js +118 -0
- package/dist/src/gui-worker.js +18 -0
- package/dist/src/index.js +368 -333
- package/dist/src/tools/create-doc.js +8 -26
- package/dist/src/tools/patch-doc.js +4 -1
- package/dist/src/tools/update-doc.js +15 -27
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/gui/dist/assets/{arc-CCHCB-wD.js → arc-hl-9jVa3.js} +1 -1
- package/gui/dist/assets/{architectureDiagram-3BPJPVTR-CY9HTuIq.js → architectureDiagram-3BPJPVTR-Cv0e-QlI.js} +1 -1
- package/gui/dist/assets/{blockDiagram-GPEHLZMM-BOVxufIP.js → blockDiagram-GPEHLZMM-DmqN7ioQ.js} +1 -1
- package/gui/dist/assets/{c4Diagram-AAUBKEIU-D4gw0Vvh.js → c4Diagram-AAUBKEIU-CCmx3y3D.js} +1 -1
- package/gui/dist/assets/channel-Be8bJJxH.js +1 -0
- package/gui/dist/assets/{chunk-2J33WTMH-D9MZap0G.js → chunk-2J33WTMH-DkiBzADG.js} +1 -1
- package/gui/dist/assets/{chunk-4BX2VUAB-DZp7afnZ.js → chunk-4BX2VUAB-DNbC5-R6.js} +1 -1
- package/gui/dist/assets/{chunk-55IACEB6--z45PUIk.js → chunk-55IACEB6-BDo8xvgP.js} +1 -1
- package/gui/dist/assets/{chunk-727SXJPM-BpzsGHwS.js → chunk-727SXJPM-BXbVbdMj.js} +1 -1
- package/gui/dist/assets/{chunk-AQP2D5EJ-BHrif5nf.js → chunk-AQP2D5EJ-BYle6aB3.js} +1 -1
- package/gui/dist/assets/{chunk-FMBD7UC4-BJnvL7mL.js → chunk-FMBD7UC4-BdIrLn1p.js} +1 -1
- package/gui/dist/assets/{chunk-ND2GUHAM-B30rNlK9.js → chunk-ND2GUHAM-BkjdsZf2.js} +1 -1
- package/gui/dist/assets/{chunk-QZHKN3VN-C30k0U0w.js → chunk-QZHKN3VN-pwVXVLDb.js} +1 -1
- package/gui/dist/assets/classDiagram-4FO5ZUOK-DxtDCVWj.js +1 -0
- package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-DxtDCVWj.js +1 -0
- package/gui/dist/assets/{cose-bilkent-S5V4N54A-D_ZPLp5P.js → cose-bilkent-S5V4N54A-COfRIcXU.js} +1 -1
- package/gui/dist/assets/{dagre-BM42HDAG-2XyC0YBj.js → dagre-BM42HDAG-BnD4nd21.js} +1 -1
- package/gui/dist/assets/{diagram-2AECGRRQ-fNv6yQF_.js → diagram-2AECGRRQ-E9oTEn4C.js} +1 -1
- package/gui/dist/assets/{diagram-5GNKFQAL-BUlxr0NW.js → diagram-5GNKFQAL-oSJwag8_.js} +1 -1
- package/gui/dist/assets/{diagram-KO2AKTUF-CtusNGfh.js → diagram-KO2AKTUF-B5ycmD2n.js} +1 -1
- package/gui/dist/assets/{diagram-LMA3HP47-Dkq3FOEe.js → diagram-LMA3HP47-DUo9wv_e.js} +1 -1
- package/gui/dist/assets/{diagram-OG6HWLK6-rjhcMJNr.js → diagram-OG6HWLK6-C-0r9-AW.js} +1 -1
- package/gui/dist/assets/{erDiagram-TEJ5UH35-Bqmogkqv.js → erDiagram-TEJ5UH35-C8w0nNRI.js} +1 -1
- package/gui/dist/assets/{flowDiagram-I6XJVG4X-BcYYq0Bh.js → flowDiagram-I6XJVG4X-CPZzt4CO.js} +1 -1
- package/gui/dist/assets/{ganttDiagram-6RSMTGT7-BGmJltMK.js → ganttDiagram-6RSMTGT7-B0TRw-bC.js} +1 -1
- package/gui/dist/assets/{gitGraphDiagram-PVQCEYII-JIYjcd0T.js → gitGraphDiagram-PVQCEYII-CxuhZqVM.js} +1 -1
- package/gui/dist/assets/{index-BwW5YDD1.js → index-84YuA9I8.js} +75 -75
- package/gui/dist/assets/{infoDiagram-5YYISTIA-CJKrfqe4.js → infoDiagram-5YYISTIA-qLgkATyo.js} +1 -1
- package/gui/dist/assets/{ishikawaDiagram-YF4QCWOH-Bu4wBvlL.js → ishikawaDiagram-YF4QCWOH-Bv8EcedY.js} +1 -1
- package/gui/dist/assets/{journeyDiagram-JHISSGLW-B2CtojGV.js → journeyDiagram-JHISSGLW-CO1wpi9j.js} +1 -1
- package/gui/dist/assets/{kanban-definition-UN3LZRKU-CKbuCL_h.js → kanban-definition-UN3LZRKU-INpnb6ij.js} +1 -1
- package/gui/dist/assets/{linear-BdHWi7h7.js → linear-yh3g20kh.js} +1 -1
- package/gui/dist/assets/{mindmap-definition-RKZ34NQL-Dbf71zzi.js → mindmap-definition-RKZ34NQL-BzSJP5cs.js} +1 -1
- package/gui/dist/assets/{pieDiagram-4H26LBE5-P8RSqdBA.js → pieDiagram-4H26LBE5-DH9i355H.js} +1 -1
- package/gui/dist/assets/{quadrantDiagram-W4KKPZXB-mVsJmQan.js → quadrantDiagram-W4KKPZXB-CNmW8Mck.js} +1 -1
- package/gui/dist/assets/{requirementDiagram-4Y6WPE33-BfHNLWFb.js → requirementDiagram-4Y6WPE33-DIxitFst.js} +1 -1
- package/gui/dist/assets/{sankeyDiagram-5OEKKPKP-CF28kVcG.js → sankeyDiagram-5OEKKPKP-BI4KHeTZ.js} +1 -1
- package/gui/dist/assets/{sequenceDiagram-3UESZ5HK-Bvs2r29Y.js → sequenceDiagram-3UESZ5HK-CbMtHFNi.js} +1 -1
- package/gui/dist/assets/{stateDiagram-AJRCARHV-Cbg-3kIx.js → stateDiagram-AJRCARHV-DWXkOhjJ.js} +1 -1
- package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-Dv9pwdh3.js +1 -0
- package/gui/dist/assets/{timeline-definition-PNZ67QCA-ChYm8r8v.js → timeline-definition-PNZ67QCA-DGsBQPbg.js} +1 -1
- package/gui/dist/assets/{vennDiagram-CIIHVFJN-CPcYOWG6.js → vennDiagram-CIIHVFJN-Dw5U_iYl.js} +1 -1
- package/gui/dist/assets/{wardley-L42UT6IY-KWdiWaFE.js → wardley-L42UT6IY-DGOHyaD_.js} +1 -1
- package/gui/dist/assets/{wardleyDiagram-YWT4CUSO-DAgBnDcZ.js → wardleyDiagram-YWT4CUSO-DpOyo37L.js} +1 -1
- package/gui/dist/assets/{xychartDiagram-2RQKCTM6-DwOk_srp.js → xychartDiagram-2RQKCTM6-BM5vPGiE.js} +1 -1
- package/gui/dist/index.html +1 -1
- package/package.json +1 -1
- package/gui/dist/assets/channel-V0oafPxe.js +0 -1
- package/gui/dist/assets/classDiagram-4FO5ZUOK-BZlXnsXv.js +0 -1
- package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-BZlXnsXv.js +0 -1
- package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-Cg1sS-MT.js +0 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
2
|
import { CreateDocArgsSchema } from "../../shared/schemas/doc.schema.js";
|
|
4
|
-
import { computeFileHash } from "./check-freshness.js";
|
|
5
|
-
import { snapshotSection } from "../core/section-tracker.js";
|
|
6
3
|
import { persistDraft } from "../core/draft-store.js";
|
|
4
|
+
import { resolveCodeRefs, snapshotTrackedFiles } from "../core/code-ref-resolver.js";
|
|
7
5
|
export function slugify(title) {
|
|
8
6
|
return title
|
|
9
7
|
.normalize("NFD")
|
|
@@ -12,34 +10,14 @@ export function slugify(title) {
|
|
|
12
10
|
.replace(/[^a-z0-9]+/g, "-")
|
|
13
11
|
.replace(/^-|-$/g, "");
|
|
14
12
|
}
|
|
15
|
-
function snapshotTrackedFiles(inputs) {
|
|
16
|
-
const tracked = [];
|
|
17
|
-
for (const input of inputs) {
|
|
18
|
-
const fp = typeof input === "string" ? input : input.path;
|
|
19
|
-
const absolutePath = path.resolve(process.cwd(), fp);
|
|
20
|
-
const mtime = fs.existsSync(absolutePath)
|
|
21
|
-
? fs.statSync(absolutePath).mtime.toISOString()
|
|
22
|
-
: new Date().toISOString();
|
|
23
|
-
if (typeof input !== "string" && input.lines.length > 0 && fs.existsSync(absolutePath)) {
|
|
24
|
-
const sections = input.lines
|
|
25
|
-
.filter(({ start, end }) => start <= end)
|
|
26
|
-
.map(({ start, end }) => snapshotSection(absolutePath, start, end));
|
|
27
|
-
tracked.push({ path: absolutePath, lastModifiedAt: mtime, sections });
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
const contentHash = fs.existsSync(absolutePath) ? computeFileHash(absolutePath) : undefined;
|
|
31
|
-
tracked.push({ path: absolutePath, lastModifiedAt: mtime, ...(contentHash !== undefined && { contentHash }) });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return tracked;
|
|
35
|
-
}
|
|
36
13
|
export async function createDoc(storageEngine, embeddingEngine, args) {
|
|
37
14
|
try {
|
|
38
15
|
const validated = CreateDocArgsSchema.parse(args);
|
|
39
16
|
const { project } = (args ?? {});
|
|
40
|
-
const
|
|
17
|
+
const rawContent = validated.content_file
|
|
41
18
|
? fs.readFileSync(validated.content_file, "utf-8")
|
|
42
19
|
: validated.content;
|
|
20
|
+
const { content, additionalTrackedFiles } = resolveCodeRefs(rawContent);
|
|
43
21
|
const slug = slugify(validated.title);
|
|
44
22
|
const id = validated.folder ? `${validated.folder}/${slug}` : slug;
|
|
45
23
|
const now = new Date().toISOString();
|
|
@@ -53,7 +31,11 @@ export async function createDoc(storageEngine, embeddingEngine, args) {
|
|
|
53
31
|
if (project) {
|
|
54
32
|
storageEngine.ensureProject(project);
|
|
55
33
|
}
|
|
56
|
-
const
|
|
34
|
+
const allTrackedInputs = [
|
|
35
|
+
...(validated.tracked_files ?? []),
|
|
36
|
+
...additionalTrackedFiles,
|
|
37
|
+
];
|
|
38
|
+
const trackedFiles = allTrackedInputs.length > 0 ? snapshotTrackedFiles(allTrackedInputs) : [];
|
|
57
39
|
const folder = validated.folder;
|
|
58
40
|
const doc = {
|
|
59
41
|
id,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import { PatchDocArgsSchema } from "../../shared/schemas/doc.schema.js";
|
|
3
3
|
import { persistDraft } from "../core/draft-store.js";
|
|
4
|
+
import { resolveCodeRefs, mergeTrackedFiles } from "../core/code-ref-resolver.js";
|
|
4
5
|
export async function patchDoc(storageEngine, embeddingEngine, args) {
|
|
5
6
|
try {
|
|
6
7
|
const validated = PatchDocArgsSchema.parse(args);
|
|
@@ -12,9 +13,10 @@ export async function patchDoc(storageEngine, embeddingEngine, args) {
|
|
|
12
13
|
const search = validated.search_file
|
|
13
14
|
? fs.readFileSync(validated.search_file, "utf-8")
|
|
14
15
|
: validated.search;
|
|
15
|
-
const
|
|
16
|
+
const rawReplacement = validated.replacement_file
|
|
16
17
|
? fs.readFileSync(validated.replacement_file, "utf-8")
|
|
17
18
|
: validated.replacement;
|
|
19
|
+
const { content: replacement, additionalTrackedFiles } = resolveCodeRefs(rawReplacement);
|
|
18
20
|
if (!doc.content.includes(search)) {
|
|
19
21
|
const preview = doc.content.slice(0, 300).replace(/\n/g, "↵");
|
|
20
22
|
return {
|
|
@@ -26,6 +28,7 @@ export async function patchDoc(storageEngine, embeddingEngine, args) {
|
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
doc.content = doc.content.replace(search, replacement);
|
|
31
|
+
doc.tracked_files = mergeTrackedFiles(doc.tracked_files, additionalTrackedFiles);
|
|
29
32
|
doc.updatedAt = new Date().toISOString();
|
|
30
33
|
await storageEngine.saveDoc(doc, resolvedProject, "patch");
|
|
31
34
|
if (embeddingEngine.isConfigured()) {
|
|
@@ -1,30 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
2
|
import { UpdateDocArgsSchema } from "../../shared/schemas/doc.schema.js";
|
|
4
|
-
import { computeFileHash } from "./check-freshness.js";
|
|
5
|
-
import { snapshotSection } from "../core/section-tracker.js";
|
|
6
3
|
import { persistDraft } from "../core/draft-store.js";
|
|
7
|
-
|
|
8
|
-
const tracked = [];
|
|
9
|
-
for (const input of inputs) {
|
|
10
|
-
const fp = typeof input === "string" ? input : input.path;
|
|
11
|
-
const absolutePath = path.resolve(process.cwd(), fp);
|
|
12
|
-
const mtime = fs.existsSync(absolutePath)
|
|
13
|
-
? fs.statSync(absolutePath).mtime.toISOString()
|
|
14
|
-
: new Date().toISOString();
|
|
15
|
-
if (typeof input !== "string" && input.lines.length > 0 && fs.existsSync(absolutePath)) {
|
|
16
|
-
const sections = input.lines
|
|
17
|
-
.filter(({ start, end }) => start <= end)
|
|
18
|
-
.map(({ start, end }) => snapshotSection(absolutePath, start, end));
|
|
19
|
-
tracked.push({ path: absolutePath, lastModifiedAt: mtime, sections });
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
const contentHash = fs.existsSync(absolutePath) ? computeFileHash(absolutePath) : undefined;
|
|
23
|
-
tracked.push({ path: absolutePath, lastModifiedAt: mtime, ...(contentHash !== undefined && { contentHash }) });
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return tracked;
|
|
27
|
-
}
|
|
4
|
+
import { resolveCodeRefs, snapshotTrackedFiles, mergeTrackedFiles } from "../core/code-ref-resolver.js";
|
|
28
5
|
export async function updateDoc(storageEngine, embeddingEngine, args) {
|
|
29
6
|
try {
|
|
30
7
|
const validated = UpdateDocArgsSchema.parse(args);
|
|
@@ -36,14 +13,25 @@ export async function updateDoc(storageEngine, embeddingEngine, args) {
|
|
|
36
13
|
if (validated.title !== undefined) {
|
|
37
14
|
doc.title = validated.title;
|
|
38
15
|
}
|
|
16
|
+
let additionalTrackedFiles = [];
|
|
39
17
|
if (validated.content_file !== undefined) {
|
|
40
|
-
|
|
18
|
+
const { content, additionalTrackedFiles: refs } = resolveCodeRefs(fs.readFileSync(validated.content_file, "utf-8"));
|
|
19
|
+
doc.content = content;
|
|
20
|
+
additionalTrackedFiles = refs;
|
|
41
21
|
}
|
|
42
22
|
else if (validated.content !== undefined) {
|
|
43
|
-
|
|
23
|
+
const { content, additionalTrackedFiles: refs } = resolveCodeRefs(validated.content);
|
|
24
|
+
doc.content = content;
|
|
25
|
+
additionalTrackedFiles = refs;
|
|
44
26
|
}
|
|
45
27
|
if (validated.tracked_files !== undefined) {
|
|
46
|
-
doc.tracked_files = snapshotTrackedFiles(
|
|
28
|
+
doc.tracked_files = snapshotTrackedFiles([
|
|
29
|
+
...validated.tracked_files,
|
|
30
|
+
...additionalTrackedFiles,
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
doc.tracked_files = mergeTrackedFiles(doc.tracked_files, additionalTrackedFiles);
|
|
47
35
|
}
|
|
48
36
|
if (validated.tags !== undefined) {
|
|
49
37
|
doc.tags = validated.tags;
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const APP_VERSION = "1.0.
|
|
1
|
+
export declare const APP_VERSION = "1.0.56";
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated version file - do not edit manually
|
|
2
|
-
export const APP_VERSION = '1.0.
|
|
2
|
+
export const APP_VERSION = '1.0.56';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as rn,a9 as L,aa as o,ab as B,ac as sn,ad as on,ae as fn}from"./index-84YuA9I8.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|