@inharness-ai/claude4spec 1.0.10 → 1.0.11
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/CHANGELOG.md +13 -0
- package/dist/bin/claude4spec.js +64 -3
- package/dist/bin/claude4spec.js.map +1 -1
- package/dist/client/assets/{arc-qp8Gz7t9.js → arc-C2bk_QpU.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-DieUitGT.js → architectureDiagram-3BPJPVTR-CvzXkhTv.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-6pfCldJV.js → blockDiagram-GPEHLZMM-BdVNx639.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CAOCsMEv.js → c4Diagram-AAUBKEIU-GsALRazP.js} +1 -1
- package/dist/client/assets/channel-C5L1x90J.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-D8xTvhT2.js → chunk-2J33WTMH-DDokjOio.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BgVgtJ7j.js → chunk-4BX2VUAB-B_YcuTm8.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DWa4R5hT.js → chunk-55IACEB6-xJ3wxfSN.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-CokKwg7L.js → chunk-727SXJPM-Burb3yd8.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DjsLS6cL.js → chunk-AQP2D5EJ-C9rR6gO6.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CWRaaLc5.js → chunk-FMBD7UC4-Dm7BhTp3.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DxWIOXIf.js → chunk-ND2GUHAM-CsNlOOp_.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DgDT9JgY.js → chunk-QZHKN3VN-BCmHzfVx.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-EfPx1y8Y.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-EfPx1y8Y.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CyrBp7T0.js → cose-bilkent-S5V4N54A-B6YZI-Gb.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CZ0JOmA8.js → dagre-BM42HDAG-DWY4jHpC.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BJN44Mpo.js → diagram-2AECGRRQ-Copg3kuX.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-CxQvNBpd.js → diagram-5GNKFQAL-CVmGVP62.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-D-TkCdfh.js → diagram-KO2AKTUF-DeDhYbEo.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CzP9-UDA.js → diagram-LMA3HP47-BaclNUbX.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-DrDQHAtN.js → diagram-OG6HWLK6-2c0UdjS2.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DMxFtkai.js → erDiagram-TEJ5UH35-sdiH7Dr_.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-CKh7egXV.js → flowDiagram-I6XJVG4X-3qYkZRjo.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-FfAZ-Iay.js → ganttDiagram-6RSMTGT7-j57OPIbM.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-D90AWj63.js → gitGraphDiagram-PVQCEYII-CZ5Wgihg.js} +1 -1
- package/dist/client/assets/{index-CYIs0XWr.css → index-BTXWIk4x.css} +1 -1
- package/dist/client/assets/{index-D73fs7lE.js → index-CgWyzbtO.js} +143 -143
- package/dist/client/assets/{index-C6fRshdL.js → index-Cw57I_bm.js} +1 -1
- package/dist/client/assets/{index-BiNc-uyh.js → index-v_d-wsnX.js} +1 -1
- package/dist/client/assets/{infoDiagram-5YYISTIA-kc2hNLBl.js → infoDiagram-5YYISTIA-92O2HlAo.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BynnDwHF.js → ishikawaDiagram-YF4QCWOH-vESYChv7.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BRWcP3yi.js → journeyDiagram-JHISSGLW-ili7NI_B.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-7tlBOAb_.js → kanban-definition-UN3LZRKU-dLVbb5y7.js} +1 -1
- package/dist/client/assets/{linear-C9Svyq_x.js → linear-CRY3U7pB.js} +1 -1
- package/dist/client/assets/{mermaid.core-CdoOUzU4.js → mermaid.core-CYorG2ZU.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DAoFyjiB.js → mindmap-definition-RKZ34NQL-DfUATrrd.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BubSI5Ep.js → pieDiagram-4H26LBE5-DjF7gCzD.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-3FBnT9jS.js → quadrantDiagram-W4KKPZXB-_8BHPlRL.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-DHNN6Sx3.js → requirementDiagram-4Y6WPE33-DSj9pHkV.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DJpDn9rN.js → sankeyDiagram-5OEKKPKP-irQ9C6cN.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Y8ecXtT_.js → sequenceDiagram-3UESZ5HK-BZ7-oca3.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-DXMrbbI3.js → stateDiagram-AJRCARHV-N6c5I2Sk.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BhJycZQy.js +1 -0
- package/dist/client/assets/{timeline-definition-PNZ67QCA-dBYHMdTa.js → timeline-definition-PNZ67QCA-jYAKxj23.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-BMSWkEL6.js → vennDiagram-CIIHVFJN-HoQPRkzJ.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-BcHB5tjy.js → wardley-L42UT6IY-D6r8Awug.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-CsNpgSPW.js → wardleyDiagram-YWT4CUSO-C_JUhYxS.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-LU-rNPxQ.js → xychartDiagram-2RQKCTM6-DgIYX2vi.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/config.d.ts +5 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/db/migrations/033_chat_initial_architecture_config.sql +7 -0
- package/dist/server/db/migrations/034_release_import.sql +34 -0
- package/dist/server/index.d.ts +15 -0
- package/dist/server/index.js +35 -6
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/agent-turn.js +6 -0
- package/dist/server/routes/agent-turn.js.map +1 -1
- package/dist/server/routes/chat.js +29 -1
- package/dist/server/routes/chat.js.map +1 -1
- package/dist/server/routes/threads.js +37 -5
- package/dist/server/routes/threads.js.map +1 -1
- package/dist/server/services/chat.d.ts +12 -0
- package/dist/server/services/chat.js +19 -0
- package/dist/server/services/chat.js.map +1 -1
- package/dist/server/services/release-bundle.d.ts +20 -0
- package/dist/server/services/release-bundle.js +40 -2
- package/dist/server/services/release-bundle.js.map +1 -1
- package/dist/server/services/release-import.d.ts +58 -0
- package/dist/server/services/release-import.js +239 -0
- package/dist/server/services/release-import.js.map +1 -0
- package/dist/server/services/release.d.ts +1 -1
- package/dist/server/services/release.js +112 -3
- package/dist/server/services/release.js.map +1 -1
- package/dist/server/services/remote-http-client.d.ts +45 -0
- package/dist/server/services/remote-http-client.js +45 -1
- package/dist/server/services/remote-http-client.js.map +1 -1
- package/dist/shared/release-import.d.ts +43 -0
- package/dist/shared/release-import.js +2 -0
- package/dist/shared/release-import.js.map +1 -0
- package/package.json +2 -2
- package/dist/client/assets/channel-BjFfHRmd.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-BMWb3AtV.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BMWb3AtV.js +0 -1
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BXij3Ct2.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.11] - 2026-05-31
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- M27 Project Clone — bootstrap a local project from a published remote project. New `--clone <slug>` CLI option, backed by `ReleaseImportService` (validation, error handling) and the `release_import` table (migration `034_release_import`) that logs each clone attempt with its success or error state.
|
|
12
|
+
- `--remote-url <url>` CLI option for a sticky override of the remote API base URL.
|
|
13
|
+
- Chat session-lock — model and reasoning settings are now immutable for the duration of a chat session, with a chat configuration API exposing session resume constraints (migration `033_chat_initial_architecture_config`).
|
|
14
|
+
- Error handling for unknown writing styles in `ProjectSection`, surfacing a relevant message to the user.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- `BriefsList` now sorts briefs by release order via the new `useReleases` hook.
|
|
18
|
+
- Bumped `@inharness-ai/agent-adapters` to 0.6.2.
|
|
19
|
+
|
|
8
20
|
## [1.0.10] - 2026-05-29
|
|
9
21
|
|
|
10
22
|
### Added
|
|
@@ -118,6 +130,7 @@ Initial public release.
|
|
|
118
130
|
- Acceptance Criteria entity and tooling.
|
|
119
131
|
- Briefs and patches workflow for spec-driven implementation.
|
|
120
132
|
|
|
133
|
+
[1.0.11]: https://github.com/InHarness/claude4spec/compare/v1.0.10...v1.0.11
|
|
121
134
|
[1.0.10]: https://github.com/InHarness/claude4spec/compare/v1.0.9...v1.0.10
|
|
122
135
|
[1.0.9]: https://github.com/InHarness/claude4spec/compare/v1.0.8...v1.0.9
|
|
123
136
|
[1.0.8]: https://github.com/InHarness/claude4spec/compare/v1.0.7...v1.0.8
|
package/dist/bin/claude4spec.js
CHANGED
|
@@ -16,6 +16,8 @@ function parseArgs(argv) {
|
|
|
16
16
|
mode: undefined,
|
|
17
17
|
name: undefined,
|
|
18
18
|
noOpen: false,
|
|
19
|
+
clone: undefined,
|
|
20
|
+
remoteUrl: undefined,
|
|
19
21
|
};
|
|
20
22
|
const resolveCwd = (raw) => path.resolve(process.cwd(), raw);
|
|
21
23
|
const parseMode = (raw) => {
|
|
@@ -55,12 +57,43 @@ function parseArgs(argv) {
|
|
|
55
57
|
else if (a?.startsWith('--name=')) {
|
|
56
58
|
args.name = a.split('=')[1];
|
|
57
59
|
}
|
|
60
|
+
else if (a === '--clone' && argv[i + 1]) {
|
|
61
|
+
args.clone = argv[++i];
|
|
62
|
+
}
|
|
63
|
+
else if (a?.startsWith('--clone=')) {
|
|
64
|
+
args.clone = a.split('=')[1];
|
|
65
|
+
}
|
|
66
|
+
else if (a === '--remote-url' && argv[i + 1]) {
|
|
67
|
+
args.remoteUrl = argv[++i];
|
|
68
|
+
}
|
|
69
|
+
else if (a?.startsWith('--remote-url=')) {
|
|
70
|
+
args.remoteUrl = a.split('=')[1];
|
|
71
|
+
}
|
|
58
72
|
else if (a === '--no-open') {
|
|
59
73
|
args.noOpen = true;
|
|
60
74
|
}
|
|
61
75
|
}
|
|
62
76
|
return args;
|
|
63
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* M27 clone guard (step 6a). The target must be empty — no non-dotfile entries
|
|
80
|
+
* and no pre-existing `.claude4spec/db.sqlite` — ignoring dotfiles and the fresh
|
|
81
|
+
* `.claude4spec/` created during bootstrap. Runs BEFORE any remote call / DB open.
|
|
82
|
+
* A pre-seeded `.claude4spec/config.json` (e.g. to set `remoteApiUrl` for a dev
|
|
83
|
+
* peer) is a dotfile and is ignored.
|
|
84
|
+
*/
|
|
85
|
+
function assertCloneTargetEmpty(cwd) {
|
|
86
|
+
const dbPath = path.join(cwd, '.claude4spec', 'db.sqlite');
|
|
87
|
+
const entries = fs.existsSync(cwd)
|
|
88
|
+
? fs.readdirSync(cwd).filter((name) => !name.startsWith('.'))
|
|
89
|
+
: [];
|
|
90
|
+
if (fs.existsSync(dbPath) || entries.length > 0) {
|
|
91
|
+
console.error(`\x1b[31mCLONE_TARGET_NOT_EMPTY\x1b[0m — --clone requires an empty directory.\n` +
|
|
92
|
+
` cwd: ${cwd}\n` +
|
|
93
|
+
` Hint: mkdir <slug> && cd <slug> && npx @inharness-ai/claude4spec --clone <slug>`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
64
97
|
function ensureBootstrap(cwd, pagesDir) {
|
|
65
98
|
const pagesPath = path.join(cwd, pagesDir ?? 'pages');
|
|
66
99
|
fs.mkdirSync(pagesPath, { recursive: true });
|
|
@@ -90,16 +123,32 @@ function openBrowser(url) {
|
|
|
90
123
|
/* ignore */
|
|
91
124
|
}
|
|
92
125
|
}
|
|
93
|
-
const { port, cwd, pagesDir, mode, name, noOpen } = parseArgs(process.argv.slice(2));
|
|
126
|
+
const { port, cwd, pagesDir, mode, name, noOpen, clone, remoteUrl } = parseArgs(process.argv.slice(2));
|
|
94
127
|
fs.mkdirSync(cwd, { recursive: true });
|
|
128
|
+
// M27 step 6a: validate the clone target is empty before any remote call / DB open.
|
|
129
|
+
if (clone)
|
|
130
|
+
assertCloneTargetEmpty(cwd);
|
|
131
|
+
// M27 (0.1.37): capture pre-bootstrap state for clone rollback — `.claude4spec/`
|
|
132
|
+
// is created lazily by loadOrCreateConfig/openDb, so check existence BEFORE it.
|
|
133
|
+
const claudeDirExisted = fs.existsSync(path.join(cwd, '.claude4spec'));
|
|
95
134
|
const { config: effective, created: configCreated, path: configFilePath } = loadOrCreateConfig(cwd, {
|
|
96
135
|
name,
|
|
97
136
|
port,
|
|
98
137
|
pagesDir,
|
|
99
138
|
mode,
|
|
139
|
+
// M01 (0.1.36): `--remote-url` is sticky — persisted on first bootstrap, then
|
|
140
|
+
// resolved (flag > config.json > prod constant) in startServer.
|
|
141
|
+
remoteApiUrl: remoteUrl,
|
|
100
142
|
});
|
|
143
|
+
// M27 (0.1.37): capture whether .gitignore pre-existed BEFORE ensureGitignore —
|
|
144
|
+
// ensureGitignore creates it if absent, else only appends. Clone rollback deletes
|
|
145
|
+
// it only when this run created it (never a user's pre-existing .gitignore).
|
|
146
|
+
const gitignoreExisted = fs.existsSync(path.join(cwd, '.gitignore'));
|
|
101
147
|
ensureGitignore(cwd);
|
|
102
|
-
|
|
148
|
+
// When cloning, the restored pages/ populate the project — skip the welcome page
|
|
149
|
+
// (writing index.md first would also violate the empty-target precondition).
|
|
150
|
+
if (!clone)
|
|
151
|
+
ensureBootstrap(cwd, effective.pagesDir);
|
|
103
152
|
ensureExternalSkills(cwd);
|
|
104
153
|
ensureMcpJson({ projectAbsPath: cwd });
|
|
105
154
|
startServer({
|
|
@@ -107,7 +156,19 @@ startServer({
|
|
|
107
156
|
port: effective.port,
|
|
108
157
|
pagesDir: effective.pagesDir,
|
|
109
158
|
mode: effective.mode,
|
|
110
|
-
name
|
|
159
|
+
// Raw CLI --name only (undefined unless explicitly passed) — consumed solely as
|
|
160
|
+
// the M27 clone name override, where an explicit --name wins over the bundle's
|
|
161
|
+
// config.name. effective.name (cwd-basename default) must NOT shadow it.
|
|
162
|
+
name,
|
|
163
|
+
clone,
|
|
164
|
+
// Resolved flag > config.json > null; startServer applies the prod-constant
|
|
165
|
+
// fallback inside RemoteHttpClient.
|
|
166
|
+
remoteApiUrl: effective.remoteApiUrl,
|
|
167
|
+
// M27 (0.1.37): drive the clone full-rollback — delete config.json / .claude4spec/
|
|
168
|
+
// only if THIS run created them (step 3 created the dir iff it didn't pre-exist).
|
|
169
|
+
configCreated,
|
|
170
|
+
claudeDirCreated: !claudeDirExisted,
|
|
171
|
+
gitignoreCreated: !gitignoreExisted,
|
|
111
172
|
})
|
|
112
173
|
.then((handle) => {
|
|
113
174
|
console.log(`\x1b[32m claude4spec\x1b[0m ready at \x1b[36m${handle.url}\x1b[0m`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude4spec.js","sourceRoot":"","sources":["../../src/bin/claude4spec.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude4spec.js","sourceRoot":"","sources":["../../src/bin/claude4spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-
|
|
1
|
+
import{a0 as ln,a1 as an,a2 as H,a3 as q,a4 as B,a5 as un,a6 as y,a7 as tn,a8 as L,a9 as _,aa as rn,ab as o,ac as on,ad as sn,ae as fn}from"./mermaid.core-CYorG2ZU.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(on(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)-un,c=A.apply(this,arguments)-un,F=rn(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=_(rn(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<an)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(fn((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-an/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};
|