archyne 0.1.0-alpha.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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +249 -0
  3. package/THIRD-PARTY-NOTICES.md +302 -0
  4. package/bin/archyne.mjs +179 -0
  5. package/desktop/main.cjs +141 -0
  6. package/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +1 -0
  7. package/dist/assets/abnfDiagram-VRR7QNED-DxJn5x30.js +1 -0
  8. package/dist/assets/ar-DHpnjuQB.js +1 -0
  9. package/dist/assets/arc-Bi9nYi75.js +1 -0
  10. package/dist/assets/architectureDiagram-ZJ3FMSHR-CVVsX69f.js +36 -0
  11. package/dist/assets/blockDiagram-677ZJIJ3-CvyOVrtD.js +132 -0
  12. package/dist/assets/c4Diagram-LMCZKHZV-CeTXI2L5.js +10 -0
  13. package/dist/assets/channel-CgQghNFn.js +1 -0
  14. package/dist/assets/chunk-2Q5K7J3B-QWLx0LNh.js +1 -0
  15. package/dist/assets/chunk-32BRIVSS-Cx7PNJc5.js +1 -0
  16. package/dist/assets/chunk-5VM5RSS4-B-JlXrm9.js +15 -0
  17. package/dist/assets/chunk-EX3LRPZG-BZir2lEZ.js +231 -0
  18. package/dist/assets/chunk-JWPE2WC7-Bs6js5ed.js +1 -0
  19. package/dist/assets/chunk-MOJQB5TN-M9vORODQ.js +88 -0
  20. package/dist/assets/chunk-RYQCIY6F-C23BZB1s.js +1 -0
  21. package/dist/assets/chunk-V7JOEXUC-DP9DCEHY.js +206 -0
  22. package/dist/assets/chunk-VR4S4FIN-CXMOwHEw.js +1 -0
  23. package/dist/assets/chunk-XXDRQBXY-C-XBHYFW.js +1 -0
  24. package/dist/assets/classDiagram-OUVF2IWQ-C9iVyfdZ.js +1 -0
  25. package/dist/assets/classDiagram-v2-EOCWNBFH-C9iVyfdZ.js +1 -0
  26. package/dist/assets/cose-bilkent-JH36ORCC-DcImuxgn.js +1 -0
  27. package/dist/assets/cynefin-VYW2F7L2-CKc9sK58.js +178 -0
  28. package/dist/assets/cynefinDiagram-TSTJHNR4-_O9mLQTK.js +62 -0
  29. package/dist/assets/cytoscape.esm-DTSO7Bv0.js +331 -0
  30. package/dist/assets/dagre-VKFMJZFB-CMh1gN_B.js +4 -0
  31. package/dist/assets/de-BbF3ozkg.js +1 -0
  32. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  33. package/dist/assets/diagram-FQU43EPY-Cay_5WYD.js +3 -0
  34. package/dist/assets/diagram-G47NLZAW-DT1H2wTP.js +24 -0
  35. package/dist/assets/diagram-NH7WQ7WH-xuvv_D9N.js +24 -0
  36. package/dist/assets/diagram-OA4YK3LP-Bio-u38F.js +30 -0
  37. package/dist/assets/diagram-WEI45ONY-CD_QL4nf.js +41 -0
  38. package/dist/assets/ebnfDiagram-CCIWWBDH-CkGukNGk.js +1 -0
  39. package/dist/assets/elk-api-CF2Hej0P.js +1 -0
  40. package/dist/assets/elk-worker.min-BENGc9gn.js +22 -0
  41. package/dist/assets/elk-worker.min-D32ngsh5.js +1 -0
  42. package/dist/assets/elk.bundled-ajwJAWsK.js +24 -0
  43. package/dist/assets/erDiagram-Q63AITRT-CQGtCq5E.js +85 -0
  44. package/dist/assets/es-BB-VRPmB.js +1 -0
  45. package/dist/assets/flowDiagram-23GEKE2U-E3_Lcv6A.js +156 -0
  46. package/dist/assets/ganttDiagram-NO4QXBWP-AwojtMZ1.js +292 -0
  47. package/dist/assets/gitGraphDiagram-IHSO6WYX-D0klOOBk.js +106 -0
  48. package/dist/assets/graph-C9eacEi8.js +1 -0
  49. package/dist/assets/icon-names.generated-Ch4zjdI9.js +1 -0
  50. package/dist/assets/index--A4RGzRu.js +277 -0
  51. package/dist/assets/index-B29u660W.js +1 -0
  52. package/dist/assets/index-BDuFgzVF.js +1 -0
  53. package/dist/assets/index-C-tHkbn_.js +1 -0
  54. package/dist/assets/index-C1mNJrF6.js +1 -0
  55. package/dist/assets/index-CbxBfG1v.css +1 -0
  56. package/dist/assets/index-XppXLvIK.js +1 -0
  57. package/dist/assets/infoDiagram-FWYZ7A6U-2op9tD2c.js +2 -0
  58. package/dist/assets/init-Gi6I4Gst.js +1 -0
  59. package/dist/assets/ishikawaDiagram-FXEZZL3T-B1UsYLso.js +70 -0
  60. package/dist/assets/it-z1Rr2vYL.js +1 -0
  61. package/dist/assets/ja-DMZcFTAH.js +1 -0
  62. package/dist/assets/journeyDiagram-5HDEW3XC-CZ1oYiAr.js +139 -0
  63. package/dist/assets/kanban-definition-HUTT4EX6-B-XWcB9M.js +89 -0
  64. package/dist/assets/katex-C5jXJg4s.js +257 -0
  65. package/dist/assets/layout-DEXfKzaS.js +1 -0
  66. package/dist/assets/linear-GMYYDbJv.js +1 -0
  67. package/dist/assets/map-Czzmt4hB.js +1 -0
  68. package/dist/assets/mermaid.core-pPiwjbNO.js +314 -0
  69. package/dist/assets/mindmap-definition-LN4V7U3C-BB4SGbrE.js +96 -0
  70. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  71. package/dist/assets/pegDiagram-2B236MQR-3keJbrGj.js +1 -0
  72. package/dist/assets/pieDiagram-ENE6RG2P-CVi3ig0y.js +39 -0
  73. package/dist/assets/quadrantDiagram-ABIIQ3AL-CPp6gXbB.js +7 -0
  74. package/dist/assets/railroadDiagram-RFXS5EU6-BCILT-8k.js +1 -0
  75. package/dist/assets/requirementDiagram-TGXJPOKE-DgmaKLiT.js +84 -0
  76. package/dist/assets/sankeyDiagram-HTMAVEWB-DHGaI0hQ.js +40 -0
  77. package/dist/assets/sequenceDiagram-DBY2YBRQ-3AycEqxZ.js +162 -0
  78. package/dist/assets/sizeCapture-X5ZJPWSS-uS50b7bJ.js +1 -0
  79. package/dist/assets/stateDiagram-2N3HPSRC-DaBzZNwx.js +1 -0
  80. package/dist/assets/stateDiagram-v2-6OUMAXLB-xJOnXuvC.js +1 -0
  81. package/dist/assets/swimlanes-5IMT3BWC-BR44KNOm.js +2 -0
  82. package/dist/assets/swimlanesDiagram-G3AALYLV-B3xqzED0.js +8 -0
  83. package/dist/assets/timeline-definition-FHXFAJF6-Msxd070e.js +120 -0
  84. package/dist/assets/vennDiagram-L72KCM5P-W9VDq1l8.js +34 -0
  85. package/dist/assets/wardleyDiagram-EHGQE667-DfDvmnIe.js +78 -0
  86. package/dist/assets/xychartDiagram-FW5EYKEG-HwKD44hb.js +7 -0
  87. package/dist/assets/zh-B2oIvhee.js +1 -0
  88. package/dist/embed-demo.html +114 -0
  89. package/dist/index.html +102 -0
  90. package/dist/logo.png +0 -0
  91. package/dist/logo.svg +55 -0
  92. package/package.json +123 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dario (dariodd)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,249 @@
