aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch82
-rw-r--r--subprojects/frontend/config/graphvizUMDVitePlugin.ts63
-rw-r--r--subprojects/frontend/package.json13
-rw-r--r--subprojects/frontend/src/editor/EditorStore.ts5
-rw-r--r--subprojects/frontend/src/graph/GraphArea.tsx318
-rw-r--r--subprojects/frontend/src/graph/GraphPane.tsx30
-rw-r--r--subprojects/frontend/src/xtext/SemanticsService.ts12
-rw-r--r--subprojects/frontend/src/xtext/xtextServiceResults.ts17
-rw-r--r--subprojects/frontend/vite.config.ts2
-rw-r--r--subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java4
-rw-r--r--yarn.lock917
11 files changed, 1389 insertions, 74 deletions
diff --git a/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch b/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch
new file mode 100644
index 00000000..161db0d7
--- /dev/null
+++ b/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch
@@ -0,0 +1,82 @@
1diff --git a/src/dot.js b/src/dot.js
2index 96ae02b6edd947ac9086f3108986c08d91470cba..c4422b08d73f7fe73dc52ad905cf981d1f3cbcc5 100644
3--- a/src/dot.js
4+++ b/src/dot.js
5@@ -1,4 +1,3 @@
6-import { Graphviz } from "@hpcc-js/wasm/graphviz";
7 import * as d3 from "d3-selection";
8 import {extractAllElementsData, extractElementData, createElementWithAttributes} from "./element.js";
9 import {convertToPathData} from "./svg.js";
10@@ -8,31 +7,6 @@ import {getEdgeTitle} from "./data.js";
11
12
13 export function initViz() {
14-
15- // force JIT compilation of @hpcc-js/wasm
16- try {
17- Graphviz.load().then(graphviz => {
18- graphviz.layout("", "svg", "dot");
19- this.layoutSync = graphviz.layout.bind(graphviz);
20- if (this._worker == null) {
21- this._dispatch.call("initEnd", this);
22- }
23- if (this._afterInit) {
24- this._afterInit();
25- }
26- });
27-// after the port to ESM modules, we don't know how to trigger this so
28-// we just disable it from coverage
29-/* c8 ignore start */
30- } catch(error) {
31- // we end up here when the the script tag type used to load
32- // the "@hpcc-js/wasm" script is not "application/javascript"
33- // or "text/javascript", but typically "javascript/worker". In
34- // this case the browser does not load the script since it's
35- // unnecessary because it's loaded by the web worker
36- // instead. This is expected so we just ignore the error.
37- }
38-/* c8 ignore stop */
39 if (this._worker != null) {
40 var vizURL = this._vizURL;
41 var graphvizInstance = this;
42@@ -337,7 +311,8 @@ function layoutDone(svgDoc, callback) {
43
44 var newSvg = newDoc
45 .select('svg');
46-
47+
48+ this._dispatch.call('postProcessSVG', this, newSvg);
49 var data = extractAllElementsData(newSvg);
50 this._dispatch.call('dataExtractEnd', this);
51 postProcessDataPass1Local(data);
52diff --git a/src/graphviz.js b/src/graphviz.js
53index c4638cb0e4042844c59c52dfe4749e13999fef6e..28dcfb71ad787c78645c460a29e9c52295c5f6bf 100644
54--- a/src/graphviz.js
55+++ b/src/graphviz.js
56@@ -49,7 +49,6 @@ import {drawnNodeSelection} from "./drawNode.js";
57 import {workerCode} from "./workerCode.js";
58 import {sharedWorkerCode} from "./workerCode.js";
59 import {workerCodeBody} from "./workerCode.js";
60-import {Graphviz as hpccWasmGraphviz} from "@hpcc-js/wasm/graphviz";
61
62 export function Graphviz(selection, options) {
63 this._options = {
64@@ -119,10 +118,6 @@ export function Graphviz(selection, options) {
65 this._workerPort = this._worker;
66 this._workerPortClose = this._worker.terminate.bind(this._worker);
67 this._workerCallbacks = [];
68- } else {
69- hpccWasmGraphviz.load().then(((graphviz) => {
70- this._graphvizVersion = graphviz.version();
71- }).bind(this));
72 }
73 this._selection = selection;
74 this._active = false;
75@@ -143,6 +138,7 @@ export function Graphviz(selection, options) {
76 'start',
77 'layoutStart',
78 'layoutEnd',
79+ 'postProcessSVG',
80 'dataExtractEnd',
81 'dataProcessPass1End',
82 'dataProcessPass2End',
diff --git a/subprojects/frontend/config/graphvizUMDVitePlugin.ts b/subprojects/frontend/config/graphvizUMDVitePlugin.ts
new file mode 100644
index 00000000..7a42560b
--- /dev/null
+++ b/subprojects/frontend/config/graphvizUMDVitePlugin.ts
@@ -0,0 +1,63 @@
1import { readFile } from 'node:fs/promises';
2import path from 'node:path';
3
4import pnpapi from 'pnpapi';
5import type { PluginOption, ResolvedConfig } from 'vite';
6
7// Use a CJS file as the PnP resolution issuer to force resolution to a non-ESM export.
8const issuerFileName = 'worker.cjs';
9
10export default function graphvizUMDVitePlugin(): PluginOption {
11 let command: ResolvedConfig['command'] = 'build';
12 let root: string | undefined;
13 let url: string | undefined;
14
15 return {
16 name: 'graphviz-umd',
17 enforce: 'post',
18 configResolved(config) {
19 ({ command, root } = config);
20 },
21 async buildStart() {
22 const issuer =
23 root === undefined ? issuerFileName : path.join(issuerFileName);
24 const resolvedPath = pnpapi.resolveRequest(
25 '@hpcc-js/wasm/graphviz',
26 issuer,
27 );
28 if (resolvedPath === null) {
29 return;
30 }
31 if (command === 'serve') {
32 url = `/@fs/${resolvedPath}`;
33 } else {
34 const content = await readFile(resolvedPath, null);
35 url = this.emitFile({
36 name: path.basename(resolvedPath),
37 type: 'asset',
38 source: content,
39 });
40 }
41 },
42 renderStart() {
43 if (url !== undefined && command !== 'serve') {
44 url = this.getFileName(url);
45 }
46 },
47 transformIndexHtml() {
48 if (url === undefined) {
49 return undefined;
50 }
51 return [
52 {
53 tag: 'script',
54 attrs: {
55 src: url,
56 type: 'javascript/worker',
57 },
58 injectTo: 'head',
59 },
60 ];
61 },
62 };
63}
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index 39ebd1df..9df8d85f 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -39,15 +39,19 @@
39 "@emotion/styled": "^11.11.0", 39 "@emotion/styled": "^11.11.0",
40 "@fontsource-variable/inter": "^5.0.8", 40 "@fontsource-variable/inter": "^5.0.8",
41 "@fontsource-variable/jetbrains-mono": "^5.0.9", 41 "@fontsource-variable/jetbrains-mono": "^5.0.9",
42 "@hpcc-js/wasm": "^2.13.1",
42 "@lezer/common": "^1.0.3", 43 "@lezer/common": "^1.0.3",
43 "@lezer/highlight": "^1.1.6", 44 "@lezer/highlight": "^1.1.6",
44 "@lezer/lr": "^1.3.9", 45 "@lezer/lr": "^1.3.9",
45 "@material-icons/svg": "^1.0.33", 46 "@material-icons/svg": "^1.0.33",
46 "@mui/icons-material": "5.14.3", 47 "@mui/icons-material": "5.14.3",
47 "@mui/material": "5.14.5", 48 "@mui/material": "5.14.5",
48 "@vitejs/plugin-react-swc": "^3.3.2",
49 "ansi-styles": "^6.2.1", 49 "ansi-styles": "^6.2.1",
50 "csstype": "^3.1.2", 50 "csstype": "^3.1.2",
51 "d3": "^7.8.5",
52 "d3-graphviz": "patch:d3-graphviz@npm%3A5.1.0#~/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch",
53 "d3-selection": "^3.0.0",
54 "d3-zoom": "^3.0.0",
51 "escape-string-regexp": "^5.0.0", 55 "escape-string-regexp": "^5.0.0",
52 "json-stringify-pretty-compact": "^4.0.0", 56 "json-stringify-pretty-compact": "^4.0.0",
53 "lodash-es": "^4.17.21", 57 "lodash-es": "^4.17.21",
@@ -66,17 +70,23 @@
66 }, 70 },
67 "devDependencies": { 71 "devDependencies": {
68 "@lezer/generator": "^1.4.0", 72 "@lezer/generator": "^1.4.0",
73 "@types/d3": "^7.4.0",
74 "@types/d3-graphviz": "^2.6.7",
75 "@types/d3-selection": "^3.0.5",
76 "@types/d3-zoom": "^3.0.4",
69 "@types/eslint": "^8.44.2", 77 "@types/eslint": "^8.44.2",
70 "@types/html-minifier-terser": "^7.0.0", 78 "@types/html-minifier-terser": "^7.0.0",
71 "@types/lodash-es": "^4.17.8", 79 "@types/lodash-es": "^4.17.8",
72 "@types/micromatch": "^4.0.2", 80 "@types/micromatch": "^4.0.2",
73 "@types/ms": "^0.7.31", 81 "@types/ms": "^0.7.31",
74 "@types/node": "^20.5.0", 82 "@types/node": "^20.5.0",
83 "@types/pnpapi": "^0.0.2",
75 "@types/prettier": "^3.0.0", 84 "@types/prettier": "^3.0.0",
76 "@types/react": "^18.2.20", 85 "@types/react": "^18.2.20",
77 "@types/react-dom": "^18.2.7", 86 "@types/react-dom": "^18.2.7",
78 "@typescript-eslint/eslint-plugin": "^6.4.0", 87 "@typescript-eslint/eslint-plugin": "^6.4.0",
79 "@typescript-eslint/parser": "^6.4.0", 88 "@typescript-eslint/parser": "^6.4.0",
89 "@vitejs/plugin-react-swc": "^3.3.2",
80 "@xstate/cli": "^0.5.2", 90 "@xstate/cli": "^0.5.2",
81 "cross-env": "^7.0.3", 91 "cross-env": "^7.0.3",
82 "eslint": "^8.47.0", 92 "eslint": "^8.47.0",
@@ -92,6 +102,7 @@
92 "eslint-plugin-react-hooks": "^4.6.0", 102 "eslint-plugin-react-hooks": "^4.6.0",
93 "html-minifier-terser": "^7.2.0", 103 "html-minifier-terser": "^7.2.0",
94 "micromatch": "^4.0.5", 104 "micromatch": "^4.0.5",
105 "pnpapi": "^0.0.0",
95 "prettier": "^3.0.1", 106 "prettier": "^3.0.1",
96 "typescript": "5.1.6", 107 "typescript": "5.1.6",
97 "vite": "^4.4.9", 108 "vite": "^4.4.9",
diff --git a/subprojects/frontend/src/editor/EditorStore.ts b/subprojects/frontend/src/editor/EditorStore.ts
index 563725bb..10f01099 100644
--- a/subprojects/frontend/src/editor/EditorStore.ts
+++ b/subprojects/frontend/src/editor/EditorStore.ts
@@ -28,6 +28,7 @@ import { nanoid } from 'nanoid';
28import type PWAStore from '../PWAStore'; 28import type PWAStore from '../PWAStore';
29import getLogger from '../utils/getLogger'; 29import getLogger from '../utils/getLogger';
30import type XtextClient from '../xtext/XtextClient'; 30import type XtextClient from '../xtext/XtextClient';
31import type { SemanticsSuccessResult } from '../xtext/xtextServiceResults';
31 32
32import EditorErrors from './EditorErrors'; 33import EditorErrors from './EditorErrors';
33import LintPanelStore from './LintPanelStore'; 34import LintPanelStore from './LintPanelStore';
@@ -65,7 +66,7 @@ export default class EditorStore {
65 66
66 semanticsError: string | undefined; 67 semanticsError: string | undefined;
67 68
68 semantics: unknown = {}; 69 semantics: SemanticsSuccessResult | undefined;
69 70
70 constructor(initialValue: string, pwaStore: PWAStore) { 71 constructor(initialValue: string, pwaStore: PWAStore) {
71 this.id = nanoid(); 72 this.id = nanoid();
@@ -295,7 +296,7 @@ export default class EditorStore {
295 this.semanticsError = semanticsError; 296 this.semanticsError = semanticsError;
296 } 297 }
297 298
298 setSemantics(semantics: unknown) { 299 setSemantics(semantics: SemanticsSuccessResult) {
299 this.semanticsError = undefined; 300 this.semanticsError = undefined;
300 this.semantics = semantics; 301 this.semantics = semantics;
301 } 302 }
diff --git a/subprojects/frontend/src/graph/GraphArea.tsx b/subprojects/frontend/src/graph/GraphArea.tsx
new file mode 100644
index 00000000..b55245d8
--- /dev/null
+++ b/subprojects/frontend/src/graph/GraphArea.tsx
@@ -0,0 +1,318 @@
1/*
2 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7import Box from '@mui/material/Box';
8import * as d3 from 'd3';
9import { type Graphviz, graphviz } from 'd3-graphviz';
10import type { BaseType, Selection } from 'd3-selection';
11import { reaction, type IReactionDisposer } from 'mobx';
12import { useCallback, useRef, useState } from 'react';
13import { useResizeDetector } from 'react-resize-detector';
14
15import { useRootStore } from '../RootStoreProvider';
16import type { SemanticsSuccessResult } from '../xtext/xtextServiceResults';
17
18function toGraphviz(
19 semantics: SemanticsSuccessResult | undefined,
20): string | undefined {
21 if (semantics === undefined) {
22 return undefined;
23 }
24 const lines = [
25 'digraph {',
26 'graph [bgcolor=transparent];',
27 'node [fontsize=16, shape=plain];',
28 'edge [fontsize=12, color=black];',
29 ];
30 const nodeIds = semantics.nodes.map((name, i) => name ?? `n${i}`);
31 lines.push(
32 ...nodeIds.map(
33 (id, i) =>
34 `n${i} [id="${id}", label=<<table border="1" cellborder="0" cellspacing="0" cellpadding="4" style="rounded" bgcolor="green"><tr><td>${id}</td></tr><hr/><tr><td bgcolor="white">node</td></tr></table>>];`,
35 ),
36 );
37 Object.keys(semantics.partialInterpretation).forEach((relation) => {
38 if (relation === 'builtin::equals' || relation === 'builtin::contains') {
39 return;
40 }
41 const tuples = semantics.partialInterpretation[relation];
42 if (tuples === undefined) {
43 return;
44 }
45 const first = tuples[0];
46 if (first === undefined || first.length !== 3) {
47 return;
48 }
49 const nameFragments = relation.split('::');
50 const simpleName = nameFragments[nameFragments.length - 1] ?? relation;
51 lines.push(
52 ...tuples.map(([from, to, value]) => {
53 if (
54 typeof from !== 'number' ||
55 typeof to !== 'number' ||
56 typeof value !== 'string'
57 ) {
58 return '';
59 }
60 const isUnknown = value === 'UNKNOWN';
61 return `n${from} -> n${to} [
62 id="${nodeIds[from]},${nodeIds[to]},${relation}",
63 xlabel="${simpleName}",
64 style="${isUnknown ? 'dashed' : 'solid'}",
65 class="edge-${value}"
66 ];`;
67 }),
68 );
69 });
70 lines.push('}');
71 return lines.join('\n');
72}
73
74interface Transform {
75 x: number;
76 y: number;
77 k: number;
78}
79
80export default function GraphArea(): JSX.Element {
81 const { editorStore } = useRootStore();
82 const disposerRef = useRef<IReactionDisposer | undefined>();
83 const graphvizRef = useRef<
84 Graphviz<BaseType, unknown, null, undefined> | undefined
85 >();
86 const canvasRef = useRef<HTMLDivElement | undefined>();
87 const zoomRef = useRef<
88 d3.ZoomBehavior<HTMLDivElement, unknown> | undefined
89 >();
90 const [zoom, setZoom] = useState<Transform>({ x: 0, y: 0, k: 1 });
91 const widthRef = useRef<number | undefined>();
92 const heightRef = useRef<number | undefined>();
93
94 const onResize = useCallback(
95 (width: number | undefined, height: number | undefined) => {
96 if (canvasRef.current === undefined || zoomRef.current === undefined) {
97 return;
98 }
99 let moveX = 0;
100 let moveY = 0;
101 if (widthRef.current !== undefined && width !== undefined) {
102 moveX = (width - widthRef.current) / 2;
103 }
104 if (heightRef.current !== undefined && height !== undefined) {
105 moveY = (height - heightRef.current) / 2;
106 }
107 widthRef.current = width;
108 heightRef.current = height;
109 if (moveX === 0 && moveY === 0) {
110 return;
111 }
112 const currentTransform = d3.zoomTransform(canvasRef.current);
113 zoomRef.current.translateBy(
114 d3.select(canvasRef.current),
115 moveX / currentTransform.k - moveX,
116 moveY / currentTransform.k - moveY,
117 );
118 },
119 [],
120 );
121
122 const { ref: setCanvasResize } = useResizeDetector({
123 onResize,
124 });
125
126 const setCanvas = useCallback(
127 (element: HTMLDivElement | null) => {
128 canvasRef.current = element ?? undefined;
129 setCanvasResize(element);
130 if (element === null) {
131 return;
132 }
133 const zoomBehavior = d3.zoom<HTMLDivElement, unknown>();
134 zoomBehavior.on(
135 'zoom',
136 (event: d3.D3ZoomEvent<HTMLDivElement, unknown>) =>
137 setZoom(event.transform),
138 );
139 d3.select(element).call(zoomBehavior);
140 zoomRef.current = zoomBehavior;
141 },
142 [setCanvasResize],
143 );
144
145 const setElement = useCallback(
146 (element: HTMLDivElement | null) => {
147 if (disposerRef.current !== undefined) {
148 disposerRef.current();
149 disposerRef.current = undefined;
150 }
151 if (graphvizRef.current !== undefined) {
152 // `@types/d3-graphviz` does not contain the signature for the `destroy` method.
153 (graphvizRef.current as unknown as { destroy(): void }).destroy();
154 graphvizRef.current = undefined;
155 }
156 if (element !== null) {
157 element.replaceChildren();
158 const renderer = graphviz(element) as Graphviz<
159 BaseType,
160 unknown,
161 null,
162 undefined
163 >;
164 renderer.keyMode('id');
165 renderer.zoom(false);
166 renderer.tweenPrecision('5%');
167 renderer.tweenShapes(false);
168 renderer.convertEqualSidedPolygons(false);
169 const transition = () =>
170 d3.transition().duration(300).ease(d3.easeCubic);
171 /* eslint-disable-next-line @typescript-eslint/no-unsafe-argument,
172 @typescript-eslint/no-explicit-any --
173 Workaround for error in `@types/d3-graphviz`.
174 */
175 renderer.transition(transition as any);
176 renderer.on(
177 'postProcessSVG',
178 // @ts-expect-error Custom `d3-graphviz` hook not covered by typings.
179 (
180 svgSelection: Selection<SVGSVGElement, unknown, BaseType, unknown>,
181 ) => {
182 svgSelection.selectAll('title').remove();
183 const svg = svgSelection.node();
184 if (svg === null) {
185 return;
186 }
187 svg.querySelectorAll('.node').forEach((node) => {
188 node.querySelectorAll('path').forEach((path) => {
189 const d = path.getAttribute('d') ?? '';
190 const points = d.split(/[A-Z ]/);
191 points.shift();
192 const x = points.map((p) => {
193 return Number(p.split(',')[0] ?? 0);
194 });
195 const y = points.map((p) => {
196 return Number(p.split(',')[1] ?? 0);
197 });
198 const xmin = Math.min.apply(null, x);
199 const xmax = Math.max.apply(null, x);
200 const ymin = Math.min.apply(null, y);
201 const ymax = Math.max.apply(null, y);
202 const rect = document.createElementNS(
203 'http://www.w3.org/2000/svg',
204 'rect',
205 );
206 rect.setAttribute('fill', path.getAttribute('fill') ?? '');
207 rect.setAttribute('stroke', path.getAttribute('stroke') ?? '');
208 rect.setAttribute('x', String(xmin));
209 rect.setAttribute('y', String(ymin));
210 rect.setAttribute('width', String(xmax - xmin));
211 rect.setAttribute('height', String(ymax - ymin));
212 rect.setAttribute('height', String(ymax - ymin));
213 rect.setAttribute('rx', '12');
214 rect.setAttribute('ry', '12');
215 node.replaceChild(rect, path);
216 });
217 });
218 },
219 );
220 disposerRef.current = reaction(
221 () => editorStore?.semantics,
222 (semantics) => {
223 const str = toGraphviz(semantics);
224 if (str !== undefined) {
225 renderer.renderDot(str);
226 }
227 },
228 { fireImmediately: true },
229 );
230 graphvizRef.current = renderer;
231 }
232 },
233 [editorStore],
234 );
235
236 return (
237 <Box
238 sx={(theme) => ({
239 width: '100%',
240 height: '100%',
241 position: 'relative',
242 overflow: 'hidden',
243 '& svg': {
244 userSelect: 'none',
245 '& .node': {
246 '& text': {
247 ...theme.typography.body2,
248 fill: theme.palette.text.primary,
249 },
250 '& [stroke="black"]': {
251 stroke: theme.palette.text.primary,
252 },
253 '& [fill="green"]': {
254 fill:
255 theme.palette.mode === 'dark'
256 ? theme.palette.primary.dark
257 : theme.palette.primary.light,
258 },
259 '& [fill="white"]': {
260 fill: theme.palette.background.default,
261 stroke: theme.palette.background.default,
262 },
263 },
264 '& .edge': {
265 '& text': {
266 ...theme.typography.caption,
267 fill: theme.palette.text.primary,
268 },
269 '& [stroke="black"]': {
270 stroke: theme.palette.text.primary,
271 },
272 '& [fill="black"]': {
273 fill: theme.palette.text.primary,
274 },
275 },
276 '& .edge-UNKNOWN': {
277 '& text': {
278 fill: theme.palette.text.secondary,
279 },
280 '& [stroke="black"]': {
281 stroke: theme.palette.text.secondary,
282 },
283 '& [fill="black"]': {
284 fill: theme.palette.text.secondary,
285 },
286 },
287 '& .edge-ERROR': {
288 '& text': {
289 fill: theme.palette.error.main,
290 },
291 '& [stroke="black"]': {
292 stroke: theme.palette.error.main,
293 },
294 '& [fill="black"]': {
295 fill: theme.palette.error.main,
296 },
297 },
298 },
299 })}
300 ref={setCanvas}
301 >
302 <Box
303 sx={{
304 position: 'absolute',
305 top: `${50 * zoom.k}%`,
306 left: `${50 * zoom.k}%`,
307 transform: `
308 translate(${zoom.x}px, ${zoom.y}px)
309 scale(${zoom.k})
310 translate(-50%, -50%)
311 `,
312 transformOrigin: '0 0',
313 }}
314 ref={setElement}
315 />
316 </Box>
317 );
318}
diff --git a/subprojects/frontend/src/graph/GraphPane.tsx b/subprojects/frontend/src/graph/GraphPane.tsx
index f69f52a6..f04b9931 100644
--- a/subprojects/frontend/src/graph/GraphPane.tsx
+++ b/subprojects/frontend/src/graph/GraphPane.tsx
@@ -5,24 +5,24 @@
5 */ 5 */
6 6
7import Stack from '@mui/material/Stack'; 7import Stack from '@mui/material/Stack';
8import { styled } from '@mui/material/styles'; 8import { Suspense, lazy } from 'react';
9import stringify from 'json-stringify-pretty-compact';
10import { observer } from 'mobx-react-lite';
11 9
12import { useRootStore } from '../RootStoreProvider'; 10import Loading from '../Loading';
13 11
14const StyledCode = styled('code')(({ theme }) => ({ 12const GraphArea = lazy(() => import('./GraphArea'));
15 ...theme.typography.editor,
16 fontWeight: theme.typography.fontWeightEditorNormal,
17 margin: theme.spacing(2),
18 whiteSpace: 'pre',
19}));
20 13
21export default observer(function GraphPane(): JSX.Element { 14export default function GraphPane(): JSX.Element {
22 const { editorStore } = useRootStore();
23 return ( 15 return (
24 <Stack direction="column" height="100%" overflow="auto"> 16 <Stack
25 <StyledCode>{stringify(editorStore?.semantics ?? {})}</StyledCode> 17 direction="column"
18 height="100%"
19 overflow="auto"
20 alignItems="center"
21 justifyContent="center"
22 >
23 <Suspense fallback={<Loading />}>
24 <GraphArea />
25 </Suspense>
26 </Stack> 26 </Stack>
27 ); 27 );
28}); 28}
diff --git a/subprojects/frontend/src/xtext/SemanticsService.ts b/subprojects/frontend/src/xtext/SemanticsService.ts
index 50ec371a..d68b87a9 100644
--- a/subprojects/frontend/src/xtext/SemanticsService.ts
+++ b/subprojects/frontend/src/xtext/SemanticsService.ts
@@ -17,11 +17,15 @@ export default class SemanticsService {
17 17
18 onPush(push: unknown): void { 18 onPush(push: unknown): void {
19 const result = SemanticsResult.parse(push); 19 const result = SemanticsResult.parse(push);
20 this.validationService.setSemanticsIssues(result.issues ?? []); 20 if ('issues' in result) {
21 if (result.error !== undefined) { 21 this.validationService.setSemanticsIssues(result.issues);
22 this.store.setSemanticsError(result.error);
23 } else { 22 } else {
24 this.store.setSemantics(push); 23 this.validationService.setSemanticsIssues([]);
24 if ('error' in result) {
25 this.store.setSemanticsError(result.error);
26 } else {
27 this.store.setSemantics(result);
28 }
25 } 29 }
26 this.store.analysisCompleted(); 30 this.store.analysisCompleted();
27 } 31 }
diff --git a/subprojects/frontend/src/xtext/xtextServiceResults.ts b/subprojects/frontend/src/xtext/xtextServiceResults.ts
index cae95771..12f87b26 100644
--- a/subprojects/frontend/src/xtext/xtextServiceResults.ts
+++ b/subprojects/frontend/src/xtext/xtextServiceResults.ts
@@ -126,9 +126,20 @@ export const FormattingResult = DocumentStateResult.extend({
126 126
127export type FormattingResult = z.infer<typeof FormattingResult>; 127export type FormattingResult = z.infer<typeof FormattingResult>;
128 128
129export const SemanticsResult = z.object({ 129export const SemanticsSuccessResult = z.object({
130 error: z.string().optional(), 130 nodes: z.string().nullable().array(),
131 issues: Issue.array().optional(), 131 partialInterpretation: z.record(
132 z.string(),
133 z.union([z.number(), z.string()]).array().array(),
134 ),
132}); 135});
133 136
137export type SemanticsSuccessResult = z.infer<typeof SemanticsSuccessResult>;
138
139export const SemanticsResult = z.union([
140 z.object({ error: z.string() }),
141 z.object({ issues: Issue.array() }),
142 SemanticsSuccessResult,
143]);
144
134export type SemanticsResult = z.infer<typeof SemanticsResult>; 145export type SemanticsResult = z.infer<typeof SemanticsResult>;
diff --git a/subprojects/frontend/vite.config.ts b/subprojects/frontend/vite.config.ts
index 1104f867..5bda8071 100644
--- a/subprojects/frontend/vite.config.ts
+++ b/subprojects/frontend/vite.config.ts
@@ -17,6 +17,7 @@ import detectDevModeOptions, {
17 API_ENDPOINT, 17 API_ENDPOINT,
18} from './config/detectDevModeOptions'; 18} from './config/detectDevModeOptions';
19import fetchPackageMetadata from './config/fetchPackageMetadata'; 19import fetchPackageMetadata from './config/fetchPackageMetadata';
20import graphvizUMDVitePlugin from './config/graphvizUMDVitePlugin';
20import manifest from './config/manifest'; 21import manifest from './config/manifest';
21import minifyHTMLVitePlugin from './config/minifyHTMLVitePlugin'; 22import minifyHTMLVitePlugin from './config/minifyHTMLVitePlugin';
22import preloadFontsVitePlugin from './config/preloadFontsVitePlugin'; 23import preloadFontsVitePlugin from './config/preloadFontsVitePlugin';
@@ -43,6 +44,7 @@ const viteConfig: ViteConfig = {
43 lezer(), 44 lezer(),
44 preloadFontsVitePlugin(fontsGlob), 45 preloadFontsVitePlugin(fontsGlob),
45 minifyHTMLVitePlugin(), 46 minifyHTMLVitePlugin(),
47 graphvizUMDVitePlugin(),
46 VitePWA({ 48 VitePWA({
47 strategies: 'generateSW', 49 strategies: 'generateSW',
48 registerType: 'prompt', 50 registerType: 'prompt',
diff --git a/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java b/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
index 7b094fde..fab94689 100644
--- a/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
+++ b/subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java
@@ -16,7 +16,7 @@ public class SecurityHeadersFilter implements Filter {
16 ServletException { 16 ServletException {
17 if (response instanceof HttpServletResponse httpResponse) { 17 if (response instanceof HttpServletResponse httpResponse) {
18 httpResponse.setHeader("Content-Security-Policy", "default-src 'none'; " + 18 httpResponse.setHeader("Content-Security-Policy", "default-src 'none'; " +
19 "script-src 'self'; " + 19 "script-src 'self' 'wasm-unsafe-eval'; " +
20 // CodeMirror needs inline styles, see e.g., 20 // CodeMirror needs inline styles, see e.g.,
21 // https://discuss.codemirror.net/t/inline-styles-and-content-security-policy/1311/2 21 // https://discuss.codemirror.net/t/inline-styles-and-content-security-policy/1311/2
22 "style-src 'self' 'unsafe-inline'; " + 22 "style-src 'self' 'unsafe-inline'; " +
@@ -25,7 +25,7 @@ public class SecurityHeadersFilter implements Filter {
25 "font-src 'self'; " + 25 "font-src 'self'; " +
26 "connect-src 'self'; " + 26 "connect-src 'self'; " +
27 "manifest-src 'self'; " + 27 "manifest-src 'self'; " +
28 "worker-src 'self';"); 28 "worker-src 'self' blob:;");
29 httpResponse.setHeader("X-Content-Type-Options", "nosniff"); 29 httpResponse.setHeader("X-Content-Type-Options", "nosniff");
30 httpResponse.setHeader("X-Frame-Options", "DENY"); 30 httpResponse.setHeader("X-Frame-Options", "DENY");
31 httpResponse.setHeader("Referrer-Policy", "strict-origin"); 31 httpResponse.setHeader("Referrer-Policy", "strict-origin");
diff --git a/yarn.lock b/yarn.lock
index bb806e86..b1d7b9d6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1722,6 +1722,17 @@ __metadata:
1722 languageName: node 1722 languageName: node
1723 linkType: hard 1723 linkType: hard
1724 1724
1725"@hpcc-js/wasm@npm:2.13.1, @hpcc-js/wasm@npm:^2.13.1":
1726 version: 2.13.1
1727 resolution: "@hpcc-js/wasm@npm:2.13.1"
1728 dependencies:
1729 yargs: "npm:17.7.2"
1730 bin:
1731 dot-wasm: bin/dot-wasm.js
1732 checksum: 3ed818f52ad8d9c671abbcdd7553af30ce0c7775b7f2c48997a7a7180d3719c61516972d25aa4942d947b55127257c6137ec0c142b693a87cb235ba1407fc2ed
1733 languageName: node
1734 linkType: hard
1735
1725"@humanwhocodes/config-array@npm:^0.11.10": 1736"@humanwhocodes/config-array@npm:^0.11.10":
1726 version: 0.11.10 1737 version: 0.11.10
1727 resolution: "@humanwhocodes/config-array@npm:0.11.10" 1738 resolution: "@humanwhocodes/config-array@npm:0.11.10"
@@ -2108,6 +2119,7 @@ __metadata:
2108 "@emotion/styled": "npm:^11.11.0" 2119 "@emotion/styled": "npm:^11.11.0"
2109 "@fontsource-variable/inter": "npm:^5.0.8" 2120 "@fontsource-variable/inter": "npm:^5.0.8"
2110 "@fontsource-variable/jetbrains-mono": "npm:^5.0.9" 2121 "@fontsource-variable/jetbrains-mono": "npm:^5.0.9"
2122 "@hpcc-js/wasm": "npm:^2.13.1"
2111 "@lezer/common": "npm:^1.0.3" 2123 "@lezer/common": "npm:^1.0.3"
2112 "@lezer/generator": "npm:^1.4.0" 2124 "@lezer/generator": "npm:^1.4.0"
2113 "@lezer/highlight": "npm:^1.1.6" 2125 "@lezer/highlight": "npm:^1.1.6"
@@ -2115,12 +2127,17 @@ __metadata:
2115 "@material-icons/svg": "npm:^1.0.33" 2127 "@material-icons/svg": "npm:^1.0.33"
2116 "@mui/icons-material": "npm:5.14.3" 2128 "@mui/icons-material": "npm:5.14.3"
2117 "@mui/material": "npm:5.14.5" 2129 "@mui/material": "npm:5.14.5"
2130 "@types/d3": "npm:^7.4.0"
2131 "@types/d3-graphviz": "npm:^2.6.7"
2132 "@types/d3-selection": "npm:^3.0.5"
2133 "@types/d3-zoom": "npm:^3.0.4"
2118 "@types/eslint": "npm:^8.44.2" 2134 "@types/eslint": "npm:^8.44.2"
2119 "@types/html-minifier-terser": "npm:^7.0.0" 2135 "@types/html-minifier-terser": "npm:^7.0.0"
2120 "@types/lodash-es": "npm:^4.17.8" 2136 "@types/lodash-es": "npm:^4.17.8"
2121 "@types/micromatch": "npm:^4.0.2" 2137 "@types/micromatch": "npm:^4.0.2"
2122 "@types/ms": "npm:^0.7.31" 2138 "@types/ms": "npm:^0.7.31"
2123 "@types/node": "npm:^20.5.0" 2139 "@types/node": "npm:^20.5.0"
2140 "@types/pnpapi": "npm:^0.0.2"
2124 "@types/prettier": "npm:^3.0.0" 2141 "@types/prettier": "npm:^3.0.0"
2125 "@types/react": "npm:^18.2.20" 2142 "@types/react": "npm:^18.2.20"
2126 "@types/react-dom": "npm:^18.2.7" 2143 "@types/react-dom": "npm:^18.2.7"
@@ -2131,6 +2148,10 @@ __metadata:
2131 ansi-styles: "npm:^6.2.1" 2148 ansi-styles: "npm:^6.2.1"
2132 cross-env: "npm:^7.0.3" 2149 cross-env: "npm:^7.0.3"
2133 csstype: "npm:^3.1.2" 2150 csstype: "npm:^3.1.2"
2151 d3: "npm:^7.8.5"
2152 d3-graphviz: "patch:d3-graphviz@npm%3A5.1.0#~/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch"
2153 d3-selection: "npm:^3.0.0"
2154 d3-zoom: "npm:^3.0.0"
2134 escape-string-regexp: "npm:^5.0.0" 2155 escape-string-regexp: "npm:^5.0.0"
2135 eslint: "npm:^8.47.0" 2156 eslint: "npm:^8.47.0"
2136 eslint-config-airbnb: "npm:^19.0.4" 2157 eslint-config-airbnb: "npm:^19.0.4"
@@ -2154,6 +2175,7 @@ __metadata:
2154 ms: "npm:^2.1.3" 2175 ms: "npm:^2.1.3"
2155 nanoid: "npm:^4.0.2" 2176 nanoid: "npm:^4.0.2"
2156 notistack: "npm:^3.0.1" 2177 notistack: "npm:^3.0.1"
2178 pnpapi: "npm:^0.0.0"
2157 prettier: "npm:^3.0.1" 2179 prettier: "npm:^3.0.1"
2158 react: "npm:^18.2.0" 2180 react: "npm:^18.2.0"
2159 react-dom: "npm:^18.2.0" 2181 react-dom: "npm:^18.2.0"
@@ -2246,90 +2268,90 @@ __metadata:
2246 languageName: node 2268 languageName: node
2247 linkType: hard 2269 linkType: hard
2248 2270
2249"@swc/core-darwin-arm64@npm:1.3.64": 2271"@swc/core-darwin-arm64@npm:1.3.78":
2250 version: 1.3.64 2272 version: 1.3.78
2251 resolution: "@swc/core-darwin-arm64@npm:1.3.64" 2273 resolution: "@swc/core-darwin-arm64@npm:1.3.78"
2252 conditions: os=darwin & cpu=arm64 2274 conditions: os=darwin & cpu=arm64
2253 languageName: node 2275 languageName: node
2254 linkType: hard 2276 linkType: hard
2255 2277
2256"@swc/core-darwin-x64@npm:1.3.64": 2278"@swc/core-darwin-x64@npm:1.3.78":
2257 version: 1.3.64 2279 version: 1.3.78
2258 resolution: "@swc/core-darwin-x64@npm:1.3.64" 2280 resolution: "@swc/core-darwin-x64@npm:1.3.78"
2259 conditions: os=darwin & cpu=x64 2281 conditions: os=darwin & cpu=x64
2260 languageName: node 2282 languageName: node
2261 linkType: hard 2283 linkType: hard
2262 2284
2263"@swc/core-linux-arm-gnueabihf@npm:1.3.64": 2285"@swc/core-linux-arm-gnueabihf@npm:1.3.78":
2264 version: 1.3.64 2286 version: 1.3.78
2265 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.64" 2287 resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.78"
2266 conditions: os=linux & cpu=arm 2288 conditions: os=linux & cpu=arm
2267 languageName: node 2289 languageName: node
2268 linkType: hard 2290 linkType: hard
2269 2291
2270"@swc/core-linux-arm64-gnu@npm:1.3.64": 2292"@swc/core-linux-arm64-gnu@npm:1.3.78":
2271 version: 1.3.64 2293 version: 1.3.78
2272 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.64" 2294 resolution: "@swc/core-linux-arm64-gnu@npm:1.3.78"
2273 conditions: os=linux & cpu=arm64 & libc=glibc 2295 conditions: os=linux & cpu=arm64 & libc=glibc
2274 languageName: node 2296 languageName: node
2275 linkType: hard 2297 linkType: hard
2276 2298
2277"@swc/core-linux-arm64-musl@npm:1.3.64": 2299"@swc/core-linux-arm64-musl@npm:1.3.78":
2278 version: 1.3.64 2300 version: 1.3.78
2279 resolution: "@swc/core-linux-arm64-musl@npm:1.3.64" 2301 resolution: "@swc/core-linux-arm64-musl@npm:1.3.78"
2280 conditions: os=linux & cpu=arm64 & libc=musl 2302 conditions: os=linux & cpu=arm64 & libc=musl
2281 languageName: node 2303 languageName: node
2282 linkType: hard 2304 linkType: hard
2283 2305
2284"@swc/core-linux-x64-gnu@npm:1.3.64": 2306"@swc/core-linux-x64-gnu@npm:1.3.78":
2285 version: 1.3.64 2307 version: 1.3.78
2286 resolution: "@swc/core-linux-x64-gnu@npm:1.3.64" 2308 resolution: "@swc/core-linux-x64-gnu@npm:1.3.78"
2287 conditions: os=linux & cpu=x64 & libc=glibc 2309 conditions: os=linux & cpu=x64 & libc=glibc
2288 languageName: node 2310 languageName: node
2289 linkType: hard 2311 linkType: hard
2290 2312
2291"@swc/core-linux-x64-musl@npm:1.3.64": 2313"@swc/core-linux-x64-musl@npm:1.3.78":
2292 version: 1.3.64 2314 version: 1.3.78
2293 resolution: "@swc/core-linux-x64-musl@npm:1.3.64" 2315 resolution: "@swc/core-linux-x64-musl@npm:1.3.78"
2294 conditions: os=linux & cpu=x64 & libc=musl 2316 conditions: os=linux & cpu=x64 & libc=musl
2295 languageName: node 2317 languageName: node
2296 linkType: hard 2318 linkType: hard
2297 2319
2298"@swc/core-win32-arm64-msvc@npm:1.3.64": 2320"@swc/core-win32-arm64-msvc@npm:1.3.78":
2299 version: 1.3.64 2321 version: 1.3.78
2300 resolution: "@swc/core-win32-arm64-msvc@npm:1.3.64" 2322 resolution: "@swc/core-win32-arm64-msvc@npm:1.3.78"
2301 conditions: os=win32 & cpu=arm64 2323 conditions: os=win32 & cpu=arm64
2302 languageName: node 2324 languageName: node
2303 linkType: hard 2325 linkType: hard
2304 2326
2305"@swc/core-win32-ia32-msvc@npm:1.3.64": 2327"@swc/core-win32-ia32-msvc@npm:1.3.78":
2306 version: 1.3.64 2328 version: 1.3.78
2307 resolution: "@swc/core-win32-ia32-msvc@npm:1.3.64" 2329 resolution: "@swc/core-win32-ia32-msvc@npm:1.3.78"
2308 conditions: os=win32 & cpu=ia32 2330 conditions: os=win32 & cpu=ia32
2309 languageName: node 2331 languageName: node
2310 linkType: hard 2332 linkType: hard
2311 2333
2312"@swc/core-win32-x64-msvc@npm:1.3.64": 2334"@swc/core-win32-x64-msvc@npm:1.3.78":
2313 version: 1.3.64 2335 version: 1.3.78
2314 resolution: "@swc/core-win32-x64-msvc@npm:1.3.64" 2336 resolution: "@swc/core-win32-x64-msvc@npm:1.3.78"
2315 conditions: os=win32 & cpu=x64 2337 conditions: os=win32 & cpu=x64
2316 languageName: node 2338 languageName: node
2317 linkType: hard 2339 linkType: hard
2318 2340
2319"@swc/core@npm:^1.3.61": 2341"@swc/core@npm:^1.3.61":
2320 version: 1.3.64 2342 version: 1.3.78
2321 resolution: "@swc/core@npm:1.3.64" 2343 resolution: "@swc/core@npm:1.3.78"
2322 dependencies: 2344 dependencies:
2323 "@swc/core-darwin-arm64": "npm:1.3.64" 2345 "@swc/core-darwin-arm64": "npm:1.3.78"
2324 "@swc/core-darwin-x64": "npm:1.3.64" 2346 "@swc/core-darwin-x64": "npm:1.3.78"
2325 "@swc/core-linux-arm-gnueabihf": "npm:1.3.64" 2347 "@swc/core-linux-arm-gnueabihf": "npm:1.3.78"
2326 "@swc/core-linux-arm64-gnu": "npm:1.3.64" 2348 "@swc/core-linux-arm64-gnu": "npm:1.3.78"
2327 "@swc/core-linux-arm64-musl": "npm:1.3.64" 2349 "@swc/core-linux-arm64-musl": "npm:1.3.78"
2328 "@swc/core-linux-x64-gnu": "npm:1.3.64" 2350 "@swc/core-linux-x64-gnu": "npm:1.3.78"
2329 "@swc/core-linux-x64-musl": "npm:1.3.64" 2351 "@swc/core-linux-x64-musl": "npm:1.3.78"
2330 "@swc/core-win32-arm64-msvc": "npm:1.3.64" 2352 "@swc/core-win32-arm64-msvc": "npm:1.3.78"
2331 "@swc/core-win32-ia32-msvc": "npm:1.3.64" 2353 "@swc/core-win32-ia32-msvc": "npm:1.3.78"
2332 "@swc/core-win32-x64-msvc": "npm:1.3.64" 2354 "@swc/core-win32-x64-msvc": "npm:1.3.78"
2333 peerDependencies: 2355 peerDependencies:
2334 "@swc/helpers": ^0.5.0 2356 "@swc/helpers": ^0.5.0
2335 dependenciesMeta: 2357 dependenciesMeta:
@@ -2356,7 +2378,7 @@ __metadata:
2356 peerDependenciesMeta: 2378 peerDependenciesMeta:
2357 "@swc/helpers": 2379 "@swc/helpers":
2358 optional: true 2380 optional: true
2359 checksum: a860405e71cf217c72d0520da14b0b2fd31767d51167283139fd5788512a2dbedda2f89145d1f008060d57f2b59c88c0b30a1d4698ed5daba7a6c0b725943d52 2381 checksum: 5936575f2dd8ef18642d4d83622336b0bc2ea073d4554ad20e4af030329b301ad9e7f5f4afa4042ac8d3cffc9d2d5c3140e7d134869e7c656d5e29231ffbc17f
2360 languageName: node 2382 languageName: node
2361 linkType: hard 2383 linkType: hard
2362 2384
@@ -2374,6 +2396,341 @@ __metadata:
2374 languageName: node 2396 languageName: node
2375 linkType: hard 2397 linkType: hard
2376 2398
2399"@types/d3-array@npm:*":
2400 version: 3.0.5
2401 resolution: "@types/d3-array@npm:3.0.5"
2402 checksum: 145c61ffc88af9ac550d924e2d13a8b6fc95011989662500848e2df2214e7b3e19decaf7e95238a2c5460053137227360ccd00f6859c4ecb2508a807338ab957
2403 languageName: node
2404 linkType: hard
2405
2406"@types/d3-axis@npm:*":
2407 version: 3.0.2
2408 resolution: "@types/d3-axis@npm:3.0.2"
2409 dependencies:
2410 "@types/d3-selection": "npm:*"
2411 checksum: 3efaca6b227fff21eea654b980952e7315dbe5822956d48c6c6047a815adf100b31a901c1cd0e089067f8a409abae2728cfcb81b9da28c02aee96b009237d6e7
2412 languageName: node
2413 linkType: hard
2414
2415"@types/d3-brush@npm:*":
2416 version: 3.0.2
2417 resolution: "@types/d3-brush@npm:3.0.2"
2418 dependencies:
2419 "@types/d3-selection": "npm:*"
2420 checksum: 8ddc4978fd5ef637ddc459a7a26b2b14e59a19cb2c541904ec17005e6d3fc3cea426598b8dd08ca154dc1cf0fe466fef3bf344b3b5bc2d9591d48783f8e76a96
2421 languageName: node
2422 linkType: hard
2423
2424"@types/d3-chord@npm:*":
2425 version: 3.0.2
2426 resolution: "@types/d3-chord@npm:3.0.2"
2427 checksum: e354f29b261d4ff9546e52e1c3e315e62407a8ead85c82bd7e4efb277e89898ae2fa1a7740589e15d32677d76c826a596b198d374749e27598f9d3dec0055d7f
2428 languageName: node
2429 linkType: hard
2430
2431"@types/d3-color@npm:*":
2432 version: 3.1.0
2433 resolution: "@types/d3-color@npm:3.1.0"
2434 checksum: 5b4be21b4b025da9ffd0cef876fb7d82f99116fa26e7ee3449771faf0a953d160246b1ceb2a9bbc7d131e32ab60d7d19013131d098616369a56f9880f25f20ef
2435 languageName: node
2436 linkType: hard
2437
2438"@types/d3-color@npm:^1":
2439 version: 1.4.2
2440 resolution: "@types/d3-color@npm:1.4.2"
2441 checksum: f1c70d7deabe2b30e337361c3fa26b7ce4e9c875dfd1ad75e17379c6a5596f116fb21ca0e595c2f2220e04866bca6bdb2623e772cfb5f8bf4d20ffe6ba5c72ab
2442 languageName: node
2443 linkType: hard
2444
2445"@types/d3-contour@npm:*":
2446 version: 3.0.2
2447 resolution: "@types/d3-contour@npm:3.0.2"
2448 dependencies:
2449 "@types/d3-array": "npm:*"
2450 "@types/geojson": "npm:*"
2451 checksum: b4fc2b783c944b35412080c873ec828896864144675db9376b390c2a64631f5a63939fdefd50bf8f3cf0cb80ac8113429334f303b7806a71dd3155e1f762a304
2452 languageName: node
2453 linkType: hard
2454
2455"@types/d3-delaunay@npm:*":
2456 version: 6.0.1
2457 resolution: "@types/d3-delaunay@npm:6.0.1"
2458 checksum: b03f84560a98e0d08b96095759484de6ebccc4fc137a9114795ece15898ccb67c5b0897ffe1e939658224fe387dd58090b951a2c3ff31c70ec9fe2dddc0df1f9
2459 languageName: node
2460 linkType: hard
2461
2462"@types/d3-dispatch@npm:*":
2463 version: 3.0.2
2464 resolution: "@types/d3-dispatch@npm:3.0.2"
2465 checksum: 4d3afa2ff31abe7207347f7bdf044b5a94ba39935670a745d1599021e56f7f29eb0e09685cb32519d9ee45ec9d0de865ac4c77ed6c1e049cb1d820b5a1085c09
2466 languageName: node
2467 linkType: hard
2468
2469"@types/d3-drag@npm:*":
2470 version: 3.0.2
2471 resolution: "@types/d3-drag@npm:3.0.2"
2472 dependencies:
2473 "@types/d3-selection": "npm:*"
2474 checksum: b8af2eaf78df1acce61bc70c8684fc97be3b2824d096107a93e34c157f3e680d9635aeb6227431c1b226808442a55e728109615690a0ff240479eb04216afb94
2475 languageName: node
2476 linkType: hard
2477
2478"@types/d3-dsv@npm:*":
2479 version: 3.0.1
2480 resolution: "@types/d3-dsv@npm:3.0.1"
2481 checksum: 1daac684901a4b4022213bfd82cb0b2917c950cb2f1d0d925aabe2aab88c7cfdef67f522a08259e6c19d7c54fb98e4a8a994d9e48d8fb8d5bcda813969c5afc6
2482 languageName: node
2483 linkType: hard
2484
2485"@types/d3-ease@npm:*":
2486 version: 3.0.0
2487 resolution: "@types/d3-ease@npm:3.0.0"
2488 checksum: 8fa64035f3b459cbf178e0bbb01cd188ec7337877e959fcf0a6ef08528b6caf93fd9f69635ec1c8fc11f6d2448d0e5d2a4e11988cb16bc6e001f0c0afe609204
2489 languageName: node
2490 linkType: hard
2491
2492"@types/d3-fetch@npm:*":
2493 version: 3.0.2
2494 resolution: "@types/d3-fetch@npm:3.0.2"
2495 dependencies:
2496 "@types/d3-dsv": "npm:*"
2497 checksum: ee592cb03b0651b882851d022df6fc17934ab955d642b9178c2e1e800cd7e75733bde02a1f4936cff1befcec918556144a3525bd0cc6a3c8c5446de4a8bf4bf7
2498 languageName: node
2499 linkType: hard
2500
2501"@types/d3-force@npm:*":
2502 version: 3.0.4
2503 resolution: "@types/d3-force@npm:3.0.4"
2504 checksum: d1c1c00742f55c8f8d99e0fa09be990ae4dc562d2fd1861d86dfdc69efbcc47e1e8a30a97cde64a6c0175dcc8c2cfa1c7ab4c021063f96a13182e14a2d0c5ff1
2505 languageName: node
2506 linkType: hard
2507
2508"@types/d3-format@npm:*":
2509 version: 3.0.1
2510 resolution: "@types/d3-format@npm:3.0.1"
2511 checksum: abfb57288fb26899bac98aeb03d652ed73d7074c12c96bb33d2d67ced9869f52f4b3e37579df883fc69a13d970199331a07e67a8bcd9f858efeb4f3a71e36188
2512 languageName: node
2513 linkType: hard
2514
2515"@types/d3-geo@npm:*":
2516 version: 3.0.3
2517 resolution: "@types/d3-geo@npm:3.0.3"
2518 dependencies:
2519 "@types/geojson": "npm:*"
2520 checksum: f1409f60507644b331a2355e54e3ff497011cb0e1b4faa5962c6ee9f1f5e80f4ca9a400c67c8c7bea2b3e67c3f7684a047c91330d2d0216ddb63b3ddc9ac8f96
2521 languageName: node
2522 linkType: hard
2523
2524"@types/d3-graphviz@npm:^2.6.7":
2525 version: 2.6.7
2526 resolution: "@types/d3-graphviz@npm:2.6.7"
2527 dependencies:
2528 "@types/d3-selection": "npm:^1"
2529 "@types/d3-transition": "npm:^1"
2530 "@types/d3-zoom": "npm:^1"
2531 checksum: 5584a0126bf3baebd92f7cc4082430f554a9a3026e5c2320f1bd9560b62e62cc1f52cf56d96da97b8fb669ab187fbf376509dc8ef359b870004aae905f4289be
2532 languageName: node
2533 linkType: hard
2534
2535"@types/d3-hierarchy@npm:*":
2536 version: 3.1.2
2537 resolution: "@types/d3-hierarchy@npm:3.1.2"
2538 checksum: 9248d1d01f659e30808da58171652542d88d4e07364dac4acffcf3513509b26d5e2971880f56e29091cf89b0d2f8de64fcd9cb86017d9192d0f27e863c965414
2539 languageName: node
2540 linkType: hard
2541
2542"@types/d3-interpolate@npm:*":
2543 version: 3.0.1
2544 resolution: "@types/d3-interpolate@npm:3.0.1"
2545 dependencies:
2546 "@types/d3-color": "npm:*"
2547 checksum: 1c7577045a4a30dc177bca10980c456a28c9b89b1a5406fe7303824dd9cc898f67f8dafd8e22a7702ca5df12a28a5f48f77d92a9b5d8f1fc0939f33831067114
2548 languageName: node
2549 linkType: hard
2550
2551"@types/d3-interpolate@npm:^1":
2552 version: 1.4.2
2553 resolution: "@types/d3-interpolate@npm:1.4.2"
2554 dependencies:
2555 "@types/d3-color": "npm:^1"
2556 checksum: 98bff93ce4d94485a4f6117e554854ec69072382910008e785d2c960b50e643093a8cfa2e0875b3d1dff19f3603b6e16a4eea8122c7c8ead3623daf3044cd22e
2557 languageName: node
2558 linkType: hard
2559
2560"@types/d3-path@npm:*":
2561 version: 3.0.0
2562 resolution: "@types/d3-path@npm:3.0.0"
2563 checksum: 64750aeb3e490112d2f1d812230201140de352743846150e022e44c6924f44d47deb1a50f3dc63b930fd6a8fd6482f8fcb7da2516a14b8e29a4749d2b86f90ca
2564 languageName: node
2565 linkType: hard
2566
2567"@types/d3-polygon@npm:*":
2568 version: 3.0.0
2569 resolution: "@types/d3-polygon@npm:3.0.0"
2570 checksum: 6fce6672581cac3c5bcda6f0014527228bdc25ad9f99d1bf9103764f6ce89bc0d5690db55c92052ad7182fa20623aa4bb6bcb2b85aa7a77535610c06b3c32d97
2571 languageName: node
2572 linkType: hard
2573
2574"@types/d3-quadtree@npm:*":
2575 version: 3.0.2
2576 resolution: "@types/d3-quadtree@npm:3.0.2"
2577 checksum: 0a2a6921bb21d8bd14190bfd048990f80d2369e622822cbc344a897bb88534b1d7332445024e17cf0adfb4cef663a8a79f0e3bf2a4129a7d13f264854f06e379
2578 languageName: node
2579 linkType: hard
2580
2581"@types/d3-random@npm:*":
2582 version: 3.0.1
2583 resolution: "@types/d3-random@npm:3.0.1"
2584 checksum: e2818c15b157df55f48c50ca1ed8ba243859b56eb0eb07fdca162ea34ef77f373e5fd5402df4c2e483d6a71e0b57b97ce189cb9398d0433569be6318e1ede408
2585 languageName: node
2586 linkType: hard
2587
2588"@types/d3-scale-chromatic@npm:*":
2589 version: 3.0.0
2590 resolution: "@types/d3-scale-chromatic@npm:3.0.0"
2591 checksum: 58cef12deab19233d8d06f61993198930248fb7cf5de0754e38a9dd342a8fba2d917bc746b57eeee9f82e50bbc079a867e15cc045e8a338cf8502ebcde4561f9
2592 languageName: node
2593 linkType: hard
2594
2595"@types/d3-scale@npm:*":
2596 version: 4.0.3
2597 resolution: "@types/d3-scale@npm:4.0.3"
2598 dependencies:
2599 "@types/d3-time": "npm:*"
2600 checksum: 5eace4cf45f87b3eec9637ade77e97530e778a3bb7f8356e4712bde732fb9474f3e8ef3aa12bc97dd3e4f76e23343ed81c1f5a3a1dcfdb72868f876b418da117
2601 languageName: node
2602 linkType: hard
2603
2604"@types/d3-selection@npm:*, @types/d3-selection@npm:^3.0.5":
2605 version: 3.0.5
2606 resolution: "@types/d3-selection@npm:3.0.5"
2607 checksum: 431b1f65ee4e4eb4c8a3b4ddebb00b00c04ce082e68bffd7bc790e600f55c296d875bf073ae8a09de27499a33bed38635cdb57a9e4f5d3fc948fe956c2ec84cb
2608 languageName: node
2609 linkType: hard
2610
2611"@types/d3-selection@npm:^1":
2612 version: 1.4.3
2613 resolution: "@types/d3-selection@npm:1.4.3"
2614 checksum: 47c181f8362ade4df151e01737816356c939bc5728ff87c3a29bd43aaa0413296170119949eb3aa0ef8d9c10fac4463eb1d154b6fd0e89617b45eeb06bdefb8b
2615 languageName: node
2616 linkType: hard
2617
2618"@types/d3-shape@npm:*":
2619 version: 3.1.1
2620 resolution: "@types/d3-shape@npm:3.1.1"
2621 dependencies:
2622 "@types/d3-path": "npm:*"
2623 checksum: e06f0e6f5d74184dfb6a71861085ffad221bde8a11d2de632649118d75e9605fddf9af664601b0841d794e0c27afd6ea37d652350fb47c196905facc04c284d5
2624 languageName: node
2625 linkType: hard
2626
2627"@types/d3-time-format@npm:*":
2628 version: 4.0.0
2629 resolution: "@types/d3-time-format@npm:4.0.0"
2630 checksum: 3b2b95950594ded5bb6c1b21da37b049daa945c93a93ced76eac2ea6d78d6d17ebabbcf226523b07e214fe53c5d0f98f5d2e9ce7c758bc29c25e3563afddcf87
2631 languageName: node
2632 linkType: hard
2633
2634"@types/d3-time@npm:*":
2635 version: 3.0.0
2636 resolution: "@types/d3-time@npm:3.0.0"
2637 checksum: 4f900608d5c557b09b38e4b096723af5eb4508a1b32f9afae253fe77a4bcbbe821a14225bab1c2ea36ddbc5c4154ab3563452c6b6eba7a9f48cefad94276e6b5
2638 languageName: node
2639 linkType: hard
2640
2641"@types/d3-timer@npm:*":
2642 version: 3.0.0
2643 resolution: "@types/d3-timer@npm:3.0.0"
2644 checksum: 7f6cd693f6c99a360dc01e1b5aa1185cfa8f65d603f537c52c810d475c8ef8aa07ac2f8be24cc489d2e69b843e384ab30dd079ac75011dbc91b21cd216a79502
2645 languageName: node
2646 linkType: hard
2647
2648"@types/d3-transition@npm:*":
2649 version: 3.0.3
2650 resolution: "@types/d3-transition@npm:3.0.3"
2651 dependencies:
2652 "@types/d3-selection": "npm:*"
2653 checksum: b91742816f4f8b16c26b8a41065f0b72170b5eb9f5a9af30c7e432ff0b7b78a02fb7228d4e4bb8471e91d8122aa96dd8f8e879ceb181cc006039e87a0c696fbf
2654 languageName: node
2655 linkType: hard
2656
2657"@types/d3-transition@npm:^1":
2658 version: 1.3.2
2659 resolution: "@types/d3-transition@npm:1.3.2"
2660 dependencies:
2661 "@types/d3-selection": "npm:^1"
2662 checksum: 9e1340c2840fde63f224550cbde5531b8b2493218d421f97de138c1e7ca9b1f481dfc9e4c91cb5ce84df9df671e2d95468556be1f8cf1e28f0c33929322115a4
2663 languageName: node
2664 linkType: hard
2665
2666"@types/d3-zoom@npm:*":
2667 version: 3.0.3
2668 resolution: "@types/d3-zoom@npm:3.0.3"
2669 dependencies:
2670 "@types/d3-interpolate": "npm:*"
2671 "@types/d3-selection": "npm:*"
2672 checksum: 7b48870cadf18ba1104613605fc6157dc230f71ecac7f2f0d7e689b44a62ab29377edf98e935a6eee8b87c32456effe3cf6aab321cc20bb31695d21f62fdb311
2673 languageName: node
2674 linkType: hard
2675
2676"@types/d3-zoom@npm:^1":
2677 version: 1.8.4
2678 resolution: "@types/d3-zoom@npm:1.8.4"
2679 dependencies:
2680 "@types/d3-interpolate": "npm:^1"
2681 "@types/d3-selection": "npm:^1"
2682 checksum: 3135d2e01ec2eb633a5104025e719d989cdd9d203eeb97fc749128d60c2d19de9693e058e92ea1eb2f63aa0fa47cd4e4a994dc7df614b00eda650952c92f2c8a
2683 languageName: node
2684 linkType: hard
2685
2686"@types/d3-zoom@npm:^3.0.4":
2687 version: 3.0.4
2688 resolution: "@types/d3-zoom@npm:3.0.4"
2689 dependencies:
2690 "@types/d3-interpolate": "npm:*"
2691 "@types/d3-selection": "npm:*"
2692 checksum: 52d1b5f2a1490c25c69b03dcd71601f908ea1e3dedf79e379be4ff23e3a6be85d0694d04c1b23686343a74117e86683a61433ed926637aea545268fd55aa634f
2693 languageName: node
2694 linkType: hard
2695
2696"@types/d3@npm:^7.4.0":
2697 version: 7.4.0
2698 resolution: "@types/d3@npm:7.4.0"
2699 dependencies:
2700 "@types/d3-array": "npm:*"
2701 "@types/d3-axis": "npm:*"
2702 "@types/d3-brush": "npm:*"
2703 "@types/d3-chord": "npm:*"
2704 "@types/d3-color": "npm:*"
2705 "@types/d3-contour": "npm:*"
2706 "@types/d3-delaunay": "npm:*"
2707 "@types/d3-dispatch": "npm:*"
2708 "@types/d3-drag": "npm:*"
2709 "@types/d3-dsv": "npm:*"
2710 "@types/d3-ease": "npm:*"
2711 "@types/d3-fetch": "npm:*"
2712 "@types/d3-force": "npm:*"
2713 "@types/d3-format": "npm:*"
2714 "@types/d3-geo": "npm:*"
2715 "@types/d3-hierarchy": "npm:*"
2716 "@types/d3-interpolate": "npm:*"
2717 "@types/d3-path": "npm:*"
2718 "@types/d3-polygon": "npm:*"
2719 "@types/d3-quadtree": "npm:*"
2720 "@types/d3-random": "npm:*"
2721 "@types/d3-scale": "npm:*"
2722 "@types/d3-scale-chromatic": "npm:*"
2723 "@types/d3-selection": "npm:*"
2724 "@types/d3-shape": "npm:*"
2725 "@types/d3-time": "npm:*"
2726 "@types/d3-time-format": "npm:*"
2727 "@types/d3-timer": "npm:*"
2728 "@types/d3-transition": "npm:*"
2729 "@types/d3-zoom": "npm:*"
2730 checksum: f382cb3c78257f77cf4a1f19279bbe46eeb1b8df3ef5ab58edba8e18ce7afda670e79dde91fb8c2b85565ad5d0b138e62909477f3e6452b9d586050ca3e605d7
2731 languageName: node
2732 linkType: hard
2733
2377"@types/eslint@npm:^8.44.2": 2734"@types/eslint@npm:^8.44.2":
2378 version: 8.44.2 2735 version: 8.44.2
2379 resolution: "@types/eslint@npm:8.44.2" 2736 resolution: "@types/eslint@npm:8.44.2"
@@ -2398,6 +2755,13 @@ __metadata:
2398 languageName: node 2755 languageName: node
2399 linkType: hard 2756 linkType: hard
2400 2757
2758"@types/geojson@npm:*":
2759 version: 7946.0.10
2760 resolution: "@types/geojson@npm:7946.0.10"
2761 checksum: 4abba554467494c1496a60622c2cb6f8c7f80b0dbb909ff898812a9f67799fd1b254802d7d266361974bd8b0c9ef32a7686183aac83b20c437f6d0eee89cd0a1
2762 languageName: node
2763 linkType: hard
2764
2401"@types/html-minifier-terser@npm:^7.0.0": 2765"@types/html-minifier-terser@npm:^7.0.0":
2402 version: 7.0.0 2766 version: 7.0.0
2403 resolution: "@types/html-minifier-terser@npm:7.0.0" 2767 resolution: "@types/html-minifier-terser@npm:7.0.0"
@@ -2465,6 +2829,13 @@ __metadata:
2465 languageName: node 2829 languageName: node
2466 linkType: hard 2830 linkType: hard
2467 2831
2832"@types/pnpapi@npm:^0.0.2":
2833 version: 0.0.2
2834 resolution: "@types/pnpapi@npm:0.0.2"
2835 checksum: 4851d742f44dd7d682b27956aec0444a6837114cc9b32fc2830d4cd32959bede3a18c18c659ea0549fdc3e18f2e2d4c1bea08383b1a72f4689491471836fad48
2836 languageName: node
2837 linkType: hard
2838
2468"@types/prettier@npm:^3.0.0": 2839"@types/prettier@npm:^3.0.0":
2469 version: 3.0.0 2840 version: 3.0.0
2470 resolution: "@types/prettier@npm:3.0.0" 2841 resolution: "@types/prettier@npm:3.0.0"
@@ -3285,6 +3656,17 @@ __metadata:
3285 languageName: node 3656 languageName: node
3286 linkType: hard 3657 linkType: hard
3287 3658
3659"cliui@npm:^8.0.1":
3660 version: 8.0.1
3661 resolution: "cliui@npm:8.0.1"
3662 dependencies:
3663 string-width: "npm:^4.2.0"
3664 strip-ansi: "npm:^6.0.1"
3665 wrap-ansi: "npm:^7.0.0"
3666 checksum: 4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5
3667 languageName: node
3668 linkType: hard
3669
3288"clsx@npm:^1.1.0": 3670"clsx@npm:^1.1.0":
3289 version: 1.2.1 3671 version: 1.2.1
3290 resolution: "clsx@npm:1.2.1" 3672 resolution: "clsx@npm:1.2.1"
@@ -3340,6 +3722,13 @@ __metadata:
3340 languageName: node 3722 languageName: node
3341 linkType: hard 3723 linkType: hard
3342 3724
3725"commander@npm:7":
3726 version: 7.2.0
3727 resolution: "commander@npm:7.2.0"
3728 checksum: 8d690ff13b0356df7e0ebbe6c59b4712f754f4b724d4f473d3cc5b3fdcf978e3a5dc3078717858a2ceb50b0f84d0660a7f22a96cdc50fb877d0c9bb31593d23a
3729 languageName: node
3730 linkType: hard
3731
3343"commander@npm:^10.0.0": 3732"commander@npm:^10.0.0":
3344 version: 10.0.1 3733 version: 10.0.1
3345 resolution: "commander@npm:10.0.1" 3734 resolution: "commander@npm:10.0.1"
@@ -3462,6 +3851,360 @@ __metadata:
3462 languageName: node 3851 languageName: node
3463 linkType: hard 3852 linkType: hard
3464 3853
3854"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0":
3855 version: 3.2.4
3856 resolution: "d3-array@npm:3.2.4"
3857 dependencies:
3858 internmap: "npm:1 - 2"
3859 checksum: 08b95e91130f98c1375db0e0af718f4371ccacef7d5d257727fe74f79a24383e79aba280b9ffae655483ffbbad4fd1dec4ade0119d88c4749f388641c8bf8c50
3860 languageName: node
3861 linkType: hard
3862
3863"d3-axis@npm:3":
3864 version: 3.0.0
3865 resolution: "d3-axis@npm:3.0.0"
3866 checksum: a271e70ba1966daa5aaf6a7f959ceca3e12997b43297e757c7b945db2e1ead3c6ee226f2abcfa22abbd4e2e28bd2b71a0911794c4e5b911bbba271328a582c78
3867 languageName: node
3868 linkType: hard
3869
3870"d3-brush@npm:3":
3871 version: 3.0.0
3872 resolution: "d3-brush@npm:3.0.0"
3873 dependencies:
3874 d3-dispatch: "npm:1 - 3"
3875 d3-drag: "npm:2 - 3"
3876 d3-interpolate: "npm:1 - 3"
3877 d3-selection: "npm:3"
3878 d3-transition: "npm:3"
3879 checksum: 07baf00334c576da2f68a91fc0da5732c3a5fa19bd3d7aed7fd24d1d674a773f71a93e9687c154176f7246946194d77c48c2d8fed757f5dcb1a4740067ec50a8
3880 languageName: node
3881 linkType: hard
3882
3883"d3-chord@npm:3":
3884 version: 3.0.1
3885 resolution: "d3-chord@npm:3.0.1"
3886 dependencies:
3887 d3-path: "npm:1 - 3"
3888 checksum: baa6013914af3f4fe1521f0d16de31a38eb8a71d08ff1dec4741f6f45a828661e5cd3935e39bd14e3032bdc78206c283ca37411da21d46ec3cfc520be6e7a7ce
3889 languageName: node
3890 linkType: hard
3891
3892"d3-color@npm:1 - 3, d3-color@npm:3":
3893 version: 3.1.0
3894 resolution: "d3-color@npm:3.1.0"
3895 checksum: a4e20e1115fa696fce041fbe13fbc80dc4c19150fa72027a7c128ade980bc0eeeba4bcf28c9e21f0bce0e0dbfe7ca5869ef67746541dcfda053e4802ad19783c
3896 languageName: node
3897 linkType: hard
3898
3899"d3-contour@npm:4":
3900 version: 4.0.2
3901 resolution: "d3-contour@npm:4.0.2"
3902 dependencies:
3903 d3-array: "npm:^3.2.0"
3904 checksum: 98bc5fbed6009e08707434a952076f39f1cd6ed8b9288253cc3e6a3286e4e80c63c62d84954b20e64bf6e4ededcc69add54d3db25e990784a59c04edd3449032
3905 languageName: node
3906 linkType: hard
3907
3908"d3-delaunay@npm:6":
3909 version: 6.0.4
3910 resolution: "d3-delaunay@npm:6.0.4"
3911 dependencies:
3912 delaunator: "npm:5"
3913 checksum: 57c3aecd2525664b07c4c292aa11cf49b2752c0cf3f5257f752999399fe3c592de2d418644d79df1f255471eec8057a9cc0c3062ed7128cb3348c45f69597754
3914 languageName: node
3915 linkType: hard
3916
3917"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3, d3-dispatch@npm:^3.0.1":
3918 version: 3.0.1
3919 resolution: "d3-dispatch@npm:3.0.1"
3920 checksum: 6eca77008ce2dc33380e45d4410c67d150941df7ab45b91d116dbe6d0a3092c0f6ac184dd4602c796dc9e790222bad3ff7142025f5fd22694efe088d1d941753
3921 languageName: node
3922 linkType: hard
3923
3924"d3-drag@npm:2 - 3, d3-drag@npm:3":
3925 version: 3.0.0
3926 resolution: "d3-drag@npm:3.0.0"
3927 dependencies:
3928 d3-dispatch: "npm:1 - 3"
3929 d3-selection: "npm:3"
3930 checksum: d2556e8dc720741a443b595a30af403dd60642dfd938d44d6e9bfc4c71a962142f9a028c56b61f8b4790b65a34acad177d1263d66f103c3c527767b0926ef5aa
3931 languageName: node
3932 linkType: hard
3933
3934"d3-dsv@npm:1 - 3, d3-dsv@npm:3":
3935 version: 3.0.1
3936 resolution: "d3-dsv@npm:3.0.1"
3937 dependencies:
3938 commander: "npm:7"
3939 iconv-lite: "npm:0.6"
3940 rw: "npm:1"
3941 bin:
3942 csv2json: bin/dsv2json.js
3943 csv2tsv: bin/dsv2dsv.js
3944 dsv2dsv: bin/dsv2dsv.js
3945 dsv2json: bin/dsv2json.js
3946 json2csv: bin/json2dsv.js
3947 json2dsv: bin/json2dsv.js
3948 json2tsv: bin/json2dsv.js
3949 tsv2csv: bin/dsv2dsv.js
3950 tsv2json: bin/dsv2json.js
3951 checksum: 10e6af9e331950ed258f34ab49ac1b7060128ef81dcf32afc790bd1f7e8c3cc2aac7f5f875250a83f21f39bb5925fbd0872bb209f8aca32b3b77d32bab8a65ab
3952 languageName: node
3953 linkType: hard
3954
3955"d3-ease@npm:1 - 3, d3-ease@npm:3":
3956 version: 3.0.1
3957 resolution: "d3-ease@npm:3.0.1"
3958 checksum: fec8ef826c0cc35cda3092c6841e07672868b1839fcaf556e19266a3a37e6bc7977d8298c0fcb9885e7799bfdcef7db1baaba9cd4dcf4bc5e952cf78574a88b0
3959 languageName: node
3960 linkType: hard
3961
3962"d3-fetch@npm:3":
3963 version: 3.0.1
3964 resolution: "d3-fetch@npm:3.0.1"
3965 dependencies:
3966 d3-dsv: "npm:1 - 3"
3967 checksum: 4f467a79bf290395ac0cbb5f7562483f6a18668adc4c8eb84c9d3eff048b6f6d3b6f55079ba1ebf1908dabe000c941d46be447f8d78453b2dad5fb59fb6aa93b
3968 languageName: node
3969 linkType: hard
3970
3971"d3-force@npm:3":
3972 version: 3.0.0
3973 resolution: "d3-force@npm:3.0.0"
3974 dependencies:
3975 d3-dispatch: "npm:1 - 3"
3976 d3-quadtree: "npm:1 - 3"
3977 d3-timer: "npm:1 - 3"
3978 checksum: 220a16a1a1ac62ba56df61028896e4b52be89c81040d20229c876efc8852191482c233f8a52bb5a4e0875c321b8e5cb6413ef3dfa4d8fe79eeb7d52c587f52cf
3979 languageName: node
3980 linkType: hard
3981
3982"d3-format@npm:1 - 3, d3-format@npm:3, d3-format@npm:^3.1.0":
3983 version: 3.1.0
3984 resolution: "d3-format@npm:3.1.0"
3985 checksum: 049f5c0871ebce9859fc5e2f07f336b3c5bfff52a2540e0bac7e703fce567cd9346f4ad1079dd18d6f1e0eaa0599941c1810898926f10ac21a31fd0a34b4aa75
3986 languageName: node
3987 linkType: hard
3988
3989"d3-geo@npm:3":
3990 version: 3.1.0
3991 resolution: "d3-geo@npm:3.1.0"
3992 dependencies:
3993 d3-array: "npm:2.5.0 - 3"
3994 checksum: 5b0a26d232787ca9e824a660827c28626a51004328dde7c76a1bd300d3cad8c7eeb55fea64c8cd6495d5a34fea434fb1418d59926a6cb24e6fb6e2b6f62c6bd9
3995 languageName: node
3996 linkType: hard
3997
3998"d3-graphviz@npm:5.1.0":
3999 version: 5.1.0
4000 resolution: "d3-graphviz@npm:5.1.0"
4001 dependencies:
4002 "@hpcc-js/wasm": "npm:2.13.1"
4003 d3-dispatch: "npm:^3.0.1"
4004 d3-format: "npm:^3.1.0"
4005 d3-interpolate: "npm:^3.0.1"
4006 d3-path: "npm:^3.1.0"
4007 d3-timer: "npm:^3.0.1"
4008 d3-transition: "npm:^3.0.1"
4009 d3-zoom: "npm:^3.0.0"
4010 peerDependencies:
4011 d3-selection: ^3.0.0
4012 checksum: 81eab7e0ba13e095a16f0accf6aeef6cbc0d3839fbd5cb4ea08ae6b279dabe3555a535d07edf57d33a78e606a02ead45f4362f2bb3ddcbf9c703e61fd95353f2
4013 languageName: node
4014 linkType: hard
4015
4016"d3-graphviz@patch:d3-graphviz@npm%3A5.1.0#~/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch":
4017 version: 5.1.0
4018 resolution: "d3-graphviz@patch:d3-graphviz@npm%3A5.1.0#~/.yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch::version=5.1.0&hash=d00cb5"
4019 dependencies:
4020 "@hpcc-js/wasm": "npm:2.13.1"
4021 d3-dispatch: "npm:^3.0.1"
4022 d3-format: "npm:^3.1.0"
4023 d3-interpolate: "npm:^3.0.1"
4024 d3-path: "npm:^3.1.0"
4025 d3-timer: "npm:^3.0.1"
4026 d3-transition: "npm:^3.0.1"
4027 d3-zoom: "npm:^3.0.0"
4028 peerDependencies:
4029 d3-selection: ^3.0.0
4030 checksum: 23e56b979950ff19f12321e9c23e56e55e791950f42ced3613581f4ac6a70e7b78b4bf3c600377df0766ee20f967741c939011b7a4d192a9eb3e2e07fa45833d
4031 languageName: node
4032 linkType: hard
4033
4034"d3-hierarchy@npm:3":
4035 version: 3.1.2
4036 resolution: "d3-hierarchy@npm:3.1.2"
4037 checksum: 6dcdb480539644aa7fc0d72dfc7b03f99dfbcdf02714044e8c708577e0d5981deb9d3e99bbbb2d26422b55bcc342ac89a0fa2ea6c9d7302e2fc0951dd96f89cf
4038 languageName: node
4039 linkType: hard
4040
4041"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3, d3-interpolate@npm:^3.0.1":
4042 version: 3.0.1
4043 resolution: "d3-interpolate@npm:3.0.1"
4044 dependencies:
4045 d3-color: "npm:1 - 3"
4046 checksum: 19f4b4daa8d733906671afff7767c19488f51a43d251f8b7f484d5d3cfc36c663f0a66c38fe91eee30f40327443d799be17169f55a293a3ba949e84e57a33e6a
4047 languageName: node
4048 linkType: hard
4049
4050"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0":
4051 version: 3.1.0
4052 resolution: "d3-path@npm:3.1.0"
4053 checksum: dc1d58ec87fa8319bd240cf7689995111a124b141428354e9637aa83059eb12e681f77187e0ada5dedfce346f7e3d1f903467ceb41b379bfd01cd8e31721f5da
4054 languageName: node
4055 linkType: hard
4056
4057"d3-polygon@npm:3":
4058 version: 3.0.1
4059 resolution: "d3-polygon@npm:3.0.1"
4060 checksum: e236aa7f33efa9a4072907af7dc119f85b150a0716759d4fe5f12f62573018264a6cbde8617fbfa6944a7ae48c1c0c8d3f39ae72e11f66dd471e9b5e668385df
4061 languageName: node
4062 linkType: hard
4063
4064"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3":
4065 version: 3.0.1
4066 resolution: "d3-quadtree@npm:3.0.1"
4067 checksum: 18302d2548bfecaef788152397edec95a76400fd97d9d7f42a089ceb68d910f685c96579d74e3712d57477ed042b056881b47cd836a521de683c66f47ce89090
4068 languageName: node
4069 linkType: hard
4070
4071"d3-random@npm:3":
4072 version: 3.0.1
4073 resolution: "d3-random@npm:3.0.1"
4074 checksum: 987a1a1bcbf26e6cf01fd89d5a265b463b2cea93560fc17d9b1c45e8ed6ff2db5924601bcceb808de24c94133f000039eb7fa1c469a7a844ccbf1170cbb25b41
4075 languageName: node
4076 linkType: hard
4077
4078"d3-scale-chromatic@npm:3":
4079 version: 3.0.0
4080 resolution: "d3-scale-chromatic@npm:3.0.0"
4081 dependencies:
4082 d3-color: "npm:1 - 3"
4083 d3-interpolate: "npm:1 - 3"
4084 checksum: 920a80f2e31b5686798c116e99d1671c32f55fb60fa920b742aa4ac5175b878c615adb4e55a246d65367e6e1061fdbcc55807be731fb5b18ae628d1df62bfac1
4085 languageName: node
4086 linkType: hard
4087
4088"d3-scale@npm:4":
4089 version: 4.0.2
4090 resolution: "d3-scale@npm:4.0.2"
4091 dependencies:
4092 d3-array: "npm:2.10.0 - 3"
4093 d3-format: "npm:1 - 3"
4094 d3-interpolate: "npm:1.2.0 - 3"
4095 d3-time: "npm:2.1.1 - 3"
4096 d3-time-format: "npm:2 - 4"
4097 checksum: 65d9ad8c2641aec30ed5673a7410feb187a224d6ca8d1a520d68a7d6eac9d04caedbff4713d1e8545be33eb7fec5739983a7ab1d22d4e5ad35368c6729d362f1
4098 languageName: node
4099 linkType: hard
4100
4101"d3-selection@npm:2 - 3, d3-selection@npm:3, d3-selection@npm:^3.0.0":
4102 version: 3.0.0
4103 resolution: "d3-selection@npm:3.0.0"
4104 checksum: e59096bbe8f0cb0daa1001d9bdd6dbc93a688019abc97d1d8b37f85cd3c286a6875b22adea0931b0c88410d025563e1643019161a883c516acf50c190a11b56b
4105 languageName: node
4106 linkType: hard
4107
4108"d3-shape@npm:3":
4109 version: 3.2.0
4110 resolution: "d3-shape@npm:3.2.0"
4111 dependencies:
4112 d3-path: "npm:^3.1.0"
4113 checksum: f1c9d1f09926daaf6f6193ae3b4c4b5521e81da7d8902d24b38694517c7f527ce3c9a77a9d3a5722ad1e3ff355860b014557b450023d66a944eabf8cfde37132
4114 languageName: node
4115 linkType: hard
4116
4117"d3-time-format@npm:2 - 4, d3-time-format@npm:4":
4118 version: 4.1.0
4119 resolution: "d3-time-format@npm:4.1.0"
4120 dependencies:
4121 d3-time: "npm:1 - 3"
4122 checksum: 735e00fb25a7fd5d418fac350018713ae394eefddb0d745fab12bbff0517f9cdb5f807c7bbe87bb6eeb06249662f8ea84fec075f7d0cd68609735b2ceb29d206
4123 languageName: node
4124 linkType: hard
4125
4126"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3":
4127 version: 3.1.0
4128 resolution: "d3-time@npm:3.1.0"
4129 dependencies:
4130 d3-array: "npm:2 - 3"
4131 checksum: a984f77e1aaeaa182679b46fbf57eceb6ebdb5f67d7578d6f68ef933f8eeb63737c0949991618a8d29472dbf43736c7d7f17c452b2770f8c1271191cba724ca1
4132 languageName: node
4133 linkType: hard
4134
4135"d3-timer@npm:1 - 3, d3-timer@npm:3, d3-timer@npm:^3.0.1":
4136 version: 3.0.1
4137 resolution: "d3-timer@npm:3.0.1"
4138 checksum: d4c63cb4bb5461d7038aac561b097cd1c5673969b27cbdd0e87fa48d9300a538b9e6f39b4a7f0e3592ef4f963d858c8a9f0e92754db73116770856f2fc04561a
4139 languageName: node
4140 linkType: hard
4141
4142"d3-transition@npm:2 - 3, d3-transition@npm:3, d3-transition@npm:^3.0.1":
4143 version: 3.0.1
4144 resolution: "d3-transition@npm:3.0.1"
4145 dependencies:
4146 d3-color: "npm:1 - 3"
4147 d3-dispatch: "npm:1 - 3"
4148 d3-ease: "npm:1 - 3"
4149 d3-interpolate: "npm:1 - 3"
4150 d3-timer: "npm:1 - 3"
4151 peerDependencies:
4152 d3-selection: 2 - 3
4153 checksum: 4e74535dda7024aa43e141635b7522bb70cf9d3dfefed975eb643b36b864762eca67f88fafc2ca798174f83ca7c8a65e892624f824b3f65b8145c6a1a88dbbad
4154 languageName: node
4155 linkType: hard
4156
4157"d3-zoom@npm:3, d3-zoom@npm:^3.0.0":
4158 version: 3.0.0
4159 resolution: "d3-zoom@npm:3.0.0"
4160 dependencies:
4161 d3-dispatch: "npm:1 - 3"
4162 d3-drag: "npm:2 - 3"
4163 d3-interpolate: "npm:1 - 3"
4164 d3-selection: "npm:2 - 3"
4165 d3-transition: "npm:2 - 3"
4166 checksum: ee2036479049e70d8c783d594c444fe00e398246048e3f11a59755cd0e21de62ece3126181b0d7a31bf37bcf32fd726f83ae7dea4495ff86ec7736ce5ad36fd3
4167 languageName: node
4168 linkType: hard
4169
4170"d3@npm:^7.8.5":
4171 version: 7.8.5
4172 resolution: "d3@npm:7.8.5"
4173 dependencies:
4174 d3-array: "npm:3"
4175 d3-axis: "npm:3"
4176 d3-brush: "npm:3"
4177 d3-chord: "npm:3"
4178 d3-color: "npm:3"
4179 d3-contour: "npm:4"
4180 d3-delaunay: "npm:6"
4181 d3-dispatch: "npm:3"
4182 d3-drag: "npm:3"
4183 d3-dsv: "npm:3"
4184 d3-ease: "npm:3"
4185 d3-fetch: "npm:3"
4186 d3-force: "npm:3"
4187 d3-format: "npm:3"
4188 d3-geo: "npm:3"
4189 d3-hierarchy: "npm:3"
4190 d3-interpolate: "npm:3"
4191 d3-path: "npm:3"
4192 d3-polygon: "npm:3"
4193 d3-quadtree: "npm:3"
4194 d3-random: "npm:3"
4195 d3-scale: "npm:4"
4196 d3-scale-chromatic: "npm:3"
4197 d3-selection: "npm:3"
4198 d3-shape: "npm:3"
4199 d3-time: "npm:3"
4200 d3-time-format: "npm:4"
4201 d3-timer: "npm:3"
4202 d3-transition: "npm:3"
4203 d3-zoom: "npm:3"
4204 checksum: 408758dcc2437cbff8cd207b9d82760030b5c53c1df6a2ce5b1a76633388a6892fd65c0632cfa83da963e239722d49805062e5fb05d99e0fb078bda14cb22222
4205 languageName: node
4206 linkType: hard
4207
3465"damerau-levenshtein@npm:^1.0.8": 4208"damerau-levenshtein@npm:^1.0.8":
3466 version: 1.0.8 4209 version: 1.0.8
3467 resolution: "damerau-levenshtein@npm:1.0.8" 4210 resolution: "damerau-levenshtein@npm:1.0.8"
@@ -3521,6 +4264,15 @@ __metadata:
3521 languageName: node 4264 languageName: node
3522 linkType: hard 4265 linkType: hard
3523 4266
4267"delaunator@npm:5":
4268 version: 5.0.0
4269 resolution: "delaunator@npm:5.0.0"
4270 dependencies:
4271 robust-predicates: "npm:^3.0.0"
4272 checksum: 8655c1ad12dc58bd6350f882c12065ea415cfc809e4cac12b7b5c4941e981aaabee1afdcf13985dcd545d13d0143eb3805836f50e2b097af8137b204dfbea4f6
4273 languageName: node
4274 linkType: hard
4275
3524"delegates@npm:^1.0.0": 4276"delegates@npm:^1.0.0":
3525 version: 1.0.0 4277 version: 1.0.0
3526 resolution: "delegates@npm:1.0.0" 4278 resolution: "delegates@npm:1.0.0"
@@ -4440,6 +5192,13 @@ __metadata:
4440 languageName: node 5192 languageName: node
4441 linkType: hard 5193 linkType: hard
4442 5194
5195"get-caller-file@npm:^2.0.5":
5196 version: 2.0.5
5197 resolution: "get-caller-file@npm:2.0.5"
5198 checksum: c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde
5199 languageName: node
5200 linkType: hard
5201
4443"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": 5202"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1":
4444 version: 1.2.1 5203 version: 1.2.1
4445 resolution: "get-intrinsic@npm:1.2.1" 5204 resolution: "get-intrinsic@npm:1.2.1"
@@ -4742,7 +5501,7 @@ __metadata:
4742 languageName: node 5501 languageName: node
4743 linkType: hard 5502 linkType: hard
4744 5503
4745"iconv-lite@npm:^0.6.2": 5504"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2":
4746 version: 0.6.3 5505 version: 0.6.3
4747 resolution: "iconv-lite@npm:0.6.3" 5506 resolution: "iconv-lite@npm:0.6.3"
4748 dependencies: 5507 dependencies:
@@ -4817,6 +5576,13 @@ __metadata:
4817 languageName: node 5576 languageName: node
4818 linkType: hard 5577 linkType: hard
4819 5578
5579"internmap@npm:1 - 2":
5580 version: 2.0.3
5581 resolution: "internmap@npm:2.0.3"
5582 checksum: 8cedd57f07bbc22501516fbfc70447f0c6812871d471096fad9ea603516eacc2137b633633daf432c029712df0baefd793686388ddf5737e3ea15074b877f7ed
5583 languageName: node
5584 linkType: hard
5585
4820"ip@npm:^2.0.0": 5586"ip@npm:^2.0.0":
4821 version: 2.0.0 5587 version: 2.0.0
4822 resolution: "ip@npm:2.0.0" 5588 resolution: "ip@npm:2.0.0"
@@ -6010,6 +6776,13 @@ __metadata:
6010 languageName: node 6776 languageName: node
6011 linkType: hard 6777 linkType: hard
6012 6778
6779"pnpapi@npm:^0.0.0":
6780 version: 0.0.0
6781 resolution: "pnpapi@npm:0.0.0"
6782 checksum: 7e718f0263073729486b35658fc502bc8f6f34e922da288731722fad5fa69f3817d29cce64d0135c41826c7f899999343daff5e49a9367f056ece9f1c1ded391
6783 languageName: node
6784 linkType: hard
6785
6013"postcss@npm:^8.4.27": 6786"postcss@npm:^8.4.27":
6014 version: 8.4.27 6787 version: 8.4.27
6015 resolution: "postcss@npm:8.4.27" 6788 resolution: "postcss@npm:8.4.27"
@@ -6283,6 +7056,13 @@ __metadata:
6283 languageName: node 7056 languageName: node
6284 linkType: hard 7057 linkType: hard
6285 7058
7059"require-directory@npm:^2.1.1":
7060 version: 2.1.1
7061 resolution: "require-directory@npm:2.1.1"
7062 checksum: 83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
7063 languageName: node
7064 linkType: hard
7065
6286"require-from-string@npm:^2.0.2": 7066"require-from-string@npm:^2.0.2":
6287 version: 2.0.2 7067 version: 2.0.2
6288 resolution: "require-from-string@npm:2.0.2" 7068 resolution: "require-from-string@npm:2.0.2"
@@ -6381,6 +7161,13 @@ __metadata:
6381 languageName: node 7161 languageName: node
6382 linkType: hard 7162 linkType: hard
6383 7163
7164"robust-predicates@npm:^3.0.0":
7165 version: 3.0.2
7166 resolution: "robust-predicates@npm:3.0.2"
7167 checksum: 4ecd53649f1c2d49529c85518f2fa69ffb2f7a4453f7fd19c042421c7b4d76c3efb48bc1c740c8f7049346d7cb58cf08ee0c9adaae595cc23564d360adb1fde4
7168 languageName: node
7169 linkType: hard
7170
6384"rollup-plugin-terser@npm:^7.0.0": 7171"rollup-plugin-terser@npm:^7.0.0":
6385 version: 7.0.2 7172 version: 7.0.2
6386 resolution: "rollup-plugin-terser@npm:7.0.2" 7173 resolution: "rollup-plugin-terser@npm:7.0.2"
@@ -6432,6 +7219,13 @@ __metadata:
6432 languageName: node 7219 languageName: node
6433 linkType: hard 7220 linkType: hard
6434 7221
7222"rw@npm:1":
7223 version: 1.3.3
7224 resolution: "rw@npm:1.3.3"
7225 checksum: b1e1ef37d1e79d9dc7050787866e30b6ddcb2625149276045c262c6b4d53075ddc35f387a856a8e76f0d0df59f4cd58fe24707e40797ebee66e542b840ed6a53
7226 languageName: node
7227 linkType: hard
7228
6435"safe-array-concat@npm:^1.0.0": 7229"safe-array-concat@npm:^1.0.0":
6436 version: 1.0.0 7230 version: 1.0.0
6437 resolution: "safe-array-concat@npm:1.0.0" 7231 resolution: "safe-array-concat@npm:1.0.0"
@@ -6646,7 +7440,7 @@ __metadata:
6646 languageName: node 7440 languageName: node
6647 linkType: hard 7441 linkType: hard
6648 7442
6649"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.3": 7443"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3":
6650 version: 4.2.3 7444 version: 4.2.3
6651 resolution: "string-width@npm:4.2.3" 7445 resolution: "string-width@npm:4.2.3"
6652 dependencies: 7446 dependencies:
@@ -7493,7 +8287,7 @@ __metadata:
7493 languageName: node 8287 languageName: node
7494 linkType: hard 8288 linkType: hard
7495 8289
7496"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 8290"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0":
7497 version: 7.0.0 8291 version: 7.0.0
7498 resolution: "wrap-ansi@npm:7.0.0" 8292 resolution: "wrap-ansi@npm:7.0.0"
7499 dependencies: 8293 dependencies:
@@ -7529,6 +8323,13 @@ __metadata:
7529 languageName: node 8323 languageName: node
7530 linkType: hard 8324 linkType: hard
7531 8325
8326"y18n@npm:^5.0.5":
8327 version: 5.0.8
8328 resolution: "y18n@npm:5.0.8"
8329 checksum: 4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249
8330 languageName: node
8331 linkType: hard
8332
7532"yallist@npm:^3.0.2": 8333"yallist@npm:^3.0.2":
7533 version: 3.1.1 8334 version: 3.1.1
7534 resolution: "yallist@npm:3.1.1" 8335 resolution: "yallist@npm:3.1.1"
@@ -7550,6 +8351,28 @@ __metadata:
7550 languageName: node 8351 languageName: node
7551 linkType: hard 8352 linkType: hard
7552 8353
8354"yargs-parser@npm:^21.1.1":
8355 version: 21.1.1
8356 resolution: "yargs-parser@npm:21.1.1"
8357 checksum: f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2
8358 languageName: node
8359 linkType: hard
8360
8361"yargs@npm:17.7.2":
8362 version: 17.7.2
8363 resolution: "yargs@npm:17.7.2"
8364 dependencies:
8365 cliui: "npm:^8.0.1"
8366 escalade: "npm:^3.1.1"
8367 get-caller-file: "npm:^2.0.5"
8368 require-directory: "npm:^2.1.1"
8369 string-width: "npm:^4.2.3"
8370 y18n: "npm:^5.0.5"
8371 yargs-parser: "npm:^21.1.1"
8372 checksum: ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05
8373 languageName: node
8374 linkType: hard
8375
7553"yocto-queue@npm:^0.1.0": 8376"yocto-queue@npm:^0.1.0":
7554 version: 0.1.0 8377 version: 0.1.0
7555 resolution: "yocto-queue@npm:0.1.0" 8378 resolution: "yocto-queue@npm:0.1.0"