diff --git a/docker-compose.docs-snapshots.yml b/docker-compose.docs-snapshots.yml index 5903f3bb2..3ad278390 100644 --- a/docker-compose.docs-snapshots.yml +++ b/docker-compose.docs-snapshots.yml @@ -8,15 +8,17 @@ services: [ 'sh', '-c', - 'node extract.cjs --directory /extract/plotly-express --output /results/plotly-express; node extract.cjs --directory /extract/ui --output /results/ui', + 'node extract.cjs --directory /extract/plotly-express --output /results/plotly-express; node extract.cjs --directory /extract/ui --output /results/ui; node extract.cjs --directory /extract/tradingview-lightweight --output /results/tradingview-lightweight', ] volumes: - ./plugins/ui/docs:/extract/ui - ./plugins/plotly-express/docs:/extract/plotly-express + - ./plugins/tradingview-lightweight/docs:/extract/tradingview-lightweight # exclude doc build directories by overriding with empty volumes # We could extract from the build directories, but we need to output the snapshots to the build directory itself for Salmon to pick up... - /extract/plotly-express/build/ - /extract/ui/build/ + - /extract/tradingview-lightweight/build/ - test-sets:/results # Read the test sets from the results directory and run them against the test server, taking a snapshot of the results. @@ -33,7 +35,7 @@ services: [ 'sh', '-c', - 'node snapshot.cjs --directory /test-sets/plotly-express --output /results/plotly-express --errors /errors/plotly-express; node snapshot.cjs --directory /test-sets/ui --output /results/ui --errors /errors/ui', + 'node snapshot.cjs --directory /test-sets/plotly-express --output /results/plotly-express --errors /errors/plotly-express; node snapshot.cjs --directory /test-sets/ui --output /results/ui --errors /errors/ui; node snapshot.cjs --directory /test-sets/tradingview-lightweight --output /results/tradingview-lightweight --errors /errors/tradingview-lightweight', ] volumes: - /var/run/docker.sock:/var/run/docker.sock # Allows the snapshotter to start its own docker containers for the test server @@ -42,8 +44,110 @@ services: # Map all the results back to the snapshots directory for those docs - ./plugins/ui/docs/snapshots:/results/ui - ./plugins/plotly-express/docs/snapshots:/results/plotly-express + - ./plugins/tradingview-lightweight/docs/snapshots:/results/tradingview-lightweight - ./snapshot-results/errors:/errors + # Pass 2: capture widget PNGs for the tradingview-lightweight docs. Runs + # AFTER salmon's Pass 1 snapshotter has finished and torn its server down. + # Brings up its own python-snapshotter compose via the mounted docker + # socket so it can join the shared snapshot network. The image-snapshotter + # tool itself is plugin-agnostic; per-plugin settings come from + # SNAPSHOTTER_* env vars below. + deephaven-plugins-docs-image-snapshotter-tvl: + build: + context: ./tools/image-snapshotter + container_name: deephaven-plugins-docs-image-snapshotter-tvl + depends_on: + deephaven-plugins-docs-snapshotter: + condition: service_completed_successfully + environment: + SNAPSHOTTER_BASE_URL: 'http://server:10000/ide/' + SNAPSHOTTER_PLUGIN_ROOT: '/work' + SNAPSHOTTER_PLUGIN: 'tradingview-lightweight' + SNAPSHOTTER_TARGET_SELECTOR: '.dh-tvl-chart' + SNAPSHOTTER_WIDGET_TYPE: 'deephaven.plot.tradingview_lightweight.TvlChart' + SNAPSHOTTER_APP_ID: 'tvl.docs.examples' + SNAPSHOTTER_APP_NAME: 'TVL Docs Examples' + SNAPSHOTTER_COMPOSE_FILE: '/workspace/docker/python-snapshotter/docker-compose.yml' + SNAPSHOTTER_SERVER_CONTAINER: 'tvl-snapshotter-server' + # Pass through the host's SNAPSHOTTER_FORCE so callers can opt in to + # cache-busting recapture without editing this file. + SNAPSHOTTER_FORCE: ${SNAPSHOTTER_FORCE:-} + CI: 'true' + # The Pass 2 entrypoint brings up the python-snapshotter test server + # via the mounted docker socket. That compose file bind-mounts the + # generated app.d, which is interpreted against the HOST filesystem + # (the socket is the host's). `${PWD}` is evaluated by compose at + # compose-up time against the user's shell, so HOST_PWD inside the + # container always carries the host's working directory. + HOST_PWD: ${PWD} + volumes: + # Allows the snapshotter to start its own server container alongside us. + - /var/run/docker.sock:/var/run/docker.sock + # docker/python-snapshotter/docker-compose.yml is resolved from the + # host's view of the socket — mount the repo at a stable path inside + # the container so SNAPSHOTTER_COMPOSE_FILE resolves correctly. + - ${PWD}:/workspace + # The spec walks docs/*.md (read-only) and writes PNGs + JSON envelopes + # into docs/snapshots. PLUGIN_ROOT resolves to /work, so /work/docs is + # the docs tree and /work/docs/snapshots is the output dir. + - ./plugins/tradingview-lightweight/docs:/work/docs:ro + - ./plugins/tradingview-lightweight/docs/snapshots:/work/docs/snapshots + + # Surface snapshot errors to the user. Compose's `depends_on` conditions + # only fire on success (`service_completed_successfully`); there's no + # "completed-with-any-exit" condition. And dependency stdout doesn't + # stream to the terminal when you `docker compose run ` — only + # the target's own stdout does. So the salmon snapshotter's errors were + # silently written to /errors and never shown. + # + # Workaround: this service has no depends_on. The npm `update-doc-snapshots` + # script invokes it as its own `compose run` target right after the main + # chain — so its stdout streams to the user, regardless of whether the + # snapshotter passed or failed. Bind-mounts the same errors dir the + # snapshotter writes to. Exits non-zero if any errors are present. + # Also acts as the post-run chown step. The salmon snapshotter and the + # Pass-2 image-snapshotter both run as root, so the PNGs + JSON envelopes + # they write into docs/snapshots land owned by root and the host user + # can't edit them. Bind-mounting those dirs here (rw) and chowning them + # to SNAPSHOT_UID:SNAPSHOT_GID (exported by tools/run_docker.sh) makes + # them editable on the host. Runs whether or not snapshots succeeded. + deephaven-plugins-docs-error-reporter: + image: alpine:3.20 + environment: + SNAPSHOT_UID: ${SNAPSHOT_UID:-0} + SNAPSHOT_GID: ${SNAPSHOT_GID:-0} + volumes: + - ./snapshot-results/errors:/errors + - ./plugins/ui/docs/snapshots:/snapshots/ui + - ./plugins/plotly-express/docs/snapshots:/snapshots/plotly-express + - ./plugins/tradingview-lightweight/docs/snapshots:/snapshots/tradingview-lightweight + command: + - sh + - -c + - | + if [ "$$SNAPSHOT_UID" != "0" ]; then + chown -R "$$SNAPSHOT_UID:$$SNAPSHOT_GID" /errors /snapshots 2>/dev/null || true + fi + had=0 + for plugin in plotly-express ui tradingview-lightweight; do + f="/errors/$$plugin/errors.txt" + if [ -s "$$f" ]; then + had=1 + echo "" + echo "==================== $$plugin ($$f) ====================" + head -n 200 "$$f" + n=$$(wc -l < "$$f") + if [ "$$n" -gt 200 ]; then + echo "... ($$n total lines; full file at snapshot-results/errors/$$plugin/errors.txt)" + fi + fi + done + if [ "$$had" -eq 0 ]; then + echo "[error-reporter] no snapshot errors recorded." + fi + exit $$had + # Validate MDX and the snapshots that were written are valid deephaven-plugins-docs-validator: image: ghcr.io/deephaven/salmon-validator @@ -51,6 +155,7 @@ services: volumes: - ./plugins/ui/docs/build/markdown:/validate/ui - ./plugins/plotly-express/docs/build/markdown:/validate/plotly-express + - ./plugins/tradingview-lightweight/docs/build/markdown:/validate/tradingview-lightweight - ./docker/build/validator-results:/results volumes: diff --git a/docker-compose.docs.yml b/docker-compose.docs.yml index 7d8cb008d..bbf35f02f 100644 --- a/docker-compose.docs.yml +++ b/docker-compose.docs.yml @@ -9,3 +9,4 @@ services: volumes: - ./plugins/ui/docs${BUILT+/build/markdown}:/salmon/core/ui/docs - ./plugins/plotly-express/docs${BUILT+/build/markdown}:/salmon/core/plotly/docs + - ./plugins/tradingview-lightweight/docs${BUILT+/build/markdown}:/salmon/core/tradingview-lightweight/docs diff --git a/docker/python-snapshotter/docker-compose.yml b/docker/python-snapshotter/docker-compose.yml new file mode 100644 index 000000000..d1138b542 --- /dev/null +++ b/docker/python-snapshotter/docker-compose.yml @@ -0,0 +1,43 @@ +# Pass 2 (image-snapshotter) test server. Plugin-agnostic. +# +# Reuses the python-server image already built by salmon's Pass 1 +# (../python/docker-compose.yml). The only differences vs. that compose: +# +# - We mount a generated app.d directory at /app.d so the docs examples +# are pre-loaded as Deephaven panels (the Pass 2 server is otherwise +# headless — no code is ever sent over the console). +# - START_OPTS adds -Ddeephaven.application.dir=/app.d to enable app +# mode against that directory. +# - DEEPHAVEN_PLUGINS_STATIC_DATA=1 forces tvl.data / dx.data into +# static mode so screenshots are deterministic. +# +# image-snapshotter's entrypoint sets PASS2_APPD_HOST_PATH to the host +# filesystem path of the generated app.d (bind mounts traverse the host +# because the docker socket is the host's). The `:?` makes compose fail +# fast if the entrypoint forgot to export it. +# +# SNAPSHOTTER_SERVER_CONTAINER lets parallel plugin invocations produce +# unique container names. Serial Pass 2 invocations (the default +# docs-snapshots compose flow) can rely on the default. +# +# The image tag matches what `docker/python/docker-compose.yml` builds — +# `image: python-server:latest` rather than a `build:` block because Pass 1 +# always runs first and produces the image. On a clean run with Pass 1 +# skipped the image won't exist locally and `up` will fail; that's the +# documented contract. +services: + server: + image: python-server:latest + container_name: ${SNAPSHOTTER_SERVER_CONTAINER:-deephaven-snapshotter-server} + expose: + - 10000 + environment: + - START_OPTS=-Xmx4g -DAuthHandlers=io.deephaven.auth.AnonymousAuthenticationHandler -Ddeephaven.console.type=python -Ddeephaven.application.dir=/app.d + - DEEPHAVEN_PLUGINS_STATIC_DATA=1 + volumes: + - ${PASS2_APPD_HOST_PATH:?PASS2_APPD_HOST_PATH must be set}:/app.d:ro + +networks: + default: + name: deephaven-plugins-docs-snapshot-network + external: true diff --git a/docker/python/docker-compose.yml b/docker/python/docker-compose.yml index dd393c530..b88d1660a 100644 --- a/docker/python/docker-compose.yml +++ b/docker/python/docker-compose.yml @@ -8,6 +8,11 @@ services: - 10000 environment: - START_OPTS=-Xmx4g -DAuthHandlers=io.deephaven.auth.AnonymousAuthenticationHandler -Ddeephaven.console.type=python + # Force tvl.data / dx.data into static mode so docs snapshots are + # reproducible AND so doc blocks that chain `.update(["X = (double)ii"])` + # onto a generator output don't blow up on the refreshing-formula check + # (the merged static+time_table isn't classified as append-only). + - DEEPHAVEN_PLUGINS_STATIC_DATA=1 networks: default: diff --git a/package-lock.json b/package-lock.json index 46d5acfd3..7717ff458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -231,6 +231,7 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -876,6 +877,7 @@ "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" }, @@ -1801,6 +1803,7 @@ "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-module-imports": "^7.28.6", @@ -2311,7 +2314,6 @@ "integrity": "sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@cacheable/utils": "^2.4.0", "@keyv/bigmap": "^1.3.1", @@ -2325,7 +2327,6 @@ "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "hashery": "^1.4.0", "hookified": "^1.15.0" @@ -2354,7 +2355,6 @@ "integrity": "sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "hashery": "^1.5.1", "keyv": "^5.6.0" @@ -2366,7 +2366,6 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -2399,7 +2398,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2448,7 +2446,6 @@ } ], "license": "MIT-0", - "peer": true, "peerDependencies": { "css-tree": "^3.2.1" }, @@ -2495,7 +2492,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2520,7 +2516,6 @@ } ], "license": "MIT-0", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2544,7 +2539,6 @@ } ], "license": "MIT-0", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -3169,6 +3163,10 @@ "resolved": "plugins/theme-pack/src/js", "link": true }, + "node_modules/@deephaven/js-plugin-tradingview-lightweight": { + "resolved": "plugins/tradingview-lightweight/src/js", + "link": true + }, "node_modules/@deephaven/js-plugin-ui": { "resolved": "plugins/ui/src/js", "link": true @@ -3476,6 +3474,7 @@ "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "license": "MIT", + "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -4089,6 +4088,7 @@ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz", "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==", "license": "MIT", + "peer": true, "dependencies": { "@fortawesome/fontawesome-common-types": "6.7.2" }, @@ -4102,6 +4102,7 @@ "integrity": "sha512-mtBFIi1UsYQo7rYonYFkjgYKGoL8T+fEH6NGUpvuqtY3ytMsAoDaPo5rk25KuMtKDipY4bGYM/CkmCHA1N3FUg==", "deprecated": "v0.2.x is no longer supported. Unless you are still using FontAwesome 5, please update to v3.1.1 or greater.", "license": "MIT", + "peer": true, "dependencies": { "prop-types": "^15.8.1" }, @@ -4164,7 +4165,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", @@ -5225,6 +5227,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -5248,8 +5261,7 @@ "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@mapbox/geojson-rewind": { "version": "0.5.2", @@ -6419,6 +6431,7 @@ "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -6907,7 +6920,6 @@ "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -7137,6 +7149,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7207,6 +7220,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7277,6 +7291,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7346,6 +7361,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7415,6 +7431,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7485,6 +7502,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7554,6 +7572,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7623,6 +7642,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7692,6 +7712,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7761,6 +7782,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7831,6 +7853,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7901,6 +7924,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -7970,6 +7994,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8039,6 +8064,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8108,6 +8134,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8177,6 +8204,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8248,6 +8276,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8317,6 +8346,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8400,6 +8430,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8469,6 +8500,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8538,6 +8570,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8607,6 +8640,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8676,6 +8710,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8745,6 +8780,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8815,6 +8851,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8884,6 +8921,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -8954,6 +8992,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9024,6 +9063,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9094,6 +9134,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9163,6 +9204,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9232,6 +9274,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9301,6 +9344,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9371,6 +9415,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9440,6 +9485,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9495,6 +9541,7 @@ "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.11.0.tgz", "integrity": "sha512-W2Gxbj8AcG5OR2K5Ua3K8qQqxdsiytEiz+2rhr6oQyBM8VafEgDcNPYSOTtfjrQM3snl2Uhp8LzwN0jwQe/6nQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@adobe/react-spectrum": "3.47.0", "@swc/helpers": "^0.5.0" @@ -9509,6 +9556,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9578,6 +9626,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9647,6 +9696,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9716,6 +9766,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9785,6 +9836,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9854,6 +9906,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9924,6 +9977,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -9994,6 +10048,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10064,6 +10119,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10133,6 +10189,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10202,6 +10259,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10271,6 +10329,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10340,6 +10399,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10409,6 +10469,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10478,6 +10539,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10547,6 +10609,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10617,6 +10680,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10686,6 +10750,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -10755,6 +10820,7 @@ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@internationalized/date": "^3.12.1", "@react-types/shared": "^3.34.0", @@ -11438,7 +11504,6 @@ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -12153,8 +12218,7 @@ "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -12466,6 +12530,7 @@ "integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -12556,6 +12621,13 @@ "redux": "^4.0.0" } }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/semver": { "version": "7.7.1", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", @@ -12699,6 +12771,7 @@ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -12901,6 +12974,167 @@ "vite": "^4 || ^5 || ^6 || ^7" } }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, "node_modules/@xmldom/xmldom": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.9.tgz", @@ -12911,6 +13145,20 @@ "node": ">=14.6" } }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -12997,6 +13245,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -13014,6 +13263,19 @@ "acorn-walk": "^8.0.2" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -13157,6 +13419,7 @@ "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -13168,6 +13431,44 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -13512,7 +13813,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -14089,6 +14389,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.10.12", "caniuse-lite": "^1.0.30001782", @@ -14301,7 +14602,6 @@ "integrity": "sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@cacheable/memory": "^2.0.8", "@cacheable/utils": "^2.4.0", @@ -14316,7 +14616,6 @@ "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@keyv/serialize": "^1.1.1" } @@ -14513,6 +14812,16 @@ "node": ">=18" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -14795,8 +15104,7 @@ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/columnify": { "version": "1.6.0", @@ -15233,7 +15541,6 @@ "integrity": "sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" } @@ -16129,7 +16436,6 @@ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" @@ -16338,6 +16644,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -16929,6 +17242,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -17027,6 +17341,7 @@ "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -17115,7 +17430,6 @@ "integrity": "sha512-DEfpfuk+O/T5e9HBZOxocmwMuUGkvQQd5WRiMJF9kKNT9amByqOyGlWoAZAQiv0SZSy4GMtG1clmnvQA/RzA0A==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "debug": "^4.3.4", "enhanced-resolve": "^5.10.0", @@ -17142,7 +17456,6 @@ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -17163,7 +17476,6 @@ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -17245,6 +17557,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -17327,6 +17640,7 @@ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -17367,7 +17681,6 @@ "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "prettier-linter-helpers": "^1.0.1", "synckit": "^0.11.12" @@ -17399,7 +17712,6 @@ "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -17413,7 +17725,6 @@ "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@pkgr/core": "^0.2.9" }, @@ -17430,6 +17741,7 @@ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -17463,6 +17775,7 @@ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -17565,7 +17878,6 @@ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -17582,7 +17894,6 @@ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=4" } @@ -17892,6 +18203,12 @@ "node": ">=0.4.0" } }, + "node_modules/fancy-canvas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fancy-canvas/-/fancy-canvas-2.1.0.tgz", + "integrity": "sha512-nifxXJ95JNLFR2NgRV4/MxVP45G9909wJTEKz5fg/TZS20JJZA6hfgRVh/bC9bwl2zBtBNcYPjiBE4njQHVBwQ==", + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -17903,8 +18220,7 @@ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.3", @@ -17988,7 +18304,6 @@ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4.9.1" } @@ -18447,7 +18762,6 @@ "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -18649,7 +18963,6 @@ "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -18839,13 +19152,19 @@ "node": ">=10.13.0" } }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "global-prefix": "^3.0.0" }, @@ -18859,7 +19178,6 @@ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -18875,7 +19193,6 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -18942,8 +19259,7 @@ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/glsl-inject-defines": { "version": "1.0.3", @@ -19385,7 +19701,6 @@ "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "hookified": "^1.15.0" }, @@ -19509,8 +19824,7 @@ "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/hosted-git-info": { "version": "9.0.2", @@ -19535,6 +19849,13 @@ "node": "20 || >=22" } }, + "node_modules/hsluv": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", + "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==", + "dev": true, + "license": "MIT" + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -19560,7 +19881,6 @@ "integrity": "sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20.10" }, @@ -19629,6 +19949,19 @@ "url": "https://opencollective.com/express" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", @@ -19780,7 +20113,6 @@ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "dev": true, "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -20344,7 +20676,6 @@ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -20710,6 +21041,7 @@ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -22130,7 +22462,8 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/js-cookie": { "version": "3.0.5", @@ -22969,6 +23302,15 @@ "immediate": "~3.0.5" } }, + "node_modules/lightweight-charts": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/lightweight-charts/-/lightweight-charts-5.2.0.tgz", + "integrity": "sha512-ey3Vas8UhV06ni+LT9TA1nEe4y8So4Mi6CL/oarNHFMyTktz/xy8e8+oh04Q//eO3t6etvFXgayz2fClyFQb5w==", + "license": "Apache-2.0", + "dependencies": { + "fancy-canvas": "2.1.0" + } + }, "node_modules/lines-and-columns": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", @@ -23011,6 +23353,20 @@ "node": ">=8" } }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -23080,8 +23436,7 @@ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", @@ -23164,7 +23519,6 @@ "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -23481,7 +23835,6 @@ "integrity": "sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -23735,8 +24088,7 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, - "license": "CC0-1.0", - "peer": true + "license": "CC0-1.0" }, "node_modules/memoize-one": { "version": "5.2.1", @@ -24890,6 +25242,17 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/mumath": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", + "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", + "deprecated": "Redundant dependency in your project.", + "dev": true, + "license": "Unlicense", + "dependencies": { + "almost-equal": "^1.1.0" + } + }, "node_modules/murmurhash-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", @@ -25637,6 +26000,7 @@ "dev": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", @@ -26883,6 +27247,7 @@ "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-3.5.0.tgz", "integrity": "sha512-a3AYQIMG7OdZmrJ/fJ65HSt3g1l5qDeludKqjjafU1dh5E+fwqDhsEBndW7VCYwjlducCfN6KtPdWdiWFcoBWw==", "license": "MIT", + "peer": true, "dependencies": { "@plotly/d3": "3.8.2", "@plotly/d3-sankey": "0.7.2", @@ -26963,6 +27328,7 @@ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "license": "MIT", + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -26997,6 +27363,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -27006,6 +27373,69 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/postcss-safe-parser": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", @@ -27026,7 +27456,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18.0" }, @@ -27040,6 +27469,7 @@ "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -27053,8 +27483,7 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/potpack": { "version": "1.0.2", @@ -27078,6 +27507,7 @@ "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -27094,7 +27524,6 @@ "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-diff": "^1.1.2" }, @@ -27108,7 +27537,6 @@ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -27124,7 +27552,6 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=10" }, @@ -27339,7 +27766,6 @@ "integrity": "sha512-n7mar4T0xQ+39dE2vGTAlbxUEpndwPANH0kDef1/MYsB8Bba9wshkybIRx74qgcvKQPEWErf9AqAdYjhzY2Ilg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "hookified": "^2.1.1" }, @@ -27352,8 +27778,7 @@ "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.1.1.tgz", "integrity": "sha512-AHb76R16GB5EsPBE2J7Ko5kiEyXwviB9P5SMrAKcuAu4vJPZttViAbj9+tZeaQE5zjDme+1vcHP78Yj/WoAveA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/querystringify": { "version": "2.2.0", @@ -27418,6 +27843,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -27464,11 +27890,33 @@ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, + "node_modules/react-beautiful-dnd": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", + "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", + "deprecated": "react-beautiful-dnd is now deprecated. Context and options: https://github.com/atlassian/react-beautiful-dnd/issues/2672", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -27481,7 +27929,8 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/react-markdown": { "version": "8.0.7", @@ -27538,6 +27987,7 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -27897,6 +28347,7 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.9.2" } @@ -27979,7 +28430,6 @@ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" }, @@ -28277,7 +28727,6 @@ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -28744,6 +29193,7 @@ "integrity": "sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.1.5", @@ -28789,6 +29239,26 @@ "loose-envify": "^1.1.0" } }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -29019,7 +29489,6 @@ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -29581,6 +30050,23 @@ "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==", "license": "MIT" }, + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" + } + }, "node_modules/style-to-object": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", @@ -29606,7 +30092,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@csstools/css-calc": "^3.1.1", "@csstools/css-parser-algorithms": "^4.0.0", @@ -29658,7 +30143,6 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -29672,7 +30156,6 @@ "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", @@ -29700,7 +30183,6 @@ "integrity": "sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "flat-cache": "^6.1.20" } @@ -29711,7 +30193,6 @@ "integrity": "sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cacheable": "^2.3.4", "flatted": "^3.4.2", @@ -29724,7 +30205,6 @@ "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "fast-glob": "^3.3.3", @@ -29746,7 +30226,6 @@ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 4" } @@ -29757,7 +30236,6 @@ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -29771,7 +30249,6 @@ "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20" }, @@ -29785,7 +30262,6 @@ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", - "peer": true, "engines": { "node": ">=14" }, @@ -29799,7 +30275,6 @@ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=14.16" }, @@ -29813,7 +30288,6 @@ "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" @@ -29831,7 +30305,6 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -29848,7 +30321,6 @@ "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "signal-exit": "^4.0.1" }, @@ -29896,7 +30368,6 @@ "integrity": "sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "has-flag": "^5.0.1", "supports-color": "^10.2.2" @@ -29914,7 +30385,6 @@ "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -29928,7 +30398,6 @@ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -29992,8 +30461,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/symbol-tree": { "version": "3.2.4", @@ -30007,7 +30475,6 @@ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -30025,7 +30492,6 @@ "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -30037,31 +30503,12 @@ "node": ">=10.0.0" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/tapable": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", - "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" }, @@ -30114,29 +30561,152 @@ "node": ">=18" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/terser": { + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "node_modules/terser-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", "dev": true, "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, "engines": { - "node": ">=0.10" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" } }, "node_modules/text-table": { @@ -30272,6 +30842,7 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -30652,6 +31223,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -30750,7 +31322,6 @@ "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=20" }, @@ -30972,6 +31543,16 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/use-sync-external-store": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", @@ -31086,6 +31667,7 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -31193,6 +31775,19 @@ "makeerror": "1.0.12" } }, + "node_modules/watchpack": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -31237,6 +31832,88 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.107.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz", + "integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.22.0", + "es-module-lexer": "^2.1.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.5.0", + "watchpack": "^2.5.1", + "webpack-sources": "^3.5.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz", + "integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -31976,6 +32653,1588 @@ "@deephaven/plugin": "^1.18.0" } }, + "plugins/tradingview-lightweight/src/js": { + "name": "@deephaven/js-plugin-tradingview-lightweight", + "version": "0.1.0", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^1.2.0", + "@deephaven/dashboard": "^1.2.0", + "@deephaven/icons": "^1.2.0", + "@deephaven/jsapi-bootstrap": "1.2.0", + "@deephaven/log": "1.1.0", + "@deephaven/plugin": "^1.2.0", + "@deephaven/redux": "^1.2.0", + "@deephaven/utils": "^1.1.0", + "lightweight-charts": "^5.2.0", + "react-redux": "^7.2.9" + }, + "devDependencies": { + "@deephaven/dashboard-core-plugins": "^0.85.42", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.5", + "@deephaven/test-utils": "0.105.0", + "@types/react": "^17.0.2", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "typescript": "^5.9.3" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart": { + "version": "0.85.40", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.85.40.tgz", + "integrity": "sha512-GPuWdmETihkzmdu24+J3/7Ku0gYVaYK8hfOlMmSU3JL+wLja7QjiOPcBEjTmO6dqaMd1VZcU773niAs8xLvzpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/icons": "^0.85.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "buffer": "^6.0.3", + "fast-deep-equal": "^3.1.3", + "lodash": "^4.17.21", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "plotly.js": "^2.29.1", + "prop-types": "^15.7.2", + "react-plotly.js": "^2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/chart/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console": { + "version": "0.85.40", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.85.40.tgz", + "integrity": "sha512-LiTrARO/0VTyzYue4vA/ao+7fyjfwR5LlUd2vtLvsDYR+ydgRaELSmhLnD9mbulFgoiFIKsKkurGaaORogC2+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/chart": "^0.85.40", + "@deephaven/components": "^0.85.35", + "@deephaven/icons": "^0.85.0", + "@deephaven/jsapi-bootstrap": "^0.85.35", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/storage": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "linkifyjs": "^4.1.0", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", + "papaparse": "5.3.2", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "shell-quote": "^1.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/jsapi-bootstrap": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.85.35.tgz", + "integrity": "sha512-hVXMVuWNecore/AJHZdlZQrubtq60NFZ+CdWQQaUVMu5Pf1nCxFAPJ7YVzhTYyg6Pwl2KbfPYZCX4RkoN8CaYQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/console/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.85.46.tgz", + "integrity": "sha512-2dp9iVA3BLtw/spUjys8EPHx4pDnSgT2t6XeLyV1W99Z447/Vz00ZojDHINKW/OSxt4meJ2HfZ8v0prQxw8AHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/chart": "^0.85.40", + "@deephaven/components": "^0.85.35", + "@deephaven/console": "^0.85.40", + "@deephaven/dashboard": "^0.85.46", + "@deephaven/file-explorer": "^0.85.35", + "@deephaven/filters": "^0.85.0", + "@deephaven/golden-layout": "^0.85.41", + "@deephaven/grid": "^0.85.46", + "@deephaven/icons": "^0.85.0", + "@deephaven/iris-grid": "^0.85.46", + "@deephaven/jsapi-bootstrap": "^0.85.35", + "@deephaven/jsapi-components": "^0.85.39", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/plugin": "^0.85.46", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/redux": "^0.85.46", + "@deephaven/storage": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "fast-deep-equal": "^3.1.3", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "prop-types": "^15.7.2", + "react-markdown": "^8.0.7", + "redux": "^4.2.0", + "redux-thunk": "^2.4.1", + "rehype-mathjax": "^4.0.3", + "remark-gfm": "^3.0.1", + "remark-math": "^5.1.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "react-redux": "^7.2.4" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/dashboard": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.85.46.tgz", + "integrity": "sha512-pBLojM8xKqiSDzzWkd9r/EaBJzOfBcS/R7u0W0phv0EbfeZ0RbH47GeW2WFnkBAH3GFUhPNiV5qTd4lnnId9hw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/golden-layout": "^0.85.41", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/redux": "^0.85.46", + "@deephaven/utils": "^0.85.35", + "fast-deep-equal": "^3.1.3", + "lodash.ismatch": "^4.1.1", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "react-is": ">=16.8.0", + "react-redux": "^7.2.4" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/jsapi-bootstrap": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.85.35.tgz", + "integrity": "sha512-hVXMVuWNecore/AJHZdlZQrubtq60NFZ+CdWQQaUVMu5Pf1nCxFAPJ7YVzhTYyg6Pwl2KbfPYZCX4RkoN8CaYQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/plugin": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.85.46.tgz", + "integrity": "sha512-I1e70mZYlrT5m+2gATg3HnwrYaz17aJAubFb5TsinfrSsrWGZ4fK74SZ+DxX3WuM+zbkzh4Km6kkWoP4R3dIiQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/golden-layout": "^0.85.41", + "@deephaven/icons": "^0.85.0", + "@deephaven/iris-grid": "^0.85.46", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@fortawesome/fontawesome-common-types": "^6.1.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/redux": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.85.46.tgz", + "integrity": "sha512-rLMCf3guTjNiirMbIi7l9ROXQDIyl+wTpgffbwWYnuDc8bd+zmDWERnSamDDpk2txIsKcBaWLxlu74ry52B1Ug==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/plugin": "^0.85.46", + "fast-deep-equal": "^3.1.3", + "proxy-memoize": "^3.0.0", + "redux-thunk": "2.4.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "redux": "^4.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.85.35.tgz", + "integrity": "sha512-wcl0xsjCWEiuYuJ0DObxV8igzciTyPgN3jfd0JvZB2XvFFoNu4Fv9JqIrdaJQ0AjAUOS+H3MIWVdG+52eIv3Eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/storage": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "lodash.throttle": "^4.1.1", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/file-explorer/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/filters": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.85.0.tgz", + "integrity": "sha512-vwoNVJn/0U3xCESAgIJ8gXtOoym5LZ2XmMOkW37hNgCPp4lTk/SGE7StmaXzMQMZPGH6sLZWFGQ6ssIG2rbPng==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout": { + "version": "0.85.41", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.85.41.tgz", + "integrity": "sha512-160RTLaPJ+7Gfk9ZUCBP2A/zRnQjg0J3q2aibBxVYFy8rQhdCQS3stQxPX3CJjma7rD7pEFaV8lWSXovyyu1aw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "jquery": "^3.6.0", + "nanoid": "^5.0.7" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/golden-layout/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/grid": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.85.46.tgz", + "integrity": "sha512-GrvC317hiNpy5UxFSSzQacjOc0hJ5hw8y9VTSc+n9pMggeq0fyyop2H2NVtYNolk0ajVNe0Z3YiK6sBpmb0lQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/utils": "^0.85.35", + "classnames": "^2.3.1", + "color-convert": "^2.0.1", + "event-target-shim": "^6.0.2", + "linkifyjs": "^4.1.0", + "lodash.clamp": "^4.0.3", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "prop-types": "^15.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/grid/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid": { + "version": "0.85.46", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.85.46.tgz", + "integrity": "sha512-BTOjVC5wLfE5xKSZFxfPPIMkGiKyHTQNshppk7u4LgS0thuFvA1PSc3bzJe92BOp6Y4JPNQpgug9kOaB2LwZcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/console": "^0.85.40", + "@deephaven/filters": "^0.85.0", + "@deephaven/grid": "^0.85.46", + "@deephaven/icons": "^0.85.0", + "@deephaven/jsapi-components": "^0.85.39", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/storage": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/sortable": "^7.0.2", + "@dnd-kit/utilities": "^3.2.2", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "fast-deep-equal": "^3.1.3", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-transition-group": "^4.4.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-bootstrap": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-1.2.0.tgz", + "integrity": "sha512-KGhyebqhufveTrg7P/LlJvZbeL/mW2P80WUgPDPvY0S2yRvRTZd970aNSf6/aF9pplmGAO+NSBsrX7jJK4gA+A==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^1.2.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^1.1.0", + "@deephaven/react-hooks": "^1.2.0", + "@deephaven/utils": "^1.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components": { + "version": "0.85.39", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.85.39.tgz", + "integrity": "sha512-3NOFU5le99W3+T0cHZeV9U3RFu7xG5DCMuHmE4GQz5Q3DM4J7BOPIPKuLVVZ9O6saN8VdFTWZfhRBh3w1DoTIQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/jsapi-bootstrap": "^0.85.35", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/jsapi-utils": "^0.85.39", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@types/js-cookie": "^3.0.3", + "classnames": "^2.3.2", + "js-cookie": "^3.0.5", + "lodash.debounce": "^4.0.8", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/components": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.85.35.tgz", + "integrity": "sha512-KDPy/yU3r/45xLzM4E7PG5bSA7ufPoP29sDDWfajDj/v9LLNJpFSVoeMT9PqgI+9KEWdkZTAY4VfL2FDkCfaTg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/icons": "^0.85.0", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35", + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0", + "@internationalized/date": "^3.5.5", + "@react-spectrum/theme-default": "^3.5.1", + "@react-spectrum/toast": "^3.0.0-beta.16", + "@react-spectrum/utils": "^3.11.5", + "@react-types/radio": "^3.8.1", + "@react-types/shared": "^3.22.1", + "@react-types/textfield": "^3.9.1", + "bootstrap": "4.6.2", + "classnames": "^2.3.1", + "event-target-shim": "^6.0.2", + "lodash.clamp": "^4.0.3", + "lodash.debounce": "^4.0.8", + "lodash.flatten": "^4.4.0", + "memoizee": "^0.4.15", + "nanoid": "^5.0.7", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "react-beautiful-dnd": "^13.1.0", + "react-reverse-portal": "^2.3.0", + "react-transition-group": "^4.4.2", + "react-virtualized-auto-sizer": "1.0.6", + "react-window": "^1.8.6" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/icons": { + "version": "0.85.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.85.0.tgz", + "integrity": "sha512-8G77T/RPLs+SRdxWJJmOAFV0cS14U63L7hwJ8aqhMQmQkNqTqeDKrPXugXpOGN4iw3rkN05UPgV6ypS9XtbEgA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@fortawesome/fontawesome-common-types": "^6.1.1" + }, + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "^6.2.1", + "@fortawesome/react-fontawesome": "^0.2.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/jsapi-bootstrap": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.85.35.tgz", + "integrity": "sha512-hVXMVuWNecore/AJHZdlZQrubtq60NFZ+CdWQQaUVMu5Pf1nCxFAPJ7YVzhTYyg6Pwl2KbfPYZCX4RkoN8CaYQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.85.35", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^0.85.19", + "@deephaven/react-hooks": "^0.85.35", + "@deephaven/utils": "^0.85.35" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/react-hooks": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.85.35.tgz", + "integrity": "sha512-eOip5/TJMw1Yc8dKc54RlA6fesvgUZfwrwE0BWOerQTeRRVHFX4f1oRbAARpOEEsasWeVwpQlO20/wdShj71eg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.38.0", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-components/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-utils": { + "version": "0.85.39", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.85.39.tgz", + "integrity": "sha512-TPzO0xilxsIaibmIckF5yQkt5KCDfKmXlGqOWbILPf3xlr51ZwlKwkAmuQeftc8ZloLc0nRWmAgQEJ9a0Iz2IA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/filters": "^0.85.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.39.4", + "@deephaven/log": "^0.85.19", + "@deephaven/utils": "^0.85.35", + "lodash.clamp": "^4.0.3", + "nanoid": "^5.0.7" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-utils/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/jsapi-utils/node_modules/@deephaven/utils": { + "version": "0.85.35", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.85.35.tgz", + "integrity": "sha512-C/0Wb3dS5PZOAMHv+B0QDxn7LSyH9gzGiztM6cuCx9ZLm7kVXMkGoqHlUhKpSv6cl7qLVOCFaPPa4eyp3WdGjg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/log": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-1.1.0.tgz", + "integrity": "sha512-07Ww5o1iA9M65KoyHTfHTmCnzGIa/5OVP29pyP+FGmaXXMgujdvFRPfLHki0EeW92WOttXfK51kjDyzkBcs11Q==", + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/storage": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.85.19.tgz", + "integrity": "sha512-rDLcoqYv3WD8KO8/xE0Hy+zv/wJ0lhlmiJInCxsSXkcPOnD5IC5YWAK/Ov+/57+JH/r9kHmZt/JmuRKAmpv0Ow==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@deephaven/filters": "^0.85.0", + "@deephaven/log": "^0.85.19", + "lodash.throttle": "^4.1.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/storage/node_modules/@deephaven/log": { + "version": "0.85.19", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.85.19.tgz", + "integrity": "sha512-z1maZojpcKxIWGkvq9ZSD1P+92LY1qZMGDjyeb84/mn+krVVFN1LTsmVCNOfA0S73s6+1UdzTch0AE4vo3EEGA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "event-target-shim": "^6.0.2", + "jszip": "^3.10.1" + }, + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@deephaven/test-utils": { + "version": "0.105.0", + "resolved": "https://registry.npmjs.org/@deephaven/test-utils/-/test-utils-0.105.0.tgz", + "integrity": "sha512-8ItDniY8lSzr1O2XqH86s4vgE32uiS8XjHIQq69UnNfpeb0ZoP69gFtnHOhzGr/TVpGshUt0d+FeVGO0pzTr1Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@dnd-kit/sortable": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", + "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.0.7", + "react": ">=16.8.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/@types/react": { + "version": "17.0.93", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.93.tgz", + "integrity": "sha512-KM4Ty/ZTLZupiYxZVAlP+InNJS3De6uBMdq0ePa6/04+eG9Y7ftnWfst1xTLQ5rwAhgHwQ4momt/O4KepdGBTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "^0.16", + "csstype": "^3.2.2" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/color-rgba": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", + "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1", + "color-parse": "^1.3.8", + "color-space": "^1.14.6" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/color-rgba/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/color-space": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", + "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hsluv": "^0.0.3", + "mumath": "^3.3.4" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/css-loader": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", + "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.40", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.6.3" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/monaco-editor": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.41.0.tgz", + "integrity": "sha512-1o4olnZJsiLmv5pwLEAmzHTE/5geLKQ07BrGxlF4Ri/AXAc2yyDGZwHjiTqD8D/ROKUZmwMA28A+yEowLNOEcA==", + "dev": true, + "license": "MIT" + }, + "plugins/tradingview-lightweight/src/js/node_modules/nanoid": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.15.tgz", + "integrity": "sha512-kBg3RpGtIe+RpTbyXwoI6pk5yD7KUiI3sygUqgeBMRst42KmhB4RZC7eiO9Wa1HIpaCCtpE2DJ6OI4Wi5ebwFw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/plotly.js": { + "version": "2.35.3", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.35.3.tgz", + "integrity": "sha512-7RaC6FxmCUhpD6H4MpD+QLUu3hCn76I11rotRefrh3m1iDvWqGnVqVk9dSaKmRAhFD3vsNsYea0OxnR1rc2IzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@plotly/d3": "3.8.2", + "@plotly/d3-sankey": "0.7.2", + "@plotly/d3-sankey-circular": "0.33.1", + "@plotly/mapbox-gl": "1.13.4", + "@turf/area": "^7.1.0", + "@turf/bbox": "^7.1.0", + "@turf/centroid": "^7.1.0", + "base64-arraybuffer": "^1.0.2", + "canvas-fit": "^1.5.0", + "color-alpha": "1.0.4", + "color-normalize": "1.5.0", + "color-parse": "2.0.0", + "color-rgba": "2.1.1", + "country-regex": "^1.1.0", + "css-loader": "^7.1.2", + "d3-force": "^1.2.1", + "d3-format": "^1.4.5", + "d3-geo": "^1.12.1", + "d3-geo-projection": "^2.9.0", + "d3-hierarchy": "^1.1.9", + "d3-interpolate": "^3.0.1", + "d3-time": "^1.1.0", + "d3-time-format": "^2.2.3", + "fast-isnumeric": "^1.1.4", + "gl-mat4": "^1.2.0", + "gl-text": "^1.4.0", + "has-hover": "^1.0.1", + "has-passive-events": "^1.0.0", + "is-mobile": "^4.0.0", + "maplibre-gl": "^4.5.2", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.2.0", + "native-promise-only": "^0.8.1", + "parse-svg-path": "^0.1.2", + "point-in-polygon": "^1.1.0", + "polybooljs": "^1.2.2", + "probe-image-size": "^7.2.3", + "regl": "npm:@plotly/regl@^2.1.2", + "regl-error2d": "^2.0.12", + "regl-line2d": "^3.1.3", + "regl-scatter2d": "^3.3.1", + "regl-splom": "^1.0.14", + "strongly-connected-components": "^1.0.1", + "style-loader": "^4.0.0", + "superscript-text": "^1.0.0", + "svg-path-sdf": "^1.1.3", + "tinycolor2": "^1.4.2", + "to-px": "1.0.1", + "topojson-client": "^3.1.0", + "webgl-context": "^2.2.0", + "world-calendars": "^1.0.3" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/react-virtualized-auto-sizer": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", + "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/redux-thunk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", + "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "redux": "^4" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/regl": { + "name": "@plotly/regl", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", + "dev": true, + "license": "MIT" + }, + "plugins/tradingview-lightweight/src/js/node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "plugins/tradingview-lightweight/src/js/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "plugins/ui/src/js": { "name": "@deephaven/js-plugin-ui", "version": "0.38.0", diff --git a/package.json b/package.json index 0d15b4b9e..b3972cd92 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "update-dh-packages": "lerna run --concurrency 1 update-dh-packages", "update-dh-packages:ui": "npm run update-dh-packages -- --scope=@deephaven/js-plugin-ui --", "validate-marketplace": "node tools/validate-marketplace.mjs", - "update-doc-snapshots": "./tools/run_docker.sh ./docker-compose.docs-snapshots.yml deephaven-plugins-docs-snapshotter", + "update-doc-snapshots": "docker compose -f ./docker/python/docker-compose.yml build server && (./tools/run_docker.sh ./docker-compose.docs-snapshots.yml deephaven-plugins-docs-image-snapshotter-tvl; ec=$?; ./tools/run_docker.sh ./docker-compose.docs-snapshots.yml deephaven-plugins-docs-error-reporter || true; exit $ec)", "validate-doc-snapshots": "./tools/run_docker.sh ./docker-compose.docs-snapshots.yml deephaven-plugins-docs-validator" }, "devDependencies": { diff --git a/plugins/tradingview-lightweight/.gitignore b/plugins/tradingview-lightweight/.gitignore new file mode 100644 index 000000000..054da38f1 --- /dev/null +++ b/plugins/tradingview-lightweight/.gitignore @@ -0,0 +1,10 @@ +build/ +dist/ +.venv/ +/venv +*.egg-info/ +.idea +.DS_store +__pycache__/ +docs/build/ +app.d/docs_examples/ diff --git a/plugins/tradingview-lightweight/AGENTS.md b/plugins/tradingview-lightweight/AGENTS.md new file mode 100644 index 000000000..3973aa0c4 --- /dev/null +++ b/plugins/tradingview-lightweight/AGENTS.md @@ -0,0 +1,434 @@ +# Local Development & Testing + +tradingview-lightweight charts I call tvl for short. + +## Quick Start + +Use the root `tools/plugin_builder.py` to build the JS bundle + Python wheel +and bring up a Deephaven server with the plugin installed. From the repo root: + +```bash +python tools/plugin_builder.py --js --reinstall --server tradingview-lightweight +``` + +The plugin name is a positional argument — there is no `--plugin` flag. +`--js` builds the JS bundle, `--reinstall` rebuilds and force-reinstalls the +wheel (needed when the version number hasn't changed), and `--server` (`-s`) +starts the Deephaven server. After code changes, re-run the same command to +rebuild and restart. Run `python tools/plugin_builder.py --help` for all flags. + +App.d fixtures for local dev/snapshot capture live under `app.d/` at the +plugin root (`disconnect_test.py`, `downsample_compare.py`). Point the +Deephaven server at this directory with `-Ddeephaven.application.dir=$(pwd)/app.d` +when you need the fixtures pre-loaded. + +## Testing with agent-browser + +After the server is running: + +```bash +# Open the IDE and set viewport +agent-browser open http://localhost:10000/ide/ +agent-browser wait --load networkidle +agent-browser wait 5000 +agent-browser set viewport 1920 1080 +``` + +### Running code in the DH console + +The DH IDE opens panels for **new variable assignments**, not bare expressions. +Typing `tvl_line` alone will not open a panel. You must assign to a new name: + +```bash +# 1. Find the console editor +agent-browser snapshot -i # look for the textbox ref +agent-browser click @e15 # click the editor (ref may vary) + +# 2. Type a variable assignment and execute +agent-browser keyboard type "my_chart = tvl_line" +agent-browser press Escape # dismiss autocomplete +agent-browser wait 100 +agent-browser press Enter # execute (Enter works; Ctrl+Enter may not) +agent-browser wait 5000 # wait for panel to open and data to load + +# 3. Move mouse away and screenshot +agent-browser mouse move 0 0 +agent-browser wait 500 +agent-browser screenshot /tmp/tvl_test.png +``` + +Multi-statement commands work the same way: + +```bash +agent-browser keyboard type "from deephaven.plot import tradingview_lightweight as tvl" +agent-browser press Escape && agent-browser wait 100 && agent-browser press Enter +agent-browser wait 2000 + +agent-browser keyboard type "my_by = tvl.line(_by_table, time='Timestamp', value='Price', by='Sym')" +agent-browser press Escape && agent-browser wait 100 && agent-browser press Enter +agent-browser wait 5000 +``` + +To verify a panel opened, check the Golden Layout tabs: + +```bash +agent-browser eval "JSON.stringify(Array.from(document.querySelectorAll('.lm_tab')).map(e => e.textContent).filter(t => t.length > 0))" +# Should include your variable name, e.g. ["Console","Log","Command History","File Explorer","my_chart"] +``` + +### Opening widgets from the Panels menu (alternative) + +The Panels menu lists all exported variables. This approach does NOT +reliably open widget panels — it works for tables but may silently +fail for plugin widgets. Prefer the console assignment method above. + +```bash +agent-browser snapshot -i -c +agent-browser click @e3 # "Panels" button — ref may vary +agent-browser wait 500 +agent-browser snapshot -i -c # find the search box ref +agent-browser fill @e7 "tvl_candlestick" +agent-browser wait 500 +agent-browser snapshot -i -c # find the button ref +agent-browser click @e11 # ref may vary +agent-browser wait 3000 +``` + +### Screenshotting an individual chart + +After opening a chart panel, isolate the chart and screenshot: + +```bash +# Move mouse off chart to avoid hover tooltips +agent-browser mouse move 0 0 +agent-browser wait 500 + +# Screenshot the full page (chart will be visible in the panel area) +agent-browser screenshot /tmp/tvl_chart.png + +# Or check for chart elements +agent-browser eval "document.querySelectorAll('.dh-tvl-chart').length" +``` + +View the screenshot with the `Read` tool on the image path. Always screenshot into the local directory so the user can also verify if needed. + +### Important Notes + +- **Refs change between snapshots.** Always run `agent-browser snapshot -i` before clicking to get fresh refs. +- **Charts render on canvas.** Use screenshots to verify chart content — DOM queries won't see rendered lines/candles. +- **Use variable assignments** to open widget panels (e.g., `my_chart = tvl_line`). Bare expressions evaluate but don't open panels. +- **Enter, not Ctrl+Enter.** Plain `Enter` executes single-line commands. `Ctrl+Enter` may insert a newline instead. +- **Dismiss autocomplete** with `agent-browser press Escape` before pressing Enter, otherwise it may select a completion instead of executing. +- **Zombie processes.** If the server seems stale (serving old JS), kill any + lingering `deephaven_server` processes (`pkill -f deephaven_server`) and + re-run `tools/plugin_builder.py`. + +## How It Works + +`tools/plugin_builder.py --js --reinstall --server tradingview-lightweight`: + +1. Builds the JS bundle via `npm run build` in `src/js/`. +2. Builds the Python wheel and installs it into a Deephaven server venv. +3. Starts the DH server on port 10000. + +The DH web client loads the JS plugin via `/js-plugins/manifest.json`. The +CJS bundle uses `require()` for modules the DH client provides (react, +`@deephaven/plugin`, etc.) — these are resolved by the client's built-in +require shim. + +## API Reference Notes + +For TradingView Lightweight Charts v5.2 API documentation, fetch the +upstream docs at https://tradingview.github.io/lightweight-charts/docs (the +local notes/api-reference/ snapshot has been removed to keep the plugin +tree clean). + +## Architecture Overview + +### JS Component Hierarchy + +``` +TradingViewPlugin (plugin registration) +├── component: TradingViewChart — for inline/embedded use +└── panelComponent: TradingViewChartPanel — for standalone panels + └── WidgetPanel (@deephaven/dashboard-core-plugins) + ├── Session disconnect/reconnect detection + ├── LoadingOverlay (spinner + error + disconnect) + └── TradingViewChart + ├── TradingViewChartModel — data pipeline, table subscriptions + └── TradingViewChartRenderer — LWC chart instance, series management +``` + +### Key Files + +| File | Role | +| --------------------------------------------- | ----------------------------------------------------------------- | +| `src/js/src/TradingViewChartPanel.tsx` | WidgetPanel wrapper — session disconnect, loading overlay | +| `src/js/src/TradingViewChart.tsx` | Main component — init, data updates, zoom/pan, downsample UX | +| `src/js/src/TradingViewChartModel.ts` | Model — widget messages, table subscriptions, autobin/EVENT | +| `src/js/src/TradingViewChartRenderer.ts` | LWC wrapper — chart creation, series CRUD, markers, price lines | +| `src/js/src/TradingViewEventPayload.ts` | Builds the press-event payload sent to Python (hit test, series) | +| `src/js/src/TradingViewChart.css` | Downsample scrim/status bar styles (inlined via `?inline` import) | +| `src/deephaven/.../auto_bin.py` | Server-side time-bin aggregation for Histogram/Candlestick/Bar | +| `src/deephaven/.../events.py` | Press-event payloads + handler plumbing (`wrap_callable`) | +| `src/deephaven/.../communication/listener.py` | Message handler — RETRIEVE/AUTOBIN_ZOOM/AUTOBIN_RESET/EVENT | + +### CSS Injection + +Plugin CSS files aren't loaded by the DH client. TVL uses Vite's `?inline` import to embed CSS as a string, injected via a `