1
+ <p align="center">
2
+ <img src="public/logo.svg" alt="Archyne" width="120">
3
+ </p>
4
+
5
+ # Archyne — a visual editor for Mermaid diagrams
6
+
7
+ A draw.io-style diagram editor with **two-way sync to Mermaid code**. Edit visually
8
+ (drag-and-drop, connect, rename) or edit the Mermaid text — each side updates the
9
+ other. Because the document _is_ standard Mermaid, LLMs can generate, read, and
10
+ modify your diagrams as plain text, and anything they produce opens on the canvas.
11
+
12
+ Runs entirely in the browser — no server, no accounts, nothing leaves your machine.
13
+ Self-host by serving the `dist/` folder from any static file server.
14
+
15
+ <p align="center">
16
+ <a href="https://github.com/dariodd/archyne/actions/workflows/ci.yml"><img src="https://github.com/dariodd/archyne/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
17
+ <a href="https://www.npmjs.com/package/archyne"><img src="https://img.shields.io/npm/v/archyne.svg" alt="npm"></a>
18
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
19
+ </p>
20
+
21
+ ## Try it
22
+
23
+ **[Open the live demo →](https://dariodd.github.io/archyne/)** — it is the same
24
+ static build, running in your browser. Nothing is uploaded.
25
+
26
+ Or run it locally, with no clone and no build:
27
+
28
+ ```sh
29
+ npx archyne # opens http://localhost:4173
30
+ npx archyne diagram.mmd # …with a diagram already loaded
31
+ ```
32
+
33
+ Desktop builds for Windows, macOS and Linux are attached to every
34
+ [release](https://github.com/dariodd/archyne/releases/latest). They are **not
35
+ yet code-signed** — Windows warns, macOS needs one `xattr` command — and each
36
+ release page says so; the web version and `npx archyne` avoid the question
37
+ entirely.
38
+
39
+ <p align="center">
40
+ <img src="docs/images/editor-flowchart-light.png" alt="Archyne editing a flowchart: shape palette on the left, canvas in the middle, Mermaid source on the right" width="100%">
41
+ </p>
42
+
43
+ <table>
44
+ <tr>
45
+ <td width="50%">
46
+ <img src="docs/images/editor-architecture-dark.png" alt="An architecture diagram with vendor icons for Cloudflare, AWS, Node.js, Redis and Postgres, grouped inside a VPC" width="100%">
47
+ <p align="center"><em>Architecture diagrams with 13 000+ searchable vendor icons</em></p>
48
+ </td>
49
+ <td width="50%">
50
+ <img src="docs/images/editor-sequence-dark.png" alt="A sequence diagram with participants, activations, a note and numbered messages" width="100%">
51
+ <p align="center"><em>Sequence diagrams — drag participants to reorder</em></p>
52
+ </td>
53
+ </tr>
54
+ </table>
55
+
56
+ The screenshots are generated from the real app by
57
+ `node scripts/screenshots.mjs`, so they cannot quietly go stale.
58
+
59
+ ## Run
60
+
61
+ ```sh
62
+ npm install
63
+ npm run dev # development, http://localhost:5173
64
+ npm run build # production build into dist/ (static, any web server)
65
+ npm start # serve the build locally (same as npx archyne)
66
+ npm test # round-trip parser/serializer tests
67
+ npm run mcp # MCP server (stdio) for LLM agents
68
+ npm run mcp:smoke # end-to-end MCP server test
69
+ npm run desktop # desktop app (Electron shell around the build)
70
+ npm run desktop:build # Windows installer (NSIS) into release/
71
+ ```
72
+
73
+ There is no backend: the web build is static files, the desktop app is the
74
+ same build in an Electron window, and diagrams live in your files. Opening a
75
+ `.mmd` file with the desktop app loads it directly (the installer registers
76
+ the file association), and **Save writes back to that same file** — as it does
77
+ in the browser too, on engines with the File System Access API. Elsewhere,
78
+ Save falls back to a download.
79
+
80
+ Diagram families Archyne has no visual editor for — `gantt`, `pie`, `mindmap`
81
+ and friends — still open, rendered read-only, with the Mermaid code fully
82
+ editable and the file untouched on save.
83
+
84
+ > Windows note: if `desktop:build` fails with `EPERM … rename win-unpacked`,
85
+ > your project sits in a Defender-protected folder (e.g. Documents). Build
86
+ > with the output elsewhere:
87
+ > `npx electron-builder --win -c.directories.output=%LOCALAPPDATA%\archyne-release`
88
+
89
+ ## Embedding Archyne in another app
90
+
91
+ Load the app with `?embed=1` inside an iframe and talk to it over
92
+ `postMessage`. In embed mode Archyne never touches localStorage — the host
93
+ owns the data.
94
+
95
+ The bridge is **default-deny**: you must name your origin with
96
+ `&origin=https://your.app`, and diagram content is only ever posted back to an
97
+ origin on that list. Comma-separate several if you need to. `origin=*` accepts
98
+ any parent frame and is for local development only.
99
+
100
+ ```html
101
+ <iframe id="mf" src="https://archyne.your.host/?embed=1&origin=https://your.app"></iframe>
102
+ <script>
103
+ const MF = "https://archyne.your.host";
104
+ const mf = document.getElementById("mf").contentWindow;
105
+ window.addEventListener("message", (e) => {
106
+ if (e.origin !== MF) return; // verify the sender, too
107
+ if (e.data.type === "ready")
108
+ mf.postMessage({ type: "load", code: "flowchart TD\n a-->b" }, MF);
109
+ if (e.data.type === "change") save(e.data.code); // live edits, debounced
110
+ if (e.data.type === "exported") show(e.data.dataUrl); // png/svg data URL
111
+ });
112
+ // on demand:
113
+ mf.postMessage({ type: "getCode" }, MF); // → { type:"code", code }
114
+ mf.postMessage({ type: "export", options: { format: "png", background: "light" } }, MF);
115
+ </script>
116
+ ```
117
+
118
+ Messages from the editor: `ready`, `loaded`, `change {code}`, `code {code}`,
119
+ `exported {format, dataUrl}`, `error {message}`. A working example ships at
120
+ `/embed-demo.html`.
121
+
122
+ ## MCP server — let agents edit your diagrams
123
+
124
+ `mcp/server.ts` exposes the diagrams as MCP tools, so Claude Code (or any MCP
125
+ client) can work with them directly. The included `.mcp.json` registers it
126
+ automatically when you open this project in Claude Code; elsewhere:
127
+
128
+ ```sh
129
+ claude mcp add archyne -- npx tsx mcp/server.ts
130
+ ```
131
+
132
+ | Tool | What it does |
133
+ | ------------------ | ---------------------------------------------------------- |
134
+ | `list_diagrams` | Find all `.mmd` files under `GRAPH_DIR` (default: cwd) |
135
+ | `read_diagram` | Raw mermaid source + parsed structure (nodes/edges/groups) |
136
+ | `validate_mermaid` | Parse-check code without writing |
137
+ | `write_diagram` | Validated write; rejects broken mermaid outright |
138
+
139
+ Writes are safe by construction: invalid code never touches disk, paths can't
140
+ escape the root, and if an agent rewrites a diagram without the
141
+ `%% graph:positions` line, the previous manual layout is carried over for the
142
+ nodes that still exist — an LLM restructuring your diagram won't scramble
143
+ your hand-arranged layout.
144
+
145
+ ## How it works
146
+
147
+ - **Canvas → code**: structural edits (add/delete/connect/rename/reshape) regenerate
148
+ the Mermaid text; dragging a node only rewrites the positions comment, leaving the
149
+ rest of your text untouched.
150
+ - **Code → canvas**: the text is parsed with mermaid's own parser, so anything
151
+ mermaid accepts renders on the canvas. Parse errors are shown without destroying
152
+ the last good canvas state.
153
+ - **Positions** live in a single trailing comment the rest of the world ignores:
154
+
155
+ ```
156
+ %% graph:positions {"start":{"x":0,"y":0},...}
157
+ ```
158
+
159
+ So the file stays a 100% valid Mermaid diagram (GitHub, Notion, LLMs, mermaid-cli
160
+ all render it), while your manual layout survives save/reload/LLM-edit cycles.
161
+ Diagrams without a positions line are auto-laid-out with ELK.
162
+
163
+ ## Current scope
164
+
165
+ Five Mermaid diagram families, all with visual editing and two-way sync:
166
+
167
+ - **Flowcharts** — all 14 vertex shapes, all edge stroke/arrow types,
168
+ subgraphs as groups (create/dissolve from the toolbar), and full
169
+ `classDef`/`style` round-trip with color pickers in the inspector.
170
+ - **State diagrams** (`stateDiagram-v2`) — states, start/end pseudo-states,
171
+ transitions with labels, composite states as groups (nested transitions
172
+ round-trip correctly).
173
+ - **ER diagrams** — entities with typed attributes/keys/comments, crow's-foot
174
+ cardinalities, identifying vs non-identifying relationships.
175
+ - **Class diagrams** — fields and methods (with abstract/static classifiers),
176
+ «interface» annotations, generics, namespaces as groups, sticky notes,
177
+ inheritance/composition/aggregation/dependency markers, cardinalities,
178
+ dotted relations.
179
+ - **Sequence diagrams** — participants/actors as draggable columns with
180
+ lifelines (drag horizontally to reorder), messages as ordered horizontal
181
+ arrows with all eight operators; reorder from the inspector. Notes and
182
+ loop/alt/opt blocks are created from the palette (drop them at a row),
183
+ renamed and deleted in place; par/critical/break blocks, activations, and
184
+ autonumber are rendered and fully preserved through any canvas edit.
185
+ - **Architecture diagrams** (`architecture-beta`) — cloud/solution
186
+ architecture with **vendor icons** (AWS, Azure, GCP, Kubernetes, … — the
187
+ Iconify `logos`, `devicon`, `carbon`, `tabler` and `simple-icons`
188
+ collections are bundled and searchable from the
189
+ palette), nested groups for VPCs/subnets, junctions, and side-anchored
190
+ connections with per-end arrows.
191
+ - **C4 models** (`C4Context`/`C4Container`/`C4Component`) — persons,
192
+ systems, containers, components (with `_Ext`/db/queue variants),
193
+ enterprise/system/container boundaries as groups, relations with
194
+ technology labels and bidirectional arrows. The original C4 flavor and
195
+ title round-trip.
196
+
197
+ The palette, inspector, and "New…" menu adapt to the active diagram kind.
198
+ Plus: **undo/redo** (Ctrl+Z/Y — the code being the source of truth makes
199
+ history a stack of snapshots), **copy/paste** (Ctrl+C/V, id-remapped, edges
200
+ included), group resizing with drag handles, snap-to-grid, double-click any
201
+ node or edge to rename it, drag-and-drop, direction switch, ELK auto-layout,
202
+ `.mmd` open/save, **PNG/SVG export** of the canvas, copy code, localStorage
203
+ autosave, live Mermaid preview tab.
204
+
205
+ ## Roadmap
206
+
207
+ - Open files from disk in the app and watch for MCP-side changes (live
208
+ agent ↔ human co-editing)
209
+ - Alignment guides; edge waypoints; resize for non-group nodes
210
+
211
+ ## For reviewers and buyers
212
+
213
+ Archyne is local-first by construction — no backend, no accounts, no
214
+ telemetry — which answers most of a security review before it starts. The
215
+ documents that answer the rest:
216
+
217
+ | Document | What it covers |
218
+ | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
219
+ | [Security architecture](docs/security-whitepaper.md) | Data flows, threat model, the sanitizer and CSP layers and how they are verified, supply-chain posture, and a plainly-stated list of gaps |
220
+ | [Security policy](SECURITY.md) | How to report a vulnerability, and what is in scope |
221
+ | [Accessibility Conformance Report](docs/accessibility-conformance-report.md) | WCAG 2.2 A/AA, criterion by criterion, with the evidence for each — and an explicit account of what has **not** been tested |
222
+ | [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) | Dependency licences; `npm run sbom` emits a CycloneDX SBOM |
223
+ | [Roadmap](docs/PLAN.md) | What is done, what is not, and why |
224
+
225
+ Two things stated up front rather than discovered later: the desktop
226
+ installers are **not yet code-signed**, and the accessibility report is a
227
+ self-assessment, **not a signed VPAT**.
228
+
229
+ ## License
230
+
231
+ [MIT](LICENSE). Third-party dependency licenses are listed in
232
+ [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) — all are compatible with
233
+ MIT distribution (elkjs is EPL-2.0, consumed unmodified as a library; icon
234
+ collections are CC0, with depicted logos remaining their owners' trademarks).
235
+ The full breakdown is also available in-app: click the Archyne logo.
236
+
237
+ ## Trademarks
238
+
239
+ Archyne is an independent project. It is **not affiliated with, endorsed by,
240
+ or sponsored by** Mermaid or Mermaid Chart.
241
+
242
+ "Mermaid" is a trademark of its respective owner. It appears here and in the
243
+ interface only to describe the file format Archyne reads and writes — the
244
+ kind of use that identifies compatibility, not origin. The Mermaid library
245
+ itself is used under its [MIT licence](https://github.com/mermaid-js/mermaid),
246
+ which grants rights over the code and none over the name.
247
+
248
+ Vendor logos in the bundled icon collections likewise remain trademarks of
249
+ their respective owners.
@@ -0,0 +1,302 @@
1
+ # Third-party notices
2
+
3
+ > **Trademarks.** Archyne is an independent project, not affiliated with,
4
+ > endorsed by, or sponsored by any project listed here. Product and library
5
+ > names — including "Mermaid" — are trademarks of their respective owners and
6
+ > are used only to identify the software concerned. The licences below grant
7
+ > rights over code, not over names.
8
+
9
+ Archyne is MIT-licensed. It bundles or depends on the following packages
10
+ (production dependency tree, generated with license-checker):
11
+
12
+ <!-- notices:table:start -->
13
+
14
+ | Package | License | Repository |
15
+ |---|---|---|
16
+ | @antfu/install-pkg@1.1.0 | MIT | https://github.com/antfu/install-pkg |
17
+ | @braintree/sanitize-url@7.1.2 | MIT | https://github.com/braintree/sanitize-url |
18
+ | @chevrotain/types@11.1.2 | Apache-2.0 | git://github.com/Chevrotain/chevrotain |
19
+ | @codemirror/autocomplete@6.20.3 | MIT | https://code.haverbeke.berlin/codemirror/autocomplete |
20
+ | @codemirror/commands@6.10.4 | MIT | https://code.haverbeke.berlin/codemirror/commands |
21
+ | @codemirror/language@6.12.4 | MIT | https://code.haverbeke.berlin/codemirror/language |
22
+ | @codemirror/lint@6.9.7 | MIT | https://code.haverbeke.berlin/codemirror/lint |
23
+ | @codemirror/search@6.7.1 | MIT | https://code.haverbeke.berlin/codemirror/search |
24
+ | @codemirror/state@6.7.1 | MIT | https://code.haverbeke.berlin/codemirror/state |
25
+ | @codemirror/theme-one-dark@6.1.3 | MIT | https://github.com/codemirror/theme-one-dark |
26
+ | @codemirror/view@6.43.6 | MIT | https://code.haverbeke.berlin/codemirror/view |
27
+ | @esbuild/aix-ppc64@0.28.1 | MIT | |
28
+ | @esbuild/android-arm@0.28.1 | MIT | |
29
+ | @esbuild/android-arm64@0.28.1 | MIT | |
30
+ | @esbuild/android-x64@0.28.1 | MIT | |
31
+ | @esbuild/darwin-arm64@0.28.1 | MIT | |
32
+ | @esbuild/darwin-x64@0.28.1 | MIT | |
33
+ | @esbuild/freebsd-arm64@0.28.1 | MIT | |
34
+ | @esbuild/freebsd-x64@0.28.1 | MIT | |
35
+ | @esbuild/linux-arm@0.28.1 | MIT | |
36
+ | @esbuild/linux-arm64@0.28.1 | MIT | |
37
+ | @esbuild/linux-ia32@0.28.1 | MIT | |
38
+ | @esbuild/linux-loong64@0.28.1 | MIT | |
39
+ | @esbuild/linux-mips64el@0.28.1 | MIT | |
40
+ | @esbuild/linux-ppc64@0.28.1 | MIT | |
41
+ | @esbuild/linux-riscv64@0.28.1 | MIT | |
42
+ | @esbuild/linux-s390x@0.28.1 | MIT | |
43
+ | @esbuild/linux-x64@0.28.1 | MIT | |
44
+ | @esbuild/netbsd-arm64@0.28.1 | MIT | |
45
+ | @esbuild/netbsd-x64@0.28.1 | MIT | |
46
+ | @esbuild/openbsd-arm64@0.28.1 | MIT | |
47
+ | @esbuild/openbsd-x64@0.28.1 | MIT | |
48
+ | @esbuild/openharmony-arm64@0.28.1 | MIT | |
49
+ | @esbuild/sunos-x64@0.28.1 | MIT | |
50
+ | @esbuild/win32-arm64@0.28.1 | MIT | |
51
+ | @esbuild/win32-ia32@0.28.1 | MIT | |
52
+ | @esbuild/win32-x64@0.28.1 | MIT | https://github.com/evanw/esbuild |
53
+ | @hono/node-server@2.0.12 | MIT | https://github.com/honojs/node-server |
54
+ | @iconify-json/carbon@1.2.24 | Apache-2.0 | |
55
+ | @iconify-json/devicon@1.2.62 | MIT | |
56
+ | @iconify-json/logos@1.2.11 | CC0-1.0 | |
57
+ | @iconify-json/simple-icons@1.2.92 | CC0-1.0 | |
58
+ | @iconify-json/tabler@1.2.38 | MIT | |
59
+ | @iconify/types@2.0.0 | MIT | https://github.com/iconify/iconify |
60
+ | @iconify/utils@3.1.4 | MIT | https://github.com/iconify/iconify |
61
+ | @lezer/common@1.5.2 | MIT | https://github.com/lezer-parser/common |
62
+ | @lezer/highlight@1.2.3 | MIT | https://github.com/lezer-parser/highlight |
63
+ | @lezer/lr@1.4.10 | MIT | https://code.haverbeke.berlin/lezer/lr |
64
+ | @marijn/find-cluster-break@1.0.3 | MIT | https://code.haverbeke.berlin/marijn/find-cluster-break |
65
+ | @mermaid-js/parser@1.2.0 | MIT | https://github.com/mermaid-js/mermaid |
66
+ | @modelcontextprotocol/sdk@1.30.0 | MIT | https://github.com/modelcontextprotocol/typescript-sdk |
67
+ | @types/d3@7.4.3 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
68
+ | @types/d3-array@3.2.2 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
69
+ | @types/d3-axis@3.0.6 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
70
+ | @types/d3-brush@3.0.6 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
71
+ | @types/d3-chord@3.0.6 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
72
+ | @types/d3-color@3.1.3 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
73
+ | @types/d3-contour@3.0.6 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
74
+ | @types/d3-delaunay@6.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
75
+ | @types/d3-dispatch@3.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
76
+ | @types/d3-drag@3.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
77
+ | @types/d3-dsv@3.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
78
+ | @types/d3-ease@3.0.2 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
79
+ | @types/d3-fetch@3.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
80
+ | @types/d3-force@3.0.10 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
81
+ | @types/d3-format@3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
82
+ | @types/d3-geo@3.1.0 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
83
+ | @types/d3-hierarchy@3.1.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
84
+ | @types/d3-interpolate@3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
85
+ | @types/d3-path@3.1.1 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
86
+ | @types/d3-polygon@3.0.2 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
87
+ | @types/d3-quadtree@3.0.6 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
88
+ | @types/d3-random@3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
89
+ | @types/d3-scale@4.0.9 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
90
+ | @types/d3-scale-chromatic@3.1.0 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
91
+ | @types/d3-selection@3.0.11 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
92
+ | @types/d3-shape@3.1.8 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
93
+ | @types/d3-time@3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
94
+ | @types/d3-time-format@4.0.3 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
95
+ | @types/d3-timer@3.0.2 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
96
+ | @types/d3-transition@3.0.9 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
97
+ | @types/d3-zoom@3.0.8 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
98
+ | @types/geojson@7946.0.16 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
99
+ | @types/react@19.2.17 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
100
+ | @types/react-dom@19.2.3 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
101
+ | @types/trusted-types@2.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
102
+ | @upsetjs/venn.js@2.0.0 | MIT | https://github.com/upsetjs/venn.js |
103
+ | @xyflow/react@12.11.2 | MIT | https://github.com/xyflow/xyflow |
104
+ | @xyflow/system@0.0.79 | MIT | https://github.com/xyflow/xyflow |
105
+ | accepts@2.0.0 | MIT | jshttp/accepts |
106
+ | ajv@8.20.0 | MIT | ajv-validator/ajv |
107
+ | ajv-formats@3.0.1 | MIT | https://github.com/ajv-validator/ajv-formats |
108
+ | body-parser@2.3.0 | MIT | expressjs/body-parser |
109
+ | bytes@3.1.2 | MIT | visionmedia/bytes.js |
110
+ | call-bind-apply-helpers@1.0.2 | MIT | https://github.com/ljharb/call-bind-apply-helpers |
111
+ | call-bound@1.0.4 | MIT | https://github.com/ljharb/call-bound |
112
+ | classcat@5.0.5 | MIT | jorgebucaran/classcat |
113
+ | codemirror@6.0.2 | MIT | https://github.com/codemirror/basic-setup |
114
+ | codemirror-lang-mermaid@0.5.0 | MIT | https://github.com/inspirnathan/codemirror-lang-mermaid |
115
+ | commander@7.2.0 | MIT | https://github.com/tj/commander.js |
116
+ | commander@8.3.0 | MIT | https://github.com/tj/commander.js |
117
+ | content-disposition@1.1.0 | MIT | jshttp/content-disposition |
118
+ | content-type@1.0.5 | MIT | jshttp/content-type |
119
+ | content-type@2.0.0 | MIT | jshttp/content-type |
120
+ | content-type@2.0.0 | MIT | jshttp/content-type |
121
+ | cookie@0.7.2 | MIT | jshttp/cookie |
122
+ | cookie-signature@1.2.2 | MIT | https://github.com/visionmedia/node-cookie-signature |
123
+ | cors@2.8.6 | MIT | expressjs/cors |
124
+ | cose-base@1.0.3 | MIT | https://github.com/iVis-at-Bilkent/cose-base |
125
+ | cose-base@2.2.0 | MIT | https://github.com/iVis-at-Bilkent/cose-base |
126
+ | crelt@1.0.7 | MIT | https://code.haverbeke.berlin/marijn/crelt |
127
+ | cross-spawn@7.0.6 | MIT | git@github.com:moxystudio/node-cross-spawn |
128
+ | csstype@3.2.3 | MIT | https://github.com/frenic/csstype |
129
+ | cytoscape@3.34.0 | MIT | https://github.com/cytoscape/cytoscape.js |
130
+ | cytoscape-cose-bilkent@4.1.0 | MIT | https://github.com/cytoscape/cytoscape.js-cose-bilkent |
131
+ | cytoscape-fcose@2.2.0 | MIT | https://github.com/iVis-at-Bilkent/cytoscape.js-fcose |
132
+ | d3@7.9.0 | ISC | https://github.com/d3/d3 |
133
+ | d3-array@2.12.1 | BSD-3-Clause | https://github.com/d3/d3-array |
134
+ | d3-array@3.2.4 | ISC | https://github.com/d3/d3-array |
135
+ | d3-axis@3.0.0 | ISC | https://github.com/d3/d3-axis |
136
+ | d3-brush@3.0.0 | ISC | https://github.com/d3/d3-brush |
137
+ | d3-chord@3.0.1 | ISC | https://github.com/d3/d3-chord |
138
+ | d3-color@3.1.0 | ISC | https://github.com/d3/d3-color |
139
+ | d3-contour@4.0.2 | ISC | https://github.com/d3/d3-contour |
140
+ | d3-delaunay@6.0.4 | ISC | https://github.com/d3/d3-delaunay |
141
+ | d3-dispatch@3.0.1 | ISC | https://github.com/d3/d3-dispatch |
142
+ | d3-drag@3.0.0 | ISC | https://github.com/d3/d3-drag |
143
+ | d3-dsv@3.0.1 | ISC | https://github.com/d3/d3-dsv |
144
+ | d3-ease@3.0.1 | BSD-3-Clause | https://github.com/d3/d3-ease |
145
+ | d3-fetch@3.0.1 | ISC | https://github.com/d3/d3-fetch |
146
+ | d3-force@3.0.0 | ISC | https://github.com/d3/d3-force |
147
+ | d3-format@3.1.2 | ISC | https://github.com/d3/d3-format |
148
+ | d3-geo@3.1.1 | ISC | https://github.com/d3/d3-geo |
149
+ | d3-hierarchy@3.1.2 | ISC | https://github.com/d3/d3-hierarchy |
150
+ | d3-interpolate@3.0.1 | ISC | https://github.com/d3/d3-interpolate |
151
+ | d3-path@1.0.9 | BSD-3-Clause | https://github.com/d3/d3-path |
152
+ | d3-path@3.1.0 | ISC | https://github.com/d3/d3-path |
153
+ | d3-polygon@3.0.1 | ISC | https://github.com/d3/d3-polygon |
154
+ | d3-quadtree@3.0.1 | ISC | https://github.com/d3/d3-quadtree |
155
+ | d3-random@3.0.1 | ISC | https://github.com/d3/d3-random |
156
+ | d3-sankey@0.12.3 | BSD-3-Clause | https://github.com/d3/d3-sankey |
157
+ | d3-scale@4.0.2 | ISC | https://github.com/d3/d3-scale |
158
+ | d3-scale-chromatic@3.1.0 | ISC | https://github.com/d3/d3-scale-chromatic |
159
+ | d3-selection@3.0.0 | ISC | https://github.com/d3/d3-selection |
160
+ | d3-shape@1.3.7 | BSD-3-Clause | https://github.com/d3/d3-shape |
161
+ | d3-shape@3.2.0 | ISC | https://github.com/d3/d3-shape |
162
+ | d3-time@3.1.0 | ISC | https://github.com/d3/d3-time |
163
+ | d3-time-format@4.1.0 | ISC | https://github.com/d3/d3-time-format |
164
+ | d3-timer@3.0.1 | ISC | https://github.com/d3/d3-timer |
165
+ | d3-transition@3.0.1 | ISC | https://github.com/d3/d3-transition |
166
+ | d3-zoom@3.0.0 | ISC | https://github.com/d3/d3-zoom |
167
+ | dagre-d3-es@7.0.14 | MIT | https://github.com/tbo47/dagre-es |
168
+ | dayjs@1.11.21 | MIT | https://github.com/iamkun/dayjs |
169
+ | debug@4.4.3 | MIT | git://github.com/debug-js/debug |
170
+ | delaunator@5.1.0 | ISC | https://github.com/mapbox/delaunator |
171
+ | depd@2.0.0 | MIT | dougwilson/nodejs-depd |
172
+ | dompurify@3.4.12 | (MPL-2.0 OR Apache-2.0) | git://github.com/cure53/DOMPurify |
173
+ | dunder-proto@1.0.1 | MIT | https://github.com/es-shims/dunder-proto |
174
+ | ee-first@1.1.1 | MIT | jonathanong/ee-first |
175
+ | elkjs@0.12.0 | EPL-2.0 OR GPL-3.0-or-later | https://github.com/kieler/elkjs |
176
+ | encodeurl@2.0.0 | MIT | pillarjs/encodeurl |
177
+ | es-define-property@1.0.1 | MIT | https://github.com/ljharb/es-define-property |
178
+ | es-errors@1.3.0 | MIT | https://github.com/ljharb/es-errors |
179
+ | es-object-atoms@1.1.2 | MIT | https://github.com/ljharb/es-object-atoms |
180
+ | es-toolkit@1.49.0 | MIT | https://github.com/toss/es-toolkit |
181
+ | esbuild@0.28.1 | MIT | https://github.com/evanw/esbuild |
182
+ | escape-html@1.0.3 | MIT | component/escape-html |
183
+ | etag@1.8.1 | MIT | jshttp/etag |
184
+ | eventsource@3.0.7 | MIT | git://git@github.com/EventSource/eventsource |
185
+ | eventsource-parser@3.1.0 | MIT | ssh://git@github.com/rexxars/eventsource-parser |
186
+ | express@5.2.1 | MIT | expressjs/express |
187
+ | express-rate-limit@8.6.0 | MIT | https://github.com/express-rate-limit/express-rate-limit |
188
+ | fast-deep-equal@3.1.3 | MIT | https://github.com/epoberezkin/fast-deep-equal |
189
+ | fast-uri@3.1.5 | BSD-3-Clause | https://github.com/fastify/fast-uri |
190
+ | finalhandler@2.1.1 | MIT | pillarjs/finalhandler |
191
+ | forwarded@0.2.0 | MIT | jshttp/forwarded |
192
+ | fresh@2.0.0 | MIT | jshttp/fresh |
193
+ | fsevents@2.3.3 | MIT | |
194
+ | function-bind@1.1.2 | MIT | https://github.com/Raynos/function-bind |
195
+ | get-intrinsic@1.3.0 | MIT | https://github.com/ljharb/get-intrinsic |
196
+ | get-proto@1.0.1 | MIT | https://github.com/ljharb/get-proto |
197
+ | gopd@1.2.0 | MIT | https://github.com/ljharb/gopd |
198
+ | hachure-fill@0.5.2 | MIT | https://github.com/pshihn/hachure-fill |
199
+ | has-symbols@1.1.0 | MIT | git://github.com/inspect-js/has-symbols |
200
+ | hasown@2.0.4 | MIT | https://github.com/inspect-js/hasOwn |
201
+ | hono@4.12.30 | MIT | https://github.com/honojs/hono |
202
+ | html-to-image@1.11.13 | MIT | https://github.com/bubkoo/html-to-image |
203
+ | http-errors@2.0.1 | MIT | jshttp/http-errors |
204
+ | iconv-lite@0.6.3 | MIT | git://github.com/ashtuchkin/iconv-lite |
205
+ | iconv-lite@0.7.3 | MIT | git://github.com/ashtuchkin/iconv-lite |
206
+ | iconv-lite@0.7.3 | MIT | git://github.com/ashtuchkin/iconv-lite |
207
+ | import-meta-resolve@4.2.0 | MIT | wooorm/import-meta-resolve |
208
+ | inherits@2.0.4 | ISC | git://github.com/isaacs/inherits |
209
+ | internmap@1.0.1 | ISC | https://github.com/mbostock/internmap |
210
+ | internmap@2.0.3 | ISC | https://github.com/mbostock/internmap |
211
+ | ip-address@10.2.0 | MIT | git://github.com/beaugunderson/ip-address |
212
+ | ipaddr.js@1.9.1 | MIT | git://github.com/whitequark/ipaddr.js |
213
+ | is-promise@4.0.0 | MIT | https://github.com/then/is-promise |
214
+ | isexe@2.0.0 | ISC | https://github.com/isaacs/isexe |
215
+ | jose@6.2.3 | MIT | panva/jose |
216
+ | json-schema-traverse@1.0.0 | MIT | https://github.com/epoberezkin/json-schema-traverse |
217
+ | json-schema-typed@8.0.2 | BSD-2-Clause | https://github.com/RemyRylan/json-schema-typed |
218
+ | katex@0.16.47 | MIT | https://github.com/KaTeX/KaTeX |
219
+ | khroma@2.1.0 | MIT | github:fabiospampinato/khroma |
220
+ | layout-base@1.0.2 | MIT | https://github.com/iVis-at-Bilkent/layout-base |
221
+ | layout-base@2.0.1 | MIT | https://github.com/iVis-at-Bilkent/layout-base |
222
+ | lodash-es@4.18.1 | MIT | lodash/lodash |
223
+ | marked@16.4.2 | MIT | git://github.com/markedjs/marked |
224
+ | math-intrinsics@1.1.0 | MIT | https://github.com/es-shims/math-intrinsics |
225
+ | media-typer@1.1.0 | MIT | jshttp/media-typer |
226
+ | merge-descriptors@2.0.0 | MIT | sindresorhus/merge-descriptors |
227
+ | mermaid@11.16.0 | MIT | https://github.com/mermaid-js/mermaid |
228
+ | mime-db@1.54.0 | MIT | jshttp/mime-db |
229
+ | mime-types@3.0.2 | MIT | jshttp/mime-types |
230
+ | ms@2.1.3 | MIT | vercel/ms |
231
+ | negotiator@1.0.0 | MIT | jshttp/negotiator |
232
+ | object-assign@4.1.1 | MIT | sindresorhus/object-assign |
233
+ | object-inspect@1.13.4 | MIT | git://github.com/inspect-js/object-inspect |
234
+ | on-finished@2.4.1 | MIT | jshttp/on-finished |
235
+ | once@1.4.0 | ISC | git://github.com/isaacs/once |
236
+ | package-manager-detector@1.7.0 | MIT | https://github.com/antfu-collective/package-manager-detector |
237
+ | parseurl@1.3.3 | MIT | pillarjs/parseurl |
238
+ | path-data-parser@0.1.0 | MIT | https://github.com/pshihn/path-data-parser |
239
+ | path-key@3.1.1 | MIT | sindresorhus/path-key |
240
+ | path-to-regexp@8.4.2 | MIT | https://github.com/pillarjs/path-to-regexp |
241
+ | pkce-challenge@5.0.1 | MIT | https://github.com/crouchcd/pkce-challenge |
242
+ | points-on-curve@0.2.0 | MIT | https://github.com/pshihn/bezier-points |
243
+ | points-on-path@0.2.1 | MIT | https://github.com/pshihn/points-on-path |
244
+ | proxy-addr@2.0.7 | MIT | jshttp/proxy-addr |
245
+ | qs@6.15.3 | BSD-3-Clause | https://github.com/ljharb/qs |
246
+ | range-parser@1.3.0 | MIT | jshttp/range-parser |
247
+ | raw-body@3.0.2 | MIT | stream-utils/raw-body |
248
+ | react@19.2.8 | MIT | https://github.com/react/react |
249
+ | react-dom@19.2.8 | MIT | https://github.com/react/react |
250
+ | require-from-string@2.0.2 | MIT | floatdrop/require-from-string |
251
+ | robust-predicates@3.0.3 | Unlicense | https://github.com/mourner/robust-predicates |
252
+ | roughjs@4.6.6 | MIT | https://github.com/pshihn/rough |
253
+ | router@2.2.0 | MIT | pillarjs/router |
254
+ | rw@1.3.3 | BSD-3-Clause | http://github.com/mbostock/rw |
255
+ | safer-buffer@2.1.2 | MIT | https://github.com/ChALkeR/safer-buffer |
256
+ | scheduler@0.27.0 | MIT | https://github.com/facebook/react |
257
+ | send@1.2.1 | MIT | pillarjs/send |
258
+ | serve-static@2.2.1 | MIT | expressjs/serve-static |
259
+ | setprototypeof@1.2.0 | ISC | https://github.com/wesleytodd/setprototypeof |
260
+ | shebang-command@2.0.0 | MIT | kevva/shebang-command |
261
+ | shebang-regex@3.0.0 | MIT | sindresorhus/shebang-regex |
262
+ | side-channel@1.1.1 | MIT | https://github.com/ljharb/side-channel |
263
+ | side-channel-list@1.0.1 | MIT | https://github.com/ljharb/side-channel-list |
264
+ | side-channel-map@1.0.1 | MIT | https://github.com/ljharb/side-channel-map |
265
+ | side-channel-weakmap@1.0.2 | MIT | https://github.com/ljharb/side-channel-weakmap |
266
+ | statuses@2.0.2 | MIT | jshttp/statuses |
267
+ | style-mod@4.1.3 | MIT | https://github.com/marijnh/style-mod |
268
+ | stylis@4.4.0 | MIT | https://github.com/thysultan/stylis.js |
269
+ | tinyexec@1.2.4 | MIT | https://github.com/tinylibs/tinyexec |
270
+ | toidentifier@1.0.1 | MIT | component/toidentifier |
271
+ | ts-dedent@2.3.0 | MIT | https://github.com/tamino-martinius/node-ts-dedent |
272
+ | tsx@4.23.1 | MIT | privatenumber/tsx |
273
+ | type-is@2.1.0 | MIT | jshttp/type-is |
274
+ | unpipe@1.0.0 | MIT | stream-utils/unpipe |
275
+ | use-sync-external-store@1.6.0 | MIT | https://github.com/facebook/react |
276
+ | uuid@14.0.1 | MIT | https://github.com/uuidjs/uuid |
277
+ | vary@1.1.2 | MIT | jshttp/vary |
278
+ | w3c-keyname@2.2.8 | MIT | https://github.com/marijnh/w3c-keyname |
279
+ | which@2.0.2 | ISC | git://github.com/isaacs/node-which |
280
+ | wrappy@1.0.2 | ISC | https://github.com/npm/wrappy |
281
+ | zod@4.4.3 | MIT | https://github.com/colinhacks/zod |
282
+ | zod-to-json-schema@3.25.2 | ISC | https://github.com/StefanTerdell/zod-to-json-schema |
283
+ | zustand@4.5.7 | MIT | https://github.com/pmndrs/zustand |
284
+ | zustand@5.0.14 | MIT | https://github.com/pmndrs/zustand |
285
+
286
+ <!-- notices:table:end -->
287
+
288
+ ## Notes
289
+
290
+ - **elkjs** is declared as `EPL-2.0 OR GPL-3.0-or-later`. That is the Eclipse
291
+ Public License 2.0 together with its standard Exhibit A notice, which makes
292
+ GPL-3.0-or-later _additionally_ available to a recipient who wants it — a
293
+ choice offered, not an obligation imposed. **Archyne relies on the EPL-2.0
294
+ arm**, unchanged from earlier versions: elkjs is used unmodified, as a
295
+ library, with no elkjs code copied into Archyne's own sources. The EPL's
296
+ copyleft reaches modifications to the library itself, which Archyne makes
297
+ none of, so this places no condition on Archyne's MIT distribution. Source
298
+ is available at <https://github.com/kieler/elkjs>.
299
+ - Icon collections (**logos**, **simple-icons**: CC0-1.0; **devicon**,
300
+ **tabler**: MIT; **carbon**: Apache-2.0) are openly licensed. The vendor
301
+ logos they depict remain trademarks of their respective owners and are
302
+ shown nominatively.