@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.
Files changed (73) hide show
  1. package/dist/.co2-dat/app.db-shm +0 -0
  2. package/dist/.co2-dat/app.db-wal +0 -0
  3. package/dist/index.js +155 -1
  4. package/package.json +1 -1
  5. package/plugin/skills/mockgen-shadcn/SKILL.md +11 -7
  6. package/plugin/skills/mockgen-shadcn/references/admin-layout-template.md +14 -3
  7. package/plugin/skills/mockgen-shadcn/references/mockup-hub-template.md +98 -40
  8. package/plugin/skills/mockgen-tailwind/references/mockup-hub-template.md +98 -40
  9. package/plugin/skills/util-gencicdscript/SKILL.md +34 -8
  10. package/plugin/skills/util-gencicdscript/references/cicd-app-template.md +127 -20
  11. package/plugin/skills/util-plancicd/SKILL.md +62 -1
  12. package/static/assets/{abnfDiagram-VRR7QNED-ChoWkBm-.js → abnfDiagram-VRR7QNED-DBzgA_2G.js} +1 -1
  13. package/static/assets/{arc-BOiutWhq.js → arc-Bc02_4l6.js} +1 -1
  14. package/static/assets/{architectureDiagram-ZJ3FMSHR-Dn4YKYfM.js → architectureDiagram-ZJ3FMSHR-ixN9wSDW.js} +1 -1
  15. package/static/assets/{blockDiagram-677ZJIJ3-BrXEfs29.js → blockDiagram-677ZJIJ3-Ob4lZkCY.js} +1 -1
  16. package/static/assets/{c4Diagram-LMCZKHZV-ChaIzrlx.js → c4Diagram-LMCZKHZV-BeJY3Zks.js} +1 -1
  17. package/static/assets/channel-CJFxgMC1.js +1 -0
  18. package/static/assets/{chunk-2Q5K7J3B-BOlnmyI2.js → chunk-2Q5K7J3B-DTFIWNGb.js} +1 -1
  19. package/static/assets/{chunk-32BRIVSS-BYtO1gsq.js → chunk-32BRIVSS-DLTvoPpT.js} +1 -1
  20. package/static/assets/{chunk-5VM5RSS4-Cmx4Morj.js → chunk-5VM5RSS4-BKlvf6hI.js} +1 -1
  21. package/static/assets/{chunk-EX3LRPZG-BcgUofmA.js → chunk-EX3LRPZG-B9ej8_ma.js} +1 -1
  22. package/static/assets/{chunk-JWPE2WC7-CnNRXdvN.js → chunk-JWPE2WC7-DAYaiy17.js} +1 -1
  23. package/static/assets/{chunk-MOJQB5TN-DGG6Q3Wn.js → chunk-MOJQB5TN-D6rRKzWc.js} +1 -1
  24. package/static/assets/{chunk-RYQCIY6F-C8erKHls.js → chunk-RYQCIY6F-CE4CHN6p.js} +1 -1
  25. package/static/assets/{chunk-V7JOEXUC-BNkIJqzu.js → chunk-V7JOEXUC-BR-Kl6S2.js} +1 -1
  26. package/static/assets/{chunk-VR4S4FIN-CGq-RseS.js → chunk-VR4S4FIN-Bo9J3WGe.js} +1 -1
  27. package/static/assets/{chunk-XXDRQBXY-DOVfEC7j.js → chunk-XXDRQBXY-DjI5dJHR.js} +1 -1
  28. package/static/assets/classDiagram-OUVF2IWQ-B5OYUyBf.js +1 -0
  29. package/static/assets/classDiagram-v2-EOCWNBFH-B5OYUyBf.js +1 -0
  30. package/static/assets/{cose-bilkent-JH36ORCC-BrK3gCzK.js → cose-bilkent-JH36ORCC-DLciz-3w.js} +1 -1
  31. package/static/assets/{cynefin-VYW2F7L2-BTMYzKLg.js → cynefin-VYW2F7L2-DqfVJKpm.js} +1 -1
  32. package/static/assets/{cynefinDiagram-TSTJHNR4-Df4k0_Hb.js → cynefinDiagram-TSTJHNR4-D14oLdNM.js} +1 -1
  33. package/static/assets/{dagre-VKFMJZFB-0LnYnEqq.js → dagre-VKFMJZFB-BduMbW80.js} +1 -1
  34. package/static/assets/{diagram-FQU43EPY-B5nIVD5g.js → diagram-FQU43EPY-CLQg7RWT.js} +1 -1
  35. package/static/assets/{diagram-G47NLZAW-B2YLBzdb.js → diagram-G47NLZAW-Dq3Ymr1b.js} +1 -1
  36. package/static/assets/{diagram-NH7WQ7WH-DPVumXIF.js → diagram-NH7WQ7WH-BPjov8S5.js} +1 -1
  37. package/static/assets/{diagram-OA4YK3LP-Da20vcLJ.js → diagram-OA4YK3LP-BgQgpiJD.js} +1 -1
  38. package/static/assets/{diagram-WEI45ONY-DQbTpuRZ.js → diagram-WEI45ONY-BeOPSl27.js} +1 -1
  39. package/static/assets/{ebnfDiagram-CCIWWBDH-BEn1vEyb.js → ebnfDiagram-CCIWWBDH-DFsTw8OM.js} +1 -1
  40. package/static/assets/{erDiagram-Q63AITRT-Ccg0DVBG.js → erDiagram-Q63AITRT-scBEBawL.js} +1 -1
  41. package/static/assets/{flowDiagram-23GEKE2U-B2dMjEpa.js → flowDiagram-23GEKE2U-BfX-2ZO-.js} +1 -1
  42. package/static/assets/{ganttDiagram-NO4QXBWP-Kp1UsG59.js → ganttDiagram-NO4QXBWP-BR5IJ1mv.js} +1 -1
  43. package/static/assets/{gitGraphDiagram-IHSO6WYX-D6RB8sPf.js → gitGraphDiagram-IHSO6WYX-zPu_QDUM.js} +1 -1
  44. package/static/assets/{index-CM4GfOLV.css → index-DKI3BgkF.css} +1 -1
  45. package/static/assets/{index-GEUFVo96.js → index-Dnp-sAA_.js} +111 -115
  46. package/static/assets/{infoDiagram-FWYZ7A6U-C4ILACOF.js → infoDiagram-FWYZ7A6U-CpyKTQb9.js} +1 -1
  47. package/static/assets/{ishikawaDiagram-FXEZZL3T-Q2Ef9fW7.js → ishikawaDiagram-FXEZZL3T-C2SXt-2Y.js} +1 -1
  48. package/static/assets/{journeyDiagram-5HDEW3XC-B7ZV1i0L.js → journeyDiagram-5HDEW3XC-DJavk0C4.js} +1 -1
  49. package/static/assets/{kanban-definition-HUTT4EX6-CjaPV_vw.js → kanban-definition-HUTT4EX6-xN4pVGL7.js} +1 -1
  50. package/static/assets/{linear-BELpVz92.js → linear-BMWKojRX.js} +1 -1
  51. package/static/assets/{mindmap-definition-LN4V7U3C-COhl-GrE.js → mindmap-definition-LN4V7U3C-DOaDf7u0.js} +1 -1
  52. package/static/assets/{pegDiagram-2B236MQR-3FlTtWva.js → pegDiagram-2B236MQR-B1px906A.js} +1 -1
  53. package/static/assets/{pieDiagram-ENE6RG2P-CLeOh_sh.js → pieDiagram-ENE6RG2P-s0vEagFS.js} +1 -1
  54. package/static/assets/{quadrantDiagram-ABIIQ3AL-D2MnobFS.js → quadrantDiagram-ABIIQ3AL-BEhIl8IZ.js} +1 -1
  55. package/static/assets/{railroadDiagram-RFXS5EU6-FjtL4fEj.js → railroadDiagram-RFXS5EU6-fFsin92S.js} +1 -1
  56. package/static/assets/{requirementDiagram-TGXJPOKE-C5Y2uWRV.js → requirementDiagram-TGXJPOKE-Cf9J7tii.js} +1 -1
  57. package/static/assets/{sankeyDiagram-HTMAVEWB-ITj9bISn.js → sankeyDiagram-HTMAVEWB-Cy5gaZqM.js} +1 -1
  58. package/static/assets/{sequenceDiagram-DBY2YBRQ-Ct2xTSbI.js → sequenceDiagram-DBY2YBRQ-DI61Vnk1.js} +1 -1
  59. package/static/assets/{sizeCapture-X5ZJPWSS-w9hGRpov.js → sizeCapture-X5ZJPWSS-CmUBUW3B.js} +1 -1
  60. package/static/assets/{stateDiagram-2N3HPSRC-BlxDF1qr.js → stateDiagram-2N3HPSRC-CBMhhwuE.js} +1 -1
  61. package/static/assets/stateDiagram-v2-6OUMAXLB-BD1I889C.js +1 -0
  62. package/static/assets/{swimlanes-5IMT3BWC-DFYm_SCW.js → swimlanes-5IMT3BWC-CtZlr9wD.js} +2 -2
  63. package/static/assets/swimlanesDiagram-G3AALYLV-BfEZlw_9.js +8 -0
  64. package/static/assets/{timeline-definition-FHXFAJF6-johIMUxt.js → timeline-definition-FHXFAJF6-BC69PWR-.js} +1 -1
  65. package/static/assets/{vennDiagram-L72KCM5P-BFk2-H5y.js → vennDiagram-L72KCM5P-jEaqKPSP.js} +1 -1
  66. package/static/assets/{wardleyDiagram-EHGQE667-T7509MWq.js → wardleyDiagram-EHGQE667-CKFWi3EK.js} +1 -1
  67. package/static/assets/{xychartDiagram-FW5EYKEG-DskgQ7uq.js → xychartDiagram-FW5EYKEG-CjyCKfOu.js} +1 -1
  68. package/static/index.html +2 -2
  69. package/static/assets/channel-CKovdojM.js +0 -1
  70. package/static/assets/classDiagram-OUVF2IWQ-BRxqfb0_.js +0 -1
  71. package/static/assets/classDiagram-v2-EOCWNBFH-BRxqfb0_.js +0 -1
  72. package/static/assets/stateDiagram-v2-6OUMAXLB-CQVgnOlz.js +0 -1
  73. 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. It also infers each application's RUNTIME CONFIG — the
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-DGG6Q3Wn.js";import{p as f}from"./chunk-JWPE2WC7-CnNRXdvN.js";import{_ as n,l as o}from"./index-GEUFVo96.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BTMYzKLg.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
+ 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-GEUFVo96.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};
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};