@rashidee/co2 1.3.10 → 1.3.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/dist/.co2-dat/app.db-shm +0 -0
- package/dist/.co2-dat/app.db-wal +0 -0
- package/dist/index.js +155 -1
- package/package.json +1 -1
- package/plugin/skills/mockgen-shadcn/SKILL.md +11 -7
- package/plugin/skills/mockgen-shadcn/references/admin-layout-template.md +14 -3
- package/plugin/skills/mockgen-shadcn/references/mockup-hub-template.md +98 -40
- package/plugin/skills/mockgen-tailwind/references/mockup-hub-template.md +98 -40
- package/plugin/skills/util-gencicdscript/SKILL.md +34 -8
- package/plugin/skills/util-gencicdscript/references/cicd-app-template.md +127 -20
- package/plugin/skills/util-plancicd/SKILL.md +62 -1
- package/static/assets/{abnfDiagram-VRR7QNED-ChoWkBm-.js → abnfDiagram-VRR7QNED-DBzgA_2G.js} +1 -1
- package/static/assets/{arc-BOiutWhq.js → arc-Bc02_4l6.js} +1 -1
- package/static/assets/{architectureDiagram-ZJ3FMSHR-Dn4YKYfM.js → architectureDiagram-ZJ3FMSHR-ixN9wSDW.js} +1 -1
- package/static/assets/{blockDiagram-677ZJIJ3-BrXEfs29.js → blockDiagram-677ZJIJ3-Ob4lZkCY.js} +1 -1
- package/static/assets/{c4Diagram-LMCZKHZV-ChaIzrlx.js → c4Diagram-LMCZKHZV-BeJY3Zks.js} +1 -1
- package/static/assets/channel-CJFxgMC1.js +1 -0
- package/static/assets/{chunk-2Q5K7J3B-BOlnmyI2.js → chunk-2Q5K7J3B-DTFIWNGb.js} +1 -1
- package/static/assets/{chunk-32BRIVSS-BYtO1gsq.js → chunk-32BRIVSS-DLTvoPpT.js} +1 -1
- package/static/assets/{chunk-5VM5RSS4-Cmx4Morj.js → chunk-5VM5RSS4-BKlvf6hI.js} +1 -1
- package/static/assets/{chunk-EX3LRPZG-BcgUofmA.js → chunk-EX3LRPZG-B9ej8_ma.js} +1 -1
- package/static/assets/{chunk-JWPE2WC7-CnNRXdvN.js → chunk-JWPE2WC7-DAYaiy17.js} +1 -1
- package/static/assets/{chunk-MOJQB5TN-DGG6Q3Wn.js → chunk-MOJQB5TN-D6rRKzWc.js} +1 -1
- package/static/assets/{chunk-RYQCIY6F-C8erKHls.js → chunk-RYQCIY6F-CE4CHN6p.js} +1 -1
- package/static/assets/{chunk-V7JOEXUC-BNkIJqzu.js → chunk-V7JOEXUC-BR-Kl6S2.js} +1 -1
- package/static/assets/{chunk-VR4S4FIN-CGq-RseS.js → chunk-VR4S4FIN-Bo9J3WGe.js} +1 -1
- package/static/assets/{chunk-XXDRQBXY-DOVfEC7j.js → chunk-XXDRQBXY-DjI5dJHR.js} +1 -1
- package/static/assets/classDiagram-OUVF2IWQ-B5OYUyBf.js +1 -0
- package/static/assets/classDiagram-v2-EOCWNBFH-B5OYUyBf.js +1 -0
- package/static/assets/{cose-bilkent-JH36ORCC-BrK3gCzK.js → cose-bilkent-JH36ORCC-DLciz-3w.js} +1 -1
- package/static/assets/{cynefin-VYW2F7L2-BTMYzKLg.js → cynefin-VYW2F7L2-DqfVJKpm.js} +1 -1
- package/static/assets/{cynefinDiagram-TSTJHNR4-Df4k0_Hb.js → cynefinDiagram-TSTJHNR4-D14oLdNM.js} +1 -1
- package/static/assets/{dagre-VKFMJZFB-0LnYnEqq.js → dagre-VKFMJZFB-BduMbW80.js} +1 -1
- package/static/assets/{diagram-FQU43EPY-B5nIVD5g.js → diagram-FQU43EPY-CLQg7RWT.js} +1 -1
- package/static/assets/{diagram-G47NLZAW-B2YLBzdb.js → diagram-G47NLZAW-Dq3Ymr1b.js} +1 -1
- package/static/assets/{diagram-NH7WQ7WH-DPVumXIF.js → diagram-NH7WQ7WH-BPjov8S5.js} +1 -1
- package/static/assets/{diagram-OA4YK3LP-Da20vcLJ.js → diagram-OA4YK3LP-BgQgpiJD.js} +1 -1
- package/static/assets/{diagram-WEI45ONY-DQbTpuRZ.js → diagram-WEI45ONY-BeOPSl27.js} +1 -1
- package/static/assets/{ebnfDiagram-CCIWWBDH-BEn1vEyb.js → ebnfDiagram-CCIWWBDH-DFsTw8OM.js} +1 -1
- package/static/assets/{erDiagram-Q63AITRT-Ccg0DVBG.js → erDiagram-Q63AITRT-scBEBawL.js} +1 -1
- package/static/assets/{flowDiagram-23GEKE2U-B2dMjEpa.js → flowDiagram-23GEKE2U-BfX-2ZO-.js} +1 -1
- package/static/assets/{ganttDiagram-NO4QXBWP-Kp1UsG59.js → ganttDiagram-NO4QXBWP-BR5IJ1mv.js} +1 -1
- package/static/assets/{gitGraphDiagram-IHSO6WYX-D6RB8sPf.js → gitGraphDiagram-IHSO6WYX-zPu_QDUM.js} +1 -1
- package/static/assets/{index-CM4GfOLV.css → index-DKI3BgkF.css} +1 -1
- package/static/assets/{index-GEUFVo96.js → index-Dnp-sAA_.js} +111 -115
- package/static/assets/{infoDiagram-FWYZ7A6U-C4ILACOF.js → infoDiagram-FWYZ7A6U-CpyKTQb9.js} +1 -1
- package/static/assets/{ishikawaDiagram-FXEZZL3T-Q2Ef9fW7.js → ishikawaDiagram-FXEZZL3T-C2SXt-2Y.js} +1 -1
- package/static/assets/{journeyDiagram-5HDEW3XC-B7ZV1i0L.js → journeyDiagram-5HDEW3XC-DJavk0C4.js} +1 -1
- package/static/assets/{kanban-definition-HUTT4EX6-CjaPV_vw.js → kanban-definition-HUTT4EX6-xN4pVGL7.js} +1 -1
- package/static/assets/{linear-BELpVz92.js → linear-BMWKojRX.js} +1 -1
- package/static/assets/{mindmap-definition-LN4V7U3C-COhl-GrE.js → mindmap-definition-LN4V7U3C-DOaDf7u0.js} +1 -1
- package/static/assets/{pegDiagram-2B236MQR-3FlTtWva.js → pegDiagram-2B236MQR-B1px906A.js} +1 -1
- package/static/assets/{pieDiagram-ENE6RG2P-CLeOh_sh.js → pieDiagram-ENE6RG2P-s0vEagFS.js} +1 -1
- package/static/assets/{quadrantDiagram-ABIIQ3AL-D2MnobFS.js → quadrantDiagram-ABIIQ3AL-BEhIl8IZ.js} +1 -1
- package/static/assets/{railroadDiagram-RFXS5EU6-FjtL4fEj.js → railroadDiagram-RFXS5EU6-fFsin92S.js} +1 -1
- package/static/assets/{requirementDiagram-TGXJPOKE-C5Y2uWRV.js → requirementDiagram-TGXJPOKE-Cf9J7tii.js} +1 -1
- package/static/assets/{sankeyDiagram-HTMAVEWB-ITj9bISn.js → sankeyDiagram-HTMAVEWB-Cy5gaZqM.js} +1 -1
- package/static/assets/{sequenceDiagram-DBY2YBRQ-Ct2xTSbI.js → sequenceDiagram-DBY2YBRQ-DI61Vnk1.js} +1 -1
- package/static/assets/{sizeCapture-X5ZJPWSS-w9hGRpov.js → sizeCapture-X5ZJPWSS-CmUBUW3B.js} +1 -1
- package/static/assets/{stateDiagram-2N3HPSRC-BlxDF1qr.js → stateDiagram-2N3HPSRC-CBMhhwuE.js} +1 -1
- package/static/assets/stateDiagram-v2-6OUMAXLB-BD1I889C.js +1 -0
- package/static/assets/{swimlanes-5IMT3BWC-DFYm_SCW.js → swimlanes-5IMT3BWC-CtZlr9wD.js} +2 -2
- package/static/assets/swimlanesDiagram-G3AALYLV-BfEZlw_9.js +8 -0
- package/static/assets/{timeline-definition-FHXFAJF6-johIMUxt.js → timeline-definition-FHXFAJF6-BC69PWR-.js} +1 -1
- package/static/assets/{vennDiagram-L72KCM5P-BFk2-H5y.js → vennDiagram-L72KCM5P-jEaqKPSP.js} +1 -1
- package/static/assets/{wardleyDiagram-EHGQE667-T7509MWq.js → wardleyDiagram-EHGQE667-CKFWi3EK.js} +1 -1
- package/static/assets/{xychartDiagram-FW5EYKEG-DskgQ7uq.js → xychartDiagram-FW5EYKEG-CjyCKfOu.js} +1 -1
- package/static/index.html +2 -2
- package/static/assets/channel-CKovdojM.js +0 -1
- package/static/assets/classDiagram-OUVF2IWQ-BRxqfb0_.js +0 -1
- package/static/assets/classDiagram-v2-EOCWNBFH-BRxqfb0_.js +0 -1
- package/static/assets/stateDiagram-v2-6OUMAXLB-CQVgnOlz.js +0 -1
- package/static/assets/swimlanesDiagram-G3AALYLV-DubMPSZe.js +0 -8
|
@@ -10,7 +10,13 @@ description: >
|
|
|
10
10
|
method (container vs bare process), build command (e.g. Spring Boot jar vs Docker image),
|
|
11
11
|
start command, stop mechanism, deploy method + command (none / web-server copy / docker run /
|
|
12
12
|
kubectl apply — only when the environment calls for one), port and health-check URL, plus a
|
|
13
|
-
port for the generated CI/CD app itself.
|
|
13
|
+
port for the generated CI/CD app itself. When Docker AND a docker repo/registry are both
|
|
14
|
+
configured (DEVTOOL.md + ENVIRONMENT.md), it additionally plans the docker-image build path:
|
|
15
|
+
per-application image names under the repo, Build commands extended with
|
|
16
|
+
`docker build -t <image>:{VERSION}` (the {VERSION} token is resolved by the generated CI/CD
|
|
17
|
+
app from its topbar version selector), and a managed Dockerfile authored into the plan's
|
|
18
|
+
`## Dockerfiles` section for any dockerized application lacking one (materialized before
|
|
19
|
+
Build, never overwriting an existing file). It also infers each application's RUNTIME CONFIG — the
|
|
14
20
|
config files its start command reads (e.g. `.env`), deciding per file whether the values come
|
|
15
21
|
from ENVIRONMENT.md or from an existing `.env` / `.env-*` file already in the app folder, listing
|
|
16
22
|
the required keys and, for ENVIRONMENT.md-sourced files, the resolved content — so the generated
|
|
@@ -61,6 +67,11 @@ If the argument is missing or the file does not exist, STOP and tell the user to
|
|
|
61
67
|
1. Read the plan-request markdown; its `## Applications` list is the authoritative application set.
|
|
62
68
|
2. Read `ENVIRONMENT.md` (registries, credentials, external services) and `DEVTOOL.md`
|
|
63
69
|
(installed tools + paths: node/pnpm/docker/kubectl/python versions).
|
|
70
|
+
2a. **Docker facts**: record whether Docker is installed (DEVTOOL.md) AND whether
|
|
71
|
+
ENVIRONMENT.md names a **docker repo/registry** — a registry URL or namespace the images
|
|
72
|
+
are tagged for (e.g. `registry.example.com/team`, a Docker Hub org, an ECR/GCR path).
|
|
73
|
+
The docker-image build path (below) activates ONLY when BOTH are present; Docker without
|
|
74
|
+
a configured repo keeps today's behavior (no image builds).
|
|
64
75
|
3. Read `CLAUDE.md`: `# Custom Applications` (folder names, Depends on), `# Port Allocation`
|
|
65
76
|
(per-application ports), and `# Supporting 3rd Party Applications` (the infrastructure the
|
|
66
77
|
applications depend on — databases, caches, object storage, SSO, mail, message brokers, etc.).
|
|
@@ -107,6 +118,23 @@ If the argument is missing or the file does not exist, STOP and tell the user to
|
|
|
107
118
|
`web-server` (copy the built artifact into the configured web/app server, e.g. nginx html
|
|
108
119
|
root or Tomcat webapps, when one is configured). Default **`none`** — a bare local process
|
|
109
120
|
needs no deploy step beyond Start; never invent a target the config does not name.
|
|
121
|
+
- **Docker image** (only when Gather 2a found Docker + a docker repo — otherwise skip this
|
|
122
|
+
bullet entirely):
|
|
123
|
+
- **Image name**: `<repo>/<app_folder>` — the application folder name, lowercased, with
|
|
124
|
+
any character docker rejects replaced by `-` (keep a leading `<number>_` prefix as-is;
|
|
125
|
+
e.g. `registry.example.com/team/skolafund_web`).
|
|
126
|
+
- **Build**: append the image build to the app build —
|
|
127
|
+
`<app build> && docker build -t <image>:{VERSION} .` The literal `{VERSION}` token is
|
|
128
|
+
the contract: the generated CI/CD app substitutes the version selected in its topbar
|
|
129
|
+
(semver without the `v` prefix; `latest` fallback) into commands at execution time.
|
|
130
|
+
Build never pushes — pushing belongs to a `docker` Deploy method.
|
|
131
|
+
- **Container start/deploy**: when method=container, reference `<image>:{VERSION}` in the
|
|
132
|
+
start/deploy commands too, so the selected tag is what runs.
|
|
133
|
+
- **Dockerfile**: if the application folder already has a `Dockerfile`, use it as-is
|
|
134
|
+
(`existing`). Otherwise author a stack-appropriate Dockerfile (node / spring-boot /
|
|
135
|
+
laravel — same stack detection as depgen-k8s) into the plan's `## Dockerfiles` section
|
|
136
|
+
(`managed`); the generated CI/CD app materializes it before Build only when the file is
|
|
137
|
+
still missing on disk.
|
|
110
138
|
- **Port**: from `# Port Allocation`; if absent, assign sequentially from 3000 avoiding
|
|
111
139
|
collisions with the studio (3001) and the CI/CD app port.
|
|
112
140
|
- **Health / running-detection**: the endpoint the generated CI/CD app uses to tell whether the
|
|
@@ -192,6 +220,39 @@ inner ```env config block renders — the plan file itself uses a normal 3-backt
|
|
|
192
220
|
> **Health** host — so an app is detected whichever family it binds. Use a `localhost` Health host
|
|
193
221
|
> for Node/Vite/Next apps (they bind IPv6 `::1`) and `127.0.0.1` for JVM apps.
|
|
194
222
|
|
|
223
|
+
> **`{VERSION}` token**: Build/Start/Deploy commands may contain the literal `{VERSION}`;
|
|
224
|
+
> the generated CI/CD app replaces it with the version selected in its topbar (semver
|
|
225
|
+
> without the `v` prefix, `latest` when unknown) at execution time. Used by the docker-image
|
|
226
|
+
> path to tag images; tag-only — the code built is always the working tree.
|
|
227
|
+
|
|
228
|
+
## Docker
|
|
229
|
+
|
|
230
|
+
Written only from Gather 2a. When Docker or a docker repo is absent, write the section as:
|
|
231
|
+
`_Not dockerized — Docker and/or a docker repo are not configured in DEVTOOL.md/ENVIRONMENT.md._`
|
|
232
|
+
|
|
233
|
+
**Registry**: <repo, e.g. `registry.example.com/team`>
|
|
234
|
+
|
|
235
|
+
| Application | Image | Dockerfile |
|
|
236
|
+
|---|---|---|
|
|
237
|
+
| <name> | `<repo>/<app_folder>` | existing \| managed |
|
|
238
|
+
|
|
239
|
+
## Dockerfiles
|
|
240
|
+
|
|
241
|
+
One fenced block per `managed` Dockerfile (omit the section body — `_All Dockerfiles exist._`
|
|
242
|
+
— when every dockerized app already has one; `_Not dockerized._` when the Docker section is
|
|
243
|
+
inactive). The generated CI/CD app writes each body to `<app_folder>/Dockerfile` before Build
|
|
244
|
+
only when the file is missing on disk — an existing Dockerfile is never overwritten.
|
|
245
|
+
|
|
246
|
+
```dockerfile path=<app_folder>/Dockerfile
|
|
247
|
+
FROM node:22-slim
|
|
248
|
+
WORKDIR /app
|
|
249
|
+
COPY package*.json ./
|
|
250
|
+
RUN npm ci --omit=dev
|
|
251
|
+
COPY . .
|
|
252
|
+
EXPOSE <port>
|
|
253
|
+
CMD ["node", "dist/index.js"]
|
|
254
|
+
```
|
|
255
|
+
|
|
195
256
|
## Application Configs
|
|
196
257
|
|
|
197
258
|
The runtime config each application needs to START SUCCESSFULLY. The generated CI/CD app writes any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-D6rRKzWc.js";import{p as f}from"./chunk-JWPE2WC7-DAYaiy17.js";import{_ as n,l as o}from"./index-Dnp-sAA_.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DqfVJKpm.js";var v=d().RailroadAbnf.parser.LangiumParser,l=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),i=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:i,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return l(e.element);case"AbnfOptionalGroup":return{type:"optional",element:l(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:l(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},w={parser:R,db:a,renderer:u,styles:p};export{w as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as y,a1 as tn,a2 as F,a3 as q,a4 as _,a5 as un,a6 as rn,a7 as J,a8 as o,a9 as j,aa as sn,ab as on,ac as fn}from"./index-
|
|
1
|
+
import{Y as ln,$ as an,a0 as y,a1 as tn,a2 as F,a3 as q,a4 as _,a5 as un,a6 as rn,a7 as J,a8 as o,a9 as j,aa as sn,ab as on,ac as fn}from"./index-Dnp-sAA_.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,z,a){var O=I-l,i=D-h,n=z-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 U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(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)*J(fn(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=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,B=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(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<rn)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(on((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(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=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,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(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,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[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|