Compare commits
24 Commits
15e08a8163
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
2ec9bfc3c9
|
|||
|
c97520617a
|
|||
|
6475790176
|
|||
|
580ec73465
|
|||
|
fd98d457a3
|
|||
|
f16ba2601f
|
|||
|
cc6b832f15
|
|||
|
dd5fd5bf17
|
|||
|
38d0fffcf4
|
|||
|
bce06da456
|
|||
|
af585d56ec
|
|||
|
0aa73a27c1
|
|||
|
c1ae70282c
|
|||
|
4c7b03dfb8
|
|||
|
144e8cc797
|
|||
| 12ff9c1518 | |||
| 8d3ffe84ab | |||
|
95ec93eead
|
|||
|
d39185efaf
|
|||
|
81580ccd8c
|
|||
|
bf6f632d27
|
|||
|
|
e098be6013
|
||
|
|
ec13850e1c
|
||
|
|
2690fc8712
|
@@ -75,18 +75,22 @@ pnpm exec dprint fmt CHANGELOG.md
|
|||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
# 5. Setup GPG signing
|
# 5. Setup GPG signing
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
echo "$BOT_PGP_PRIVATE_KEY" | base64 -d | gpg --batch --import --
|
echo "$BOT_PGP_PRIVATE_KEY" | base64 -d | gpg --batch --import
|
||||||
GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG nodarium-bot@max-richter.dev 2>/dev/null | grep sec | head -n1 | sed 's/.*\///' | tr -d ' ')
|
GPG_KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | awk '{print $2}' | cut -d'/' -f2)
|
||||||
|
|
||||||
|
export GPG_TTY=$(tty)
|
||||||
|
echo "allow-loopback-pinentry" >>~/.gnupg/gpg-agent.conf
|
||||||
|
gpg-connect-agent reloadagent /bye
|
||||||
|
|
||||||
git config user.name "nodarium-bot"
|
git config user.name "nodarium-bot"
|
||||||
git config user.email "nodarium-bot@max-richter.dev"
|
git config user.email "nodarium-bot@max-richter.dev"
|
||||||
git config user.signingkey "$GPG_KEY_ID"
|
git config --global user.signingkey "$GPG_KEY_ID"
|
||||||
git config commit.gpgsign true
|
git config --global commit.gpgsign true
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
# 6. Create release commit
|
# 6. Create release commit
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
git add CHANGELOG.md $(find . -name package.json ! -path "*/node_modules/*")
|
git add CHANGELOG.md $(git ls-files '**/package.json')
|
||||||
|
|
||||||
if git diff --cached --quiet; then
|
if git diff --cached --quiet; then
|
||||||
echo "No changes to commit for release $TAG"
|
echo "No changes to commit for release $TAG"
|
||||||
|
|||||||
59
.gitea/workflows/benchmark.yaml
Normal file
59
.gitea/workflows/benchmark.yaml
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: 📊 Benchmark the Runtime
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["*"]
|
||||||
|
pull_request:
|
||||||
|
branches: ["*"]
|
||||||
|
|
||||||
|
env:
|
||||||
|
PNPM_CACHE_FOLDER: .pnpm-store
|
||||||
|
CARGO_HOME: .cargo
|
||||||
|
CARGO_TARGET_DIR: target
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: git.max-richter.dev/max/nodarium-ci:bce06da456e3c008851ac006033cfff256015a47
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 📑 Checkout Code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
token: ${{ secrets.GITEA_TOKEN }}
|
||||||
|
|
||||||
|
- name: 💾 Setup pnpm Cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${{ env.PNPM_CACHE_FOLDER }}
|
||||||
|
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pnpm-
|
||||||
|
|
||||||
|
- name: 🦀 Cache Cargo
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/git
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-
|
||||||
|
|
||||||
|
- name: 📦 Install Dependencies
|
||||||
|
run: pnpm install --frozen-lockfile --store-dir ${{ env.PNPM_CACHE_FOLDER }}
|
||||||
|
|
||||||
|
- name: 🛠️Build Nodes
|
||||||
|
run: pnpm build:nodes
|
||||||
|
|
||||||
|
- name: 🏃 Execute Runtime
|
||||||
|
run: pnpm run --filter @nodarium/app bench
|
||||||
|
|
||||||
|
- name: 📤 Upload Benchmark Results
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: benchmark-data
|
||||||
|
path: app/benchmark/out/
|
||||||
|
compression: 9
|
||||||
@@ -15,7 +15,7 @@ env:
|
|||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container: git.max-richter.dev/max/nodarium-ci:fd7268d6208aede435e1685817ae6b271c68bd83
|
container: git.max-richter.dev/max/nodarium-ci:bce06da456e3c008851ac006033cfff256015a47
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 📑 Checkout Code
|
- name: 📑 Checkout Code
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,3 +5,5 @@ node_modules/
|
|||||||
|
|
||||||
/target
|
/target
|
||||||
.direnv/
|
.direnv/
|
||||||
|
|
||||||
|
.pnpm-store/
|
||||||
|
|||||||
@@ -1,106 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "chokidar-cli",
|
|
||||||
"description": "Ultra-fast cross-platform command line utility to watch file system changes.",
|
|
||||||
"version": "0.0.4",
|
|
||||||
"keywords": [
|
|
||||||
"fs",
|
|
||||||
"watch",
|
|
||||||
"watchFile",
|
|
||||||
"watcher",
|
|
||||||
"watching",
|
|
||||||
"file",
|
|
||||||
"fsevents",
|
|
||||||
"chokidar",
|
|
||||||
"cli",
|
|
||||||
"command",
|
|
||||||
"shell",
|
|
||||||
"bash"
|
|
||||||
],
|
|
||||||
"bin": {
|
|
||||||
"chokidar": "index.js"
|
|
||||||
},
|
|
||||||
"homepage": "https://github.com/open-cli-tools/chokidar-cli",
|
|
||||||
"author": "Kimmo Brunfeldt <kimmobrunfeldt@gmail.com>",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/open-cli-tools/chokidar-cli.git"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "http://github.com/open-cli-tools/chokidar-cli/issues"
|
|
||||||
},
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"chokidar": "^3.5.2",
|
|
||||||
"lodash.debounce": "^4.0.8",
|
|
||||||
"lodash.throttle": "^4.1.1",
|
|
||||||
"yargs": "^18.0.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"eslint": "^8.57.1",
|
|
||||||
"mocha": "^11.7.2"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .",
|
|
||||||
"mocha": "mocha",
|
|
||||||
"test": "npm run lint && npm run mocha"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 20.0.0"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"*.js"
|
|
||||||
],
|
|
||||||
"eslintConfig": {
|
|
||||||
"extends": "eslint:recommended",
|
|
||||||
"parserOptions": {
|
|
||||||
"ecmaVersion": 9,
|
|
||||||
"sourceType": "script"
|
|
||||||
},
|
|
||||||
"env": {
|
|
||||||
"node": true,
|
|
||||||
"es6": true
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"array-callback-return": "error",
|
|
||||||
"indent": [
|
|
||||||
"error",
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"no-empty": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"allowEmptyCatch": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"object-shorthand": "error",
|
|
||||||
"prefer-arrow-callback": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"allowNamedFunctions": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prefer-const": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"ignoreReadBeforeAssign": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prefer-destructuring": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"object": true,
|
|
||||||
"array": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"prefer-spread": "error",
|
|
||||||
"prefer-template": "error",
|
|
||||||
"radix": "error",
|
|
||||||
"strict": "error",
|
|
||||||
"quotes": [
|
|
||||||
"error",
|
|
||||||
"single"
|
|
||||||
],
|
|
||||||
"no-var": "error"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
65
CHANGELOG.md
65
CHANGELOG.md
@@ -1,3 +1,68 @@
|
|||||||
|
# v0.0.5 (2026-02-13)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Implement debug node with full runtime integration, wildcard (`*`) inputs, variable-height nodes and parameters, and a quick-connect shortcut.
|
||||||
|
- Add color-coded node sockets and edges to visually indicate data types.
|
||||||
|
- Recursively merge `localState` with the initial state to safely handle outdated settings stored in `localStorage` when the settings schema changes.
|
||||||
|
- Clamp the Add Menu to the viewport.
|
||||||
|
- Add application favicon.
|
||||||
|
- Consolidate all developer settings into a single **Advanced Mode** setting.
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
- Fix InputNumber arrow visibility in the light theme.
|
||||||
|
- Correct changelog formatting issues.
|
||||||
|
|
||||||
|
## Chores
|
||||||
|
|
||||||
|
- Add `pnpm qa` pre-commit command.
|
||||||
|
- Run linting and type checks before build in CI.
|
||||||
|
- Sign release commits with a PGP key.
|
||||||
|
- General formatting, lint/type cleanup, test snapshot updates, and `.gitignore` maintenance.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- [f16ba26](https://git.max-richter.dev/max/nodarium/commit/f16ba2601ff0e8f0f4454e24689499112a2a257a) fix(ci): still trying to get gpg to work
|
||||||
|
- [cc6b832](https://git.max-richter.dev/max/nodarium/commit/cc6b832f1576356e5453ee4289b02f854152ff9a) fix(ci): trying to get gpg to work
|
||||||
|
- [dd5fd5b](https://git.max-richter.dev/max/nodarium/commit/dd5fd5bf1715d371566bd40419b72ca05e63401e) fix(ci): better add updates to package.json
|
||||||
|
- [38d0fff](https://git.max-richter.dev/max/nodarium/commit/38d0fffcf4ca0a346857c3658ccefdfcdf16e217) chore: update ci image
|
||||||
|
- [bce06da](https://git.max-richter.dev/max/nodarium/commit/bce06da456e3c008851ac006033cfff256015a47) ci: add gpg-agent to ci image
|
||||||
|
- [af585d5](https://git.max-richter.dev/max/nodarium/commit/af585d56ec825662961c8796226ed9d8cb900795) feat: use new ci image with gpg
|
||||||
|
- [0aa73a2](https://git.max-richter.dev/max/nodarium/commit/0aa73a27c1f23bea177ecc66034f8e0384c29a8e) feat: install gpg in ci image
|
||||||
|
- [c1ae702](https://git.max-richter.dev/max/nodarium/commit/c1ae70282cb5d58527180614a80823d80ca478c5) feat: add color to sockets
|
||||||
|
- [4c7b03d](https://git.max-richter.dev/max/nodarium/commit/4c7b03dfb82174317d8ba01f4725af804201154d) feat: add gradient mesh line
|
||||||
|
- [144e8cc](https://git.max-richter.dev/max/nodarium/commit/144e8cc797cfcc5a7a1fd9a0a2098dc99afb6170) fix: correctly highlight possible outputs
|
||||||
|
- [12ff9c1](https://git.max-richter.dev/max/nodarium/commit/12ff9c151873d253ed2e54dcf56aa9c9c4716c7c) Merge pull request 'feat/debug-node' (#41) from feat/debug-node into main
|
||||||
|
- [8d3ffe8](https://git.max-richter.dev/max/nodarium/commit/8d3ffe84ab9ca9e6d6d28333752e34da878fd3ea) Merge branch 'main' into feat/debug-node
|
||||||
|
- [95ec93e](https://git.max-richter.dev/max/nodarium/commit/95ec93eeada9bf062e01e1e77b67b8f0343a51bf) feat: better handle ctrl+shift clicks and selections
|
||||||
|
- [d39185e](https://git.max-richter.dev/max/nodarium/commit/d39185efafc360f49ab9437c0bad1f64665df167) feat: add "pnpm qa" command to check before commit
|
||||||
|
- [81580cc](https://git.max-richter.dev/max/nodarium/commit/81580ccd8c1db30ce83433c4c4df84bd660d3460) fix: cleanup some type errors
|
||||||
|
- [bf6f632](https://git.max-richter.dev/max/nodarium/commit/bf6f632d2772c3da812d5864c401f17e1aa8666a) feat: add shortcut to quick connect to debug
|
||||||
|
- [e098be6](https://git.max-richter.dev/max/nodarium/commit/e098be60135f57cf863904a58489e032ed27e8b4) fix: also execute all nodes before debug node
|
||||||
|
- [ec13850](https://git.max-richter.dev/max/nodarium/commit/ec13850e1c0ca5846da614d25887ff492cf8be04) fix: make debug node work with runtime
|
||||||
|
- [15e08a8](https://git.max-richter.dev/max/nodarium/commit/15e08a816339bdf9de9ecb6a57a7defff42dbe8c) feat: implement debug node
|
||||||
|
- [48cee58](https://git.max-richter.dev/max/nodarium/commit/48cee58ad337c1c6c59a0eb55bf9b5ecd16b99d0) chore: update test snapshots
|
||||||
|
- [3235cae](https://git.max-richter.dev/max/nodarium/commit/3235cae9049e193c242b6091cee9f01e67ee850e) chore: fix lint and typecheck errors
|
||||||
|
- [3f44072](https://git.max-richter.dev/max/nodarium/commit/3f440728fc8a94d59022bb545f418be049a1f1ba) feat: implement variable height for node shader
|
||||||
|
- [da09f8b](https://git.max-richter.dev/max/nodarium/commit/da09f8ba1eda5ed347433d37064a3b4ab49e627e) refactor: move debug node into runtime
|
||||||
|
- [ddc3b4c](https://git.max-richter.dev/max/nodarium/commit/ddc3b4ce357ef1c1e8066c0a52151713d0b6ed95) feat: allow variable height node parameters
|
||||||
|
- [2690fc8](https://git.max-richter.dev/max/nodarium/commit/2690fc871291e73d3d028df9668e8fffb1e77476) chore: gitignore pnpm-store
|
||||||
|
- [072ab90](https://git.max-richter.dev/max/nodarium/commit/072ab9063ba56df0673020eb639548f3a8601e04) feat: add initial debug node
|
||||||
|
- [e23cad2](https://git.max-richter.dev/max/nodarium/commit/e23cad254d610e00f196b7fdb4532f36fd735a4b) feat: add "*" datatype for inputs for debug node
|
||||||
|
- [5b5c63c](https://git.max-richter.dev/max/nodarium/commit/5b5c63c1a9c4ef757382bd4452149dc9777693ff) fix(ui): make arrows on inputnumber visible on lighttheme
|
||||||
|
- [c9021f2](https://git.max-richter.dev/max/nodarium/commit/c9021f2383828f2e2b5594d125165bbc8f70b8e7) refactor: merge all dev settings into one setting
|
||||||
|
- [9eecdd4](https://git.max-richter.dev/max/nodarium/commit/9eecdd4fb85dc60b8196101050334e26732c9a34) Merge pull request 'feat: merge localState recursively with initial' (#38) from feat/debug-node into main
|
||||||
|
- [7e71a41](https://git.max-richter.dev/max/nodarium/commit/7e71a41e5229126d404f56598c624709961dbf3b) feat: merge localState recursively with initial
|
||||||
|
- [07cd9e8](https://git.max-richter.dev/max/nodarium/commit/07cd9e84eb51bc02b7fed39c36cf83caba175ad7) feat: clamp AddMenu to viewport
|
||||||
|
- [a31a49a](https://git.max-richter.dev/max/nodarium/commit/a31a49ad503d69f92f2491dd685729060ea49896) ci: lint and typecheck before build
|
||||||
|
- [850d641](https://git.max-richter.dev/max/nodarium/commit/850d641a25cd0c781478c58c117feaf085bdbc62) chore: pnpm format
|
||||||
|
- [ee5ca81](https://git.max-richter.dev/max/nodarium/commit/ee5ca817573b83cacfa3709e0ae88c6263bc39c1) ci: sign release commits with pgp key
|
||||||
|
- [22a1183](https://git.max-richter.dev/max/nodarium/commit/22a11832b861ae8b44e2d374b55d12937ecab247) fix(ci): correctly format changelog
|
||||||
|
- [b5ce572](https://git.max-richter.dev/max/nodarium/commit/b5ce5723fa4a35443df39a9096d0997f808f0b4f) chore: format favicon svg
|
||||||
|
- [102130c](https://git.max-richter.dev/max/nodarium/commit/102130cc7777ceebcdb3de8466c90cef5b380111) feat: add favicon
|
||||||
|
- [1668a2e](https://git.max-richter.dev/max/nodarium/commit/1668a2e6d59db071ab3da45204c2b7bfcd2150a2) chore: format changelog.md
|
||||||
|
|
||||||
# v0.0.4 (2026-02-10)
|
# v0.0.4 (2026-02-10)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ ENV RUSTUP_HOME=/usr/local/rustup \
|
|||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
ca-certificates=20230311+deb12u1 \
|
ca-certificates=20230311+deb12u1 \
|
||||||
|
gpg=2.2.40-1.1+deb12u2 \
|
||||||
|
gpg-agent=2.2.40-1.1+deb12u2 \
|
||||||
curl=7.88.1-10+deb12u14 \
|
curl=7.88.1-10+deb12u14 \
|
||||||
git=1:2.39.5-0+deb12u3 \
|
git=1:2.39.5-0+deb12u3 \
|
||||||
jq=1.6-2.1+deb12u1 \
|
jq=1.6-2.1+deb12u1 \
|
||||||
|
|||||||
1
app/benchmark/.gitignore
vendored
Normal file
1
app/benchmark/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
out/
|
||||||
47
app/benchmark/benchmarkRegistry.ts
Normal file
47
app/benchmark/benchmarkRegistry.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import { NodeDefinition, NodeId, NodeRegistry } from '@nodarium/types';
|
||||||
|
import { createWasmWrapper } from '@nodarium/utils';
|
||||||
|
import { readFile } from 'node:fs/promises';
|
||||||
|
import { resolve } from 'node:path';
|
||||||
|
|
||||||
|
export class BenchmarkRegistry implements NodeRegistry {
|
||||||
|
status: 'loading' | 'ready' | 'error' = 'loading';
|
||||||
|
|
||||||
|
private nodes = new Map<string, NodeDefinition>();
|
||||||
|
|
||||||
|
async load(nodeIds: NodeId[]): Promise<NodeDefinition[]> {
|
||||||
|
const nodes = await Promise.all(nodeIds.map(async id => {
|
||||||
|
const p = resolve('static/nodes/' + id + '.wasm');
|
||||||
|
const file = await readFile(p);
|
||||||
|
const node = createWasmWrapper(file as unknown as ArrayBuffer);
|
||||||
|
const d = node.get_definition();
|
||||||
|
return {
|
||||||
|
...d,
|
||||||
|
execute: node.execute
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
for (const n of nodes) {
|
||||||
|
this.nodes.set(n.id, n);
|
||||||
|
}
|
||||||
|
this.status = 'ready';
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
async register(id: string, wasmBuffer: ArrayBuffer): Promise<NodeDefinition> {
|
||||||
|
const wasm = createWasmWrapper(wasmBuffer);
|
||||||
|
const d = wasm.get_definition();
|
||||||
|
const node = {
|
||||||
|
...d,
|
||||||
|
execute: wasm.execute
|
||||||
|
};
|
||||||
|
this.nodes.set(id, node);
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
getNode(id: NodeId | string): NodeDefinition | undefined {
|
||||||
|
return this.nodes.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
getAllNodes(): NodeDefinition[] {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
56
app/benchmark/index.ts
Normal file
56
app/benchmark/index.ts
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import type { Graph, Graph as GraphType, NodeId } from '@nodarium/types';
|
||||||
|
import { createLogger, createPerformanceStore } from '@nodarium/utils';
|
||||||
|
import { mkdir, writeFile } from 'node:fs/promises';
|
||||||
|
import { resolve } from 'node:path';
|
||||||
|
import { MemoryRuntimeExecutor } from '../src/lib/runtime/runtime-executor.ts';
|
||||||
|
import { BenchmarkRegistry } from './benchmarkRegistry.ts';
|
||||||
|
import defaultPlantTemplate from './templates/default.json' assert { type: 'json' };
|
||||||
|
import lottaFacesTemplate from './templates/lotta-faces.json' assert { type: 'json' };
|
||||||
|
import plantTemplate from './templates/plant.json' assert { type: 'json' };
|
||||||
|
|
||||||
|
const registry = new BenchmarkRegistry();
|
||||||
|
const r = new MemoryRuntimeExecutor(registry);
|
||||||
|
const perfStore = createPerformanceStore();
|
||||||
|
|
||||||
|
const log = createLogger('bench');
|
||||||
|
|
||||||
|
const templates: Record<string, Graph> = {
|
||||||
|
'plant': plantTemplate as unknown as GraphType,
|
||||||
|
'lotta-faces': lottaFacesTemplate as unknown as GraphType,
|
||||||
|
'default': defaultPlantTemplate as unknown as GraphType
|
||||||
|
};
|
||||||
|
|
||||||
|
async function run(g: GraphType, amount: number) {
|
||||||
|
await registry.load(plantTemplate.nodes.map(n => n.type) as NodeId[]);
|
||||||
|
log.log('loaded ' + g.nodes.length + ' nodes');
|
||||||
|
|
||||||
|
log.log('warming up');
|
||||||
|
|
||||||
|
// Warm up the runtime? maybe this does something?
|
||||||
|
for (let index = 0; index < 10; index++) {
|
||||||
|
await r.execute(g, { randomSeed: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
log.log('executing');
|
||||||
|
r.perf = perfStore;
|
||||||
|
for (let i = 0; i < amount; i++) {
|
||||||
|
r.perf?.startRun();
|
||||||
|
await r.execute(g, { randomSeed: true });
|
||||||
|
r.perf?.stopRun();
|
||||||
|
}
|
||||||
|
log.log('finished');
|
||||||
|
return r.perf.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const outPath = resolve('benchmark/out/');
|
||||||
|
await mkdir(outPath, { recursive: true });
|
||||||
|
for (const key in templates) {
|
||||||
|
log.log('executing ' + key);
|
||||||
|
const perfData = await run(templates[key], 100);
|
||||||
|
await writeFile(resolve(outPath, key + '.json'), JSON.stringify(perfData));
|
||||||
|
await new Promise(res => setTimeout(res, 200));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
95
app/benchmark/templates/default.json
Normal file
95
app/benchmark/templates/default.json
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
"settings": { "resolution.circle": 26, "resolution.curve": 39 },
|
||||||
|
"nodes": [
|
||||||
|
{ "id": 9, "position": [220, 80], "type": "max/plantarium/output", "props": {} },
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"position": [95, 80],
|
||||||
|
"type": "max/plantarium/stem",
|
||||||
|
"props": { "amount": 5, "length": 11, "thickness": 0.1 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"position": [195, 80],
|
||||||
|
"type": "max/plantarium/gravity",
|
||||||
|
"props": {
|
||||||
|
"strength": 0.38,
|
||||||
|
"scale": 39,
|
||||||
|
"fixBottom": 0,
|
||||||
|
"directionalStrength": [1, 1, 1],
|
||||||
|
"depth": 1,
|
||||||
|
"curviness": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"position": [120, 80],
|
||||||
|
"type": "max/plantarium/noise",
|
||||||
|
"props": {
|
||||||
|
"strength": 4.9,
|
||||||
|
"scale": 2.2,
|
||||||
|
"fixBottom": 1,
|
||||||
|
"directionalStrength": [1, 1, 1],
|
||||||
|
"depth": 1,
|
||||||
|
"octaves": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"position": [70, 80],
|
||||||
|
"type": "max/plantarium/vec3",
|
||||||
|
"props": { "0": 0, "1": 0, "2": 0 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 17,
|
||||||
|
"position": [45, 80],
|
||||||
|
"type": "max/plantarium/random",
|
||||||
|
"props": { "min": -2, "max": 2 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"position": [170, 80],
|
||||||
|
"type": "max/plantarium/branch",
|
||||||
|
"props": {
|
||||||
|
"length": 1.6,
|
||||||
|
"thickness": 0.69,
|
||||||
|
"amount": 36,
|
||||||
|
"offsetSingle": 0.5,
|
||||||
|
"lowestBranch": 0.46,
|
||||||
|
"highestBranch": 1,
|
||||||
|
"depth": 1,
|
||||||
|
"rotation": 180
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"position": [145, 80],
|
||||||
|
"type": "max/plantarium/gravity",
|
||||||
|
"props": {
|
||||||
|
"strength": 0.38,
|
||||||
|
"scale": 39,
|
||||||
|
"fixBottom": 0,
|
||||||
|
"directionalStrength": [1, 1, 1],
|
||||||
|
"depth": 1,
|
||||||
|
"curviness": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"position": [70, 120],
|
||||||
|
"type": "max/plantarium/random",
|
||||||
|
"props": { "min": 0.073, "max": 0.15 }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"edges": [
|
||||||
|
[14, 0, 9, "input"],
|
||||||
|
[10, 0, 15, "plant"],
|
||||||
|
[16, 0, 10, "origin"],
|
||||||
|
[17, 0, 16, "0"],
|
||||||
|
[17, 0, 16, "2"],
|
||||||
|
[18, 0, 14, "plant"],
|
||||||
|
[15, 0, 19, "plant"],
|
||||||
|
[19, 0, 18, "plant"],
|
||||||
|
[20, 0, 10, "thickness"]
|
||||||
|
]
|
||||||
|
}
|
||||||
44
app/benchmark/templates/lotta-faces.json
Normal file
44
app/benchmark/templates/lotta-faces.json
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"settings": { "resolution.circle": 64, "resolution.curve": 64, "randomSeed": false },
|
||||||
|
"nodes": [
|
||||||
|
{ "id": 9, "position": [260, 0], "type": "max/plantarium/output", "props": {} },
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"position": [185, 0],
|
||||||
|
"type": "max/plantarium/stem",
|
||||||
|
"props": { "amount": 64, "length": 12, "thickness": 0.15 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"position": [210, 0],
|
||||||
|
"type": "max/plantarium/noise",
|
||||||
|
"props": { "scale": 1.3, "strength": 5.4 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"position": [235, 0],
|
||||||
|
"type": "max/plantarium/branch",
|
||||||
|
"props": { "length": 0.8, "thickness": 0.8, "amount": 3 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"position": [160, 0],
|
||||||
|
"type": "max/plantarium/vec3",
|
||||||
|
"props": { "0": 0.39, "1": 0, "2": 0.41 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"position": [130, 0],
|
||||||
|
"type": "max/plantarium/random",
|
||||||
|
"props": { "min": -2, "max": 2 }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"edges": [
|
||||||
|
[18, 0, 19, "plant"],
|
||||||
|
[19, 0, 20, "plant"],
|
||||||
|
[20, 0, 9, "input"],
|
||||||
|
[21, 0, 18, "origin"],
|
||||||
|
[22, 0, 21, "0"],
|
||||||
|
[22, 0, 21, "2"]
|
||||||
|
]
|
||||||
|
}
|
||||||
71
app/benchmark/templates/plant.json
Normal file
71
app/benchmark/templates/plant.json
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"settings": { "resolution.circle": 26, "resolution.curve": 39 },
|
||||||
|
"nodes": [
|
||||||
|
{ "id": 9, "position": [180, 80], "type": "max/plantarium/output", "props": {} },
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"position": [55, 80],
|
||||||
|
"type": "max/plantarium/stem",
|
||||||
|
"props": { "amount": 1, "length": 11, "thickness": 0.71 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"position": [80, 80],
|
||||||
|
"type": "max/plantarium/noise",
|
||||||
|
"props": {
|
||||||
|
"strength": 35,
|
||||||
|
"scale": 4.6,
|
||||||
|
"fixBottom": 1,
|
||||||
|
"directionalStrength": [1, 0.74, 0.083],
|
||||||
|
"depth": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"position": [105, 80],
|
||||||
|
"type": "max/plantarium/branch",
|
||||||
|
"props": {
|
||||||
|
"length": 3,
|
||||||
|
"thickness": 0.6,
|
||||||
|
"amount": 10,
|
||||||
|
"rotation": 180,
|
||||||
|
"offsetSingle": 0.34,
|
||||||
|
"lowestBranch": 0.53,
|
||||||
|
"highestBranch": 1,
|
||||||
|
"depth": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"position": [130, 80],
|
||||||
|
"type": "max/plantarium/noise",
|
||||||
|
"props": {
|
||||||
|
"strength": 8,
|
||||||
|
"scale": 7.7,
|
||||||
|
"fixBottom": 1,
|
||||||
|
"directionalStrength": [1, 0, 1],
|
||||||
|
"depth": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"position": [155, 80],
|
||||||
|
"type": "max/plantarium/gravity",
|
||||||
|
"props": {
|
||||||
|
"strength": 0.11,
|
||||||
|
"scale": 39,
|
||||||
|
"fixBottom": 0,
|
||||||
|
"directionalStrength": [1, 1, 1],
|
||||||
|
"depth": 1,
|
||||||
|
"curviness": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"edges": [
|
||||||
|
[10, 0, 11, "plant"],
|
||||||
|
[11, 0, 12, "plant"],
|
||||||
|
[12, 0, 13, "plant"],
|
||||||
|
[13, 0, 14, "plant"],
|
||||||
|
[14, 0, 9, "input"]
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 43 KiB |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@nodarium/app",
|
"name": "@nodarium/app",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
@@ -14,7 +14,8 @@
|
|||||||
"format": "dprint fmt -c '../.dprint.jsonc' .",
|
"format": "dprint fmt -c '../.dprint.jsonc' .",
|
||||||
"format:check": "dprint check -c '../.dprint.jsonc' .",
|
"format:check": "dprint check -c '../.dprint.jsonc' .",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json"
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||||
|
"bench": "tsx ./benchmark/index.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nodarium/ui": "workspace:*",
|
"@nodarium/ui": "workspace:*",
|
||||||
@@ -51,6 +52,7 @@
|
|||||||
"svelte": "^5.49.2",
|
"svelte": "^5.49.2",
|
||||||
"svelte-check": "^4.3.6",
|
"svelte-check": "^4.3.6",
|
||||||
"tslib": "^2.8.1",
|
"tslib": "^2.8.1",
|
||||||
|
"tsx": "^4.21.0",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"typescript-eslint": "^8.54.0",
|
"typescript-eslint": "^8.54.0",
|
||||||
"vite": "^7.3.1",
|
"vite": "^7.3.1",
|
||||||
|
|||||||
@@ -6,15 +6,12 @@
|
|||||||
toneMapped: false
|
toneMapped: false
|
||||||
});
|
});
|
||||||
|
|
||||||
let lineColor = $state(colors.outline.clone().convertSRGBToLinear());
|
|
||||||
|
|
||||||
$effect.root(() => {
|
$effect.root(() => {
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
if (appSettings.value.theme === undefined) {
|
if (appSettings.value.theme === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
circleMaterial.color = colors.outline.clone().convertSRGBToLinear();
|
circleMaterial.color = colors.outline.clone().convertSRGBToLinear();
|
||||||
lineColor = colors.outline.clone().convertSRGBToLinear();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -35,6 +32,7 @@
|
|||||||
import { CubicBezierCurve } from 'three/src/extras/curves/CubicBezierCurve.js';
|
import { CubicBezierCurve } from 'three/src/extras/curves/CubicBezierCurve.js';
|
||||||
import { Vector2 } from 'three/src/math/Vector2.js';
|
import { Vector2 } from 'three/src/math/Vector2.js';
|
||||||
import { getGraphState } from '../graph-state.svelte';
|
import { getGraphState } from '../graph-state.svelte';
|
||||||
|
import MeshGradientLineMaterial from './MeshGradientLine/MeshGradientLineMaterial.svelte';
|
||||||
|
|
||||||
const graphState = getGraphState();
|
const graphState = getGraphState();
|
||||||
|
|
||||||
@@ -45,12 +43,17 @@
|
|||||||
y2: number;
|
y2: number;
|
||||||
z: number;
|
z: number;
|
||||||
id?: string;
|
id?: string;
|
||||||
|
inputType?: string;
|
||||||
|
outputType?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
const { x1, y1, x2, y2, z, id }: Props = $props();
|
const { x1, y1, x2, y2, z, inputType = 'unknown', outputType = 'unknown', id }: Props = $props();
|
||||||
|
|
||||||
const thickness = $derived(Math.max(0.001, 0.00082 * Math.exp(0.055 * z)));
|
const thickness = $derived(Math.max(0.001, 0.00082 * Math.exp(0.055 * z)));
|
||||||
|
|
||||||
|
const inputColor = $derived(graphState.colors.getColor(inputType));
|
||||||
|
const outputColor = $derived(graphState.colors.getColor(outputType));
|
||||||
|
|
||||||
let points = $state<Vector3[]>([]);
|
let points = $state<Vector3[]>([]);
|
||||||
|
|
||||||
let lastId: string | null = null;
|
let lastId: string | null = null;
|
||||||
@@ -106,9 +109,9 @@
|
|||||||
position.z={y1}
|
position.z={y1}
|
||||||
position.y={0.8}
|
position.y={0.8}
|
||||||
rotation.x={-Math.PI / 2}
|
rotation.x={-Math.PI / 2}
|
||||||
material={circleMaterial}
|
|
||||||
>
|
>
|
||||||
<T.CircleGeometry args={[0.5, 16]} />
|
<T.CircleGeometry args={[0.5, 16]} />
|
||||||
|
<T.MeshBasicMaterial color={inputColor} toneMapped={false} />
|
||||||
</T.Mesh>
|
</T.Mesh>
|
||||||
|
|
||||||
<T.Mesh
|
<T.Mesh
|
||||||
@@ -119,6 +122,7 @@
|
|||||||
material={circleMaterial}
|
material={circleMaterial}
|
||||||
>
|
>
|
||||||
<T.CircleGeometry args={[0.5, 16]} />
|
<T.CircleGeometry args={[0.5, 16]} />
|
||||||
|
<T.MeshBasicMaterial color={outputColor} toneMapped={false} />
|
||||||
</T.Mesh>
|
</T.Mesh>
|
||||||
|
|
||||||
{#if graphState.hoveredEdgeId === id}
|
{#if graphState.hoveredEdgeId === id}
|
||||||
@@ -126,7 +130,8 @@
|
|||||||
<MeshLineGeometry {points} />
|
<MeshLineGeometry {points} />
|
||||||
<MeshLineMaterial
|
<MeshLineMaterial
|
||||||
width={thickness * 5}
|
width={thickness * 5}
|
||||||
color={lineColor}
|
color={inputColor}
|
||||||
|
tonemapped={false}
|
||||||
opacity={0.5}
|
opacity={0.5}
|
||||||
transparent
|
transparent
|
||||||
/>
|
/>
|
||||||
@@ -135,5 +140,10 @@
|
|||||||
|
|
||||||
<T.Mesh position.x={x1} position.z={y1} position.y={0.1}>
|
<T.Mesh position.x={x1} position.z={y1} position.y={0.1}>
|
||||||
<MeshLineGeometry {points} />
|
<MeshLineGeometry {points} />
|
||||||
<MeshLineMaterial width={thickness} color={lineColor} />
|
<MeshGradientLineMaterial
|
||||||
|
width={thickness}
|
||||||
|
colorStart={inputColor}
|
||||||
|
colorEnd={outputColor}
|
||||||
|
tonemapped={false}
|
||||||
|
/>
|
||||||
</T.Mesh>
|
</T.Mesh>
|
||||||
|
|||||||
@@ -0,0 +1,112 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { T, useThrelte } from '@threlte/core';
|
||||||
|
import { Color, ShaderMaterial, Vector2 } from 'three';
|
||||||
|
import fragmentShader from './fragment.frag';
|
||||||
|
import type { MeshLineMaterialProps } from './types';
|
||||||
|
import vertexShader from './vertex.vert';
|
||||||
|
|
||||||
|
let {
|
||||||
|
opacity = 1,
|
||||||
|
colorStart = '#ffffff',
|
||||||
|
colorEnd = '#ffffff',
|
||||||
|
dashOffset = 0,
|
||||||
|
dashArray = 0,
|
||||||
|
dashRatio = 0,
|
||||||
|
attenuate = true,
|
||||||
|
width = 1,
|
||||||
|
scaleDown = 0,
|
||||||
|
alphaMap,
|
||||||
|
ref = $bindable(),
|
||||||
|
children,
|
||||||
|
...props
|
||||||
|
}: MeshLineMaterialProps = $props();
|
||||||
|
|
||||||
|
let { invalidate, size } = useThrelte();
|
||||||
|
|
||||||
|
// svelte-ignore state_referenced_locally
|
||||||
|
const uniforms = {
|
||||||
|
lineWidth: { value: width },
|
||||||
|
colorStart: { value: new Color(colorStart) },
|
||||||
|
colorEnd: { value: new Color(colorEnd) },
|
||||||
|
opacity: { value: opacity },
|
||||||
|
resolution: { value: new Vector2(1, 1) },
|
||||||
|
sizeAttenuation: { value: attenuate ? 1 : 0 },
|
||||||
|
dashArray: { value: dashArray },
|
||||||
|
useDash: { value: dashArray > 0 ? 1 : 0 },
|
||||||
|
dashOffset: { value: dashOffset },
|
||||||
|
dashRatio: { value: dashRatio },
|
||||||
|
scaleDown: { value: scaleDown / 10 },
|
||||||
|
alphaTest: { value: 0 },
|
||||||
|
alphaMap: { value: alphaMap },
|
||||||
|
useAlphaMap: { value: alphaMap ? 1 : 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
const material = new ShaderMaterial({ uniforms });
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.lineWidth.value = width;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.opacity.value = opacity;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.resolution.value.set($size.width, $size.height);
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.sizeAttenuation.value = attenuate ? 1 : 0;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.dashArray.value = dashArray;
|
||||||
|
uniforms.useDash.value = dashArray > 0 ? 1 : 0;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.dashOffset.value = dashOffset;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.dashRatio.value = dashRatio;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.scaleDown.value = scaleDown / 10;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.alphaMap.value = alphaMap;
|
||||||
|
uniforms.useAlphaMap.value = alphaMap ? 1 : 0;
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.colorStart.value.set(colorStart);
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
|
||||||
|
$effect.pre(() => {
|
||||||
|
uniforms.colorEnd.value.set(colorEnd);
|
||||||
|
invalidate();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<T
|
||||||
|
is={material}
|
||||||
|
bind:ref
|
||||||
|
{fragmentShader}
|
||||||
|
{vertexShader}
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
{@render children?.({ ref: material })}
|
||||||
|
</T>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
uniform vec3 colorStart;
|
||||||
|
uniform vec3 colorEnd;
|
||||||
|
|
||||||
|
uniform float useDash;
|
||||||
|
uniform float dashArray;
|
||||||
|
uniform float dashOffset;
|
||||||
|
uniform float dashRatio;
|
||||||
|
uniform sampler2D alphaMap;
|
||||||
|
uniform float useAlphaMap;
|
||||||
|
|
||||||
|
varying vec2 vUV;
|
||||||
|
varying vec4 vColor;
|
||||||
|
varying float vCounters;
|
||||||
|
|
||||||
|
vec4 CustomLinearTosRGB( in vec4 value ) {
|
||||||
|
return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
|
||||||
|
vec4 c = mix(vec4(colorStart,1.0),vec4(colorEnd, 1.0), vCounters);
|
||||||
|
|
||||||
|
if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV ).r;
|
||||||
|
|
||||||
|
if( useDash == 1. ){
|
||||||
|
c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));
|
||||||
|
}
|
||||||
|
|
||||||
|
gl_FragColor = CustomLinearTosRGB(c);
|
||||||
|
}
|
||||||
68
app/src/lib/graph-interface/edges/MeshGradientLine/types.ts
Normal file
68
app/src/lib/graph-interface/edges/MeshGradientLine/types.ts
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
import type { Props } from '@threlte/core';
|
||||||
|
import type { BufferGeometry, Vector3 } from 'three';
|
||||||
|
import type { ColorRepresentation, ShaderMaterial, Texture } from 'three';
|
||||||
|
|
||||||
|
export type MeshLineGeometryProps = Props<BufferGeometry> & {
|
||||||
|
/**
|
||||||
|
* @default []
|
||||||
|
*/
|
||||||
|
points: Vector3[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 'none'
|
||||||
|
*/
|
||||||
|
shape?: 'none' | 'taper' | 'custom';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default () => 1
|
||||||
|
*/
|
||||||
|
shapeFunction?: (p: number) => number;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type MeshLineMaterialProps =
|
||||||
|
& Omit<
|
||||||
|
Props<ShaderMaterial>,
|
||||||
|
'uniforms' | 'fragmentShader' | 'vertexShader'
|
||||||
|
>
|
||||||
|
& {
|
||||||
|
/**
|
||||||
|
* @default 1
|
||||||
|
*/
|
||||||
|
opacity?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default '#ffffff'
|
||||||
|
*/
|
||||||
|
color?: ColorRepresentation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
dashOffset?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
dashArray?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
dashRatio?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default true
|
||||||
|
*/
|
||||||
|
attenuate?: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 1
|
||||||
|
*/
|
||||||
|
width?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
scaleDown?: number;
|
||||||
|
alphaMap?: Texture | undefined;
|
||||||
|
};
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
attribute vec3 previous;
|
||||||
|
attribute vec3 next;
|
||||||
|
attribute float side;
|
||||||
|
attribute float width;
|
||||||
|
attribute float counters;
|
||||||
|
|
||||||
|
uniform vec2 resolution;
|
||||||
|
uniform float lineWidth;
|
||||||
|
uniform vec3 color;
|
||||||
|
uniform float opacity;
|
||||||
|
uniform float sizeAttenuation;
|
||||||
|
uniform float scaleDown;
|
||||||
|
|
||||||
|
varying vec2 vUV;
|
||||||
|
varying vec4 vColor;
|
||||||
|
varying float vCounters;
|
||||||
|
|
||||||
|
vec2 intoScreen(vec4 i) {
|
||||||
|
return resolution * (0.5 * i.xy / i.w + 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float aspect = resolution.y / resolution.x;
|
||||||
|
|
||||||
|
mat4 m = projectionMatrix * modelViewMatrix;
|
||||||
|
|
||||||
|
vec4 currentClip = m * vec4( position, 1.0 );
|
||||||
|
vec4 prevClip = m * vec4( previous, 1.0 );
|
||||||
|
vec4 nextClip = m * vec4( next, 1.0 );
|
||||||
|
|
||||||
|
vec4 currentNormed = currentClip / currentClip.w;
|
||||||
|
vec4 prevNormed = prevClip / prevClip.w;
|
||||||
|
vec4 nextNormed = nextClip / nextClip.w;
|
||||||
|
|
||||||
|
vec2 currentScreen = intoScreen(currentNormed);
|
||||||
|
vec2 prevScreen = intoScreen(prevNormed);
|
||||||
|
vec2 nextScreen = intoScreen(nextNormed);
|
||||||
|
|
||||||
|
float actualWidth = lineWidth * width;
|
||||||
|
|
||||||
|
vec2 dir;
|
||||||
|
if(nextScreen == currentScreen) {
|
||||||
|
dir = normalize( currentScreen - prevScreen );
|
||||||
|
} else if(prevScreen == currentScreen) {
|
||||||
|
dir = normalize( nextScreen - currentScreen );
|
||||||
|
} else {
|
||||||
|
vec2 inDir = currentScreen - prevScreen;
|
||||||
|
vec2 outDir = nextScreen - currentScreen;
|
||||||
|
vec2 fullDir = nextScreen - prevScreen;
|
||||||
|
|
||||||
|
if(length(fullDir) > 0.0) {
|
||||||
|
dir = normalize(fullDir);
|
||||||
|
} else if(length(inDir) > 0.0){
|
||||||
|
dir = normalize(inDir);
|
||||||
|
} else {
|
||||||
|
dir = normalize(outDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 normal = vec2(-dir.y, dir.x);
|
||||||
|
|
||||||
|
if(sizeAttenuation != 0.0) {
|
||||||
|
normal /= currentClip.w;
|
||||||
|
normal *= min(resolution.x, resolution.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scaleDown > 0.0) {
|
||||||
|
float dist = length(nextNormed - prevNormed);
|
||||||
|
normal *= smoothstep(0.0, scaleDown, dist);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 offsetInScreen = actualWidth * normal * side * 0.5;
|
||||||
|
|
||||||
|
vec2 withOffsetScreen = currentScreen + offsetInScreen;
|
||||||
|
vec3 withOffsetNormed = vec3((2.0 * withOffsetScreen/resolution - 1.0), currentNormed.z);
|
||||||
|
|
||||||
|
vCounters = counters;
|
||||||
|
vColor = vec4( color, opacity );
|
||||||
|
vUV = uv;
|
||||||
|
|
||||||
|
gl_Position = currentClip.w * vec4(withOffsetNormed, 1.0);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ import { getContext, setContext } from 'svelte';
|
|||||||
import { SvelteMap, SvelteSet } from 'svelte/reactivity';
|
import { SvelteMap, SvelteSet } from 'svelte/reactivity';
|
||||||
import type { OrthographicCamera, Vector3 } from 'three';
|
import type { OrthographicCamera, Vector3 } from 'three';
|
||||||
import type { GraphManager } from './graph-manager.svelte';
|
import type { GraphManager } from './graph-manager.svelte';
|
||||||
|
import { ColorGenerator } from './graph/colors';
|
||||||
import { getNodeHeight, getSocketPosition } from './helpers/nodeHelpers';
|
import { getNodeHeight, getSocketPosition } from './helpers/nodeHelpers';
|
||||||
|
|
||||||
const graphStateKey = Symbol('graph-state');
|
const graphStateKey = Symbol('graph-state');
|
||||||
@@ -28,7 +29,32 @@ type EdgeData = {
|
|||||||
points: Vector3[];
|
points: Vector3[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const predefinedColors = {
|
||||||
|
path: {
|
||||||
|
hue: 80,
|
||||||
|
lightness: 20,
|
||||||
|
saturation: 80
|
||||||
|
},
|
||||||
|
float: {
|
||||||
|
hue: 70,
|
||||||
|
lightness: 10,
|
||||||
|
saturation: 0
|
||||||
|
},
|
||||||
|
geometry: {
|
||||||
|
hue: 0,
|
||||||
|
lightness: 50,
|
||||||
|
saturation: 70
|
||||||
|
},
|
||||||
|
'*': {
|
||||||
|
hue: 200,
|
||||||
|
lightness: 20,
|
||||||
|
saturation: 100
|
||||||
|
}
|
||||||
|
} as const;
|
||||||
|
|
||||||
export class GraphState {
|
export class GraphState {
|
||||||
|
colors = new ColorGenerator(predefinedColors);
|
||||||
|
|
||||||
constructor(private graph: GraphManager) {
|
constructor(private graph: GraphManager) {
|
||||||
$effect.root(() => {
|
$effect.root(() => {
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
@@ -160,6 +186,29 @@ export class GraphState {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tryConnectToDebugNode(nodeId: number) {
|
||||||
|
const node = this.graph.nodes.get(nodeId);
|
||||||
|
if (!node) return;
|
||||||
|
if (node.type.endsWith('/debug')) return;
|
||||||
|
if (!node.state.type?.outputs?.length) return;
|
||||||
|
for (const _node of this.graph.nodes.values()) {
|
||||||
|
if (_node.type.endsWith('/debug')) {
|
||||||
|
this.graph.createEdge(node, 0, _node, 'input');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const debugNode = this.graph.createNode({
|
||||||
|
type: 'max/plantarium/debug',
|
||||||
|
position: [node.position[0] + 30, node.position[1]],
|
||||||
|
props: {}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (debugNode) {
|
||||||
|
this.graph.createEdge(node, 0, debugNode, 'input');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
copyNodes() {
|
copyNodes() {
|
||||||
if (this.activeNodeId === -1 && !this.selectedNodes?.size) {
|
if (this.activeNodeId === -1 && !this.selectedNodes?.size) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -95,6 +95,13 @@
|
|||||||
graphState.activeSocket = null;
|
graphState.activeSocket = null;
|
||||||
graphState.addMenuPosition = null;
|
graphState.addMenuPosition = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSocketType(node: NodeInstance, index: number | string): string {
|
||||||
|
if (typeof index === 'string') {
|
||||||
|
return node.state.type?.inputs?.[index].type || 'unknown';
|
||||||
|
}
|
||||||
|
return node.state.type?.outputs?.[index] || 'unknown';
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:window
|
<svelte:window
|
||||||
@@ -175,6 +182,8 @@
|
|||||||
{#if graphState.activeSocket}
|
{#if graphState.activeSocket}
|
||||||
<EdgeEl
|
<EdgeEl
|
||||||
z={graphState.cameraPosition[2]}
|
z={graphState.cameraPosition[2]}
|
||||||
|
inputType={getSocketType(graphState.activeSocket.node, graphState.activeSocket.index)}
|
||||||
|
outputType={getSocketType(graphState.activeSocket.node, graphState.activeSocket.index)}
|
||||||
x1={graphState.activeSocket.position[0]}
|
x1={graphState.activeSocket.position[0]}
|
||||||
y1={graphState.activeSocket.position[1]}
|
y1={graphState.activeSocket.position[1]}
|
||||||
x2={graphState.edgeEndPosition?.[0] ?? graphState.mousePosition[0]}
|
x2={graphState.edgeEndPosition?.[0] ?? graphState.mousePosition[0]}
|
||||||
@@ -187,6 +196,8 @@
|
|||||||
<EdgeEl
|
<EdgeEl
|
||||||
id={graph.getEdgeId(edge)}
|
id={graph.getEdgeId(edge)}
|
||||||
z={graphState.cameraPosition[2]}
|
z={graphState.cameraPosition[2]}
|
||||||
|
inputType={getSocketType(edge[0], edge[1])}
|
||||||
|
outputType={getSocketType(edge[2], edge[3])}
|
||||||
{x1}
|
{x1}
|
||||||
{y1}
|
{y1}
|
||||||
{x2}
|
{x2}
|
||||||
|
|||||||
44
app/src/lib/graph-interface/graph/colors.ts
Normal file
44
app/src/lib/graph-interface/graph/colors.ts
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
type Color = { hue: number; saturation: number; lightness: number };
|
||||||
|
|
||||||
|
export class ColorGenerator {
|
||||||
|
private colors: Map<string, Color> = new Map();
|
||||||
|
private lightnessLevels = [10, 60];
|
||||||
|
|
||||||
|
constructor(predefined: Record<string, Color>) {
|
||||||
|
for (const [id, colorStr] of Object.entries(predefined)) {
|
||||||
|
this.colors.set(id, colorStr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public getColor(id: string): string {
|
||||||
|
if (this.colors.has(id)) {
|
||||||
|
return this.colorToHsl(this.colors.get(id)!);
|
||||||
|
}
|
||||||
|
|
||||||
|
const newColor = this.generateNewColor();
|
||||||
|
this.colors.set(id, newColor);
|
||||||
|
return this.colorToHsl(newColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
private generateNewColor(): Color {
|
||||||
|
const existingHues = Array.from(this.colors.values()).map(c => c.hue).sort();
|
||||||
|
let hue = existingHues[0];
|
||||||
|
let attempts = 0;
|
||||||
|
|
||||||
|
while (
|
||||||
|
existingHues.some(h => Math.abs(h - hue) < 30 || Math.abs(h - hue) > 330)
|
||||||
|
&& attempts < 360
|
||||||
|
) {
|
||||||
|
hue = (hue + 30) % 360;
|
||||||
|
attempts++;
|
||||||
|
}
|
||||||
|
|
||||||
|
const lightness = 60;
|
||||||
|
|
||||||
|
return { hue, lightness, saturation: 100 };
|
||||||
|
}
|
||||||
|
|
||||||
|
private colorToHsl(c: Color): string {
|
||||||
|
return `hsl(${c.hue}, ${c.saturation}%, ${c.lightness}%)`;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -189,6 +189,10 @@ export class MouseEventManager {
|
|||||||
|
|
||||||
// if we clicked on a node
|
// if we clicked on a node
|
||||||
if (clickedNodeId !== -1) {
|
if (clickedNodeId !== -1) {
|
||||||
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
|
this.state.tryConnectToDebugNode(clickedNodeId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.state.activeNodeId === -1) {
|
if (this.state.activeNodeId === -1) {
|
||||||
this.state.activeNodeId = clickedNodeId;
|
this.state.activeNodeId = clickedNodeId;
|
||||||
// if the selected node is the same as the clicked node
|
// if the selected node is the same as the clicked node
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { appSettings } from '$lib/settings/app-settings.svelte';
|
import { appSettings } from '$lib/settings/app-settings.svelte';
|
||||||
import type { NodeInstance } from '@nodarium/types';
|
import type { NodeInstance, Socket } from '@nodarium/types';
|
||||||
import { getGraphState } from '../graph-state.svelte';
|
import { getGraphState } from '../graph-state.svelte';
|
||||||
import { createNodePath } from '../helpers/index.js';
|
import { createNodePath } from '../helpers/index.js';
|
||||||
import { getSocketPosition } from '../helpers/nodeHelpers';
|
import { getSocketPosition } from '../helpers/nodeHelpers';
|
||||||
@@ -45,9 +45,27 @@
|
|||||||
aspectRatio
|
aspectRatio
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const socketId = $derived(`${node.id}-${0}`);
|
||||||
|
|
||||||
|
function getSocketType(s: Socket | null) {
|
||||||
|
if (!s) return 'unknown';
|
||||||
|
if (typeof s.index === 'string') {
|
||||||
|
return s.node.state.type?.inputs?.[s.index].type || 'unknown';
|
||||||
|
}
|
||||||
|
return s.node.state.type?.outputs?.[s.index] || 'unknown';
|
||||||
|
}
|
||||||
|
const socketType = $derived(getSocketType(graphState.activeSocket));
|
||||||
|
const hoverColor = $derived(graphState.colors.getColor(socketType));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="wrapper" data-node-id={node.id} data-node-type={node.type}>
|
<div
|
||||||
|
class="wrapper"
|
||||||
|
data-node-id={node.id}
|
||||||
|
data-node-type={node.type}
|
||||||
|
style:--socket-color={hoverColor}
|
||||||
|
class:possible-socket={graphState?.possibleSocketIds.has(socketId)}
|
||||||
|
>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{#if appSettings.value.debug.advancedMode}
|
{#if appSettings.value.debug.advancedMode}
|
||||||
<span class="bg-white text-black! mr-2 px-1 rounded-sm opacity-30">{node.id}</span>
|
<span class="bg-white text-black! mr-2 px-1 rounded-sm opacity-30">{node.id}</span>
|
||||||
@@ -55,7 +73,7 @@
|
|||||||
{node.type.split('/').pop()}
|
{node.type.split('/').pop()}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="click-target"
|
class="target"
|
||||||
role="button"
|
role="button"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
onmousedown={handleMouseDown}
|
onmousedown={handleMouseDown}
|
||||||
@@ -83,7 +101,20 @@
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.click-target {
|
.possible-socket .target::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
border-radius: 100%;
|
||||||
|
box-shadow: 0px 0px 10px var(--socket-color);
|
||||||
|
background-color: var(--socket-color);
|
||||||
|
outline: solid thin var(--socket-color);
|
||||||
|
opacity: 0.7;
|
||||||
|
z-index: -10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0px;
|
right: 0px;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
@@ -94,7 +125,7 @@
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.click-target:hover + svg path {
|
.target:hover + svg path {
|
||||||
d: var(--hover-path);
|
d: var(--hover-path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { NodeInput, NodeInstance } from '@nodarium/types';
|
import type { NodeInput, NodeInstance, Socket } from '@nodarium/types';
|
||||||
import { getGraphManager, getGraphState } from '../graph-state.svelte';
|
import { getGraphManager, getGraphState } from '../graph-state.svelte';
|
||||||
import { createNodePath } from '../helpers';
|
import { createNodePath } from '../helpers';
|
||||||
import { getParameterHeight, getSocketPosition } from '../helpers/nodeHelpers';
|
import { getParameterHeight, getSocketPosition } from '../helpers/nodeHelpers';
|
||||||
@@ -60,6 +60,17 @@
|
|||||||
aspectRatio
|
aspectRatio
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
function getSocketType(s: Socket | null) {
|
||||||
|
if (!s) return 'unknown';
|
||||||
|
if (typeof s.index === 'string') {
|
||||||
|
return s.node.state.type?.inputs?.[s.index].type || 'unknown';
|
||||||
|
}
|
||||||
|
return s.node.state.type?.outputs?.[s.index] || 'unknown';
|
||||||
|
}
|
||||||
|
|
||||||
|
const socketType = $derived(getSocketType(graphState.activeSocket));
|
||||||
|
const hoverColor = $derived(graphState.colors.getColor(socketType));
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -67,6 +78,7 @@
|
|||||||
data-node-type={node.type}
|
data-node-type={node.type}
|
||||||
data-node-input={id}
|
data-node-input={id}
|
||||||
style:height="{height}px"
|
style:height="{height}px"
|
||||||
|
style:--socket-color={hoverColor}
|
||||||
class:possible-socket={graphState?.possibleSocketIds.has(socketId)}
|
class:possible-socket={graphState?.possibleSocketIds.has(socketId)}
|
||||||
>
|
>
|
||||||
{#key id && graphId}
|
{#key id && graphId}
|
||||||
@@ -95,10 +107,8 @@
|
|||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
viewBox="0 0 100 100"
|
viewBox="0 0 100 100"
|
||||||
preserveAspectRatio="none"
|
preserveAspectRatio="none"
|
||||||
style={`
|
style:--path={`path("${path}")`}
|
||||||
--path: path("${path}");
|
style:--hover-path={`path("${pathHover}")`}
|
||||||
--hover-path: path("${pathHover}");
|
|
||||||
`}
|
|
||||||
>
|
>
|
||||||
<path vector-effect="non-scaling-stroke"></path>
|
<path vector-effect="non-scaling-stroke"></path>
|
||||||
</svg>
|
</svg>
|
||||||
@@ -120,9 +130,16 @@
|
|||||||
transform: translateY(-50%) translateX(-50%);
|
transform: translateY(-50%) translateX(-50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.possible-socket .target {
|
.possible-socket .target::before {
|
||||||
box-shadow: 0px 0px 10px rgba(255, 255, 255, 0.5);
|
content: "";
|
||||||
background-color: rgba(255, 255, 255, 0.2);
|
position: absolute;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
border-radius: 100%;
|
||||||
|
box-shadow: 0px 0px 10px var(--socket-color);
|
||||||
|
background-color: var(--socket-color);
|
||||||
|
outline: solid thin var(--socket-color);
|
||||||
|
opacity: 0.5;
|
||||||
z-index: -10;
|
z-index: -10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,11 +149,12 @@
|
|||||||
|
|
||||||
.content {
|
.content {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 10px 20px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
padding-inline: 20px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
justify-content: space-around;
|
justify-content: center;
|
||||||
|
gap: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,11 @@
|
|||||||
const data: Record<string, unknown> = {};
|
|
||||||
|
|
||||||
export function clearDebugData() {
|
|
||||||
for (const key in data) {
|
|
||||||
delete data[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getDebugData() {
|
|
||||||
return { ...data };
|
|
||||||
}
|
|
||||||
|
|
||||||
export const debugNode = {
|
export const debugNode = {
|
||||||
id: 'max/plantarium/debug',
|
id: 'max/plantarium/debug',
|
||||||
inputs: {
|
inputs: {
|
||||||
a: {
|
input: {
|
||||||
type: '*'
|
type: '*'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
execute(data: Int32Array) {
|
execute(_data: Int32Array): Int32Array {
|
||||||
return data;
|
return _data;
|
||||||
}
|
}
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
@@ -125,10 +125,10 @@ export class MemoryRuntimeExecutor implements RuntimeExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const nodes = [];
|
const nodes = new Map<number, RuntimeNode>();
|
||||||
|
|
||||||
// loop through all the nodes and assign each nodes its depth
|
// loop through all the nodes and assign each nodes its depth
|
||||||
const stack = [outputNode];
|
const stack = [outputNode, ...graphNodes.filter(n => n.type.endsWith('/debug'))];
|
||||||
while (stack.length) {
|
while (stack.length) {
|
||||||
const node = stack.pop();
|
const node = stack.pop();
|
||||||
if (!node) continue;
|
if (!node) continue;
|
||||||
@@ -137,18 +137,24 @@ export class MemoryRuntimeExecutor implements RuntimeExecutor {
|
|||||||
parent.state.depth = node.state.depth + 1;
|
parent.state.depth = node.state.depth + 1;
|
||||||
stack.push(parent);
|
stack.push(parent);
|
||||||
}
|
}
|
||||||
nodes.push(node);
|
nodes.set(node.id, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const node of graphNodes) {
|
for (const node of graphNodes) {
|
||||||
if (node.type.endsWith('/debug')) {
|
if (node.type.endsWith('/debug')) {
|
||||||
node.state = node.state || {};
|
node.state = node.state || {};
|
||||||
const parent = node.state.parents[0];
|
const parent = node.state.parents[0];
|
||||||
|
if (parent) {
|
||||||
|
node.state.depth = parent.state.depth - 1;
|
||||||
parent.state.debugNode = true;
|
parent.state.debugNode = true;
|
||||||
}
|
}
|
||||||
|
nodes.set(node.id, node);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [outputNode, nodes] as const;
|
const _nodes = [...nodes.values()];
|
||||||
|
|
||||||
|
return [outputNode, _nodes] as const;
|
||||||
}
|
}
|
||||||
|
|
||||||
async execute(graph: Graph, settings: Record<string, unknown>) {
|
async execute(graph: Graph, settings: Record<string, unknown>) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "pnpm run -r --filter 'ui' build",
|
"postinstall": "pnpm run -r --filter 'ui' build",
|
||||||
"lint": "pnpm run -r --parallel lint",
|
"lint": "pnpm run -r --parallel lint",
|
||||||
|
"qa": "pnpm lint && pnpm check && pnpm test",
|
||||||
"format": "pnpm dprint fmt",
|
"format": "pnpm dprint fmt",
|
||||||
"format:check": "pnpm dprint check",
|
"format:check": "pnpm dprint check",
|
||||||
"test": "pnpm run -r --parallel test",
|
"test": "pnpm run -r --parallel test",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@nodarium/types",
|
"name": "@nodarium/types",
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@nodarium/ui",
|
"name": "@nodarium/ui",
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build && npm run package",
|
"build": "vite build && npm run package",
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "@nodarium/utils",
|
"name": "@nodarium/utils",
|
||||||
"version": "0.0.4",
|
"version": "0.0.5",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "src/index.ts",
|
"main": "./src/index.ts",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"format": "dprint fmt -c '../../.dprint.jsonc' .",
|
"format": "dprint fmt -c '../../.dprint.jsonc' .",
|
||||||
|
|||||||
409
pnpm-lock.yaml
generated
409
pnpm-lock.yaml
generated
@@ -31,10 +31,10 @@ importers:
|
|||||||
version: link:../packages/utils
|
version: link:../packages/utils
|
||||||
'@sveltejs/kit':
|
'@sveltejs/kit':
|
||||||
specifier: ^2.50.2
|
specifier: ^2.50.2
|
||||||
version: 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.1.18
|
specifier: ^4.1.18
|
||||||
version: 4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@threlte/core':
|
'@threlte/core':
|
||||||
specifier: 8.3.1
|
specifier: 8.3.1
|
||||||
version: 8.3.1(svelte@5.49.2)(three@0.182.0)
|
version: 8.3.1(svelte@5.49.2)(three@0.182.0)
|
||||||
@@ -83,10 +83,10 @@ importers:
|
|||||||
version: 1.58.1
|
version: 1.58.1
|
||||||
'@sveltejs/adapter-static':
|
'@sveltejs/adapter-static':
|
||||||
specifier: ^3.0.10
|
specifier: ^3.0.10
|
||||||
version: 3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))
|
version: 3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))
|
||||||
'@sveltejs/vite-plugin-svelte':
|
'@sveltejs/vite-plugin-svelte':
|
||||||
specifier: ^6.2.4
|
specifier: ^6.2.4
|
||||||
version: 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@tsconfig/svelte':
|
'@tsconfig/svelte':
|
||||||
specifier: ^5.0.7
|
specifier: ^5.0.7
|
||||||
version: 5.0.7
|
version: 5.0.7
|
||||||
@@ -98,7 +98,7 @@ importers:
|
|||||||
version: 0.182.0
|
version: 0.182.0
|
||||||
'@vitest/browser-playwright':
|
'@vitest/browser-playwright':
|
||||||
specifier: ^4.0.18
|
specifier: ^4.0.18
|
||||||
version: 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
version: 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
dprint:
|
dprint:
|
||||||
specifier: ^0.51.1
|
specifier: ^0.51.1
|
||||||
version: 0.51.1
|
version: 0.51.1
|
||||||
@@ -120,6 +120,9 @@ importers:
|
|||||||
tslib:
|
tslib:
|
||||||
specifier: ^2.8.1
|
specifier: ^2.8.1
|
||||||
version: 2.8.1
|
version: 2.8.1
|
||||||
|
tsx:
|
||||||
|
specifier: ^4.21.0
|
||||||
|
version: 4.21.0
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.9.3
|
specifier: ^5.9.3
|
||||||
version: 5.9.3
|
version: 5.9.3
|
||||||
@@ -128,19 +131,19 @@ importers:
|
|||||||
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^7.3.1
|
specifier: ^7.3.1
|
||||||
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vite-plugin-comlink:
|
vite-plugin-comlink:
|
||||||
specifier: ^5.3.0
|
specifier: ^5.3.0
|
||||||
version: 5.3.0(comlink@4.4.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 5.3.0(comlink@4.4.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
vite-plugin-glsl:
|
vite-plugin-glsl:
|
||||||
specifier: ^1.5.5
|
specifier: ^1.5.5
|
||||||
version: 1.5.5(@rollup/pluginutils@5.1.4(rollup@4.57.1))(esbuild@0.27.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 1.5.5(@rollup/pluginutils@5.1.4(rollup@4.57.1))(esbuild@0.27.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
vite-plugin-wasm:
|
vite-plugin-wasm:
|
||||||
specifier: ^3.5.0
|
specifier: ^3.5.0
|
||||||
version: 3.5.0(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 3.5.0(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^4.0.18
|
specifier: ^4.0.18
|
||||||
version: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitest-browser-svelte:
|
vitest-browser-svelte:
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2(svelte@5.49.2)(vitest@4.0.18)
|
version: 2.0.2(svelte@5.49.2)(vitest@4.0.18)
|
||||||
@@ -165,7 +168,7 @@ importers:
|
|||||||
version: 1.2.1(tailwindcss@4.1.18)
|
version: 1.2.1(tailwindcss@4.1.18)
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.1.18
|
specifier: ^4.1.18
|
||||||
version: 4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@threlte/core':
|
'@threlte/core':
|
||||||
specifier: ^8.3.1
|
specifier: ^8.3.1
|
||||||
version: 8.3.1(svelte@5.49.2)(three@0.182.0)
|
version: 8.3.1(svelte@5.49.2)(three@0.182.0)
|
||||||
@@ -193,19 +196,19 @@ importers:
|
|||||||
version: 1.58.1
|
version: 1.58.1
|
||||||
'@sveltejs/adapter-static':
|
'@sveltejs/adapter-static':
|
||||||
specifier: ^3.0.10
|
specifier: ^3.0.10
|
||||||
version: 3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))
|
version: 3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))
|
||||||
'@sveltejs/kit':
|
'@sveltejs/kit':
|
||||||
specifier: ^2.50.2
|
specifier: ^2.50.2
|
||||||
version: 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@sveltejs/package':
|
'@sveltejs/package':
|
||||||
specifier: ^2.5.7
|
specifier: ^2.5.7
|
||||||
version: 2.5.7(svelte@5.49.2)(typescript@5.9.3)
|
version: 2.5.7(svelte@5.49.2)(typescript@5.9.3)
|
||||||
'@sveltejs/vite-plugin-svelte':
|
'@sveltejs/vite-plugin-svelte':
|
||||||
specifier: ^6.2.4
|
specifier: ^6.2.4
|
||||||
version: 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
version: 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@testing-library/svelte':
|
'@testing-library/svelte':
|
||||||
specifier: ^5.3.1
|
specifier: ^5.3.1
|
||||||
version: 5.3.1(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
version: 5.3.1(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
'@types/eslint':
|
'@types/eslint':
|
||||||
specifier: ^9.6.1
|
specifier: ^9.6.1
|
||||||
version: 9.6.1
|
version: 9.6.1
|
||||||
@@ -220,7 +223,7 @@ importers:
|
|||||||
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@vitest/browser-playwright':
|
'@vitest/browser-playwright':
|
||||||
specifier: ^4.0.18
|
specifier: ^4.0.18
|
||||||
version: 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
version: 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
dprint:
|
dprint:
|
||||||
specifier: ^0.51.1
|
specifier: ^0.51.1
|
||||||
version: 0.51.1
|
version: 0.51.1
|
||||||
@@ -256,10 +259,10 @@ importers:
|
|||||||
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^7.3.1
|
specifier: ^7.3.1
|
||||||
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^4.0.18
|
specifier: ^4.0.18
|
||||||
version: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitest-browser-svelte:
|
vitest-browser-svelte:
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2(svelte@5.49.2)(vitest@4.0.18)
|
version: 2.0.2(svelte@5.49.2)(vitest@4.0.18)
|
||||||
@@ -275,10 +278,10 @@ importers:
|
|||||||
version: 0.51.1
|
version: 0.51.1
|
||||||
vite:
|
vite:
|
||||||
specifier: ^7.3.1
|
specifier: ^7.3.1
|
||||||
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^4.0.18
|
specifier: ^4.0.18
|
||||||
version: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
version: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -396,204 +399,102 @@ packages:
|
|||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [aix]
|
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.27.3':
|
'@esbuild/aix-ppc64@0.27.3':
|
||||||
resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==}
|
resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [aix]
|
os: [aix]
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.27.3':
|
'@esbuild/android-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==}
|
resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/android-arm@0.23.1':
|
|
||||||
resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/android-arm@0.27.3':
|
'@esbuild/android-arm@0.27.3':
|
||||||
resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==}
|
resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/android-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [android]
|
|
||||||
|
|
||||||
'@esbuild/android-x64@0.27.3':
|
'@esbuild/android-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==}
|
resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.27.3':
|
'@esbuild/darwin-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==}
|
resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.27.3':
|
'@esbuild/darwin-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==}
|
resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [freebsd]
|
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.27.3':
|
'@esbuild/freebsd-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==}
|
resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [freebsd]
|
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.27.3':
|
'@esbuild/freebsd-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==}
|
resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.27.3':
|
'@esbuild/linux-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==}
|
resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.23.1':
|
|
||||||
resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.27.3':
|
'@esbuild/linux-arm@0.27.3':
|
||||||
resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==}
|
resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.23.1':
|
|
||||||
resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.27.3':
|
'@esbuild/linux-ia32@0.27.3':
|
||||||
resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==}
|
resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [loong64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.27.3':
|
'@esbuild/linux-loong64@0.27.3':
|
||||||
resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==}
|
resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [loong64]
|
cpu: [loong64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.23.1':
|
|
||||||
resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [mips64el]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.27.3':
|
'@esbuild/linux-mips64el@0.27.3':
|
||||||
resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==}
|
resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [mips64el]
|
cpu: [mips64el]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.27.3':
|
'@esbuild/linux-ppc64@0.27.3':
|
||||||
resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==}
|
resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [riscv64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.27.3':
|
'@esbuild/linux-riscv64@0.27.3':
|
||||||
resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==}
|
resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.23.1':
|
|
||||||
resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.27.3':
|
'@esbuild/linux-s390x@0.27.3':
|
||||||
resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==}
|
resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.27.3':
|
'@esbuild/linux-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==}
|
resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@@ -606,36 +507,18 @@ packages:
|
|||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [netbsd]
|
os: [netbsd]
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [netbsd]
|
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.27.3':
|
'@esbuild/netbsd-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==}
|
resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [netbsd]
|
os: [netbsd]
|
||||||
|
|
||||||
'@esbuild/openbsd-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [openbsd]
|
|
||||||
|
|
||||||
'@esbuild/openbsd-arm64@0.27.3':
|
'@esbuild/openbsd-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==}
|
resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [openbsd]
|
os: [openbsd]
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [openbsd]
|
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.27.3':
|
'@esbuild/openbsd-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==}
|
resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@@ -648,48 +531,24 @@ packages:
|
|||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [openharmony]
|
os: [openharmony]
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [sunos]
|
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.27.3':
|
'@esbuild/sunos-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==}
|
resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [sunos]
|
os: [sunos]
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.27.3':
|
'@esbuild/win32-arm64@0.27.3':
|
||||||
resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==}
|
resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.23.1':
|
|
||||||
resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.27.3':
|
'@esbuild/win32-ia32@0.27.3':
|
||||||
resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==}
|
resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
cpu: [ia32]
|
cpu: [ia32]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.23.1':
|
|
||||||
resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.27.3':
|
'@esbuild/win32-x64@0.27.3':
|
||||||
resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==}
|
resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@@ -1707,11 +1566,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
|
resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
esbuild@0.23.1:
|
|
||||||
resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
esbuild@0.27.3:
|
esbuild@0.27.3:
|
||||||
resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==}
|
resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@@ -2696,8 +2550,8 @@ packages:
|
|||||||
tslib@2.8.1:
|
tslib@2.8.1:
|
||||||
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
|
||||||
|
|
||||||
tsx@4.19.2:
|
tsx@4.21.0:
|
||||||
resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==}
|
resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
|
||||||
engines: {node: '>=18.0.0'}
|
engines: {node: '>=18.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -3035,153 +2889,81 @@ snapshots:
|
|||||||
'@dprint/win32-x64@0.51.1':
|
'@dprint/win32-x64@0.51.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/aix-ppc64@0.27.3':
|
'@esbuild/aix-ppc64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/android-arm64@0.27.3':
|
'@esbuild/android-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-arm@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/android-arm@0.27.3':
|
'@esbuild/android-arm@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/android-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/android-x64@0.27.3':
|
'@esbuild/android-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/darwin-arm64@0.27.3':
|
'@esbuild/darwin-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/darwin-x64@0.27.3':
|
'@esbuild/darwin-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/freebsd-arm64@0.27.3':
|
'@esbuild/freebsd-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/freebsd-x64@0.27.3':
|
'@esbuild/freebsd-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-arm64@0.27.3':
|
'@esbuild/linux-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-arm@0.27.3':
|
'@esbuild/linux-arm@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-ia32@0.27.3':
|
'@esbuild/linux-ia32@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-loong64@0.27.3':
|
'@esbuild/linux-loong64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-mips64el@0.27.3':
|
'@esbuild/linux-mips64el@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-ppc64@0.27.3':
|
'@esbuild/linux-ppc64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-riscv64@0.27.3':
|
'@esbuild/linux-riscv64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-s390x@0.27.3':
|
'@esbuild/linux-s390x@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/linux-x64@0.27.3':
|
'@esbuild/linux-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/netbsd-arm64@0.27.3':
|
'@esbuild/netbsd-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/netbsd-x64@0.27.3':
|
'@esbuild/netbsd-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/openbsd-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/openbsd-arm64@0.27.3':
|
'@esbuild/openbsd-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/openbsd-x64@0.27.3':
|
'@esbuild/openbsd-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/openharmony-arm64@0.27.3':
|
'@esbuild/openharmony-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/sunos-x64@0.27.3':
|
'@esbuild/sunos-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-arm64@0.27.3':
|
'@esbuild/win32-arm64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-ia32@0.27.3':
|
'@esbuild/win32-ia32@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.23.1':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@esbuild/win32-x64@0.27.3':
|
'@esbuild/win32-x64@0.27.3':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@@ -3471,15 +3253,15 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.15.0
|
acorn: 8.15.0
|
||||||
|
|
||||||
'@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))':
|
'@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@sveltejs/kit': 2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
|
|
||||||
'@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))':
|
'@sveltejs/kit@2.50.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(typescript@5.9.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@standard-schema/spec': 1.1.0
|
'@standard-schema/spec': 1.1.0
|
||||||
'@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
|
'@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
|
||||||
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@types/cookie': 0.6.0
|
'@types/cookie': 0.6.0
|
||||||
acorn: 8.15.0
|
acorn: 8.15.0
|
||||||
cookie: 0.6.0
|
cookie: 0.6.0
|
||||||
@@ -3492,7 +3274,7 @@ snapshots:
|
|||||||
set-cookie-parser: 3.0.1
|
set-cookie-parser: 3.0.1
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
|
|
||||||
@@ -3507,22 +3289,22 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))':
|
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
obug: 2.1.1
|
obug: 2.1.1
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
'@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))':
|
'@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)))(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)))(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
deepmerge: 4.3.1
|
deepmerge: 4.3.1
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
obug: 2.1.1
|
obug: 2.1.1
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitefu: 1.1.1(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
vitefu: 1.1.1(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
|
|
||||||
'@tailwindcss/node@4.1.18':
|
'@tailwindcss/node@4.1.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3585,12 +3367,12 @@ snapshots:
|
|||||||
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
|
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
|
||||||
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
|
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
|
||||||
|
|
||||||
'@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))':
|
'@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tailwindcss/node': 4.1.18
|
'@tailwindcss/node': 4.1.18
|
||||||
'@tailwindcss/oxide': 4.1.18
|
'@tailwindcss/oxide': 4.1.18
|
||||||
tailwindcss: 4.1.18
|
tailwindcss: 4.1.18
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
'@testing-library/dom@10.4.1':
|
'@testing-library/dom@10.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3607,14 +3389,14 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
|
|
||||||
'@testing-library/svelte@5.3.1(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)':
|
'@testing-library/svelte@5.3.1(svelte@5.49.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@testing-library/dom': 10.4.1
|
'@testing-library/dom': 10.4.1
|
||||||
'@testing-library/svelte-core': 1.0.0(svelte@5.49.2)
|
'@testing-library/svelte-core': 1.0.0(svelte@5.49.2)
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
'@threejs-kit/instanced-sprite-mesh@2.5.1(@types/three@0.182.0)(three@0.182.0)':
|
'@threejs-kit/instanced-sprite-mesh@2.5.1(@types/three@0.182.0)(three@0.182.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3800,26 +3582,26 @@ snapshots:
|
|||||||
'@typescript-eslint/types': 8.54.0
|
'@typescript-eslint/types': 8.54.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
'@vitest/browser-playwright@4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)':
|
'@vitest/browser-playwright@4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/browser': 4.0.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
'@vitest/browser': 4.0.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
playwright: 1.58.1
|
playwright: 1.58.1
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- msw
|
- msw
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@vitest/browser-playwright@4.0.18(playwright@1.58.1)(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)':
|
'@vitest/browser-playwright@4.0.18(playwright@1.58.1)(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/browser': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
'@vitest/browser': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
playwright: 1.58.1
|
playwright: 1.58.1
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vitest: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- msw
|
- msw
|
||||||
@@ -3827,16 +3609,16 @@ snapshots:
|
|||||||
- vite
|
- vite
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@vitest/browser@4.0.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)':
|
'@vitest/browser@4.0.18(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@vitest/utils': 4.0.18
|
'@vitest/utils': 4.0.18
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
pixelmatch: 7.1.0
|
pixelmatch: 7.1.0
|
||||||
pngjs: 7.0.0
|
pngjs: 7.0.0
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
ws: 8.19.0
|
ws: 8.19.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@@ -3844,16 +3626,16 @@ snapshots:
|
|||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@vitest/browser@4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)':
|
'@vitest/browser@4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@vitest/utils': 4.0.18
|
'@vitest/utils': 4.0.18
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
pixelmatch: 7.1.0
|
pixelmatch: 7.1.0
|
||||||
pngjs: 7.0.0
|
pngjs: 7.0.0
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vitest: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
ws: 8.19.0
|
ws: 8.19.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
@@ -3871,13 +3653,13 @@ snapshots:
|
|||||||
chai: 6.2.2
|
chai: 6.2.2
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
|
|
||||||
'@vitest/mocker@4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))':
|
'@vitest/mocker@4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 4.0.18
|
'@vitest/spy': 4.0.18
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
'@vitest/pretty-format@4.0.18':
|
'@vitest/pretty-format@4.0.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -4233,34 +4015,6 @@ snapshots:
|
|||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
esbuild@0.23.1:
|
|
||||||
optionalDependencies:
|
|
||||||
'@esbuild/aix-ppc64': 0.23.1
|
|
||||||
'@esbuild/android-arm': 0.23.1
|
|
||||||
'@esbuild/android-arm64': 0.23.1
|
|
||||||
'@esbuild/android-x64': 0.23.1
|
|
||||||
'@esbuild/darwin-arm64': 0.23.1
|
|
||||||
'@esbuild/darwin-x64': 0.23.1
|
|
||||||
'@esbuild/freebsd-arm64': 0.23.1
|
|
||||||
'@esbuild/freebsd-x64': 0.23.1
|
|
||||||
'@esbuild/linux-arm': 0.23.1
|
|
||||||
'@esbuild/linux-arm64': 0.23.1
|
|
||||||
'@esbuild/linux-ia32': 0.23.1
|
|
||||||
'@esbuild/linux-loong64': 0.23.1
|
|
||||||
'@esbuild/linux-mips64el': 0.23.1
|
|
||||||
'@esbuild/linux-ppc64': 0.23.1
|
|
||||||
'@esbuild/linux-riscv64': 0.23.1
|
|
||||||
'@esbuild/linux-s390x': 0.23.1
|
|
||||||
'@esbuild/linux-x64': 0.23.1
|
|
||||||
'@esbuild/netbsd-x64': 0.23.1
|
|
||||||
'@esbuild/openbsd-arm64': 0.23.1
|
|
||||||
'@esbuild/openbsd-x64': 0.23.1
|
|
||||||
'@esbuild/sunos-x64': 0.23.1
|
|
||||||
'@esbuild/win32-arm64': 0.23.1
|
|
||||||
'@esbuild/win32-ia32': 0.23.1
|
|
||||||
'@esbuild/win32-x64': 0.23.1
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
esbuild@0.27.3:
|
esbuild@0.27.3:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@esbuild/aix-ppc64': 0.27.3
|
'@esbuild/aix-ppc64': 0.27.3
|
||||||
@@ -4474,7 +4228,6 @@ snapshots:
|
|||||||
get-tsconfig@4.13.6:
|
get-tsconfig@4.13.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
resolve-pkg-maps: 1.0.0
|
resolve-pkg-maps: 1.0.0
|
||||||
optional: true
|
|
||||||
|
|
||||||
glob-parent@5.1.2:
|
glob-parent@5.1.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5068,8 +4821,7 @@ snapshots:
|
|||||||
|
|
||||||
resolve-from@4.0.0: {}
|
resolve-from@4.0.0: {}
|
||||||
|
|
||||||
resolve-pkg-maps@1.0.0:
|
resolve-pkg-maps@1.0.0: {}
|
||||||
optional: true
|
|
||||||
|
|
||||||
rollup@4.57.1:
|
rollup@4.57.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5355,13 +5107,12 @@ snapshots:
|
|||||||
|
|
||||||
tslib@2.8.1: {}
|
tslib@2.8.1: {}
|
||||||
|
|
||||||
tsx@4.19.2:
|
tsx@4.21.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.23.1
|
esbuild: 0.27.3
|
||||||
get-tsconfig: 4.13.6
|
get-tsconfig: 4.13.6
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
optional: true
|
|
||||||
|
|
||||||
tweakpane@3.1.10: {}
|
tweakpane@3.1.10: {}
|
||||||
|
|
||||||
@@ -5396,26 +5147,26 @@ snapshots:
|
|||||||
v8-compile-cache-lib@3.0.1:
|
v8-compile-cache-lib@3.0.1:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
vite-plugin-comlink@5.3.0(comlink@4.4.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)):
|
vite-plugin-comlink@5.3.0(comlink@4.4.2)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
comlink: 4.4.2
|
comlink: 4.4.2
|
||||||
json5: 2.2.3
|
json5: 2.2.3
|
||||||
magic-string: 0.30.17
|
magic-string: 0.30.17
|
||||||
source-map: 0.7.6
|
source-map: 0.7.6
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
vite-plugin-glsl@1.5.5(@rollup/pluginutils@5.1.4(rollup@4.57.1))(esbuild@0.27.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)):
|
vite-plugin-glsl@1.5.5(@rollup/pluginutils@5.1.4(rollup@4.57.1))(esbuild@0.27.3)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@rollup/pluginutils': 5.1.4(rollup@4.57.1)
|
'@rollup/pluginutils': 5.1.4(rollup@4.57.1)
|
||||||
esbuild: 0.27.3
|
esbuild: 0.27.3
|
||||||
|
|
||||||
vite-plugin-wasm@3.5.0(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)):
|
vite-plugin-wasm@3.5.0(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2):
|
vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.27.3
|
esbuild: 0.27.3
|
||||||
fdir: 6.5.0(picomatch@4.0.3)
|
fdir: 6.5.0(picomatch@4.0.3)
|
||||||
@@ -5431,22 +5182,22 @@ snapshots:
|
|||||||
lightningcss: 1.30.2
|
lightningcss: 1.30.2
|
||||||
sass: 1.80.6
|
sass: 1.80.6
|
||||||
terser: 5.36.0
|
terser: 5.36.0
|
||||||
tsx: 4.19.2
|
tsx: 4.21.0
|
||||||
|
|
||||||
vitefu@1.1.1(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)):
|
vitefu@1.1.1(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
vitest-browser-svelte@2.0.2(svelte@5.49.2)(vitest@4.0.18):
|
vitest-browser-svelte@2.0.2(svelte@5.49.2)(vitest@4.0.18):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@testing-library/svelte-core': 1.0.0(svelte@5.49.2)
|
'@testing-library/svelte-core': 1.0.0(svelte@5.49.2)
|
||||||
svelte: 5.49.2
|
svelte: 5.49.2
|
||||||
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vitest: 4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
|
|
||||||
vitest@4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2):
|
vitest@4.0.18(@types/node@22.8.6)(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 4.0.18
|
'@vitest/expect': 4.0.18
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@vitest/pretty-format': 4.0.18
|
'@vitest/pretty-format': 4.0.18
|
||||||
'@vitest/runner': 4.0.18
|
'@vitest/runner': 4.0.18
|
||||||
'@vitest/snapshot': 4.0.18
|
'@vitest/snapshot': 4.0.18
|
||||||
@@ -5463,11 +5214,11 @@ snapshots:
|
|||||||
tinyexec: 1.0.2
|
tinyexec: 1.0.2
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 22.8.6
|
'@types/node': 22.8.6
|
||||||
'@vitest/browser-playwright': 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
'@vitest/browser-playwright': 4.0.18(playwright@1.58.1)(vite@7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
jsdom: 25.0.1
|
jsdom: 25.0.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- jiti
|
- jiti
|
||||||
@@ -5482,10 +5233,10 @@ snapshots:
|
|||||||
- tsx
|
- tsx
|
||||||
- yaml
|
- yaml
|
||||||
|
|
||||||
vitest@4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2):
|
vitest@4.0.18(@vitest/browser-playwright@4.0.18)(jiti@2.6.1)(jsdom@25.0.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 4.0.18
|
'@vitest/expect': 4.0.18
|
||||||
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))
|
'@vitest/mocker': 4.0.18(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))
|
||||||
'@vitest/pretty-format': 4.0.18
|
'@vitest/pretty-format': 4.0.18
|
||||||
'@vitest/runner': 4.0.18
|
'@vitest/runner': 4.0.18
|
||||||
'@vitest/snapshot': 4.0.18
|
'@vitest/snapshot': 4.0.18
|
||||||
@@ -5502,10 +5253,10 @@ snapshots:
|
|||||||
tinyexec: 1.0.2
|
tinyexec: 1.0.2
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
tinyrainbow: 3.0.3
|
tinyrainbow: 3.0.3
|
||||||
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2)
|
vite: 7.3.1(@types/node@22.8.6)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0)
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@vitest/browser-playwright': 4.0.18(playwright@1.58.1)(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.19.2))(vitest@4.0.18)
|
'@vitest/browser-playwright': 4.0.18(playwright@1.58.1)(vite@7.3.1(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass@1.80.6)(terser@5.36.0)(tsx@4.21.0))(vitest@4.0.18)
|
||||||
jsdom: 25.0.1
|
jsdom: 25.0.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- jiti
|
- jiti
|
||||||
|
|||||||
Reference in New Issue
Block a user