@nk070281sjv/cli 2.3.1
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 +210 -0
- package/dist/dashboard/client/assets/_basePickBy-CyrHyeyN.js +1 -0
- package/dist/dashboard/client/assets/_baseUniq-Bg7NJSGS.js +1 -0
- package/dist/dashboard/client/assets/arc-zDGAKMur.js +1 -0
- package/dist/dashboard/client/assets/architectureDiagram-VXUJARFQ-BxlGxm0Q.js +36 -0
- package/dist/dashboard/client/assets/blockDiagram-VD42YOAC-BskTNyX5.js +122 -0
- package/dist/dashboard/client/assets/c4Diagram-YG6GDRKO-Dr9QQ-dn.js +10 -0
- package/dist/dashboard/client/assets/channel-BUnm_-UQ.js +1 -0
- package/dist/dashboard/client/assets/chunk-4BX2VUAB-xq9xoCTv.js +1 -0
- package/dist/dashboard/client/assets/chunk-55IACEB6-DYdXYVh5.js +1 -0
- package/dist/dashboard/client/assets/chunk-B4BG7PRW-BGAyFRFS.js +165 -0
- package/dist/dashboard/client/assets/chunk-DI55MBZ5-C5ul9stk.js +220 -0
- package/dist/dashboard/client/assets/chunk-FMBD7UC4-BSaPo2xa.js +15 -0
- package/dist/dashboard/client/assets/chunk-QN33PNHL-CyzabUv0.js +1 -0
- package/dist/dashboard/client/assets/chunk-QZHKN3VN-CceRbxt_.js +1 -0
- package/dist/dashboard/client/assets/chunk-TZMSLE5B-Bjg9IoOQ.js +1 -0
- package/dist/dashboard/client/assets/classDiagram-2ON5EDUG-D_fkmNvU.js +1 -0
- package/dist/dashboard/client/assets/classDiagram-v2-WZHVMYZB-D_fkmNvU.js +1 -0
- package/dist/dashboard/client/assets/clone-DTyrNOLZ.js +1 -0
- package/dist/dashboard/client/assets/cose-bilkent-S5V4N54A-DEdXBrCt.js +1 -0
- package/dist/dashboard/client/assets/cytoscape.esm-DtBltrT8.js +331 -0
- package/dist/dashboard/client/assets/dagre-6UL2VRFP-DRdIiP58.js +4 -0
- package/dist/dashboard/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/dashboard/client/assets/diagram-PSM6KHXK-Bo7Q2VlK.js +24 -0
- package/dist/dashboard/client/assets/diagram-QEK2KX5R-2Fmc2o5x.js +43 -0
- package/dist/dashboard/client/assets/diagram-S2PKOQOG-5WE8f0p7.js +24 -0
- package/dist/dashboard/client/assets/erDiagram-Q2GNP2WA-DD-iXWd_.js +60 -0
- package/dist/dashboard/client/assets/flowDiagram-NV44I4VS-CCWo8Ue9.js +162 -0
- package/dist/dashboard/client/assets/ganttDiagram-JELNMOA3-CNY4d5UK.js +267 -0
- package/dist/dashboard/client/assets/gitGraphDiagram-V2S2FVAM-Dq5SBEJJ.js +65 -0
- package/dist/dashboard/client/assets/graph-BTt9lokK.js +1 -0
- package/dist/dashboard/client/assets/index-B0k81q2b.js +581 -0
- package/dist/dashboard/client/assets/index-Czwdh6UA.css +1 -0
- package/dist/dashboard/client/assets/infoDiagram-HS3SLOUP-AnKZja-G.js +2 -0
- package/dist/dashboard/client/assets/init-Gi6I4Gst.js +1 -0
- package/dist/dashboard/client/assets/journeyDiagram-XKPGCS4Q-nC-_WjPN.js +139 -0
- package/dist/dashboard/client/assets/kanban-definition-3W4ZIXB7-BEY73sWU.js +89 -0
- package/dist/dashboard/client/assets/katex-DGN8GczM.js +261 -0
- package/dist/dashboard/client/assets/layout-D4DfNpzH.js +1 -0
- package/dist/dashboard/client/assets/linear-ZpGvKjeP.js +1 -0
- package/dist/dashboard/client/assets/mermaid-renderer-BCDxmS9g.js +256 -0
- package/dist/dashboard/client/assets/mindmap-definition-VGOIOE7T-MzAaKESA.js +68 -0
- package/dist/dashboard/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/dashboard/client/assets/pieDiagram-ADFJNKIX-B_X1kySF.js +30 -0
- package/dist/dashboard/client/assets/quadrantDiagram-AYHSOK5B-CMoIEMLN.js +7 -0
- package/dist/dashboard/client/assets/requirementDiagram-UZGBJVZJ-v4CRsn1w.js +64 -0
- package/dist/dashboard/client/assets/sankeyDiagram-TZEHDZUN-CPcyN8Jj.js +10 -0
- package/dist/dashboard/client/assets/sequenceDiagram-WL72ISMW-CTg0Vx1H.js +145 -0
- package/dist/dashboard/client/assets/stateDiagram-FKZM4ZOC-BMWBN6Nq.js +1 -0
- package/dist/dashboard/client/assets/stateDiagram-v2-4FDKWEC3-C9Jk1xd0.js +1 -0
- package/dist/dashboard/client/assets/timeline-definition-IT6M3QCI-B8xFcSGb.js +61 -0
- package/dist/dashboard/client/assets/treemap-GDKQZRPO-HQQuGl9w.js +162 -0
- package/dist/dashboard/client/assets/xychartDiagram-PRI3JC2R-Drz0SW3I.js +7 -0
- package/dist/dashboard/client/favicon-dark.ico +0 -0
- package/dist/dashboard/client/favicon-light.ico +0 -0
- package/dist/dashboard/client/index.html +15 -0
- package/dist/dashboard/server.js +39699 -0
- package/dist/index.js +39236 -0
- package/package.json +58 -0
package/README.md
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://github.com/spencermarx/open-code-review">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/spencermarx/open-code-review/main/assets/OCR-Logo-Text-Light.png">
|
|
5
|
+
<img src="https://raw.githubusercontent.com/spencermarx/open-code-review/main/assets/OCR-Logo-Text-Dark.png" alt="Open Code Review" width="300">
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
# @open-code-review/cli
|
|
11
|
+
|
|
12
|
+
Command-line interface for [Open Code Review](https://github.com/spencermarx/open-code-review) — multi-tool setup, real-time progress tracking, environment health checks, and a web dashboard for managing reviews.
|
|
13
|
+
|
|
14
|
+
## Quick Start
|
|
15
|
+
|
|
16
|
+
**Requires Node.js >= 22.5** — OCR's storage engine is Node's built-in SQLite (`node:sqlite`), so there's no native module to compile and it installs cleanly under any package manager (npm, **pnpm 10+**, yarn).
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 1. Install globally
|
|
20
|
+
npm install -g @open-code-review/cli
|
|
21
|
+
|
|
22
|
+
# 2. Initialize in your project
|
|
23
|
+
cd your-project
|
|
24
|
+
ocr init
|
|
25
|
+
|
|
26
|
+
# 3. Launch the dashboard
|
|
27
|
+
ocr dashboard
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`ocr init` detects your installed AI tools and configures each one automatically. Then use your AI assistant to run a review:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/ocr:review # Claude Code / Cursor
|
|
34
|
+
/ocr-review # Windsurf / other tools
|
|
35
|
+
/ocr-review against spec.md # With requirements context
|
|
36
|
+
/ocr-review --team architect:1,java-spring-engineer:1 # Custom team composition
|
|
37
|
+
/ocr-review --reviewer "Focus on error handling" # Add an ephemeral reviewer
|
|
38
|
+
/ocr-map # Code Review Map for large changesets
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Run `ocr doctor` to verify your setup at any time.
|
|
42
|
+
|
|
43
|
+
## Reviewer Library
|
|
44
|
+
|
|
45
|
+
OCR ships with 7 reviewer personas focused on backend service review: Architect, Database Administrator, Integration API Contract Engineer, Java Spring Engineer, Performance, QA Test Engineer, and Security Engineer.
|
|
46
|
+
|
|
47
|
+
Add ephemeral one-off reviewers with `--reviewer`, or create persistent custom reviewers with `/ocr:create-reviewer`.
|
|
48
|
+
|
|
49
|
+
## Multi-Model Teams
|
|
50
|
+
|
|
51
|
+
Different reviewers can run on different models. Pair a fast generalist with a deeper specialist, or mix vendors across a single team:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
# .ocr/config.yaml
|
|
55
|
+
models:
|
|
56
|
+
aliases:
|
|
57
|
+
workhorse: claude-sonnet-4-6
|
|
58
|
+
big-brain: claude-opus-4-7
|
|
59
|
+
default: claude-sonnet-4-6
|
|
60
|
+
|
|
61
|
+
default_team:
|
|
62
|
+
architect: # per-instance models
|
|
63
|
+
- { model: big-brain }
|
|
64
|
+
- { model: workhorse, name: architect-balanced }
|
|
65
|
+
security-engineer: { count: 1, model: big-brain } # one model, multiple instances
|
|
66
|
+
java-spring-engineer: 2 # default model
|
|
67
|
+
|
|
68
|
+
pipeline_agents:
|
|
69
|
+
aggregation: { model: big-brain }
|
|
70
|
+
validation: { model: big-brain }
|
|
71
|
+
synthesis: { model: big-brain }
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Override per-review from the dashboard's Command Center, or via `--team` on the CLI. The dashboard auto-discovers every model your installed vendor (Claude Code or OpenCode) offers.
|
|
75
|
+
|
|
76
|
+
OpenCode reviews use `ocr review run-agents` internally. The CLI starts every
|
|
77
|
+
resolved reviewer process, writes exact prompt snapshots under
|
|
78
|
+
`rounds/round-{n}/prompts/`, writes reviewer stdout under `reviews/`, and then
|
|
79
|
+
runs `aggregation`, `validation`, and `synthesis` as separate process agents.
|
|
80
|
+
If any configured reviewer or pipeline model is missing or any process fails,
|
|
81
|
+
the round stops instead of continuing with a partial team or fabricated output.
|
|
82
|
+
|
|
83
|
+
## Commands
|
|
84
|
+
|
|
85
|
+
### `ocr init`
|
|
86
|
+
|
|
87
|
+
Initialize Open Code Review in your project. Creates `.ocr/` with skills, commands, and config, then configures your detected AI tools.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
ocr init # Interactive — select tools
|
|
91
|
+
ocr init --tools claude,windsurf # Non-interactive
|
|
92
|
+
ocr init --tools all # Configure all detected tools
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### `ocr dashboard`
|
|
96
|
+
|
|
97
|
+
Start the web dashboard for running reviews, browsing results, triaging findings, and posting to GitHub. Bundled with the CLI — no separate install.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
ocr dashboard # Default port (4173)
|
|
101
|
+
ocr dashboard --port 8080 # Custom port
|
|
102
|
+
ocr dashboard --no-open # Don't auto-open browser
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### `ocr progress`
|
|
106
|
+
|
|
107
|
+
Watch a review or map session in real-time. Shows current phase, elapsed time, reviewer status, finding counts, and completion percentage.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
ocr progress # Auto-detect current session
|
|
111
|
+
ocr progress --session 2026-01-26-main # Specific session
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### `ocr doctor`
|
|
115
|
+
|
|
116
|
+
Verify your OCR installation and all dependencies.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
ocr doctor
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Checks: `git`, AI CLI tools (Claude Code, OpenCode), `gh` (GitHub CLI), `.ocr/` setup, and capabilities.
|
|
123
|
+
|
|
124
|
+
### `ocr update`
|
|
125
|
+
|
|
126
|
+
Update OCR skills and commands after upgrading the package. Preserves your `.ocr/config.yaml` and all reviewer personas.
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
ocr update # Update everything
|
|
130
|
+
ocr update --dry-run # Preview changes
|
|
131
|
+
ocr update --commands # Commands only
|
|
132
|
+
ocr update --skills # Skills and references only
|
|
133
|
+
ocr update --inject # AGENTS.md/CLAUDE.md only
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### `ocr reviewers`
|
|
137
|
+
|
|
138
|
+
Manage reviewer personas. Sync metadata from reviewer markdown files to `reviewers-meta.json` for the dashboard.
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
ocr reviewers sync --stdin # Pipe JSON from AI-generated metadata
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### `ocr state`
|
|
145
|
+
|
|
146
|
+
Internal command used by the review workflow to manage session state. Subcommands: `begin`, `advance`, `complete-round`, `complete-map`, `finish`, `status`, `show`, `sync`, `reconcile`.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
ocr state begin --session-id <id> --branch <branch> --workflow-type review
|
|
150
|
+
ocr state advance --phase reviews # Advance to a phase (graph-validated)
|
|
151
|
+
ocr state complete-round --stdin # Finalize a round from piped JSON
|
|
152
|
+
ocr state finish # Close the workflow (invariant-checked)
|
|
153
|
+
ocr state status --json # Completeness + next action
|
|
154
|
+
ocr state show --json # Show current session state
|
|
155
|
+
ocr state sync # Rebuild state from filesystem
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### `ocr review run-agents`
|
|
159
|
+
|
|
160
|
+
Internal execution entrypoint used for OpenCode reviews. It is normally called
|
|
161
|
+
by the dashboard or installed `/ocr-review` command, not typed by hand.
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
ocr review run-agents --session-id <session-id> --round <n>
|
|
165
|
+
ocr review run-agents [target] --fresh --requirements <text-or-path> --team <json>
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
This path owns process spawning and artifact writing. Agents return stdout and
|
|
169
|
+
NDJSON only; they do not write OCR session files directly.
|
|
170
|
+
|
|
171
|
+
## Supported AI Tools
|
|
172
|
+
|
|
173
|
+
`ocr init` detects and configures all of these automatically:
|
|
174
|
+
|
|
175
|
+
| Tool | Config Directory |
|
|
176
|
+
|------|------------------|
|
|
177
|
+
| Amazon Q Developer | `.aws/amazonq/` |
|
|
178
|
+
| Augment (Auggie) | `.augment/` |
|
|
179
|
+
| Claude Code | `.claude/` |
|
|
180
|
+
| Cline | `.cline/` |
|
|
181
|
+
| Codex | `.codex/` |
|
|
182
|
+
| Continue | `.continue/` |
|
|
183
|
+
| Cursor | `.cursor/` |
|
|
184
|
+
| Gemini CLI | `.gemini/` |
|
|
185
|
+
| GitHub Copilot | `.github/` |
|
|
186
|
+
| Kilo Code | `.kilocode/` |
|
|
187
|
+
| OpenCode | `.opencode/` |
|
|
188
|
+
| Qoder | `.qoder/` |
|
|
189
|
+
| RooCode | `.roo/` |
|
|
190
|
+
| Windsurf | `.windsurf/` |
|
|
191
|
+
|
|
192
|
+
## Updating
|
|
193
|
+
|
|
194
|
+
After upgrading the package:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
npm i -g @open-code-review/cli@latest
|
|
198
|
+
ocr update
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
The CLI notifies you when a new version is available.
|
|
202
|
+
|
|
203
|
+
## Links
|
|
204
|
+
|
|
205
|
+
- **Full documentation**: [github.com/spencermarx/open-code-review](https://github.com/spencermarx/open-code-review)
|
|
206
|
+
- **npm**: [@open-code-review/cli](https://www.npmjs.com/package/@open-code-review/cli)
|
|
207
|
+
|
|
208
|
+
## License
|
|
209
|
+
|
|
210
|
+
Apache-2.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as x,c as O,g as m,k as P,h as p,j as w,l as A,m as c,n as I,t as N,o as E}from"./_baseUniq-Bg7NJSGS.js";import{aQ as g,aA as F,aR as M,aS as T,aT as _,aU as l,aV as $,aW as B,aX as S,aY as y}from"./mermaid-renderer-BCDxmS9g.js";var R=/\s/;function G(n){for(var r=n.length;r--&&R.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,W=/^[-+]0x[0-9a-f]+$/i,X=/^0b[01]+$/i,Y=/^0o[0-7]+$/i,q=parseInt;function z(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=X.test(n);return t||Y.test(n)?q(n.slice(2),t?2:8):W.test(n)?o:+n}var v=1/0,C=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=z(n),n===v||n===-v){var r=n<0?-1:1;return r*C}return n===n?n:0}function Q(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var b=Object.prototype,U=b.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&M(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=T(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||_(h,b[u])&&!U.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var J=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:Q(t);return a<0&&(a=J(i+a,0)),p(n,m(r),a)}var hn=D(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=$(n)?A:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&c(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,B,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:S(r[a+1])?[]:{})}y(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=E(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,Q as j,un as l,gn as m,K as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bd as S,be as Rn,aV as T,bf as w,aU as sn,bg as xn,bh as mn,bi as Mn,bj as un,bk as x,aS as U,bl as Cn,bm as on,bn as Fn,bo as E,bb as gn,bp as R,aQ as ln,bq as Dn,br as D,bs as Gn,bt as Un,bu as _,aY as Bn,bv as Nn,aT as Kn,bw as X,bx as jn,by as Hn,aX as qn,aW as cn,b9 as Yn,bz as M}from"./mermaid-renderer-BCDxmS9g.js";var Zn="[object Symbol]";function B(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var Q=w?w.prototype:void 0,J=Q?Q.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(B(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Qn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Qn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Br="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Br:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Qr="[object Set]";function Jr(n){return S(n)&&E(n)==Qr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(C(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,C(d,r,e,p,n,i))});var A=b?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Bn(a,p,C(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Be="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Be:return n==r+"";case Fe:var s=Le;case Ue:var u=tℜif(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Qe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Qe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=M&&1/H(new M([,-0]))[1]==yt?function(n){return new M(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,B as e,_t as f,Ln as g,Qn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
|
|
@@ -0,0 +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-renderer-BCDxmS9g.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};
|