diff options
author | 2023-08-23 03:36:25 +0200 | |
---|---|---|
committer | 2023-08-23 03:36:25 +0200 | |
commit | 0e54d399424374d497d08a8631c4761dece57ceb (patch) | |
tree | bd0873080b4bc3b81984852def5e435e51292d0d | |
parent | fix: predicate value translation (diff) | |
download | refinery-0e54d399424374d497d08a8631c4761dece57ceb.tar.gz refinery-0e54d399424374d497d08a8631c4761dece57ceb.tar.zst refinery-0e54d399424374d497d08a8631c4761dece57ceb.zip |
feat: dot visualization
-rw-r--r-- | .yarn/patches/d3-graphviz-npm-5.1.0-ba6bed3fec.patch | 82 | ||||
-rw-r--r-- | subprojects/frontend/config/graphvizUMDVitePlugin.ts | 63 | ||||
-rw-r--r-- | subprojects/frontend/package.json | 13 | ||||
-rw-r--r-- | subprojects/frontend/src/editor/EditorStore.ts | 5 | ||||
-rw-r--r-- | subprojects/frontend/src/graph/GraphArea.tsx | 318 | ||||
-rw-r--r-- | subprojects/frontend/src/graph/GraphPane.tsx | 30 | ||||
-rw-r--r-- | subprojects/frontend/src/xtext/SemanticsService.ts | 12 | ||||
-rw-r--r-- | subprojects/frontend/src/xtext/xtextServiceResults.ts | 17 | ||||
-rw-r--r-- | subprojects/frontend/vite.config.ts | 2 | ||||
-rw-r--r-- | subprojects/language-web/src/main/java/tools/refinery/language/web/SecurityHeadersFilter.java | 4 | ||||
-rw-r--r-- | yarn.lock | 917 |
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 @@ | |||
1 | diff --git a/src/dot.js b/src/dot.js | ||
2 | index 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); | ||
52 | diff --git a/src/graphviz.js b/src/graphviz.js | ||
53 | index 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 @@ | |||
1 | import { readFile } from 'node:fs/promises'; | ||
2 | import path from 'node:path'; | ||
3 | |||
4 | import pnpapi from 'pnpapi'; | ||
5 | import type { PluginOption, ResolvedConfig } from 'vite'; | ||
6 | |||
7 | // Use a CJS file as the PnP resolution issuer to force resolution to a non-ESM export. | ||
8 | const issuerFileName = 'worker.cjs'; | ||
9 | |||
10 | export 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'; | |||
28 | import type PWAStore from '../PWAStore'; | 28 | import type PWAStore from '../PWAStore'; |
29 | import getLogger from '../utils/getLogger'; | 29 | import getLogger from '../utils/getLogger'; |
30 | import type XtextClient from '../xtext/XtextClient'; | 30 | import type XtextClient from '../xtext/XtextClient'; |
31 | import type { SemanticsSuccessResult } from '../xtext/xtextServiceResults'; | ||
31 | 32 | ||
32 | import EditorErrors from './EditorErrors'; | 33 | import EditorErrors from './EditorErrors'; |
33 | import LintPanelStore from './LintPanelStore'; | 34 | import 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 | |||
7 | import Box from '@mui/material/Box'; | ||
8 | import * as d3 from 'd3'; | ||
9 | import { type Graphviz, graphviz } from 'd3-graphviz'; | ||
10 | import type { BaseType, Selection } from 'd3-selection'; | ||
11 | import { reaction, type IReactionDisposer } from 'mobx'; | ||
12 | import { useCallback, useRef, useState } from 'react'; | ||
13 | import { useResizeDetector } from 'react-resize-detector'; | ||
14 | |||
15 | import { useRootStore } from '../RootStoreProvider'; | ||
16 | import type { SemanticsSuccessResult } from '../xtext/xtextServiceResults'; | ||
17 | |||
18 | function 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 | |||
74 | interface Transform { | ||
75 | x: number; | ||
76 | y: number; | ||
77 | k: number; | ||
78 | } | ||
79 | |||
80 | export 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 | ||
7 | import Stack from '@mui/material/Stack'; | 7 | import Stack from '@mui/material/Stack'; |
8 | import { styled } from '@mui/material/styles'; | 8 | import { Suspense, lazy } from 'react'; |
9 | import stringify from 'json-stringify-pretty-compact'; | ||
10 | import { observer } from 'mobx-react-lite'; | ||
11 | 9 | ||
12 | import { useRootStore } from '../RootStoreProvider'; | 10 | import Loading from '../Loading'; |
13 | 11 | ||
14 | const StyledCode = styled('code')(({ theme }) => ({ | 12 | const GraphArea = lazy(() => import('./GraphArea')); |
15 | ...theme.typography.editor, | ||
16 | fontWeight: theme.typography.fontWeightEditorNormal, | ||
17 | margin: theme.spacing(2), | ||
18 | whiteSpace: 'pre', | ||
19 | })); | ||
20 | 13 | ||
21 | export default observer(function GraphPane(): JSX.Element { | 14 | export 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 | ||
127 | export type FormattingResult = z.infer<typeof FormattingResult>; | 127 | export type FormattingResult = z.infer<typeof FormattingResult>; |
128 | 128 | ||
129 | export const SemanticsResult = z.object({ | 129 | export 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 | ||
137 | export type SemanticsSuccessResult = z.infer<typeof SemanticsSuccessResult>; | ||
138 | |||
139 | export const SemanticsResult = z.union([ | ||
140 | z.object({ error: z.string() }), | ||
141 | z.object({ issues: Issue.array() }), | ||
142 | SemanticsSuccessResult, | ||
143 | ]); | ||
144 | |||
134 | export type SemanticsResult = z.infer<typeof SemanticsResult>; | 145 | export 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'; |
19 | import fetchPackageMetadata from './config/fetchPackageMetadata'; | 19 | import fetchPackageMetadata from './config/fetchPackageMetadata'; |
20 | import graphvizUMDVitePlugin from './config/graphvizUMDVitePlugin'; | ||
20 | import manifest from './config/manifest'; | 21 | import manifest from './config/manifest'; |
21 | import minifyHTMLVitePlugin from './config/minifyHTMLVitePlugin'; | 22 | import minifyHTMLVitePlugin from './config/minifyHTMLVitePlugin'; |
22 | import preloadFontsVitePlugin from './config/preloadFontsVitePlugin'; | 23 | import 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"); |
@@ -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" |