├── .babelrc ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── LICENSE ├── README.md ├── _config.yml ├── examples ├── 2d │ ├── index.html │ ├── miserables.json │ └── preview.png ├── basic │ ├── index.html │ ├── miserables.json │ └── preview.png ├── index.html └── large-graph │ ├── blocks.json │ ├── index.html │ └── preview.png ├── package.json ├── rollup.config.js ├── src └── index.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "modules": false }] 4 | ], 5 | "plugins": [] 6 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Vasco Asturiano <vastur@gmail.com> 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## aframe-forcegraph-component 2 | 3 | [![Version](http://img.shields.io/npm/v/aframe-forcegraph-component.svg?style=flat-square)](https://npmjs.org/package/aframe-forcegraph-component) 4 | [![License](http://img.shields.io/npm/l/aframe-forcegraph-component.svg?style=flat-square)](https://npmjs.org/package/aframe-forcegraph-component) 5 | 6 | A 3D Force-Directed Graph component for [A-Frame](https://aframe.io). 7 | 8 |

9 | 10 | 11 | 12 |

13 | 14 | An A-Frame entity component to represent a graph data structure in a VR environment using a force-directed iterative layout. 15 | Uses [three-forcegraph](https://github.com/vasturiano/three-forcegraph) as the underlying ThreeJS component to manage the graph object. 16 | 17 | See also the [VR](https://github.com/vasturiano/3d-force-graph-vr) and [AR](https://github.com/vasturiano/3d-force-graph-ar) standalone component versions. 18 | 19 | ### API 20 | 21 | | Property | Description | Default Value | 22 | | -------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------- | 23 | | json-url | URL of JSON file to load graph data directly from. Will override content of the *nodes* and *links* component properties so either use one or the other. JSON should contain an object with two list properties: *nodes* and *links*. | | 24 | | nodes | List of node objects. *Example*: ```[{"id": 1, "name": "first"}, {"id": 2, "name": "second"}]``` | [] | 25 | | links | List of link objects. *Example*: ```[{"source": 1, "target": 2}]``` | [] | 26 | | num-dimensions | Number of dimensions to run the force simulation on (1, 2 or 3). | 3 | 27 | | dag-mode | Apply layout constraints based on the graph directionality. Only works for [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph) graph structures (without cycles). Choice between `td` (top-down), `bu` (bottom-up), `lr` (left-to-right), `rl` (right-to-left), `zout` (near-to-far), `zin` (far-to-near), `radialout` (outwards-radially) or `radialin` (inwards-radially). | | 28 | | dag-level-distance | If `dag-mode` is engaged, this specifies the distance between the different graph depths. | *auto-derived from the number of nodes* | 29 | | dag-node-filter | Specify nodes to ignore during the DAG layout processing. This accessor method receives a node object and should return a `boolean` value indicating whether the node is to be included. | `node => true` | 30 | | on-dag-error | Callback to invoke if a cycle is encountered while processing the data structure for a DAG layout. The loop segment of the graph is included for information, as an array of node ids. By default an exception will be thrown whenever a loop is encountered. | *throws exception* | 31 | | node-rel-size | Node sphere volume per value unit. | 4 | 32 | | node-id | Node object accessor attribute for unique node id (used in link objects source/target). | id | 33 | | node-val | Node object accessor function, attribute or a numeric constant for the node numeric value (affects sphere volume). | val | 34 | | node-resolution | Geometric resolution of each node, expressed in how many slice segments to divide the circumference. Higher values yield smoother spheres. | 8 | 35 | | node-visibility | Node object accessor function, attribute or a boolean constant for whether to display the node. | true | 36 | | node-color | Node object accessor function or attribute for node color (affects sphere color). | color | 37 | | node-auto-color-by | Node object accessor function (`fn(node)`) or attribute (e.g. `'type'`) to automatically group colors by. Only affects nodes without a color attribute. | | 38 | | node-opacity | Nodes sphere opacity, between [0,1]. | 0.75 | 39 | | node-three-object | Node object accessor function or attribute for generating a custom 3d object to render as graph nodes. Should return an instance of [ThreeJS Object3d](https://threejs.org/docs/index.html#api/core/Object3D). If a falsy value is returned, the default 3d object type will be used instead for that node. | *default node object is a sphere, sized according to `val` and styled according to `color`.* | 40 | | node-three-object-extend | Node object accessor function, attribute or a boolean value for whether to replace the default node when using a custom `nodeThreeObject` (`false`) or to extend it (`true`). | false | 41 | | link-source | Link object accessor attribute referring to id of source node. | source | 42 | | link-target | Link object accessor attribute referring to id of target node. | target | 43 | | link-visibility | Link object accessor function, attribute or a boolean constant for whether to display the link line. A value of `false` maintains the link force without rendering it. | true | | desc | 44 | | link-color | Link object accessor function or attribute for line color. | color | 45 | | link-auto-color-by | Link object accessor function (`fn(link)`) or attribute (e.g. `'type'`) to automatically group colors by. Only affects links without a color attribute. | | 46 | | link-opacity | Line opacity of links, between [0,1]. | 0.2 | 47 | | link-width | Link object accessor function, attribute or a numeric constant for the link line width. A value of zero will render a [ThreeJS Line](https://threejs.org/docs/#api/objects/Line) whose width is constant (`1px`) regardless of distance. Values are rounded to the nearest decimal for indexing purposes. | 0 | 48 | | link-resolution | Geometric resolution of each link, expressed in how many radial segments to divide the cylinder. Higher values yield smoother cylinders. Applicable only to links with positive width. | 6 | 49 | | link-curvature | Link object accessor function, attribute or a numeric constant for the curvature radius of the link line. Curved lines are represented as 3D bezier curves, and any numeric value is accepted. A value of `0` renders a straight line. `1` indicates a radius equal to half of the line length, causing the curve to approximate a semi-circle. For self-referencing links (`source` equal to `target`) the curve is represented as a loop around the node, with length proportional to the curvature value. Lines are curved clockwise for positive values, and counter-clockwise for negative values. Note that rendering curved lines is purely a visual effect and does not affect the behavior of the underlying forces. | 0 | 50 | | link-curve-rotation | Link object accessor function, attribute or a numeric constant for the rotation along the line axis to apply to the curve. Has no effect on straight lines. At `0` rotation, the curve is oriented in the direction of the intersection with the `XY` plane. The rotation angle (in radians) will rotate the curved line clockwise around the "start-to-end" axis from this reference orientation. | 0 | 51 | | link-material | Link object accessor function or attribute for specifying a custom material to style the graph links with. Should return an instance of [ThreeJS Material](https://threejs.org/docs/#api/materials/Material). If a falsy value is returned, the default material will be used instead for that link. | *default link material is [MeshLambertMaterial](https://threejs.org/docs/#api/materials/MeshLambertMaterial) styled according to `color` and `opacity`.* | 52 | | link-three-object | Link object accessor function or attribute for generating a custom 3d object to render as graph links. Should return an instance of [ThreeJS Object3d](https://threejs.org/docs/index.html#api/core/Object3D). If a falsy value is returned, the default 3d object type will be used instead for that link. | *default link object is a line or cylinder, sized according to `width` and styled according to `material`.* | 53 | | link-three-object-extend | Link object accessor function, attribute or a boolean value for whether to replace the default link when using a custom `linkThreeObject` (`false`) or to extend it (`true`). | false | 54 | | link-position-update | Getter/setter for the custom function to call for updating the position of links at every render iteration. It receives the respective link `ThreeJS Object3d`, the `start` and `end` coordinates of the link (`{x,y,z}` each), and the link's `data`. If the function returns a truthy value, the regular position update function will not run for that link. | | 55 | | link-directional-arrow-length | Link object accessor function, attribute or a numeric constant for the length of the arrow head indicating the link directionality. The arrow is displayed directly over the link line, and points in the direction of `source` > `target`. A value of `0` hides the arrow. | 0 | 56 | | link-directional-arrow-color | Link object accessor function or attribute for the color of the arrow head. | color | 57 | | link-directional-arrow-rel-pos | Link object accessor function, attribute or a numeric constant for the longitudinal position of the arrow head along the link line, expressed as a ratio between `0` and `1`, where `0` indicates immediately next to the `source` node, `1` next to the `target` node, and `0.5` right in the middle. | 0.5 | 58 | | link-directional-arrow-resolution | Getter/setter for the geometric resolution of the arrow head, expressed in how many slice segments to divide the cone base circumference. Higher values yield smoother arrows. | 8 | 59 | | link-directional-particles | Link object accessor function, attribute or a numeric constant for the number of particles (small spheres) to display over the link line. The particles are distributed equi-spaced along the line, travel in the direction `source` > `target`, and can be used to indicate link directionality. | 0 | 60 | | link-directional-particle-speed | Link object accessor function, attribute or a numeric constant for the directional particles speed, expressed as the ratio of the link length to travel per frame. Values above `0.5` are discouraged. | 0.01 | 61 | | link-directional-particle-width | Link object accessor function, attribute or a numeric constant for the directional particles width. Values are rounded to the nearest decimal for indexing purposes. | 0.5 | 62 | | link-directional-particle-color | Link object accessor function or attribute for the directional particles color. | color | 63 | | link-directional-particle-resolution | Geometric resolution of each directional particle, expressed in how many slice segments to divide the circumference. Higher values yield smoother particles. | 4 | 64 | | on-node-hover | Callback function for node hover events, using any [raycaster based](https://aframe.io/docs/1.2.0/components/raycaster.html) controller. The node object (or `null` if there's no node directly on the ray) is included as the first argument, and the previous node object (or `null`) as second argument. || 65 | | on-link-hover | Callback function for link hover events, using any [raycaster based](https://aframe.io/docs/1.2.0/components/raycaster.html) controller. The link object (or `null` if there's no link directly on the ray) is included as the first argument, and the previous link object (or `null`) as second argument. || 66 | | on-node-click | Callback function for node click events. The node object is included as sole argument. || 67 | | on-link-click | Callback function for link click events. The link object is included as sole argument. || 68 | | force-engine | Which force-simulation engine to use ([*d3*](https://github.com/vasturiano/d3-force-3d) or [*ngraph*](https://github.com/anvaka/ngraph.forcelayout)). | d3 | 69 | | d3-alpha-min | [Simulation alpha min](https://github.com/vasturiano/d3-force-3d#simulation_alphaMin) parameter, only applicable if using the d3 simulation engine. | 0 | 70 | | d3-alpha-decay | [Simulation intensity decay](https://github.com/vasturiano/d3-force-3d#simulation_alphaDecay) parameter, only applicable if using the d3 simulation engine. | 0.0228 | 71 | | d3-velocity-decay | Nodes' [velocity decay](https://github.com/vasturiano/d3-force-3d#simulation_velocityDecay) that simulates the medium resistance, only applicable if using the d3 simulation engine. | 0.4 | 72 | | ngraph-physics | Specify custom physics configuration for ngraph, according to its [configuration object](https://github.com/anvaka/ngraph.forcelayout#configuring-physics) syntax. Only applicable if using the ngraph simulation engine. | *ngraph default* | 73 | | warmup-ticks | How many times to tick the force simulation engine at ignition before starting to render. | 0 | 74 | | cooldown-ticks | How many times to tick the force simulation engine after rendering begins before stopping and freezing the engine. | Infinity | 75 | | cooldown-time | How long (ms) to tick the force simulation engine for after rendering begins before stopping and freezing the engine. | 15000 | 76 | | on-engine-tick | Callback function invoked at every tick of the simulation engine. || 77 | | on-engine-stop | Callback function invoked when the simulation engine stops and the layout is frozen. || 78 | 79 | There are also internal methods that can be invoked via the [components object](https://aframe.io/docs/0.8.0/core/component.html#accessing-a-component%E2%80%99s-members-and-methods): 80 | 81 | | Method | Arguments | Description | 82 | | --- | --- | --- | 83 | | d3Force | id: string, [force: function] | Getter/setter for the internal forces that control the d3 simulation engine. Follows the same interface as `d3-force-3d`'s [simulation.force](https://github.com/vasturiano/d3-force-3d#simulation_force). Three forces are included by default: `'link'` (based on [forceLink](https://github.com/vasturiano/d3-force-3d#forceLink)), `'charge'` (based on [forceManyBody](https://github.com/vasturiano/d3-force-3d#forceManyBody)) and `'center'` (based on [forceCenter](https://github.com/vasturiano/d3-force-3d#forceCenter)). Each of these forces can be reconfigured, or new forces can be added to the system. This method is only applicable if using the d3 simulation engine. | 84 | | d3ReheatSimulation | - | Reheats the force simulation engine, by setting the `alpha` value to `1`. Only applicable if using the d3 simulation engine. | 85 | | emitParticle | link: object | An alternative mechanism for generating particles, this method emits a non-cyclical single particle within a specific link. The emitted particle shares the styling (speed, width, color) of the regular particle props. A valid `link` object that is included in `links` should be passed as a single parameter. | 86 | | getGraphBbox | [nodeFilter: function] | Returns the current bounding box of the nodes in the graph, formatted as `{ x: [, ], y: [, ], z: [, ] }`. If no nodes are found, returns `null`. Accepts an optional argument to define a custom node filter: `node => `, which should return a truthy value if the node is to be included. This can be useful to calculate the bounding box of a portion of the graph. | 87 | | refresh | - | Redraws all the nodes/links. | 88 | 89 | ### Installation 90 | 91 | ```js 92 | import 'aframe'; 93 | import 'aframe-forcegraph-component'; 94 | ``` 95 | or using a *script* tag 96 | ```html 97 | 98 | 99 | ``` 100 | then 101 | ```html 102 | 103 | 104 | 105 | 106 | 107 | ``` 108 | 109 | ## Giving Back 110 | 111 | [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url) If this project has helped you and you'd like to contribute back, you can always [buy me a ☕](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url)! 112 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /examples/2d/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A-Frame 3D Force-Directed Graph Component - 2D 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /examples/2d/miserables.json: -------------------------------------------------------------------------------- 1 | {"nodes":[{"id":"Myriel","group":1},{"id":"Napoleon","group":1},{"id":"Mlle.Baptistine","group":1},{"id":"Mme.Magloire","group":1},{"id":"CountessdeLo","group":1},{"id":"Geborand","group":1},{"id":"Champtercier","group":1},{"id":"Cravatte","group":1},{"id":"Count","group":1},{"id":"OldMan","group":1},{"id":"Labarre","group":2},{"id":"Valjean","group":2},{"id":"Marguerite","group":3},{"id":"Mme.deR","group":2},{"id":"Isabeau","group":2},{"id":"Gervais","group":2},{"id":"Tholomyes","group":3},{"id":"Listolier","group":3},{"id":"Fameuil","group":3},{"id":"Blacheville","group":3},{"id":"Favourite","group":3},{"id":"Dahlia","group":3},{"id":"Zephine","group":3},{"id":"Fantine","group":3},{"id":"Mme.Thenardier","group":4},{"id":"Thenardier","group":4},{"id":"Cosette","group":5},{"id":"Javert","group":4},{"id":"Fauchelevent","group":0},{"id":"Bamatabois","group":2},{"id":"Perpetue","group":3},{"id":"Simplice","group":2},{"id":"Scaufflaire","group":2},{"id":"Woman1","group":2},{"id":"Judge","group":2},{"id":"Champmathieu","group":2},{"id":"Brevet","group":2},{"id":"Chenildieu","group":2},{"id":"Cochepaille","group":2},{"id":"Pontmercy","group":4},{"id":"Boulatruelle","group":6},{"id":"Eponine","group":4},{"id":"Anzelma","group":4},{"id":"Woman2","group":5},{"id":"MotherInnocent","group":0},{"id":"Gribier","group":0},{"id":"Jondrette","group":7},{"id":"Mme.Burgon","group":7},{"id":"Gavroche","group":8},{"id":"Gillenormand","group":5},{"id":"Magnon","group":5},{"id":"Mlle.Gillenormand","group":5},{"id":"Mme.Pontmercy","group":5},{"id":"Mlle.Vaubois","group":5},{"id":"Lt.Gillenormand","group":5},{"id":"Marius","group":8},{"id":"BaronessT","group":5},{"id":"Mabeuf","group":8},{"id":"Enjolras","group":8},{"id":"Combeferre","group":8},{"id":"Prouvaire","group":8},{"id":"Feuilly","group":8},{"id":"Courfeyrac","group":8},{"id":"Bahorel","group":8},{"id":"Bossuet","group":8},{"id":"Joly","group":8},{"id":"Grantaire","group":8},{"id":"MotherPlutarch","group":9},{"id":"Gueulemer","group":4},{"id":"Babet","group":4},{"id":"Claquesous","group":4},{"id":"Montparnasse","group":4},{"id":"Toussaint","group":5},{"id":"Child1","group":10},{"id":"Child2","group":10},{"id":"Brujon","group":4},{"id":"Mme.Hucheloup","group":8}],"links":[{"source":"Napoleon","target":"Myriel","value":1},{"source":"Mlle.Baptistine","target":"Myriel","value":8},{"source":"Mme.Magloire","target":"Myriel","value":10},{"source":"Mme.Magloire","target":"Mlle.Baptistine","value":6},{"source":"CountessdeLo","target":"Myriel","value":1},{"source":"Geborand","target":"Myriel","value":1},{"source":"Champtercier","target":"Myriel","value":1},{"source":"Cravatte","target":"Myriel","value":1},{"source":"Count","target":"Myriel","value":2},{"source":"OldMan","target":"Myriel","value":1},{"source":"Valjean","target":"Labarre","value":1},{"source":"Valjean","target":"Mme.Magloire","value":3},{"source":"Valjean","target":"Mlle.Baptistine","value":3},{"source":"Valjean","target":"Myriel","value":5},{"source":"Marguerite","target":"Valjean","value":1},{"source":"Mme.deR","target":"Valjean","value":1},{"source":"Isabeau","target":"Valjean","value":1},{"source":"Gervais","target":"Valjean","value":1},{"source":"Listolier","target":"Tholomyes","value":4},{"source":"Fameuil","target":"Tholomyes","value":4},{"source":"Fameuil","target":"Listolier","value":4},{"source":"Blacheville","target":"Tholomyes","value":4},{"source":"Blacheville","target":"Listolier","value":4},{"source":"Blacheville","target":"Fameuil","value":4},{"source":"Favourite","target":"Tholomyes","value":3},{"source":"Favourite","target":"Listolier","value":3},{"source":"Favourite","target":"Fameuil","value":3},{"source":"Favourite","target":"Blacheville","value":4},{"source":"Dahlia","target":"Tholomyes","value":3},{"source":"Dahlia","target":"Listolier","value":3},{"source":"Dahlia","target":"Fameuil","value":3},{"source":"Dahlia","target":"Blacheville","value":3},{"source":"Dahlia","target":"Favourite","value":5},{"source":"Zephine","target":"Tholomyes","value":3},{"source":"Zephine","target":"Listolier","value":3},{"source":"Zephine","target":"Fameuil","value":3},{"source":"Zephine","target":"Blacheville","value":3},{"source":"Zephine","target":"Favourite","value":4},{"source":"Zephine","target":"Dahlia","value":4},{"source":"Fantine","target":"Tholomyes","value":3},{"source":"Fantine","target":"Listolier","value":3},{"source":"Fantine","target":"Fameuil","value":3},{"source":"Fantine","target":"Blacheville","value":3},{"source":"Fantine","target":"Favourite","value":4},{"source":"Fantine","target":"Dahlia","value":4},{"source":"Fantine","target":"Zephine","value":4},{"source":"Fantine","target":"Marguerite","value":2},{"source":"Fantine","target":"Valjean","value":9},{"source":"Mme.Thenardier","target":"Fantine","value":2},{"source":"Mme.Thenardier","target":"Valjean","value":7},{"source":"Thenardier","target":"Mme.Thenardier","value":13},{"source":"Thenardier","target":"Fantine","value":1},{"source":"Thenardier","target":"Valjean","value":12},{"source":"Cosette","target":"Mme.Thenardier","value":4},{"source":"Cosette","target":"Valjean","value":31},{"source":"Cosette","target":"Tholomyes","value":1},{"source":"Cosette","target":"Thenardier","value":1},{"source":"Javert","target":"Valjean","value":17},{"source":"Javert","target":"Fantine","value":5},{"source":"Javert","target":"Thenardier","value":5},{"source":"Javert","target":"Mme.Thenardier","value":1},{"source":"Javert","target":"Cosette","value":1},{"source":"Fauchelevent","target":"Valjean","value":8},{"source":"Fauchelevent","target":"Javert","value":1},{"source":"Bamatabois","target":"Fantine","value":1},{"source":"Bamatabois","target":"Javert","value":1},{"source":"Bamatabois","target":"Valjean","value":2},{"source":"Perpetue","target":"Fantine","value":1},{"source":"Simplice","target":"Perpetue","value":2},{"source":"Simplice","target":"Valjean","value":3},{"source":"Simplice","target":"Fantine","value":2},{"source":"Simplice","target":"Javert","value":1},{"source":"Scaufflaire","target":"Valjean","value":1},{"source":"Woman1","target":"Valjean","value":2},{"source":"Woman1","target":"Javert","value":1},{"source":"Judge","target":"Valjean","value":3},{"source":"Judge","target":"Bamatabois","value":2},{"source":"Champmathieu","target":"Valjean","value":3},{"source":"Champmathieu","target":"Judge","value":3},{"source":"Champmathieu","target":"Bamatabois","value":2},{"source":"Brevet","target":"Judge","value":2},{"source":"Brevet","target":"Champmathieu","value":2},{"source":"Brevet","target":"Valjean","value":2},{"source":"Brevet","target":"Bamatabois","value":1},{"source":"Chenildieu","target":"Judge","value":2},{"source":"Chenildieu","target":"Champmathieu","value":2},{"source":"Chenildieu","target":"Brevet","value":2},{"source":"Chenildieu","target":"Valjean","value":2},{"source":"Chenildieu","target":"Bamatabois","value":1},{"source":"Cochepaille","target":"Judge","value":2},{"source":"Cochepaille","target":"Champmathieu","value":2},{"source":"Cochepaille","target":"Brevet","value":2},{"source":"Cochepaille","target":"Chenildieu","value":2},{"source":"Cochepaille","target":"Valjean","value":2},{"source":"Cochepaille","target":"Bamatabois","value":1},{"source":"Pontmercy","target":"Thenardier","value":1},{"source":"Boulatruelle","target":"Thenardier","value":1},{"source":"Eponine","target":"Mme.Thenardier","value":2},{"source":"Eponine","target":"Thenardier","value":3},{"source":"Anzelma","target":"Eponine","value":2},{"source":"Anzelma","target":"Thenardier","value":2},{"source":"Anzelma","target":"Mme.Thenardier","value":1},{"source":"Woman2","target":"Valjean","value":3},{"source":"Woman2","target":"Cosette","value":1},{"source":"Woman2","target":"Javert","value":1},{"source":"MotherInnocent","target":"Fauchelevent","value":3},{"source":"MotherInnocent","target":"Valjean","value":1},{"source":"Gribier","target":"Fauchelevent","value":2},{"source":"Mme.Burgon","target":"Jondrette","value":1},{"source":"Gavroche","target":"Mme.Burgon","value":2},{"source":"Gavroche","target":"Thenardier","value":1},{"source":"Gavroche","target":"Javert","value":1},{"source":"Gavroche","target":"Valjean","value":1},{"source":"Gillenormand","target":"Cosette","value":3},{"source":"Gillenormand","target":"Valjean","value":2},{"source":"Magnon","target":"Gillenormand","value":1},{"source":"Magnon","target":"Mme.Thenardier","value":1},{"source":"Mlle.Gillenormand","target":"Gillenormand","value":9},{"source":"Mlle.Gillenormand","target":"Cosette","value":2},{"source":"Mlle.Gillenormand","target":"Valjean","value":2},{"source":"Mme.Pontmercy","target":"Mlle.Gillenormand","value":1},{"source":"Mme.Pontmercy","target":"Pontmercy","value":1},{"source":"Mlle.Vaubois","target":"Mlle.Gillenormand","value":1},{"source":"Lt.Gillenormand","target":"Mlle.Gillenormand","value":2},{"source":"Lt.Gillenormand","target":"Gillenormand","value":1},{"source":"Lt.Gillenormand","target":"Cosette","value":1},{"source":"Marius","target":"Mlle.Gillenormand","value":6},{"source":"Marius","target":"Gillenormand","value":12},{"source":"Marius","target":"Pontmercy","value":1},{"source":"Marius","target":"Lt.Gillenormand","value":1},{"source":"Marius","target":"Cosette","value":21},{"source":"Marius","target":"Valjean","value":19},{"source":"Marius","target":"Tholomyes","value":1},{"source":"Marius","target":"Thenardier","value":2},{"source":"Marius","target":"Eponine","value":5},{"source":"Marius","target":"Gavroche","value":4},{"source":"BaronessT","target":"Gillenormand","value":1},{"source":"BaronessT","target":"Marius","value":1},{"source":"Mabeuf","target":"Marius","value":1},{"source":"Mabeuf","target":"Eponine","value":1},{"source":"Mabeuf","target":"Gavroche","value":1},{"source":"Enjolras","target":"Marius","value":7},{"source":"Enjolras","target":"Gavroche","value":7},{"source":"Enjolras","target":"Javert","value":6},{"source":"Enjolras","target":"Mabeuf","value":1},{"source":"Enjolras","target":"Valjean","value":4},{"source":"Combeferre","target":"Enjolras","value":15},{"source":"Combeferre","target":"Marius","value":5},{"source":"Combeferre","target":"Gavroche","value":6},{"source":"Combeferre","target":"Mabeuf","value":2},{"source":"Prouvaire","target":"Gavroche","value":1},{"source":"Prouvaire","target":"Enjolras","value":4},{"source":"Prouvaire","target":"Combeferre","value":2},{"source":"Feuilly","target":"Gavroche","value":2},{"source":"Feuilly","target":"Enjolras","value":6},{"source":"Feuilly","target":"Prouvaire","value":2},{"source":"Feuilly","target":"Combeferre","value":5},{"source":"Feuilly","target":"Mabeuf","value":1},{"source":"Feuilly","target":"Marius","value":1},{"source":"Courfeyrac","target":"Marius","value":9},{"source":"Courfeyrac","target":"Enjolras","value":17},{"source":"Courfeyrac","target":"Combeferre","value":13},{"source":"Courfeyrac","target":"Gavroche","value":7},{"source":"Courfeyrac","target":"Mabeuf","value":2},{"source":"Courfeyrac","target":"Eponine","value":1},{"source":"Courfeyrac","target":"Feuilly","value":6},{"source":"Courfeyrac","target":"Prouvaire","value":3},{"source":"Bahorel","target":"Combeferre","value":5},{"source":"Bahorel","target":"Gavroche","value":5},{"source":"Bahorel","target":"Courfeyrac","value":6},{"source":"Bahorel","target":"Mabeuf","value":2},{"source":"Bahorel","target":"Enjolras","value":4},{"source":"Bahorel","target":"Feuilly","value":3},{"source":"Bahorel","target":"Prouvaire","value":2},{"source":"Bahorel","target":"Marius","value":1},{"source":"Bossuet","target":"Marius","value":5},{"source":"Bossuet","target":"Courfeyrac","value":12},{"source":"Bossuet","target":"Gavroche","value":5},{"source":"Bossuet","target":"Bahorel","value":4},{"source":"Bossuet","target":"Enjolras","value":10},{"source":"Bossuet","target":"Feuilly","value":6},{"source":"Bossuet","target":"Prouvaire","value":2},{"source":"Bossuet","target":"Combeferre","value":9},{"source":"Bossuet","target":"Mabeuf","value":1},{"source":"Bossuet","target":"Valjean","value":1},{"source":"Joly","target":"Bahorel","value":5},{"source":"Joly","target":"Bossuet","value":7},{"source":"Joly","target":"Gavroche","value":3},{"source":"Joly","target":"Courfeyrac","value":5},{"source":"Joly","target":"Enjolras","value":5},{"source":"Joly","target":"Feuilly","value":5},{"source":"Joly","target":"Prouvaire","value":2},{"source":"Joly","target":"Combeferre","value":5},{"source":"Joly","target":"Mabeuf","value":1},{"source":"Joly","target":"Marius","value":2},{"source":"Grantaire","target":"Bossuet","value":3},{"source":"Grantaire","target":"Enjolras","value":3},{"source":"Grantaire","target":"Combeferre","value":1},{"source":"Grantaire","target":"Courfeyrac","value":2},{"source":"Grantaire","target":"Joly","value":2},{"source":"Grantaire","target":"Gavroche","value":1},{"source":"Grantaire","target":"Bahorel","value":1},{"source":"Grantaire","target":"Feuilly","value":1},{"source":"Grantaire","target":"Prouvaire","value":1},{"source":"MotherPlutarch","target":"Mabeuf","value":3},{"source":"Gueulemer","target":"Thenardier","value":5},{"source":"Gueulemer","target":"Valjean","value":1},{"source":"Gueulemer","target":"Mme.Thenardier","value":1},{"source":"Gueulemer","target":"Javert","value":1},{"source":"Gueulemer","target":"Gavroche","value":1},{"source":"Gueulemer","target":"Eponine","value":1},{"source":"Babet","target":"Thenardier","value":6},{"source":"Babet","target":"Gueulemer","value":6},{"source":"Babet","target":"Valjean","value":1},{"source":"Babet","target":"Mme.Thenardier","value":1},{"source":"Babet","target":"Javert","value":2},{"source":"Babet","target":"Gavroche","value":1},{"source":"Babet","target":"Eponine","value":1},{"source":"Claquesous","target":"Thenardier","value":4},{"source":"Claquesous","target":"Babet","value":4},{"source":"Claquesous","target":"Gueulemer","value":4},{"source":"Claquesous","target":"Valjean","value":1},{"source":"Claquesous","target":"Mme.Thenardier","value":1},{"source":"Claquesous","target":"Javert","value":1},{"source":"Claquesous","target":"Eponine","value":1},{"source":"Claquesous","target":"Enjolras","value":1},{"source":"Montparnasse","target":"Javert","value":1},{"source":"Montparnasse","target":"Babet","value":2},{"source":"Montparnasse","target":"Gueulemer","value":2},{"source":"Montparnasse","target":"Claquesous","value":2},{"source":"Montparnasse","target":"Valjean","value":1},{"source":"Montparnasse","target":"Gavroche","value":1},{"source":"Montparnasse","target":"Eponine","value":1},{"source":"Montparnasse","target":"Thenardier","value":1},{"source":"Toussaint","target":"Cosette","value":2},{"source":"Toussaint","target":"Javert","value":1},{"source":"Toussaint","target":"Valjean","value":1},{"source":"Child1","target":"Gavroche","value":2},{"source":"Child2","target":"Gavroche","value":2},{"source":"Child2","target":"Child1","value":3},{"source":"Brujon","target":"Babet","value":3},{"source":"Brujon","target":"Gueulemer","value":3},{"source":"Brujon","target":"Thenardier","value":3},{"source":"Brujon","target":"Gavroche","value":1},{"source":"Brujon","target":"Eponine","value":1},{"source":"Brujon","target":"Claquesous","value":1},{"source":"Brujon","target":"Montparnasse","value":1},{"source":"Mme.Hucheloup","target":"Bossuet","value":1},{"source":"Mme.Hucheloup","target":"Joly","value":1},{"source":"Mme.Hucheloup","target":"Grantaire","value":1},{"source":"Mme.Hucheloup","target":"Bahorel","value":1},{"source":"Mme.Hucheloup","target":"Courfeyrac","value":1},{"source":"Mme.Hucheloup","target":"Gavroche","value":1},{"source":"Mme.Hucheloup","target":"Enjolras","value":1}]} -------------------------------------------------------------------------------- /examples/2d/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vasturiano/aframe-forcegraph-component/3c4ef28091e288b6b6e8bc9db556d80736b73805/examples/2d/preview.png -------------------------------------------------------------------------------- /examples/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A-Frame 3D Force-Directed Graph Component - Basic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 30 | 31 | 32 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /examples/basic/miserables.json: -------------------------------------------------------------------------------- 1 | {"nodes":[{"id":"Myriel","group":1},{"id":"Napoleon","group":1},{"id":"Mlle.Baptistine","group":1},{"id":"Mme.Magloire","group":1},{"id":"CountessdeLo","group":1},{"id":"Geborand","group":1},{"id":"Champtercier","group":1},{"id":"Cravatte","group":1},{"id":"Count","group":1},{"id":"OldMan","group":1},{"id":"Labarre","group":2},{"id":"Valjean","group":2},{"id":"Marguerite","group":3},{"id":"Mme.deR","group":2},{"id":"Isabeau","group":2},{"id":"Gervais","group":2},{"id":"Tholomyes","group":3},{"id":"Listolier","group":3},{"id":"Fameuil","group":3},{"id":"Blacheville","group":3},{"id":"Favourite","group":3},{"id":"Dahlia","group":3},{"id":"Zephine","group":3},{"id":"Fantine","group":3},{"id":"Mme.Thenardier","group":4},{"id":"Thenardier","group":4},{"id":"Cosette","group":5},{"id":"Javert","group":4},{"id":"Fauchelevent","group":0},{"id":"Bamatabois","group":2},{"id":"Perpetue","group":3},{"id":"Simplice","group":2},{"id":"Scaufflaire","group":2},{"id":"Woman1","group":2},{"id":"Judge","group":2},{"id":"Champmathieu","group":2},{"id":"Brevet","group":2},{"id":"Chenildieu","group":2},{"id":"Cochepaille","group":2},{"id":"Pontmercy","group":4},{"id":"Boulatruelle","group":6},{"id":"Eponine","group":4},{"id":"Anzelma","group":4},{"id":"Woman2","group":5},{"id":"MotherInnocent","group":0},{"id":"Gribier","group":0},{"id":"Jondrette","group":7},{"id":"Mme.Burgon","group":7},{"id":"Gavroche","group":8},{"id":"Gillenormand","group":5},{"id":"Magnon","group":5},{"id":"Mlle.Gillenormand","group":5},{"id":"Mme.Pontmercy","group":5},{"id":"Mlle.Vaubois","group":5},{"id":"Lt.Gillenormand","group":5},{"id":"Marius","group":8},{"id":"BaronessT","group":5},{"id":"Mabeuf","group":8},{"id":"Enjolras","group":8},{"id":"Combeferre","group":8},{"id":"Prouvaire","group":8},{"id":"Feuilly","group":8},{"id":"Courfeyrac","group":8},{"id":"Bahorel","group":8},{"id":"Bossuet","group":8},{"id":"Joly","group":8},{"id":"Grantaire","group":8},{"id":"MotherPlutarch","group":9},{"id":"Gueulemer","group":4},{"id":"Babet","group":4},{"id":"Claquesous","group":4},{"id":"Montparnasse","group":4},{"id":"Toussaint","group":5},{"id":"Child1","group":10},{"id":"Child2","group":10},{"id":"Brujon","group":4},{"id":"Mme.Hucheloup","group":8}],"links":[{"source":"Napoleon","target":"Myriel","value":1},{"source":"Mlle.Baptistine","target":"Myriel","value":8},{"source":"Mme.Magloire","target":"Myriel","value":10},{"source":"Mme.Magloire","target":"Mlle.Baptistine","value":6},{"source":"CountessdeLo","target":"Myriel","value":1},{"source":"Geborand","target":"Myriel","value":1},{"source":"Champtercier","target":"Myriel","value":1},{"source":"Cravatte","target":"Myriel","value":1},{"source":"Count","target":"Myriel","value":2},{"source":"OldMan","target":"Myriel","value":1},{"source":"Valjean","target":"Labarre","value":1},{"source":"Valjean","target":"Mme.Magloire","value":3},{"source":"Valjean","target":"Mlle.Baptistine","value":3},{"source":"Valjean","target":"Myriel","value":5},{"source":"Marguerite","target":"Valjean","value":1},{"source":"Mme.deR","target":"Valjean","value":1},{"source":"Isabeau","target":"Valjean","value":1},{"source":"Gervais","target":"Valjean","value":1},{"source":"Listolier","target":"Tholomyes","value":4},{"source":"Fameuil","target":"Tholomyes","value":4},{"source":"Fameuil","target":"Listolier","value":4},{"source":"Blacheville","target":"Tholomyes","value":4},{"source":"Blacheville","target":"Listolier","value":4},{"source":"Blacheville","target":"Fameuil","value":4},{"source":"Favourite","target":"Tholomyes","value":3},{"source":"Favourite","target":"Listolier","value":3},{"source":"Favourite","target":"Fameuil","value":3},{"source":"Favourite","target":"Blacheville","value":4},{"source":"Dahlia","target":"Tholomyes","value":3},{"source":"Dahlia","target":"Listolier","value":3},{"source":"Dahlia","target":"Fameuil","value":3},{"source":"Dahlia","target":"Blacheville","value":3},{"source":"Dahlia","target":"Favourite","value":5},{"source":"Zephine","target":"Tholomyes","value":3},{"source":"Zephine","target":"Listolier","value":3},{"source":"Zephine","target":"Fameuil","value":3},{"source":"Zephine","target":"Blacheville","value":3},{"source":"Zephine","target":"Favourite","value":4},{"source":"Zephine","target":"Dahlia","value":4},{"source":"Fantine","target":"Tholomyes","value":3},{"source":"Fantine","target":"Listolier","value":3},{"source":"Fantine","target":"Fameuil","value":3},{"source":"Fantine","target":"Blacheville","value":3},{"source":"Fantine","target":"Favourite","value":4},{"source":"Fantine","target":"Dahlia","value":4},{"source":"Fantine","target":"Zephine","value":4},{"source":"Fantine","target":"Marguerite","value":2},{"source":"Fantine","target":"Valjean","value":9},{"source":"Mme.Thenardier","target":"Fantine","value":2},{"source":"Mme.Thenardier","target":"Valjean","value":7},{"source":"Thenardier","target":"Mme.Thenardier","value":13},{"source":"Thenardier","target":"Fantine","value":1},{"source":"Thenardier","target":"Valjean","value":12},{"source":"Cosette","target":"Mme.Thenardier","value":4},{"source":"Cosette","target":"Valjean","value":31},{"source":"Cosette","target":"Tholomyes","value":1},{"source":"Cosette","target":"Thenardier","value":1},{"source":"Javert","target":"Valjean","value":17},{"source":"Javert","target":"Fantine","value":5},{"source":"Javert","target":"Thenardier","value":5},{"source":"Javert","target":"Mme.Thenardier","value":1},{"source":"Javert","target":"Cosette","value":1},{"source":"Fauchelevent","target":"Valjean","value":8},{"source":"Fauchelevent","target":"Javert","value":1},{"source":"Bamatabois","target":"Fantine","value":1},{"source":"Bamatabois","target":"Javert","value":1},{"source":"Bamatabois","target":"Valjean","value":2},{"source":"Perpetue","target":"Fantine","value":1},{"source":"Simplice","target":"Perpetue","value":2},{"source":"Simplice","target":"Valjean","value":3},{"source":"Simplice","target":"Fantine","value":2},{"source":"Simplice","target":"Javert","value":1},{"source":"Scaufflaire","target":"Valjean","value":1},{"source":"Woman1","target":"Valjean","value":2},{"source":"Woman1","target":"Javert","value":1},{"source":"Judge","target":"Valjean","value":3},{"source":"Judge","target":"Bamatabois","value":2},{"source":"Champmathieu","target":"Valjean","value":3},{"source":"Champmathieu","target":"Judge","value":3},{"source":"Champmathieu","target":"Bamatabois","value":2},{"source":"Brevet","target":"Judge","value":2},{"source":"Brevet","target":"Champmathieu","value":2},{"source":"Brevet","target":"Valjean","value":2},{"source":"Brevet","target":"Bamatabois","value":1},{"source":"Chenildieu","target":"Judge","value":2},{"source":"Chenildieu","target":"Champmathieu","value":2},{"source":"Chenildieu","target":"Brevet","value":2},{"source":"Chenildieu","target":"Valjean","value":2},{"source":"Chenildieu","target":"Bamatabois","value":1},{"source":"Cochepaille","target":"Judge","value":2},{"source":"Cochepaille","target":"Champmathieu","value":2},{"source":"Cochepaille","target":"Brevet","value":2},{"source":"Cochepaille","target":"Chenildieu","value":2},{"source":"Cochepaille","target":"Valjean","value":2},{"source":"Cochepaille","target":"Bamatabois","value":1},{"source":"Pontmercy","target":"Thenardier","value":1},{"source":"Boulatruelle","target":"Thenardier","value":1},{"source":"Eponine","target":"Mme.Thenardier","value":2},{"source":"Eponine","target":"Thenardier","value":3},{"source":"Anzelma","target":"Eponine","value":2},{"source":"Anzelma","target":"Thenardier","value":2},{"source":"Anzelma","target":"Mme.Thenardier","value":1},{"source":"Woman2","target":"Valjean","value":3},{"source":"Woman2","target":"Cosette","value":1},{"source":"Woman2","target":"Javert","value":1},{"source":"MotherInnocent","target":"Fauchelevent","value":3},{"source":"MotherInnocent","target":"Valjean","value":1},{"source":"Gribier","target":"Fauchelevent","value":2},{"source":"Mme.Burgon","target":"Jondrette","value":1},{"source":"Gavroche","target":"Mme.Burgon","value":2},{"source":"Gavroche","target":"Thenardier","value":1},{"source":"Gavroche","target":"Javert","value":1},{"source":"Gavroche","target":"Valjean","value":1},{"source":"Gillenormand","target":"Cosette","value":3},{"source":"Gillenormand","target":"Valjean","value":2},{"source":"Magnon","target":"Gillenormand","value":1},{"source":"Magnon","target":"Mme.Thenardier","value":1},{"source":"Mlle.Gillenormand","target":"Gillenormand","value":9},{"source":"Mlle.Gillenormand","target":"Cosette","value":2},{"source":"Mlle.Gillenormand","target":"Valjean","value":2},{"source":"Mme.Pontmercy","target":"Mlle.Gillenormand","value":1},{"source":"Mme.Pontmercy","target":"Pontmercy","value":1},{"source":"Mlle.Vaubois","target":"Mlle.Gillenormand","value":1},{"source":"Lt.Gillenormand","target":"Mlle.Gillenormand","value":2},{"source":"Lt.Gillenormand","target":"Gillenormand","value":1},{"source":"Lt.Gillenormand","target":"Cosette","value":1},{"source":"Marius","target":"Mlle.Gillenormand","value":6},{"source":"Marius","target":"Gillenormand","value":12},{"source":"Marius","target":"Pontmercy","value":1},{"source":"Marius","target":"Lt.Gillenormand","value":1},{"source":"Marius","target":"Cosette","value":21},{"source":"Marius","target":"Valjean","value":19},{"source":"Marius","target":"Tholomyes","value":1},{"source":"Marius","target":"Thenardier","value":2},{"source":"Marius","target":"Eponine","value":5},{"source":"Marius","target":"Gavroche","value":4},{"source":"BaronessT","target":"Gillenormand","value":1},{"source":"BaronessT","target":"Marius","value":1},{"source":"Mabeuf","target":"Marius","value":1},{"source":"Mabeuf","target":"Eponine","value":1},{"source":"Mabeuf","target":"Gavroche","value":1},{"source":"Enjolras","target":"Marius","value":7},{"source":"Enjolras","target":"Gavroche","value":7},{"source":"Enjolras","target":"Javert","value":6},{"source":"Enjolras","target":"Mabeuf","value":1},{"source":"Enjolras","target":"Valjean","value":4},{"source":"Combeferre","target":"Enjolras","value":15},{"source":"Combeferre","target":"Marius","value":5},{"source":"Combeferre","target":"Gavroche","value":6},{"source":"Combeferre","target":"Mabeuf","value":2},{"source":"Prouvaire","target":"Gavroche","value":1},{"source":"Prouvaire","target":"Enjolras","value":4},{"source":"Prouvaire","target":"Combeferre","value":2},{"source":"Feuilly","target":"Gavroche","value":2},{"source":"Feuilly","target":"Enjolras","value":6},{"source":"Feuilly","target":"Prouvaire","value":2},{"source":"Feuilly","target":"Combeferre","value":5},{"source":"Feuilly","target":"Mabeuf","value":1},{"source":"Feuilly","target":"Marius","value":1},{"source":"Courfeyrac","target":"Marius","value":9},{"source":"Courfeyrac","target":"Enjolras","value":17},{"source":"Courfeyrac","target":"Combeferre","value":13},{"source":"Courfeyrac","target":"Gavroche","value":7},{"source":"Courfeyrac","target":"Mabeuf","value":2},{"source":"Courfeyrac","target":"Eponine","value":1},{"source":"Courfeyrac","target":"Feuilly","value":6},{"source":"Courfeyrac","target":"Prouvaire","value":3},{"source":"Bahorel","target":"Combeferre","value":5},{"source":"Bahorel","target":"Gavroche","value":5},{"source":"Bahorel","target":"Courfeyrac","value":6},{"source":"Bahorel","target":"Mabeuf","value":2},{"source":"Bahorel","target":"Enjolras","value":4},{"source":"Bahorel","target":"Feuilly","value":3},{"source":"Bahorel","target":"Prouvaire","value":2},{"source":"Bahorel","target":"Marius","value":1},{"source":"Bossuet","target":"Marius","value":5},{"source":"Bossuet","target":"Courfeyrac","value":12},{"source":"Bossuet","target":"Gavroche","value":5},{"source":"Bossuet","target":"Bahorel","value":4},{"source":"Bossuet","target":"Enjolras","value":10},{"source":"Bossuet","target":"Feuilly","value":6},{"source":"Bossuet","target":"Prouvaire","value":2},{"source":"Bossuet","target":"Combeferre","value":9},{"source":"Bossuet","target":"Mabeuf","value":1},{"source":"Bossuet","target":"Valjean","value":1},{"source":"Joly","target":"Bahorel","value":5},{"source":"Joly","target":"Bossuet","value":7},{"source":"Joly","target":"Gavroche","value":3},{"source":"Joly","target":"Courfeyrac","value":5},{"source":"Joly","target":"Enjolras","value":5},{"source":"Joly","target":"Feuilly","value":5},{"source":"Joly","target":"Prouvaire","value":2},{"source":"Joly","target":"Combeferre","value":5},{"source":"Joly","target":"Mabeuf","value":1},{"source":"Joly","target":"Marius","value":2},{"source":"Grantaire","target":"Bossuet","value":3},{"source":"Grantaire","target":"Enjolras","value":3},{"source":"Grantaire","target":"Combeferre","value":1},{"source":"Grantaire","target":"Courfeyrac","value":2},{"source":"Grantaire","target":"Joly","value":2},{"source":"Grantaire","target":"Gavroche","value":1},{"source":"Grantaire","target":"Bahorel","value":1},{"source":"Grantaire","target":"Feuilly","value":1},{"source":"Grantaire","target":"Prouvaire","value":1},{"source":"MotherPlutarch","target":"Mabeuf","value":3},{"source":"Gueulemer","target":"Thenardier","value":5},{"source":"Gueulemer","target":"Valjean","value":1},{"source":"Gueulemer","target":"Mme.Thenardier","value":1},{"source":"Gueulemer","target":"Javert","value":1},{"source":"Gueulemer","target":"Gavroche","value":1},{"source":"Gueulemer","target":"Eponine","value":1},{"source":"Babet","target":"Thenardier","value":6},{"source":"Babet","target":"Gueulemer","value":6},{"source":"Babet","target":"Valjean","value":1},{"source":"Babet","target":"Mme.Thenardier","value":1},{"source":"Babet","target":"Javert","value":2},{"source":"Babet","target":"Gavroche","value":1},{"source":"Babet","target":"Eponine","value":1},{"source":"Claquesous","target":"Thenardier","value":4},{"source":"Claquesous","target":"Babet","value":4},{"source":"Claquesous","target":"Gueulemer","value":4},{"source":"Claquesous","target":"Valjean","value":1},{"source":"Claquesous","target":"Mme.Thenardier","value":1},{"source":"Claquesous","target":"Javert","value":1},{"source":"Claquesous","target":"Eponine","value":1},{"source":"Claquesous","target":"Enjolras","value":1},{"source":"Montparnasse","target":"Javert","value":1},{"source":"Montparnasse","target":"Babet","value":2},{"source":"Montparnasse","target":"Gueulemer","value":2},{"source":"Montparnasse","target":"Claquesous","value":2},{"source":"Montparnasse","target":"Valjean","value":1},{"source":"Montparnasse","target":"Gavroche","value":1},{"source":"Montparnasse","target":"Eponine","value":1},{"source":"Montparnasse","target":"Thenardier","value":1},{"source":"Toussaint","target":"Cosette","value":2},{"source":"Toussaint","target":"Javert","value":1},{"source":"Toussaint","target":"Valjean","value":1},{"source":"Child1","target":"Gavroche","value":2},{"source":"Child2","target":"Gavroche","value":2},{"source":"Child2","target":"Child1","value":3},{"source":"Brujon","target":"Babet","value":3},{"source":"Brujon","target":"Gueulemer","value":3},{"source":"Brujon","target":"Thenardier","value":3},{"source":"Brujon","target":"Gavroche","value":1},{"source":"Brujon","target":"Eponine","value":1},{"source":"Brujon","target":"Claquesous","value":1},{"source":"Brujon","target":"Montparnasse","value":1},{"source":"Mme.Hucheloup","target":"Bossuet","value":1},{"source":"Mme.Hucheloup","target":"Joly","value":1},{"source":"Mme.Hucheloup","target":"Grantaire","value":1},{"source":"Mme.Hucheloup","target":"Bahorel","value":1},{"source":"Mme.Hucheloup","target":"Courfeyrac","value":1},{"source":"Mme.Hucheloup","target":"Gavroche","value":1},{"source":"Mme.Hucheloup","target":"Enjolras","value":1}]} -------------------------------------------------------------------------------- /examples/basic/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vasturiano/aframe-forcegraph-component/3c4ef28091e288b6b6e8bc9db556d80736b73805/examples/basic/preview.png -------------------------------------------------------------------------------- /examples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A-Frame 3D Force-Directed Graph Component 6 | 7 | 48 | 49 | 50 |

A-Frame 3D Force-Directed Graph Component

51 | 52 |
    53 |
  • 54 | 55 |

    Basic

    56 |

    This is a basic example.

    57 |
  • 58 |
  • 59 | 60 |

    Larger graph

    61 |

    This shows a larger graph.

    62 |
  • 63 |
  • 64 | 65 |

    Two Dimensional

    66 |

    This shows a graph layout on a plane (simulation in 2D instead of 3D).

    67 |
  • 68 |
69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /examples/large-graph/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | A-Frame 3D Force-Directed Graph Component - Large graph 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 22 | 23 | 30 | 31 | 32 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /examples/large-graph/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vasturiano/aframe-forcegraph-component/3c4ef28091e288b6b6e8bc9db556d80736b73805/examples/large-graph/preview.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aframe-forcegraph-component", 3 | "version": "3.2.3", 4 | "description": "A 3D Force-Directed Graph component for A-Frame.", 5 | "type": "module", 6 | "unpkg": "dist/aframe-forcegraph-component.min.js", 7 | "jsdelivr": "dist/aframe-forcegraph-component.min.js", 8 | "main": "dist/aframe-forcegraph-component.mjs", 9 | "module": "dist/aframe-forcegraph-component.mjs", 10 | "exports": { 11 | "umd": "./dist/aframe-forcegraph-component.min.js", 12 | "default": "./dist/aframe-forcegraph-component.mjs" 13 | }, 14 | "sideEffects": true, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/vasturiano/aframe-forcegraph-component.git" 18 | }, 19 | "homepage": "https://github.com/vasturiano/aframe-forcegraph-component#readme", 20 | "keywords": [ 21 | "aframe", 22 | "aframe-component", 23 | "aframe-vr", 24 | "vr", 25 | "mozvr", 26 | "webvr", 27 | "3d", 28 | "force", 29 | "graph", 30 | "forcegraph", 31 | "d3" 32 | ], 33 | "author": { 34 | "name": "Vasco Asturiano ", 35 | "url": "https://github.com/vasturiano" 36 | }, 37 | "license": "MIT", 38 | "bugs": { 39 | "url": "https://github.com/vasturiano/aframe-forcegraph-component/issues" 40 | }, 41 | "scripts": { 42 | "build": "rimraf dist && rollup -c", 43 | "dev": "rollup -w -c", 44 | "prepare": "npm run build" 45 | }, 46 | "files": [ 47 | "dist/**/*", 48 | "examples/**/*" 49 | ], 50 | "dependencies": { 51 | "three-forcegraph": "1" 52 | }, 53 | "peerDependencies": { 54 | "aframe": "*" 55 | }, 56 | "devDependencies": { 57 | "@babel/core": "^7.26.10", 58 | "@babel/preset-env": "^7.26.9", 59 | "@rollup/plugin-babel": "^6.0.4", 60 | "@rollup/plugin-commonjs": "^28.0.3", 61 | "@rollup/plugin-node-resolve": "^16.0.1", 62 | "@rollup/plugin-terser": "^0.4.4", 63 | "rimraf": "^6.0.1", 64 | "rollup": "^4.36.0" 65 | }, 66 | "engines": { 67 | "node": ">=12" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import resolve from '@rollup/plugin-node-resolve'; 2 | import commonJs from '@rollup/plugin-commonjs'; 3 | import babel from '@rollup/plugin-babel'; 4 | import terser from "@rollup/plugin-terser"; 5 | import pkg from './package.json' with { type: 'json' }; 6 | 7 | const umdConf = { 8 | format: 'umd', 9 | globals: { aframe: 'AFRAME', three: 'THREE' }, // a-frame exposes three as global 10 | banner: `// Version ${pkg.version} ${pkg.name} - ${pkg.homepage}` 11 | }; 12 | 13 | export default [ 14 | { 15 | external: ['three', 'aframe'], 16 | input: 'src/index.js', 17 | output: [ 18 | { 19 | ...umdConf, 20 | file: `dist/${pkg.name}.js`, 21 | sourcemap: true, 22 | }, 23 | { // minify 24 | ...umdConf, 25 | file: `dist/${pkg.name}.min.js`, 26 | plugins: [terser({ 27 | output: { comments: '/Version/' } 28 | })] 29 | } 30 | ], 31 | plugins: [ 32 | resolve(), 33 | commonJs(), 34 | babel({ exclude: 'node_modules/**' }) 35 | ] 36 | }, 37 | { // ES module 38 | input: 'src/index.js', 39 | output: [ 40 | { 41 | format: 'es', 42 | file: `dist/${pkg.name}.mjs` 43 | } 44 | ], 45 | external: [...Object.keys(pkg.dependencies), ...Object.keys(pkg.peerDependencies)], 46 | plugins: [ 47 | babel() 48 | ] 49 | } 50 | ]; -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import ThreeForceGraph from 'three-forcegraph'; 2 | 3 | /* global AFRAME */ 4 | if (typeof AFRAME === 'undefined') { 5 | throw new Error('Component attempted to register before AFRAME was available.'); 6 | } 7 | 8 | const parseJson = function (prop) { 9 | return (typeof prop === 'string') 10 | ? JSON.parse(prop) 11 | : prop; // already parsed 12 | }; 13 | 14 | const parseFn = function (prop) { 15 | if (typeof prop === 'function') return prop; // already a function 16 | const geval = eval; // Avoid using eval directly https://github.com/rollup/rollup/wiki/Troubleshooting#avoiding-eval 17 | try { 18 | const evalled = geval('(' + prop + ')'); 19 | return evalled; 20 | } catch (e) {} // Can't eval, not a function 21 | return null; 22 | }; 23 | 24 | const parseAccessor = function (prop) { 25 | if (!isNaN(parseFloat(prop))) { return parseFloat(prop); } // parse numbers 26 | if (parseFn(prop)) { return parseFn(prop); } // parse functions 27 | return prop; // strings 28 | }; 29 | 30 | /** 31 | * 3D Force-Directed Graph component for A-Frame. 32 | */ 33 | if (!AFRAME.components.hasOwnProperty('forcegraph')) { 34 | AFRAME.registerComponent('forcegraph', { 35 | schema: { 36 | jsonUrl: {type: 'string', default: ''}, 37 | nodes: {parse: parseJson, default: []}, 38 | links: {parse: parseJson, default: []}, 39 | numDimensions: {type: 'number', default: 3}, 40 | dagMode: {type: 'string', default: ''}, 41 | dagLevelDistance: {type: 'number', default: 0}, 42 | dagNodeFilter: { 43 | parse: parseFn, default: function () { 44 | return true; 45 | } 46 | }, 47 | onDagError: {parse: parseFn, default: undefined}, 48 | nodeRelSize: {type: 'number', default: 4}, // volume per val unit 49 | nodeId: {type: 'string', default: 'id'}, 50 | nodeVal: {parse: parseAccessor, default: 'val'}, 51 | nodeResolution: {type: 'number', default: 8}, // how many slice segments in the sphere's circumference 52 | nodeVisibility: {parse: parseAccessor, default: true}, 53 | nodeColor: {parse: parseAccessor, default: 'color'}, 54 | nodeAutoColorBy: {parse: parseAccessor, default: ''}, // color nodes with the same field equally 55 | nodeOpacity: {type: 'number', default: 0.75}, 56 | nodeThreeObject: {parse: parseAccessor, default: null}, 57 | nodeThreeObjectExtend: {parse: parseAccessor, default: false}, 58 | linkSource: {type: 'string', default: 'source'}, 59 | linkTarget: {type: 'string', default: 'target'}, 60 | linkVisibility: {parse: parseAccessor, default: true}, 61 | linkColor: {parse: parseAccessor, default: 'color'}, 62 | linkAutoColorBy: {parse: parseAccessor, default: ''}, // color links with the same field equally 63 | linkOpacity: {type: 'number', default: 0.2}, 64 | linkWidth: {parse: parseAccessor, default: 0}, 65 | linkResolution: {type: 'number', default: 6}, // how many radial segments in each line cylinder's geometry 66 | linkCurvature: {parse: parseAccessor, default: 0}, 67 | linkCurveRotation: {parse: parseAccessor, default: 0}, 68 | linkMaterial: {parse: parseAccessor, default: null}, 69 | linkThreeObject: {parse: parseAccessor, default: null}, 70 | linkThreeObjectExtend: {parse: parseAccessor, default: false}, 71 | linkPositionUpdate: {parse: parseFn, default: null}, 72 | linkDirectionalArrowLength: {parse: parseAccessor, default: 0}, 73 | linkDirectionalArrowColor: {parse: parseAccessor, default: null}, 74 | linkDirectionalArrowRelPos: {parse: parseAccessor, default: 0.5}, // value between 0<>1 indicating the relative pos along the (exposed) line 75 | linkDirectionalArrowResolution: {type: 'number', default: 8}, // how many slice segments in the arrow's conic circumference 76 | linkDirectionalParticles: {parse: parseAccessor, default: 0}, // animate photons travelling in the link direction 77 | linkDirectionalParticleSpeed: {parse: parseAccessor, default: 0.01}, // in link length ratio per frame 78 | linkDirectionalParticleWidth: {parse: parseAccessor, default: 0.5}, 79 | linkDirectionalParticleColor: {parse: parseAccessor, default: null}, 80 | linkDirectionalParticleResolution: {type: 'number', default: 4}, // how many slice segments in the particle sphere's circumference 81 | onNodeHover: { 82 | parse: parseFn, default: () => { 83 | } 84 | }, 85 | onLinkHover: { 86 | parse: parseFn, default: () => { 87 | } 88 | }, 89 | onNodeClick: { 90 | parse: parseFn, default: () => { 91 | } 92 | }, 93 | onLinkClick: { 94 | parse: parseFn, default: () => { 95 | } 96 | }, 97 | forceEngine: {type: 'string', default: 'd3'}, // 'd3' or 'ngraph' 98 | d3AlphaMin: {type: 'number', default: 0}, 99 | d3AlphaDecay: {type: 'number', default: 0.0228}, 100 | d3VelocityDecay: {type: 'number', default: 0.4}, 101 | ngraphPhysics: {parse: parseJson, default: null}, 102 | warmupTicks: {type: 'int', default: 0}, // how many times to tick the force engine at init before starting to render 103 | cooldownTicks: {type: 'int', default: 1e18}, // Simulate infinity (int parser doesn't accept Infinity object) 104 | cooldownTime: {type: 'int', default: 15000}, // ms 105 | onEngineTick: { 106 | parse: parseFn, default: function () { 107 | } 108 | }, 109 | onEngineStop: { 110 | parse: parseFn, default: function () { 111 | } 112 | } 113 | }, 114 | 115 | // Bind component methods 116 | getGraphBbox: function (nodeFilterFn) { 117 | if (!this.forceGraph) { 118 | // Got here before component init -> initialize forceGraph 119 | this.forceGraph = new ThreeForceGraph(); 120 | } 121 | 122 | return this.forceGraph.getGraphBbox(nodeFilterFn); 123 | }, 124 | emitParticle: function () { 125 | if (!this.forceGraph) { 126 | // Got here before component init -> initialize forceGraph 127 | this.forceGraph = new ThreeForceGraph(); 128 | } 129 | 130 | const forceGraph = this.forceGraph; 131 | const returnVal = forceGraph.emitParticle.apply(forceGraph, arguments); 132 | 133 | return returnVal === forceGraph 134 | ? this // return self, not the inner forcegraph component 135 | : returnVal; 136 | }, 137 | 138 | d3Force: function () { 139 | if (!this.forceGraph) { 140 | // Got here before component init -> initialize forceGraph 141 | this.forceGraph = new ThreeForceGraph(); 142 | } 143 | 144 | const forceGraph = this.forceGraph; 145 | const returnVal = forceGraph.d3Force.apply(forceGraph, arguments); 146 | 147 | return returnVal === forceGraph 148 | ? this // return self, not the inner forcegraph component 149 | : returnVal; 150 | }, 151 | 152 | d3ReheatSimulation: function () { 153 | this.forceGraph && this.forceGraph.d3ReheatSimulation(); 154 | return this; 155 | }, 156 | 157 | refresh: function () { 158 | this.forceGraph && this.forceGraph.refresh(); 159 | return this; 160 | }, 161 | 162 | init: function () { 163 | const state = this.state = {}; // Internal state 164 | 165 | // Add info msg 166 | state.infoEl = document.createElement('a-text'); 167 | state.infoEl.setAttribute('position', '0 -0.1 -1'); // Canvas center 168 | state.infoEl.setAttribute('width', 1); 169 | state.infoEl.setAttribute('align', 'center'); 170 | state.infoEl.setAttribute('color', 'lavender'); 171 | 172 | // Get camera dom element and attach fixed view elements to camera 173 | const cameraEl = document.querySelector('a-entity[camera], a-camera'); 174 | cameraEl.appendChild(state.infoEl); 175 | 176 | // Keep reference to Three camera object 177 | state.cameraObj = cameraEl.object3D.children 178 | .filter(function (child) { 179 | return child.type === 'PerspectiveCamera'; 180 | })[0]; 181 | 182 | // On camera switch 183 | this.el.sceneEl.addEventListener('camera-set-active', function (evt) { 184 | // Switch camera reference 185 | state.cameraObj = evt.detail.cameraEl.components.camera.camera; 186 | }); 187 | 188 | // setup FG object 189 | if (!this.forceGraph) this.forceGraph = new ThreeForceGraph(); // initialize forceGraph if it doesn't exist yet 190 | this.forceGraph 191 | .onFinishUpdate(() => this.el.setObject3D('forcegraphGroup', this.forceGraph)) // Bind forcegraph to elem 192 | .onLoading(() => state.infoEl.setAttribute('value', 'Loading...')) // Add loading msg 193 | .onFinishLoading(() => state.infoEl.setAttribute('value', '')); 194 | 195 | // prefer raycaster events over mouseenter/mouseleave because they expose immediately available intersection data via detail.getIntersection() 196 | this.el.addEventListener('raycaster-intersected', ev => state.hoverDetail = ev.detail); 197 | this.el.addEventListener('raycaster-intersected-cleared', ev => state.hoverDetail = ev.detail); 198 | 199 | this.el.addEventListener('click', () => 200 | state.hoverObj && this.data['on' + (state.hoverObj.__graphObjType === 'node' ? 'Node' : 'Link') + 'Click'](state.hoverObj.__data) 201 | ); 202 | }, 203 | 204 | remove: function () { 205 | // Clean-up elems 206 | this.state.infoEl.remove(); 207 | this.el.removeObject3D('forcegraphGroup'); 208 | }, 209 | 210 | update: function (oldData) { 211 | const comp = this; 212 | const elData = this.data; 213 | const diff = AFRAME.utils.diff(elData, oldData); 214 | 215 | const fgProps = [ 216 | 'jsonUrl', 217 | 'numDimensions', 218 | 'dagMode', 219 | 'dagLevelDistance', 220 | 'dagNodeFilter', 221 | 'onDagError', 222 | 'nodeRelSize', 223 | 'nodeId', 224 | 'nodeVal', 225 | 'nodeResolution', 226 | 'nodeVisibility', 227 | 'nodeColor', 228 | 'nodeAutoColorBy', 229 | 'nodeOpacity', 230 | 'nodeThreeObject', 231 | 'nodeThreeObjectExtend', 232 | 'linkSource', 233 | 'linkTarget', 234 | 'linkVisibility', 235 | 'linkColor', 236 | 'linkAutoColorBy', 237 | 'linkOpacity', 238 | 'linkWidth', 239 | 'linkResolution', 240 | 'linkCurvature', 241 | 'linkCurveRotation', 242 | 'linkMaterial', 243 | 'linkThreeObject', 244 | 'linkThreeObjectExtend', 245 | 'linkPositionUpdate', 246 | 'linkDirectionalArrowLength', 247 | 'linkDirectionalArrowColor', 248 | 'linkDirectionalArrowRelPos', 249 | 'linkDirectionalArrowResolution', 250 | 'linkDirectionalParticles', 251 | 'linkDirectionalParticleSpeed', 252 | 'linkDirectionalParticleWidth', 253 | 'linkDirectionalParticleColor', 254 | 'linkDirectionalParticleResolution', 255 | 'forceEngine', 256 | 'd3AlphaMin', 257 | 'd3AphaDecay', 258 | 'd3VelocityDecay', 259 | 'ngraphPhysics', 260 | 'warmupTicks', 261 | 'cooldownTicks', 262 | 'cooldownTime', 263 | 'onEngineTick', 264 | 'onEngineStop' 265 | ]; 266 | 267 | fgProps 268 | .filter(function (p) { 269 | return p in diff; 270 | }) 271 | .forEach(function (p) { 272 | comp.forceGraph[p](elData[p] !== '' ? elData[p] : null); 273 | }); // Convert blank values into nulls 274 | 275 | if ('nodes' in diff || 'links' in diff) { 276 | comp.forceGraph.graphData({ 277 | nodes: elData.nodes, 278 | links: elData.links 279 | }); 280 | } 281 | }, 282 | 283 | tick: function (t, td) { 284 | const state = this.state; 285 | const props = this.data; 286 | 287 | // Update hover (intersected) object 288 | const intersection = state.hoverDetail 289 | ? state.hoverDetail.getIntersection 290 | ? state.hoverDetail.getIntersection(this.el) // available in raycaster-intersected events 291 | : state.hoverDetail.intersection || undefined // available in mouseenter/mouseleave events (with delayed update) 292 | : undefined; 293 | 294 | // Note: 295 | // Unfortunately we only have access to the intersected object closer to the camera (1st element in the raycaster intersectObjects result), 296 | // there is no ".getIntersections()" method available in the event details. Therefore, we can't prioritize hover on nodes over links, or even exclude 297 | // objects that are neither nodes or links. This makes the interaction a bit erratic if nodes have a lot of links in front. 298 | // Configuring the raycaster.params.Line.threshold might help with this somewhat, but that config is also not available via the a-frame raycaster component. 299 | 300 | // recurse up until forcegraph obj is found 301 | let topObject = intersection ? intersection.object : undefined; 302 | while (topObject && !topObject.hasOwnProperty('__graphObjType')) 303 | topObject = topObject.parent; 304 | 305 | if (topObject !== state.hoverObj) { 306 | const prevObjType = state.hoverObj ? state.hoverObj.__graphObjType : null; 307 | const prevObjData = state.hoverObj ? state.hoverObj.__data : null; 308 | const objType = topObject ? topObject.__graphObjType : null; 309 | const objData = topObject ? topObject.__data : null; 310 | 311 | if (prevObjType && prevObjType !== objType) { 312 | // Hover out 313 | props['on' + (prevObjType === 'node' ? 'Node' : 'Link') + 'Hover'](null, prevObjData); 314 | } 315 | if (objType) { 316 | // Hover in 317 | props['on' + (objType === 'node' ? 'Node' : 'Link') + 'Hover'](objData, prevObjType === objType ? prevObjData : null); 318 | } 319 | 320 | state.hoverObj = topObject; 321 | } 322 | 323 | // Run force-graph ticker 324 | this.forceGraph.tickFrame(); 325 | } 326 | }); 327 | } 328 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.3.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" 8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.5" 11 | "@jridgewell/trace-mapping" "^0.3.24" 12 | 13 | "@babel/code-frame@^7.26.2": 14 | version "7.26.2" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" 16 | integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== 17 | dependencies: 18 | "@babel/helper-validator-identifier" "^7.25.9" 19 | js-tokens "^4.0.0" 20 | picocolors "^1.0.0" 21 | 22 | "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.5", "@babel/compat-data@^7.26.8": 23 | version "7.26.8" 24 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" 25 | integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== 26 | 27 | "@babel/core@^7.26.10": 28 | version "7.26.10" 29 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" 30 | integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== 31 | dependencies: 32 | "@ampproject/remapping" "^2.2.0" 33 | "@babel/code-frame" "^7.26.2" 34 | "@babel/generator" "^7.26.10" 35 | "@babel/helper-compilation-targets" "^7.26.5" 36 | "@babel/helper-module-transforms" "^7.26.0" 37 | "@babel/helpers" "^7.26.10" 38 | "@babel/parser" "^7.26.10" 39 | "@babel/template" "^7.26.9" 40 | "@babel/traverse" "^7.26.10" 41 | "@babel/types" "^7.26.10" 42 | convert-source-map "^2.0.0" 43 | debug "^4.1.0" 44 | gensync "^1.0.0-beta.2" 45 | json5 "^2.2.3" 46 | semver "^6.3.1" 47 | 48 | "@babel/generator@^7.26.10": 49 | version "7.26.10" 50 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7" 51 | integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang== 52 | dependencies: 53 | "@babel/parser" "^7.26.10" 54 | "@babel/types" "^7.26.10" 55 | "@jridgewell/gen-mapping" "^0.3.5" 56 | "@jridgewell/trace-mapping" "^0.3.25" 57 | jsesc "^3.0.2" 58 | 59 | "@babel/helper-annotate-as-pure@^7.25.9": 60 | version "7.25.9" 61 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" 62 | integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== 63 | dependencies: 64 | "@babel/types" "^7.25.9" 65 | 66 | "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": 67 | version "7.26.5" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz#75d92bb8d8d51301c0d49e52a65c9a7fe94514d8" 69 | integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== 70 | dependencies: 71 | "@babel/compat-data" "^7.26.5" 72 | "@babel/helper-validator-option" "^7.25.9" 73 | browserslist "^4.24.0" 74 | lru-cache "^5.1.1" 75 | semver "^6.3.1" 76 | 77 | "@babel/helper-create-class-features-plugin@^7.25.9": 78 | version "7.26.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz#d6f83e3039547fbb39967e78043cd3c8b7820c71" 80 | integrity sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg== 81 | dependencies: 82 | "@babel/helper-annotate-as-pure" "^7.25.9" 83 | "@babel/helper-member-expression-to-functions" "^7.25.9" 84 | "@babel/helper-optimise-call-expression" "^7.25.9" 85 | "@babel/helper-replace-supers" "^7.26.5" 86 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 87 | "@babel/traverse" "^7.26.9" 88 | semver "^6.3.1" 89 | 90 | "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": 91 | version "7.26.3" 92 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" 93 | integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== 94 | dependencies: 95 | "@babel/helper-annotate-as-pure" "^7.25.9" 96 | regexpu-core "^6.2.0" 97 | semver "^6.3.1" 98 | 99 | "@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": 100 | version "0.6.4" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" 102 | integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== 103 | dependencies: 104 | "@babel/helper-compilation-targets" "^7.22.6" 105 | "@babel/helper-plugin-utils" "^7.22.5" 106 | debug "^4.1.1" 107 | lodash.debounce "^4.0.8" 108 | resolve "^1.14.2" 109 | 110 | "@babel/helper-member-expression-to-functions@^7.25.9": 111 | version "7.25.9" 112 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" 113 | integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== 114 | dependencies: 115 | "@babel/traverse" "^7.25.9" 116 | "@babel/types" "^7.25.9" 117 | 118 | "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.25.9": 119 | version "7.25.9" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" 121 | integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== 122 | dependencies: 123 | "@babel/traverse" "^7.25.9" 124 | "@babel/types" "^7.25.9" 125 | 126 | "@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": 127 | version "7.26.0" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" 129 | integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== 130 | dependencies: 131 | "@babel/helper-module-imports" "^7.25.9" 132 | "@babel/helper-validator-identifier" "^7.25.9" 133 | "@babel/traverse" "^7.25.9" 134 | 135 | "@babel/helper-optimise-call-expression@^7.25.9": 136 | version "7.25.9" 137 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" 138 | integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== 139 | dependencies: 140 | "@babel/types" "^7.25.9" 141 | 142 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5": 143 | version "7.26.5" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" 145 | integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== 146 | 147 | "@babel/helper-remap-async-to-generator@^7.25.9": 148 | version "7.25.9" 149 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" 150 | integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== 151 | dependencies: 152 | "@babel/helper-annotate-as-pure" "^7.25.9" 153 | "@babel/helper-wrap-function" "^7.25.9" 154 | "@babel/traverse" "^7.25.9" 155 | 156 | "@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": 157 | version "7.26.5" 158 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" 159 | integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== 160 | dependencies: 161 | "@babel/helper-member-expression-to-functions" "^7.25.9" 162 | "@babel/helper-optimise-call-expression" "^7.25.9" 163 | "@babel/traverse" "^7.26.5" 164 | 165 | "@babel/helper-skip-transparent-expression-wrappers@^7.25.9": 166 | version "7.25.9" 167 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" 168 | integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== 169 | dependencies: 170 | "@babel/traverse" "^7.25.9" 171 | "@babel/types" "^7.25.9" 172 | 173 | "@babel/helper-string-parser@^7.25.9": 174 | version "7.25.9" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" 176 | integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== 177 | 178 | "@babel/helper-validator-identifier@^7.25.9": 179 | version "7.25.9" 180 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" 181 | integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== 182 | 183 | "@babel/helper-validator-option@^7.25.9": 184 | version "7.25.9" 185 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" 186 | integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== 187 | 188 | "@babel/helper-wrap-function@^7.25.9": 189 | version "7.25.9" 190 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" 191 | integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== 192 | dependencies: 193 | "@babel/template" "^7.25.9" 194 | "@babel/traverse" "^7.25.9" 195 | "@babel/types" "^7.25.9" 196 | 197 | "@babel/helpers@^7.26.10": 198 | version "7.26.10" 199 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384" 200 | integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g== 201 | dependencies: 202 | "@babel/template" "^7.26.9" 203 | "@babel/types" "^7.26.10" 204 | 205 | "@babel/parser@^7.26.10", "@babel/parser@^7.26.9": 206 | version "7.26.10" 207 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749" 208 | integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA== 209 | dependencies: 210 | "@babel/types" "^7.26.10" 211 | 212 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": 213 | version "7.25.9" 214 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" 215 | integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== 216 | dependencies: 217 | "@babel/helper-plugin-utils" "^7.25.9" 218 | "@babel/traverse" "^7.25.9" 219 | 220 | "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": 221 | version "7.25.9" 222 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" 223 | integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== 224 | dependencies: 225 | "@babel/helper-plugin-utils" "^7.25.9" 226 | 227 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": 228 | version "7.25.9" 229 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" 230 | integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== 231 | dependencies: 232 | "@babel/helper-plugin-utils" "^7.25.9" 233 | 234 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": 235 | version "7.25.9" 236 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" 237 | integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== 238 | dependencies: 239 | "@babel/helper-plugin-utils" "^7.25.9" 240 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 241 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 242 | 243 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": 244 | version "7.25.9" 245 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" 246 | integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== 247 | dependencies: 248 | "@babel/helper-plugin-utils" "^7.25.9" 249 | "@babel/traverse" "^7.25.9" 250 | 251 | "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": 252 | version "7.21.0-placeholder-for-preset-env.2" 253 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" 254 | integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== 255 | 256 | "@babel/plugin-syntax-import-assertions@^7.26.0": 257 | version "7.26.0" 258 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" 259 | integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== 260 | dependencies: 261 | "@babel/helper-plugin-utils" "^7.25.9" 262 | 263 | "@babel/plugin-syntax-import-attributes@^7.26.0": 264 | version "7.26.0" 265 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" 266 | integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== 267 | dependencies: 268 | "@babel/helper-plugin-utils" "^7.25.9" 269 | 270 | "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": 271 | version "7.18.6" 272 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" 273 | integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== 274 | dependencies: 275 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 276 | "@babel/helper-plugin-utils" "^7.18.6" 277 | 278 | "@babel/plugin-transform-arrow-functions@^7.25.9": 279 | version "7.25.9" 280 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" 281 | integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== 282 | dependencies: 283 | "@babel/helper-plugin-utils" "^7.25.9" 284 | 285 | "@babel/plugin-transform-async-generator-functions@^7.26.8": 286 | version "7.26.8" 287 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" 288 | integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== 289 | dependencies: 290 | "@babel/helper-plugin-utils" "^7.26.5" 291 | "@babel/helper-remap-async-to-generator" "^7.25.9" 292 | "@babel/traverse" "^7.26.8" 293 | 294 | "@babel/plugin-transform-async-to-generator@^7.25.9": 295 | version "7.25.9" 296 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" 297 | integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== 298 | dependencies: 299 | "@babel/helper-module-imports" "^7.25.9" 300 | "@babel/helper-plugin-utils" "^7.25.9" 301 | "@babel/helper-remap-async-to-generator" "^7.25.9" 302 | 303 | "@babel/plugin-transform-block-scoped-functions@^7.26.5": 304 | version "7.26.5" 305 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" 306 | integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== 307 | dependencies: 308 | "@babel/helper-plugin-utils" "^7.26.5" 309 | 310 | "@babel/plugin-transform-block-scoping@^7.25.9": 311 | version "7.25.9" 312 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" 313 | integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== 314 | dependencies: 315 | "@babel/helper-plugin-utils" "^7.25.9" 316 | 317 | "@babel/plugin-transform-class-properties@^7.25.9": 318 | version "7.25.9" 319 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" 320 | integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== 321 | dependencies: 322 | "@babel/helper-create-class-features-plugin" "^7.25.9" 323 | "@babel/helper-plugin-utils" "^7.25.9" 324 | 325 | "@babel/plugin-transform-class-static-block@^7.26.0": 326 | version "7.26.0" 327 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" 328 | integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== 329 | dependencies: 330 | "@babel/helper-create-class-features-plugin" "^7.25.9" 331 | "@babel/helper-plugin-utils" "^7.25.9" 332 | 333 | "@babel/plugin-transform-classes@^7.25.9": 334 | version "7.25.9" 335 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" 336 | integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== 337 | dependencies: 338 | "@babel/helper-annotate-as-pure" "^7.25.9" 339 | "@babel/helper-compilation-targets" "^7.25.9" 340 | "@babel/helper-plugin-utils" "^7.25.9" 341 | "@babel/helper-replace-supers" "^7.25.9" 342 | "@babel/traverse" "^7.25.9" 343 | globals "^11.1.0" 344 | 345 | "@babel/plugin-transform-computed-properties@^7.25.9": 346 | version "7.25.9" 347 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" 348 | integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== 349 | dependencies: 350 | "@babel/helper-plugin-utils" "^7.25.9" 351 | "@babel/template" "^7.25.9" 352 | 353 | "@babel/plugin-transform-destructuring@^7.25.9": 354 | version "7.25.9" 355 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" 356 | integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== 357 | dependencies: 358 | "@babel/helper-plugin-utils" "^7.25.9" 359 | 360 | "@babel/plugin-transform-dotall-regex@^7.25.9": 361 | version "7.25.9" 362 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" 363 | integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== 364 | dependencies: 365 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 366 | "@babel/helper-plugin-utils" "^7.25.9" 367 | 368 | "@babel/plugin-transform-duplicate-keys@^7.25.9": 369 | version "7.25.9" 370 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" 371 | integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== 372 | dependencies: 373 | "@babel/helper-plugin-utils" "^7.25.9" 374 | 375 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": 376 | version "7.25.9" 377 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" 378 | integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== 379 | dependencies: 380 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 381 | "@babel/helper-plugin-utils" "^7.25.9" 382 | 383 | "@babel/plugin-transform-dynamic-import@^7.25.9": 384 | version "7.25.9" 385 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" 386 | integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== 387 | dependencies: 388 | "@babel/helper-plugin-utils" "^7.25.9" 389 | 390 | "@babel/plugin-transform-exponentiation-operator@^7.26.3": 391 | version "7.26.3" 392 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" 393 | integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== 394 | dependencies: 395 | "@babel/helper-plugin-utils" "^7.25.9" 396 | 397 | "@babel/plugin-transform-export-namespace-from@^7.25.9": 398 | version "7.25.9" 399 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" 400 | integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== 401 | dependencies: 402 | "@babel/helper-plugin-utils" "^7.25.9" 403 | 404 | "@babel/plugin-transform-for-of@^7.26.9": 405 | version "7.26.9" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" 407 | integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== 408 | dependencies: 409 | "@babel/helper-plugin-utils" "^7.26.5" 410 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 411 | 412 | "@babel/plugin-transform-function-name@^7.25.9": 413 | version "7.25.9" 414 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" 415 | integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== 416 | dependencies: 417 | "@babel/helper-compilation-targets" "^7.25.9" 418 | "@babel/helper-plugin-utils" "^7.25.9" 419 | "@babel/traverse" "^7.25.9" 420 | 421 | "@babel/plugin-transform-json-strings@^7.25.9": 422 | version "7.25.9" 423 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" 424 | integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== 425 | dependencies: 426 | "@babel/helper-plugin-utils" "^7.25.9" 427 | 428 | "@babel/plugin-transform-literals@^7.25.9": 429 | version "7.25.9" 430 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" 431 | integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== 432 | dependencies: 433 | "@babel/helper-plugin-utils" "^7.25.9" 434 | 435 | "@babel/plugin-transform-logical-assignment-operators@^7.25.9": 436 | version "7.25.9" 437 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" 438 | integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== 439 | dependencies: 440 | "@babel/helper-plugin-utils" "^7.25.9" 441 | 442 | "@babel/plugin-transform-member-expression-literals@^7.25.9": 443 | version "7.25.9" 444 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" 445 | integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== 446 | dependencies: 447 | "@babel/helper-plugin-utils" "^7.25.9" 448 | 449 | "@babel/plugin-transform-modules-amd@^7.25.9": 450 | version "7.25.9" 451 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" 452 | integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== 453 | dependencies: 454 | "@babel/helper-module-transforms" "^7.25.9" 455 | "@babel/helper-plugin-utils" "^7.25.9" 456 | 457 | "@babel/plugin-transform-modules-commonjs@^7.26.3": 458 | version "7.26.3" 459 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" 460 | integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== 461 | dependencies: 462 | "@babel/helper-module-transforms" "^7.26.0" 463 | "@babel/helper-plugin-utils" "^7.25.9" 464 | 465 | "@babel/plugin-transform-modules-systemjs@^7.25.9": 466 | version "7.25.9" 467 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" 468 | integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== 469 | dependencies: 470 | "@babel/helper-module-transforms" "^7.25.9" 471 | "@babel/helper-plugin-utils" "^7.25.9" 472 | "@babel/helper-validator-identifier" "^7.25.9" 473 | "@babel/traverse" "^7.25.9" 474 | 475 | "@babel/plugin-transform-modules-umd@^7.25.9": 476 | version "7.25.9" 477 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" 478 | integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== 479 | dependencies: 480 | "@babel/helper-module-transforms" "^7.25.9" 481 | "@babel/helper-plugin-utils" "^7.25.9" 482 | 483 | "@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": 484 | version "7.25.9" 485 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" 486 | integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== 487 | dependencies: 488 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 489 | "@babel/helper-plugin-utils" "^7.25.9" 490 | 491 | "@babel/plugin-transform-new-target@^7.25.9": 492 | version "7.25.9" 493 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" 494 | integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== 495 | dependencies: 496 | "@babel/helper-plugin-utils" "^7.25.9" 497 | 498 | "@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": 499 | version "7.26.6" 500 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" 501 | integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== 502 | dependencies: 503 | "@babel/helper-plugin-utils" "^7.26.5" 504 | 505 | "@babel/plugin-transform-numeric-separator@^7.25.9": 506 | version "7.25.9" 507 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" 508 | integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== 509 | dependencies: 510 | "@babel/helper-plugin-utils" "^7.25.9" 511 | 512 | "@babel/plugin-transform-object-rest-spread@^7.25.9": 513 | version "7.25.9" 514 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" 515 | integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== 516 | dependencies: 517 | "@babel/helper-compilation-targets" "^7.25.9" 518 | "@babel/helper-plugin-utils" "^7.25.9" 519 | "@babel/plugin-transform-parameters" "^7.25.9" 520 | 521 | "@babel/plugin-transform-object-super@^7.25.9": 522 | version "7.25.9" 523 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" 524 | integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== 525 | dependencies: 526 | "@babel/helper-plugin-utils" "^7.25.9" 527 | "@babel/helper-replace-supers" "^7.25.9" 528 | 529 | "@babel/plugin-transform-optional-catch-binding@^7.25.9": 530 | version "7.25.9" 531 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" 532 | integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== 533 | dependencies: 534 | "@babel/helper-plugin-utils" "^7.25.9" 535 | 536 | "@babel/plugin-transform-optional-chaining@^7.25.9": 537 | version "7.25.9" 538 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" 539 | integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== 540 | dependencies: 541 | "@babel/helper-plugin-utils" "^7.25.9" 542 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 543 | 544 | "@babel/plugin-transform-parameters@^7.25.9": 545 | version "7.25.9" 546 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" 547 | integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== 548 | dependencies: 549 | "@babel/helper-plugin-utils" "^7.25.9" 550 | 551 | "@babel/plugin-transform-private-methods@^7.25.9": 552 | version "7.25.9" 553 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" 554 | integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== 555 | dependencies: 556 | "@babel/helper-create-class-features-plugin" "^7.25.9" 557 | "@babel/helper-plugin-utils" "^7.25.9" 558 | 559 | "@babel/plugin-transform-private-property-in-object@^7.25.9": 560 | version "7.25.9" 561 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" 562 | integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== 563 | dependencies: 564 | "@babel/helper-annotate-as-pure" "^7.25.9" 565 | "@babel/helper-create-class-features-plugin" "^7.25.9" 566 | "@babel/helper-plugin-utils" "^7.25.9" 567 | 568 | "@babel/plugin-transform-property-literals@^7.25.9": 569 | version "7.25.9" 570 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" 571 | integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== 572 | dependencies: 573 | "@babel/helper-plugin-utils" "^7.25.9" 574 | 575 | "@babel/plugin-transform-regenerator@^7.25.9": 576 | version "7.25.9" 577 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" 578 | integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== 579 | dependencies: 580 | "@babel/helper-plugin-utils" "^7.25.9" 581 | regenerator-transform "^0.15.2" 582 | 583 | "@babel/plugin-transform-regexp-modifiers@^7.26.0": 584 | version "7.26.0" 585 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" 586 | integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== 587 | dependencies: 588 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 589 | "@babel/helper-plugin-utils" "^7.25.9" 590 | 591 | "@babel/plugin-transform-reserved-words@^7.25.9": 592 | version "7.25.9" 593 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" 594 | integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== 595 | dependencies: 596 | "@babel/helper-plugin-utils" "^7.25.9" 597 | 598 | "@babel/plugin-transform-shorthand-properties@^7.25.9": 599 | version "7.25.9" 600 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" 601 | integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== 602 | dependencies: 603 | "@babel/helper-plugin-utils" "^7.25.9" 604 | 605 | "@babel/plugin-transform-spread@^7.25.9": 606 | version "7.25.9" 607 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" 608 | integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== 609 | dependencies: 610 | "@babel/helper-plugin-utils" "^7.25.9" 611 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 612 | 613 | "@babel/plugin-transform-sticky-regex@^7.25.9": 614 | version "7.25.9" 615 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" 616 | integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== 617 | dependencies: 618 | "@babel/helper-plugin-utils" "^7.25.9" 619 | 620 | "@babel/plugin-transform-template-literals@^7.26.8": 621 | version "7.26.8" 622 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" 623 | integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== 624 | dependencies: 625 | "@babel/helper-plugin-utils" "^7.26.5" 626 | 627 | "@babel/plugin-transform-typeof-symbol@^7.26.7": 628 | version "7.26.7" 629 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz#d0e33acd9223744c1e857dbd6fa17bd0a3786937" 630 | integrity sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw== 631 | dependencies: 632 | "@babel/helper-plugin-utils" "^7.26.5" 633 | 634 | "@babel/plugin-transform-unicode-escapes@^7.25.9": 635 | version "7.25.9" 636 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" 637 | integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== 638 | dependencies: 639 | "@babel/helper-plugin-utils" "^7.25.9" 640 | 641 | "@babel/plugin-transform-unicode-property-regex@^7.25.9": 642 | version "7.25.9" 643 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" 644 | integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== 645 | dependencies: 646 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 647 | "@babel/helper-plugin-utils" "^7.25.9" 648 | 649 | "@babel/plugin-transform-unicode-regex@^7.25.9": 650 | version "7.25.9" 651 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" 652 | integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== 653 | dependencies: 654 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 655 | "@babel/helper-plugin-utils" "^7.25.9" 656 | 657 | "@babel/plugin-transform-unicode-sets-regex@^7.25.9": 658 | version "7.25.9" 659 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" 660 | integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== 661 | dependencies: 662 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 663 | "@babel/helper-plugin-utils" "^7.25.9" 664 | 665 | "@babel/preset-env@^7.26.9": 666 | version "7.26.9" 667 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" 668 | integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== 669 | dependencies: 670 | "@babel/compat-data" "^7.26.8" 671 | "@babel/helper-compilation-targets" "^7.26.5" 672 | "@babel/helper-plugin-utils" "^7.26.5" 673 | "@babel/helper-validator-option" "^7.25.9" 674 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" 675 | "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" 676 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" 677 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" 678 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" 679 | "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" 680 | "@babel/plugin-syntax-import-assertions" "^7.26.0" 681 | "@babel/plugin-syntax-import-attributes" "^7.26.0" 682 | "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" 683 | "@babel/plugin-transform-arrow-functions" "^7.25.9" 684 | "@babel/plugin-transform-async-generator-functions" "^7.26.8" 685 | "@babel/plugin-transform-async-to-generator" "^7.25.9" 686 | "@babel/plugin-transform-block-scoped-functions" "^7.26.5" 687 | "@babel/plugin-transform-block-scoping" "^7.25.9" 688 | "@babel/plugin-transform-class-properties" "^7.25.9" 689 | "@babel/plugin-transform-class-static-block" "^7.26.0" 690 | "@babel/plugin-transform-classes" "^7.25.9" 691 | "@babel/plugin-transform-computed-properties" "^7.25.9" 692 | "@babel/plugin-transform-destructuring" "^7.25.9" 693 | "@babel/plugin-transform-dotall-regex" "^7.25.9" 694 | "@babel/plugin-transform-duplicate-keys" "^7.25.9" 695 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" 696 | "@babel/plugin-transform-dynamic-import" "^7.25.9" 697 | "@babel/plugin-transform-exponentiation-operator" "^7.26.3" 698 | "@babel/plugin-transform-export-namespace-from" "^7.25.9" 699 | "@babel/plugin-transform-for-of" "^7.26.9" 700 | "@babel/plugin-transform-function-name" "^7.25.9" 701 | "@babel/plugin-transform-json-strings" "^7.25.9" 702 | "@babel/plugin-transform-literals" "^7.25.9" 703 | "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" 704 | "@babel/plugin-transform-member-expression-literals" "^7.25.9" 705 | "@babel/plugin-transform-modules-amd" "^7.25.9" 706 | "@babel/plugin-transform-modules-commonjs" "^7.26.3" 707 | "@babel/plugin-transform-modules-systemjs" "^7.25.9" 708 | "@babel/plugin-transform-modules-umd" "^7.25.9" 709 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" 710 | "@babel/plugin-transform-new-target" "^7.25.9" 711 | "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" 712 | "@babel/plugin-transform-numeric-separator" "^7.25.9" 713 | "@babel/plugin-transform-object-rest-spread" "^7.25.9" 714 | "@babel/plugin-transform-object-super" "^7.25.9" 715 | "@babel/plugin-transform-optional-catch-binding" "^7.25.9" 716 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 717 | "@babel/plugin-transform-parameters" "^7.25.9" 718 | "@babel/plugin-transform-private-methods" "^7.25.9" 719 | "@babel/plugin-transform-private-property-in-object" "^7.25.9" 720 | "@babel/plugin-transform-property-literals" "^7.25.9" 721 | "@babel/plugin-transform-regenerator" "^7.25.9" 722 | "@babel/plugin-transform-regexp-modifiers" "^7.26.0" 723 | "@babel/plugin-transform-reserved-words" "^7.25.9" 724 | "@babel/plugin-transform-shorthand-properties" "^7.25.9" 725 | "@babel/plugin-transform-spread" "^7.25.9" 726 | "@babel/plugin-transform-sticky-regex" "^7.25.9" 727 | "@babel/plugin-transform-template-literals" "^7.26.8" 728 | "@babel/plugin-transform-typeof-symbol" "^7.26.7" 729 | "@babel/plugin-transform-unicode-escapes" "^7.25.9" 730 | "@babel/plugin-transform-unicode-property-regex" "^7.25.9" 731 | "@babel/plugin-transform-unicode-regex" "^7.25.9" 732 | "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" 733 | "@babel/preset-modules" "0.1.6-no-external-plugins" 734 | babel-plugin-polyfill-corejs2 "^0.4.10" 735 | babel-plugin-polyfill-corejs3 "^0.11.0" 736 | babel-plugin-polyfill-regenerator "^0.6.1" 737 | core-js-compat "^3.40.0" 738 | semver "^6.3.1" 739 | 740 | "@babel/preset-modules@0.1.6-no-external-plugins": 741 | version "0.1.6-no-external-plugins" 742 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" 743 | integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== 744 | dependencies: 745 | "@babel/helper-plugin-utils" "^7.0.0" 746 | "@babel/types" "^7.4.4" 747 | esutils "^2.0.2" 748 | 749 | "@babel/runtime@^7.8.4": 750 | version "7.26.10" 751 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" 752 | integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== 753 | dependencies: 754 | regenerator-runtime "^0.14.0" 755 | 756 | "@babel/template@^7.25.9", "@babel/template@^7.26.9": 757 | version "7.26.9" 758 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2" 759 | integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== 760 | dependencies: 761 | "@babel/code-frame" "^7.26.2" 762 | "@babel/parser" "^7.26.9" 763 | "@babel/types" "^7.26.9" 764 | 765 | "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": 766 | version "7.26.10" 767 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.10.tgz#43cca33d76005dbaa93024fae536cc1946a4c380" 768 | integrity sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A== 769 | dependencies: 770 | "@babel/code-frame" "^7.26.2" 771 | "@babel/generator" "^7.26.10" 772 | "@babel/parser" "^7.26.10" 773 | "@babel/template" "^7.26.9" 774 | "@babel/types" "^7.26.10" 775 | debug "^4.3.1" 776 | globals "^11.1.0" 777 | 778 | "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9", "@babel/types@^7.4.4": 779 | version "7.26.10" 780 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259" 781 | integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ== 782 | dependencies: 783 | "@babel/helper-string-parser" "^7.25.9" 784 | "@babel/helper-validator-identifier" "^7.25.9" 785 | 786 | "@isaacs/cliui@^8.0.2": 787 | version "8.0.2" 788 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 789 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 790 | dependencies: 791 | string-width "^5.1.2" 792 | string-width-cjs "npm:string-width@^4.2.0" 793 | strip-ansi "^7.0.1" 794 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 795 | wrap-ansi "^8.1.0" 796 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 797 | 798 | "@jridgewell/gen-mapping@^0.3.5": 799 | version "0.3.8" 800 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" 801 | integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== 802 | dependencies: 803 | "@jridgewell/set-array" "^1.2.1" 804 | "@jridgewell/sourcemap-codec" "^1.4.10" 805 | "@jridgewell/trace-mapping" "^0.3.24" 806 | 807 | "@jridgewell/resolve-uri@^3.1.0": 808 | version "3.1.2" 809 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 810 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 811 | 812 | "@jridgewell/set-array@^1.2.1": 813 | version "1.2.1" 814 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 815 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 816 | 817 | "@jridgewell/source-map@^0.3.3": 818 | version "0.3.6" 819 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" 820 | integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== 821 | dependencies: 822 | "@jridgewell/gen-mapping" "^0.3.5" 823 | "@jridgewell/trace-mapping" "^0.3.25" 824 | 825 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": 826 | version "1.5.0" 827 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 828 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 829 | 830 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 831 | version "0.3.25" 832 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 833 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 834 | dependencies: 835 | "@jridgewell/resolve-uri" "^3.1.0" 836 | "@jridgewell/sourcemap-codec" "^1.4.14" 837 | 838 | "@rollup/plugin-babel@^6.0.4": 839 | version "6.0.4" 840 | resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz#bd698e351fa9aa9619fcae780aea2a603d98e4c4" 841 | integrity sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw== 842 | dependencies: 843 | "@babel/helper-module-imports" "^7.18.6" 844 | "@rollup/pluginutils" "^5.0.1" 845 | 846 | "@rollup/plugin-commonjs@^28.0.3": 847 | version "28.0.3" 848 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz#44c2cc7c955c6113b96696b55e6bc2446bd67913" 849 | integrity sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ== 850 | dependencies: 851 | "@rollup/pluginutils" "^5.0.1" 852 | commondir "^1.0.1" 853 | estree-walker "^2.0.2" 854 | fdir "^6.2.0" 855 | is-reference "1.2.1" 856 | magic-string "^0.30.3" 857 | picomatch "^4.0.2" 858 | 859 | "@rollup/plugin-node-resolve@^16.0.1": 860 | version "16.0.1" 861 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz#2fc6b54ca3d77e12f3fb45b2a55b50720de4c95d" 862 | integrity sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA== 863 | dependencies: 864 | "@rollup/pluginutils" "^5.0.1" 865 | "@types/resolve" "1.20.2" 866 | deepmerge "^4.2.2" 867 | is-module "^1.0.0" 868 | resolve "^1.22.1" 869 | 870 | "@rollup/plugin-terser@^0.4.4": 871 | version "0.4.4" 872 | resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" 873 | integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== 874 | dependencies: 875 | serialize-javascript "^6.0.1" 876 | smob "^1.0.0" 877 | terser "^5.17.4" 878 | 879 | "@rollup/pluginutils@^5.0.1": 880 | version "5.1.4" 881 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" 882 | integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== 883 | dependencies: 884 | "@types/estree" "^1.0.0" 885 | estree-walker "^2.0.2" 886 | picomatch "^4.0.2" 887 | 888 | "@rollup/rollup-android-arm-eabi@4.36.0": 889 | version "4.36.0" 890 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz#6229c36cddc172c468f53107f2b7aebe2585609b" 891 | integrity sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w== 892 | 893 | "@rollup/rollup-android-arm64@4.36.0": 894 | version "4.36.0" 895 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz#d38163692d0729bd64a026c13749ecac06f847e8" 896 | integrity sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg== 897 | 898 | "@rollup/rollup-darwin-arm64@4.36.0": 899 | version "4.36.0" 900 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz#82601b8ff81f3dbaef28017aa3d0e9709edc99c0" 901 | integrity sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw== 902 | 903 | "@rollup/rollup-darwin-x64@4.36.0": 904 | version "4.36.0" 905 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz#0e961354fb2bf26d691810ca61dc861d9a1e94b2" 906 | integrity sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA== 907 | 908 | "@rollup/rollup-freebsd-arm64@4.36.0": 909 | version "4.36.0" 910 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz#6aee296cd6b8c39158d377c89b7e0cd0851dd7c7" 911 | integrity sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg== 912 | 913 | "@rollup/rollup-freebsd-x64@4.36.0": 914 | version "4.36.0" 915 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz#432e49d93942225ac1b4d98254a6fb6ca0afcd17" 916 | integrity sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ== 917 | 918 | "@rollup/rollup-linux-arm-gnueabihf@4.36.0": 919 | version "4.36.0" 920 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz#a66910c6c63b46d45f239528ad5509097f8df885" 921 | integrity sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg== 922 | 923 | "@rollup/rollup-linux-arm-musleabihf@4.36.0": 924 | version "4.36.0" 925 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz#1cfadc70d44501b0a58615a460cf1b6ec8cfddf3" 926 | integrity sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg== 927 | 928 | "@rollup/rollup-linux-arm64-gnu@4.36.0": 929 | version "4.36.0" 930 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz#d32e42b25216472dfdc5cb7df6a37667766d3855" 931 | integrity sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A== 932 | 933 | "@rollup/rollup-linux-arm64-musl@4.36.0": 934 | version "4.36.0" 935 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz#d742917d61880941be26ff8d3352d935139188b9" 936 | integrity sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw== 937 | 938 | "@rollup/rollup-linux-loongarch64-gnu@4.36.0": 939 | version "4.36.0" 940 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz#9ad12d1a5d3abf4ecb90fbe1a49249608cee8cbb" 941 | integrity sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg== 942 | 943 | "@rollup/rollup-linux-powerpc64le-gnu@4.36.0": 944 | version "4.36.0" 945 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz#c3ca6f5ce4a8b785dd450113660d9529a75fdf2a" 946 | integrity sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg== 947 | 948 | "@rollup/rollup-linux-riscv64-gnu@4.36.0": 949 | version "4.36.0" 950 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz#05eb5e71db5b5b1d1a3428265a63c5f6f8a1e4b8" 951 | integrity sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA== 952 | 953 | "@rollup/rollup-linux-s390x-gnu@4.36.0": 954 | version "4.36.0" 955 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz#6fa895f181fa6804bc6ca27c0e9a6823355436dd" 956 | integrity sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag== 957 | 958 | "@rollup/rollup-linux-x64-gnu@4.36.0": 959 | version "4.36.0" 960 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz#d2e69f7598c71f03287b763fdbefce4163f07419" 961 | integrity sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ== 962 | 963 | "@rollup/rollup-linux-x64-musl@4.36.0": 964 | version "4.36.0" 965 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz#9eb0075deaabf5d88a9dc8b61bd7bd122ac64ef9" 966 | integrity sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ== 967 | 968 | "@rollup/rollup-win32-arm64-msvc@4.36.0": 969 | version "4.36.0" 970 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz#bfda7178ed8cb8fa8786474a02eae9fc8649a74d" 971 | integrity sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A== 972 | 973 | "@rollup/rollup-win32-ia32-msvc@4.36.0": 974 | version "4.36.0" 975 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz#8e12739b9c43de8f0690b280c676af3de571cee0" 976 | integrity sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ== 977 | 978 | "@rollup/rollup-win32-x64-msvc@4.36.0": 979 | version "4.36.0" 980 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz#88b23fe29d28fa647030b36e912c1b5b50831b1d" 981 | integrity sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw== 982 | 983 | "@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0": 984 | version "1.0.6" 985 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 986 | integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 987 | 988 | "@types/resolve@1.20.2": 989 | version "1.20.2" 990 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" 991 | integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== 992 | 993 | accessor-fn@1: 994 | version "1.5.1" 995 | resolved "https://registry.yarnpkg.com/accessor-fn/-/accessor-fn-1.5.1.tgz#7b2d063c16deba5040a46292824ed67d925cb8ea" 996 | integrity sha512-zZpFYBqIL1Aqg+f2qmYHJ8+yIZF7/tP6PUGx2/QM0uGPSO5UegpinmkNwDohxWtOj586BpMPVRUjce2HI6xB3A== 997 | 998 | acorn@^8.8.2: 999 | version "8.14.1" 1000 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" 1001 | integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== 1002 | 1003 | ansi-regex@^5.0.1: 1004 | version "5.0.1" 1005 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 1006 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 1007 | 1008 | ansi-regex@^6.0.1: 1009 | version "6.1.0" 1010 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" 1011 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== 1012 | 1013 | ansi-styles@^4.0.0: 1014 | version "4.3.0" 1015 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 1016 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 1017 | dependencies: 1018 | color-convert "^2.0.1" 1019 | 1020 | ansi-styles@^6.1.0: 1021 | version "6.2.1" 1022 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 1023 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 1024 | 1025 | babel-plugin-polyfill-corejs2@^0.4.10: 1026 | version "0.4.13" 1027 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" 1028 | integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== 1029 | dependencies: 1030 | "@babel/compat-data" "^7.22.6" 1031 | "@babel/helper-define-polyfill-provider" "^0.6.4" 1032 | semver "^6.3.1" 1033 | 1034 | babel-plugin-polyfill-corejs3@^0.11.0: 1035 | version "0.11.1" 1036 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" 1037 | integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== 1038 | dependencies: 1039 | "@babel/helper-define-polyfill-provider" "^0.6.3" 1040 | core-js-compat "^3.40.0" 1041 | 1042 | babel-plugin-polyfill-regenerator@^0.6.1: 1043 | version "0.6.4" 1044 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" 1045 | integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== 1046 | dependencies: 1047 | "@babel/helper-define-polyfill-provider" "^0.6.4" 1048 | 1049 | balanced-match@^1.0.0: 1050 | version "1.0.2" 1051 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 1052 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 1053 | 1054 | brace-expansion@^2.0.1: 1055 | version "2.0.1" 1056 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 1057 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 1058 | dependencies: 1059 | balanced-match "^1.0.0" 1060 | 1061 | browserslist@^4.24.0, browserslist@^4.24.4: 1062 | version "4.24.4" 1063 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" 1064 | integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== 1065 | dependencies: 1066 | caniuse-lite "^1.0.30001688" 1067 | electron-to-chromium "^1.5.73" 1068 | node-releases "^2.0.19" 1069 | update-browserslist-db "^1.1.1" 1070 | 1071 | buffer-from@^1.0.0: 1072 | version "1.1.2" 1073 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 1074 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 1075 | 1076 | caniuse-lite@^1.0.30001688: 1077 | version "1.0.30001706" 1078 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz#902c3f896f4b2968031c3a546ab2ef8b465a2c8f" 1079 | integrity sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug== 1080 | 1081 | color-convert@^2.0.1: 1082 | version "2.0.1" 1083 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 1084 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1085 | dependencies: 1086 | color-name "~1.1.4" 1087 | 1088 | color-name@~1.1.4: 1089 | version "1.1.4" 1090 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 1091 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1092 | 1093 | commander@^2.20.0: 1094 | version "2.20.3" 1095 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1096 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1097 | 1098 | commondir@^1.0.1: 1099 | version "1.0.1" 1100 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1101 | integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== 1102 | 1103 | convert-source-map@^2.0.0: 1104 | version "2.0.0" 1105 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 1106 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 1107 | 1108 | core-js-compat@^3.40.0: 1109 | version "3.41.0" 1110 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" 1111 | integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== 1112 | dependencies: 1113 | browserslist "^4.24.4" 1114 | 1115 | cross-spawn@^7.0.6: 1116 | version "7.0.6" 1117 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 1118 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 1119 | dependencies: 1120 | path-key "^3.1.0" 1121 | shebang-command "^2.0.0" 1122 | which "^2.0.1" 1123 | 1124 | "d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3": 1125 | version "3.2.4" 1126 | resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" 1127 | integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== 1128 | dependencies: 1129 | internmap "1 - 2" 1130 | 1131 | d3-binarytree@1: 1132 | version "1.0.2" 1133 | resolved "https://registry.yarnpkg.com/d3-binarytree/-/d3-binarytree-1.0.2.tgz#ed43ebc13c70fbabfdd62df17480bc5a425753cc" 1134 | integrity sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw== 1135 | 1136 | "d3-color@1 - 3": 1137 | version "3.1.0" 1138 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" 1139 | integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== 1140 | 1141 | "d3-dispatch@1 - 3": 1142 | version "3.0.1" 1143 | resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" 1144 | integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== 1145 | 1146 | "d3-force-3d@2 - 3": 1147 | version "3.0.5" 1148 | resolved "https://registry.yarnpkg.com/d3-force-3d/-/d3-force-3d-3.0.5.tgz#9c8931b49acc3554f9110e128bc580cd3ab830f2" 1149 | integrity sha512-tdwhAhoTYZY/a6eo9nR7HP3xSW/C6XvJTbeRpR92nlPzH6OiE+4MliN9feuSFd0tPtEUo+191qOhCTWx3NYifg== 1150 | dependencies: 1151 | d3-binarytree "1" 1152 | d3-dispatch "1 - 3" 1153 | d3-octree "1" 1154 | d3-quadtree "1 - 3" 1155 | d3-timer "1 - 3" 1156 | 1157 | "d3-format@1 - 3": 1158 | version "3.1.0" 1159 | resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" 1160 | integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== 1161 | 1162 | "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3": 1163 | version "3.0.1" 1164 | resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" 1165 | integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== 1166 | dependencies: 1167 | d3-color "1 - 3" 1168 | 1169 | d3-octree@1: 1170 | version "1.1.0" 1171 | resolved "https://registry.yarnpkg.com/d3-octree/-/d3-octree-1.1.0.tgz#f07e353b76df872644e7130ab1a74c5ef2f4287e" 1172 | integrity sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A== 1173 | 1174 | "d3-quadtree@1 - 3": 1175 | version "3.0.1" 1176 | resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" 1177 | integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== 1178 | 1179 | "d3-scale-chromatic@1 - 3": 1180 | version "3.1.0" 1181 | resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" 1182 | integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== 1183 | dependencies: 1184 | d3-color "1 - 3" 1185 | d3-interpolate "1 - 3" 1186 | 1187 | "d3-scale@1 - 4": 1188 | version "4.0.2" 1189 | resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" 1190 | integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== 1191 | dependencies: 1192 | d3-array "2.10.0 - 3" 1193 | d3-format "1 - 3" 1194 | d3-interpolate "1.2.0 - 3" 1195 | d3-time "2.1.1 - 3" 1196 | d3-time-format "2 - 4" 1197 | 1198 | "d3-time-format@2 - 4": 1199 | version "4.1.0" 1200 | resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" 1201 | integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== 1202 | dependencies: 1203 | d3-time "1 - 3" 1204 | 1205 | "d3-time@1 - 3", "d3-time@2.1.1 - 3": 1206 | version "3.1.0" 1207 | resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" 1208 | integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== 1209 | dependencies: 1210 | d3-array "2 - 3" 1211 | 1212 | "d3-timer@1 - 3": 1213 | version "3.0.1" 1214 | resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" 1215 | integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== 1216 | 1217 | data-bind-mapper@1: 1218 | version "1.0.2" 1219 | resolved "https://registry.yarnpkg.com/data-bind-mapper/-/data-bind-mapper-1.0.2.tgz#0f47cb7c7e741ed4a08fcc0814d84282825ba428" 1220 | integrity sha512-OJBssRDE5jGqPatqFfZzKWQ16oXzz7/2lSdEU84y6syEbJAqV3Ckr/1gzpX387tIuXiZZ6+g3tKvvBHT+umWnA== 1221 | dependencies: 1222 | accessor-fn "1" 1223 | 1224 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 1225 | version "4.4.0" 1226 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" 1227 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== 1228 | dependencies: 1229 | ms "^2.1.3" 1230 | 1231 | deepmerge@^4.2.2: 1232 | version "4.3.1" 1233 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" 1234 | integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== 1235 | 1236 | eastasianwidth@^0.2.0: 1237 | version "0.2.0" 1238 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 1239 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 1240 | 1241 | electron-to-chromium@^1.5.73: 1242 | version "1.5.123" 1243 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz#fae5bdba0ba27045895176327aa79831aba0790c" 1244 | integrity sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA== 1245 | 1246 | emoji-regex@^8.0.0: 1247 | version "8.0.0" 1248 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 1249 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1250 | 1251 | emoji-regex@^9.2.2: 1252 | version "9.2.2" 1253 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 1254 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 1255 | 1256 | escalade@^3.2.0: 1257 | version "3.2.0" 1258 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" 1259 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 1260 | 1261 | estree-walker@^2.0.2: 1262 | version "2.0.2" 1263 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 1264 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 1265 | 1266 | esutils@^2.0.2: 1267 | version "2.0.3" 1268 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1269 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1270 | 1271 | fdir@^6.2.0: 1272 | version "6.4.3" 1273 | resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" 1274 | integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== 1275 | 1276 | foreground-child@^3.1.0: 1277 | version "3.3.1" 1278 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" 1279 | integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== 1280 | dependencies: 1281 | cross-spawn "^7.0.6" 1282 | signal-exit "^4.0.1" 1283 | 1284 | fsevents@~2.3.2: 1285 | version "2.3.3" 1286 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 1287 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 1288 | 1289 | function-bind@^1.1.2: 1290 | version "1.1.2" 1291 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 1292 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1293 | 1294 | gensync@^1.0.0-beta.2: 1295 | version "1.0.0-beta.2" 1296 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1297 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1298 | 1299 | glob@^11.0.0: 1300 | version "11.0.1" 1301 | resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.1.tgz#1c3aef9a59d680e611b53dcd24bb8639cef064d9" 1302 | integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== 1303 | dependencies: 1304 | foreground-child "^3.1.0" 1305 | jackspeak "^4.0.1" 1306 | minimatch "^10.0.0" 1307 | minipass "^7.1.2" 1308 | package-json-from-dist "^1.0.0" 1309 | path-scurry "^2.0.0" 1310 | 1311 | globals@^11.1.0: 1312 | version "11.12.0" 1313 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1314 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1315 | 1316 | hasown@^2.0.2: 1317 | version "2.0.2" 1318 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 1319 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1320 | dependencies: 1321 | function-bind "^1.1.2" 1322 | 1323 | "internmap@1 - 2": 1324 | version "2.0.3" 1325 | resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" 1326 | integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== 1327 | 1328 | is-core-module@^2.16.0: 1329 | version "2.16.1" 1330 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" 1331 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== 1332 | dependencies: 1333 | hasown "^2.0.2" 1334 | 1335 | is-fullwidth-code-point@^3.0.0: 1336 | version "3.0.0" 1337 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1338 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1339 | 1340 | is-module@^1.0.0: 1341 | version "1.0.0" 1342 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 1343 | integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== 1344 | 1345 | is-reference@1.2.1: 1346 | version "1.2.1" 1347 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" 1348 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 1349 | dependencies: 1350 | "@types/estree" "*" 1351 | 1352 | isexe@^2.0.0: 1353 | version "2.0.0" 1354 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1355 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1356 | 1357 | jackspeak@^4.0.1: 1358 | version "4.1.0" 1359 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" 1360 | integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== 1361 | dependencies: 1362 | "@isaacs/cliui" "^8.0.2" 1363 | 1364 | js-tokens@^4.0.0: 1365 | version "4.0.0" 1366 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1367 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1368 | 1369 | jsesc@^3.0.2: 1370 | version "3.1.0" 1371 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" 1372 | integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== 1373 | 1374 | jsesc@~3.0.2: 1375 | version "3.0.2" 1376 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" 1377 | integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== 1378 | 1379 | json5@^2.2.3: 1380 | version "2.2.3" 1381 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1382 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1383 | 1384 | kapsule@^1.16: 1385 | version "1.16.2" 1386 | resolved "https://registry.yarnpkg.com/kapsule/-/kapsule-1.16.2.tgz#2a3b84e38c5d620c06a4f81173f8484e9aa35459" 1387 | integrity sha512-vZaM5ZysNCum7TPH1qfQx92N6O7JBM/y8ANVVwHH5R5QaXDprCvUAfbrjNUXyNCtJaYlTbJaw+enuAvYPIOTBw== 1388 | dependencies: 1389 | lodash-es "4" 1390 | 1391 | lodash-es@4: 1392 | version "4.17.21" 1393 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" 1394 | integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== 1395 | 1396 | lodash.debounce@^4.0.8: 1397 | version "4.0.8" 1398 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1399 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 1400 | 1401 | lru-cache@^11.0.0: 1402 | version "11.0.2" 1403 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" 1404 | integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== 1405 | 1406 | lru-cache@^5.1.1: 1407 | version "5.1.1" 1408 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1409 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1410 | dependencies: 1411 | yallist "^3.0.2" 1412 | 1413 | magic-string@^0.30.3: 1414 | version "0.30.17" 1415 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" 1416 | integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== 1417 | dependencies: 1418 | "@jridgewell/sourcemap-codec" "^1.5.0" 1419 | 1420 | minimatch@^10.0.0: 1421 | version "10.0.1" 1422 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" 1423 | integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== 1424 | dependencies: 1425 | brace-expansion "^2.0.1" 1426 | 1427 | minipass@^7.1.2: 1428 | version "7.1.2" 1429 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" 1430 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 1431 | 1432 | ms@^2.1.3: 1433 | version "2.1.3" 1434 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1435 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1436 | 1437 | ngraph.events@^1.0.0, ngraph.events@^1.2.1: 1438 | version "1.2.2" 1439 | resolved "https://registry.yarnpkg.com/ngraph.events/-/ngraph.events-1.2.2.tgz#3ceb92d676a04a4e7ce60a09fa8e17a4f0346d7f" 1440 | integrity sha512-JsUbEOzANskax+WSYiAPETemLWYXmixuPAlmZmhIbIj6FH/WDgEGCGnRwUQBK0GjOnVm8Ui+e5IJ+5VZ4e32eQ== 1441 | 1442 | ngraph.forcelayout@3: 1443 | version "3.3.1" 1444 | resolved "https://registry.yarnpkg.com/ngraph.forcelayout/-/ngraph.forcelayout-3.3.1.tgz#981e1baee5e0593c490bc27219169f9cedfa4f8b" 1445 | integrity sha512-MKBuEh1wujyQHFTW57y5vd/uuEOK0XfXYxm3lC7kktjJLRdt/KEKEknyOlc6tjXflqBKEuYBBcu7Ax5VY+S6aw== 1446 | dependencies: 1447 | ngraph.events "^1.0.0" 1448 | ngraph.merge "^1.0.0" 1449 | ngraph.random "^1.0.0" 1450 | 1451 | ngraph.graph@20: 1452 | version "20.0.1" 1453 | resolved "https://registry.yarnpkg.com/ngraph.graph/-/ngraph.graph-20.0.1.tgz#579470d1d805583239704dc913e2095540aaf371" 1454 | integrity sha512-VFsQ+EMkT+7lcJO1QP8Ik3w64WbHJl27Q53EO9hiFU9CRyxJ8HfcXtfWz/U8okuoYKDctbciL6pX3vG5dt1rYA== 1455 | dependencies: 1456 | ngraph.events "^1.2.1" 1457 | 1458 | ngraph.merge@^1.0.0: 1459 | version "1.0.0" 1460 | resolved "https://registry.yarnpkg.com/ngraph.merge/-/ngraph.merge-1.0.0.tgz#d763cdfa48b1bbd4270ea246f06c9c8ff5d3477c" 1461 | integrity sha512-5J8YjGITUJeapsomtTALYsw7rFveYkM+lBj3QiYZ79EymQcuri65Nw3knQtFxQBU1r5iOaVRXrSwMENUPK62Vg== 1462 | 1463 | ngraph.random@^1.0.0: 1464 | version "1.1.0" 1465 | resolved "https://registry.yarnpkg.com/ngraph.random/-/ngraph.random-1.1.0.tgz#5345c4bb63865c85d98ee6f13eab1395d8545a90" 1466 | integrity sha512-h25UdUN/g8U7y29TzQtRm/GvGr70lK37yQPvPKXXuVfs7gCm82WipYFZcksQfeKumtOemAzBIcT7lzzyK/edLw== 1467 | 1468 | node-releases@^2.0.19: 1469 | version "2.0.19" 1470 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" 1471 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== 1472 | 1473 | package-json-from-dist@^1.0.0: 1474 | version "1.0.1" 1475 | resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" 1476 | integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== 1477 | 1478 | path-key@^3.1.0: 1479 | version "3.1.1" 1480 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1481 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1482 | 1483 | path-parse@^1.0.7: 1484 | version "1.0.7" 1485 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1486 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1487 | 1488 | path-scurry@^2.0.0: 1489 | version "2.0.0" 1490 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" 1491 | integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== 1492 | dependencies: 1493 | lru-cache "^11.0.0" 1494 | minipass "^7.1.2" 1495 | 1496 | picocolors@^1.0.0, picocolors@^1.1.1: 1497 | version "1.1.1" 1498 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" 1499 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 1500 | 1501 | picomatch@^4.0.2: 1502 | version "4.0.2" 1503 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" 1504 | integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== 1505 | 1506 | randombytes@^2.1.0: 1507 | version "2.1.0" 1508 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 1509 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1510 | dependencies: 1511 | safe-buffer "^5.1.0" 1512 | 1513 | regenerate-unicode-properties@^10.2.0: 1514 | version "10.2.0" 1515 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" 1516 | integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== 1517 | dependencies: 1518 | regenerate "^1.4.2" 1519 | 1520 | regenerate@^1.4.2: 1521 | version "1.4.2" 1522 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" 1523 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 1524 | 1525 | regenerator-runtime@^0.14.0: 1526 | version "0.14.1" 1527 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 1528 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1529 | 1530 | regenerator-transform@^0.15.2: 1531 | version "0.15.2" 1532 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" 1533 | integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== 1534 | dependencies: 1535 | "@babel/runtime" "^7.8.4" 1536 | 1537 | regexpu-core@^6.2.0: 1538 | version "6.2.0" 1539 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" 1540 | integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== 1541 | dependencies: 1542 | regenerate "^1.4.2" 1543 | regenerate-unicode-properties "^10.2.0" 1544 | regjsgen "^0.8.0" 1545 | regjsparser "^0.12.0" 1546 | unicode-match-property-ecmascript "^2.0.0" 1547 | unicode-match-property-value-ecmascript "^2.1.0" 1548 | 1549 | regjsgen@^0.8.0: 1550 | version "0.8.0" 1551 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" 1552 | integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== 1553 | 1554 | regjsparser@^0.12.0: 1555 | version "0.12.0" 1556 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" 1557 | integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== 1558 | dependencies: 1559 | jsesc "~3.0.2" 1560 | 1561 | resolve@^1.14.2, resolve@^1.22.1: 1562 | version "1.22.10" 1563 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" 1564 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== 1565 | dependencies: 1566 | is-core-module "^2.16.0" 1567 | path-parse "^1.0.7" 1568 | supports-preserve-symlinks-flag "^1.0.0" 1569 | 1570 | rimraf@^6.0.1: 1571 | version "6.0.1" 1572 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.0.1.tgz#ffb8ad8844dd60332ab15f52bc104bc3ed71ea4e" 1573 | integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A== 1574 | dependencies: 1575 | glob "^11.0.0" 1576 | package-json-from-dist "^1.0.0" 1577 | 1578 | rollup@^4.36.0: 1579 | version "4.36.0" 1580 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.36.0.tgz#f40f4db47ba3b4f5846d32a47e580c0ed7cd8f02" 1581 | integrity sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q== 1582 | dependencies: 1583 | "@types/estree" "1.0.6" 1584 | optionalDependencies: 1585 | "@rollup/rollup-android-arm-eabi" "4.36.0" 1586 | "@rollup/rollup-android-arm64" "4.36.0" 1587 | "@rollup/rollup-darwin-arm64" "4.36.0" 1588 | "@rollup/rollup-darwin-x64" "4.36.0" 1589 | "@rollup/rollup-freebsd-arm64" "4.36.0" 1590 | "@rollup/rollup-freebsd-x64" "4.36.0" 1591 | "@rollup/rollup-linux-arm-gnueabihf" "4.36.0" 1592 | "@rollup/rollup-linux-arm-musleabihf" "4.36.0" 1593 | "@rollup/rollup-linux-arm64-gnu" "4.36.0" 1594 | "@rollup/rollup-linux-arm64-musl" "4.36.0" 1595 | "@rollup/rollup-linux-loongarch64-gnu" "4.36.0" 1596 | "@rollup/rollup-linux-powerpc64le-gnu" "4.36.0" 1597 | "@rollup/rollup-linux-riscv64-gnu" "4.36.0" 1598 | "@rollup/rollup-linux-s390x-gnu" "4.36.0" 1599 | "@rollup/rollup-linux-x64-gnu" "4.36.0" 1600 | "@rollup/rollup-linux-x64-musl" "4.36.0" 1601 | "@rollup/rollup-win32-arm64-msvc" "4.36.0" 1602 | "@rollup/rollup-win32-ia32-msvc" "4.36.0" 1603 | "@rollup/rollup-win32-x64-msvc" "4.36.0" 1604 | fsevents "~2.3.2" 1605 | 1606 | safe-buffer@^5.1.0: 1607 | version "5.2.1" 1608 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1609 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1610 | 1611 | semver@^6.3.1: 1612 | version "6.3.1" 1613 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1614 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1615 | 1616 | serialize-javascript@^6.0.1: 1617 | version "6.0.2" 1618 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" 1619 | integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== 1620 | dependencies: 1621 | randombytes "^2.1.0" 1622 | 1623 | shebang-command@^2.0.0: 1624 | version "2.0.0" 1625 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1626 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1627 | dependencies: 1628 | shebang-regex "^3.0.0" 1629 | 1630 | shebang-regex@^3.0.0: 1631 | version "3.0.0" 1632 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1633 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1634 | 1635 | signal-exit@^4.0.1: 1636 | version "4.1.0" 1637 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" 1638 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1639 | 1640 | smob@^1.0.0: 1641 | version "1.5.0" 1642 | resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" 1643 | integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== 1644 | 1645 | source-map-support@~0.5.20: 1646 | version "0.5.21" 1647 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 1648 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 1649 | dependencies: 1650 | buffer-from "^1.0.0" 1651 | source-map "^0.6.0" 1652 | 1653 | source-map@^0.6.0: 1654 | version "0.6.1" 1655 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1656 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1657 | 1658 | "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: 1659 | version "4.2.3" 1660 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1661 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1662 | dependencies: 1663 | emoji-regex "^8.0.0" 1664 | is-fullwidth-code-point "^3.0.0" 1665 | strip-ansi "^6.0.1" 1666 | 1667 | string-width@^5.0.1, string-width@^5.1.2: 1668 | version "5.1.2" 1669 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 1670 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1671 | dependencies: 1672 | eastasianwidth "^0.2.0" 1673 | emoji-regex "^9.2.2" 1674 | strip-ansi "^7.0.1" 1675 | 1676 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1677 | version "6.0.1" 1678 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1679 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1680 | dependencies: 1681 | ansi-regex "^5.0.1" 1682 | 1683 | strip-ansi@^7.0.1: 1684 | version "7.1.0" 1685 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 1686 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1687 | dependencies: 1688 | ansi-regex "^6.0.1" 1689 | 1690 | supports-preserve-symlinks-flag@^1.0.0: 1691 | version "1.0.0" 1692 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 1693 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 1694 | 1695 | terser@^5.17.4: 1696 | version "5.39.0" 1697 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" 1698 | integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== 1699 | dependencies: 1700 | "@jridgewell/source-map" "^0.3.3" 1701 | acorn "^8.8.2" 1702 | commander "^2.20.0" 1703 | source-map-support "~0.5.20" 1704 | 1705 | three-forcegraph@1: 1706 | version "1.42.12" 1707 | resolved "https://registry.yarnpkg.com/three-forcegraph/-/three-forcegraph-1.42.12.tgz#126ee984b75608c3039b3866617c6a13c32891c5" 1708 | integrity sha512-W9OBfsQ9KoFBuq0iasj9XUEImFVadYKxD1OGyc/1QlwuuAfbEvO/mwW8aBoB3S0hC+/lYUZqq0WPwK25xqgQ4A== 1709 | dependencies: 1710 | accessor-fn "1" 1711 | d3-array "1 - 3" 1712 | d3-force-3d "2 - 3" 1713 | d3-scale "1 - 4" 1714 | d3-scale-chromatic "1 - 3" 1715 | data-bind-mapper "1" 1716 | kapsule "^1.16" 1717 | ngraph.forcelayout "3" 1718 | ngraph.graph "20" 1719 | tinycolor2 "1" 1720 | 1721 | tinycolor2@1: 1722 | version "1.6.0" 1723 | resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" 1724 | integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== 1725 | 1726 | unicode-canonical-property-names-ecmascript@^2.0.0: 1727 | version "2.0.1" 1728 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" 1729 | integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== 1730 | 1731 | unicode-match-property-ecmascript@^2.0.0: 1732 | version "2.0.0" 1733 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" 1734 | integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 1735 | dependencies: 1736 | unicode-canonical-property-names-ecmascript "^2.0.0" 1737 | unicode-property-aliases-ecmascript "^2.0.0" 1738 | 1739 | unicode-match-property-value-ecmascript@^2.1.0: 1740 | version "2.2.0" 1741 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" 1742 | integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== 1743 | 1744 | unicode-property-aliases-ecmascript@^2.0.0: 1745 | version "2.1.0" 1746 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" 1747 | integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 1748 | 1749 | update-browserslist-db@^1.1.1: 1750 | version "1.1.3" 1751 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" 1752 | integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== 1753 | dependencies: 1754 | escalade "^3.2.0" 1755 | picocolors "^1.1.1" 1756 | 1757 | which@^2.0.1: 1758 | version "2.0.2" 1759 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1760 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1761 | dependencies: 1762 | isexe "^2.0.0" 1763 | 1764 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1765 | version "7.0.0" 1766 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 1767 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1768 | dependencies: 1769 | ansi-styles "^4.0.0" 1770 | string-width "^4.1.0" 1771 | strip-ansi "^6.0.0" 1772 | 1773 | wrap-ansi@^8.1.0: 1774 | version "8.1.0" 1775 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 1776 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1777 | dependencies: 1778 | ansi-styles "^6.1.0" 1779 | string-width "^5.0.1" 1780 | strip-ansi "^7.0.1" 1781 | 1782 | yallist@^3.0.2: 1783 | version "3.1.1" 1784 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1785 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1786 | --------------------------------------------------------------------------------