diff --git a/.eslintrc.yaml b/.eslintrc.yaml
index 6be70abac..0e85dbbe1 100644
--- a/.eslintrc.yaml
+++ b/.eslintrc.yaml
@@ -4,11 +4,10 @@ env:
parser: "@babel/eslint-parser"
parserOptions:
sourceType: module
- ecmaVersion: 2023
requireConfigFile: false
babelOptions:
plugins:
- - "@babel/plugin-syntax-import-assertions"
+ - "@babel/plugin-syntax-import-attributes"
extends:
- eslint:recommended
- plugin:import/errors
diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 000000000..8d7e2b9c7
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,4 @@
+[re.sonny.Commit]
+title-length-hint=72
+body-length-wrap=50
+auto-capitalize-title=true
diff --git a/.gitmodules b/.gitmodules
index 0f4a5ee60..02339e69e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -8,6 +8,6 @@
path = blueprint-compiler
url = https://gitlab.gnome.org/jwestman/blueprint-compiler.git
[submodule "src/langs/typescript/template/gi-types"]
- path = src/langs/typescript/gi-types
+ path = gi-types
url = https://gitlab.gnome.org/BrainBlasted/gi-typescript-definitions.git
branch = nightly
diff --git a/Makefile b/Makefile
index 1def6fedc..12ac5ea7a 100644
--- a/Makefile
+++ b/Makefile
@@ -4,9 +4,8 @@ SHELL:=/bin/bash -O globstar
setup:
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
- flatpak install --or-update --user --noninteractive flathub org.gnome.Sdk//46 org.flatpak.Builder org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.vala//23.08 org.freedesktop.Sdk.Extension.llvm18//23.08 org.freedesktop.Sdk.Extension.node20//23.08 org.freedesktop.Sdk.Extension.typescript//23.08
+ flatpak install --or-update --user --noninteractive flathub org.gnome.Sdk//47 org.flatpak.Builder org.freedesktop.Sdk.Extension.rust-stable//24.08 org.freedesktop.Sdk.Extension.vala//24.08 org.freedesktop.Sdk.Extension.llvm18//24.08 org.freedesktop.Sdk.Extension.node20//24.08 #org.freedesktop.Sdk.Extension.typescript//24.08
# flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
-# flatpak install --or-update --user --noninteractive flathub-beta org.freedesktop.Sdk.Extension.rust-stable//24.08beta org.freedesktop.Sdk.Extension.vala//24.08beta org.freedesktop.Sdk.Extension.llvm18//24.08beta org.freedesktop.Sdk.Extension.node20//24.08beta org.freedesktop.Sdk.Extension.typescript//24.08beta
# flatpak remote-add --user --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
# flatpak install --or-update --user --noninteractive gnome-nightly org.gnome.Sdk//master
git submodule update --init
@@ -70,14 +69,14 @@ ci: setup build test
# make sure to test without the sdk extensions installed
sandbox: setup
flatpak run org.flatpak.Builder --ccache --user --install --force-clean flatpak build-aux/re.sonny.Workbench.Devel.json
-# flatpak remove --noninteractive org.freedesktop.Sdk.Extension.rust-stable//23.08 org.freedesktop.Sdk.Extension.vala//23.08 org.freedesktop.Sdk.Extension.llvm18//23.08
+# flatpak remove --noninteractive org.freedesktop.Sdk.Extension.rust-stable//24.08 org.freedesktop.Sdk.Extension.vala//24.08 org.freedesktop.Sdk.Extension.llvm18//24.08
flatpak run --command="bash" re.sonny.Workbench.Devel
flatpak:
flatpak run org.flatpak.Builder --ccache --force-clean flatpak build-aux/re.sonny.Workbench.Devel.json
# This is what Flathub does - consider moving to lint
flatpak run --env=G_DEBUG=fatal-criticals --command=appstream-util org.flatpak.Builder validate flatpak/files/share/appdata/re.sonny.Workbench.Devel.appdata.xml
- flatpak run --command="desktop-file-validate" --filesystem=host:ro org.freedesktop.Sdk//23.08 flatpak/files/share/applications/re.sonny.Workbench.Devel.desktop
+ flatpak run --command="desktop-file-validate" --filesystem=host:ro org.freedesktop.Sdk//24.08 flatpak/files/share/applications/re.sonny.Workbench.Devel.desktop
# appstreamcli validate --override=release-time-missing=info /path/to/your/app.metainfo.xml
flatpak run org.flatpak.Builder --run flatpak build-aux/re.sonny.Workbench.Devel.json bash
diff --git a/README.md b/README.md
index fa2f08659..0d9dc0e5d 100644
--- a/README.md
+++ b/README.md
@@ -14,10 +14,11 @@ Among other things, Workbench comes with
- Live GTK/CSS preview
- Library of 100+ examples
+
- JavaScript, Rust, Python and Vala support
- Declarative user interface syntax
- Autosave, sessions and projects
-- Code linter and formatter
+- Code diagnostics, completion and formatter
- Terminal output
ℹ️ Workbench is made possible by Flatpak. Only Flathub Workbench is supported.
@@ -32,8 +33,8 @@ Among other things, Workbench comes with
| ---------- | --------- | ------ | ---------------- |
| JavaScript | ✅ | ✅ | 99 |
| Python | ✅ | ✅ | 92 |
-| Vala | ✅ | ✅ | 92 |
-| Rust | ✅ | ✅ | 45 |
+| Vala | ✅ | ✅ | 91 |
+| Rust | ✅ | ✅ | 52 |
| Blueprint | ✅ | ✅ | |
| CSS | ✅ | ✅ | |
diff --git a/blueprint-compiler b/blueprint-compiler
index adc2be145..8e10fcf86 160000
--- a/blueprint-compiler
+++ b/blueprint-compiler
@@ -1 +1 @@
-Subproject commit adc2be14545289778179508ac1f9797a93bc2686
+Subproject commit 8e10fcf8692108b9d4ab78f41086c5d7773ef864
diff --git a/build-aux/library.js b/build-aux/library.js
index fa7b4fe91..ec18b355e 100755
--- a/build-aux/library.js
+++ b/build-aux/library.js
@@ -95,6 +95,14 @@ const demos = [];
demos.push(demo);
}
+ demos.sort((a, b) => {
+ if (a.name === "Welcome") return -1;
+ if (b.name === "Welcome") return 1;
+ if (a.name === "Platform Tools") return -1;
+ if (b.name === "Platform Tools") return 1;
+ else return a.name.localeCompare(b.name);
+ });
+
await Gio.File.new_for_path(pkgdatadir)
.get_child("demos/index.json")
.replace_contents_async(
diff --git a/build-aux/modules/GTKCssLanguageServer.json b/build-aux/modules/GTKCssLanguageServer.json
index d0d3182f5..cbf93e759 100644
--- a/build-aux/modules/GTKCssLanguageServer.json
+++ b/build-aux/modules/GTKCssLanguageServer.json
@@ -12,7 +12,11 @@
"modules": [
{
"name": "jsonrpc-glib",
- "config-opts": ["--buildtype=release", "-Denable_tests=false"],
+ "config-opts": [
+ "--libdir=/app/lib",
+ "--buildtype=release",
+ "-Denable_tests=false"
+ ],
"buildsystem": "meson",
"sources": [
{
diff --git a/build-aux/modules/biome.json b/build-aux/modules/biome.json
index 6de6f5f89..0955cccea 100644
--- a/build-aux/modules/biome.json
+++ b/build-aux/modules/biome.json
@@ -7,15 +7,15 @@
"type": "file",
"dest-filename": "biome",
"only-arches": ["aarch64"],
- "url": "https://github.com/biomejs/biome/releases/download/cli%2Fv1.8.3/biome-linux-arm64",
- "sha256": "d134e89f6f4fc29d32c8101efb074969ac263ebdb0303e07039e3735002c6a2d"
+ "url": "https://github.com/biomejs/biome/releases/download/cli%2Fv1.9.2/biome-linux-arm64",
+ "sha256": "b4b88a36487e5b6c7b34fdc5351f4beb57ce7d88497f57fd3474c64413aabf78"
},
{
"type": "file",
"dest-filename": "biome",
"only-arches": ["x86_64"],
- "url": "https://github.com/biomejs/biome/releases/download/cli%2Fv1.8.3/biome-linux-x64",
- "sha256": "5495f2f69edd94e9f26ed1adb9ed8023d7c143c3cc6f275f90abdded612217e4"
+ "url": "https://github.com/biomejs/biome/releases/download/cli%2Fv1.9.2/biome-linux-x64",
+ "sha256": "e17bb3d15fc192aa767ae7691302f4fd239e80ceaace4c3238857b9da0f43902"
}
]
}
diff --git a/build-aux/modules/gom.json b/build-aux/modules/gom.json
new file mode 100644
index 000000000..586b5222c
--- /dev/null
+++ b/build-aux/modules/gom.json
@@ -0,0 +1,12 @@
+{
+ "name": "gom",
+ "buildsystem": "meson",
+ "config-opts": ["--libdir=/app/lib", "-Denable-gtk-doc=false"],
+ "sources": [
+ {
+ "type": "archive",
+ "url": "https://download.gnome.org/sources/gom/0.5/gom-0.5.3.tar.xz",
+ "sha256": "069d0909fbdc6b4d27edf7a879366194e3ab508b03548bf5b89ff63546d20177"
+ }
+ ]
+}
diff --git a/build-aux/modules/gst-plugin-gtk4-sources.json b/build-aux/modules/gst-plugin-gtk4-sources.json
deleted file mode 100644
index bb2387d84..000000000
--- a/build-aux/modules/gst-plugin-gtk4-sources.json
+++ /dev/null
@@ -1,1724 +0,0 @@
-[
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/android-tzdata/android-tzdata-0.1.1.crate",
- "sha256": "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0",
- "dest": "cargo/vendor/android-tzdata-0.1.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\", \"files\": {}}",
- "dest": "cargo/vendor/android-tzdata-0.1.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/android_system_properties/android_system_properties-0.1.5.crate",
- "sha256": "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311",
- "dest": "cargo/vendor/android_system_properties-0.1.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\", \"files\": {}}",
- "dest": "cargo/vendor/android_system_properties-0.1.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/async-channel/async-channel-2.3.1.crate",
- "sha256": "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a",
- "dest": "cargo/vendor/async-channel-2.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a\", \"files\": {}}",
- "dest": "cargo/vendor/async-channel-2.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/atomic_refcell/atomic_refcell-0.1.13.crate",
- "sha256": "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c",
- "dest": "cargo/vendor/atomic_refcell-0.1.13"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c\", \"files\": {}}",
- "dest": "cargo/vendor/atomic_refcell-0.1.13",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/autocfg/autocfg-1.3.0.crate",
- "sha256": "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0",
- "dest": "cargo/vendor/autocfg-1.3.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0\", \"files\": {}}",
- "dest": "cargo/vendor/autocfg-1.3.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bitflags/bitflags-2.5.0.crate",
- "sha256": "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1",
- "dest": "cargo/vendor/bitflags-2.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1\", \"files\": {}}",
- "dest": "cargo/vendor/bitflags-2.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/bumpalo/bumpalo-3.16.0.crate",
- "sha256": "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c",
- "dest": "cargo/vendor/bumpalo-3.16.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c\", \"files\": {}}",
- "dest": "cargo/vendor/bumpalo-3.16.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cairo-rs/cairo-rs-0.19.4.crate",
- "sha256": "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562",
- "dest": "cargo/vendor/cairo-rs-0.19.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562\", \"files\": {}}",
- "dest": "cargo/vendor/cairo-rs-0.19.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cairo-sys-rs/cairo-sys-rs-0.19.2.crate",
- "sha256": "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64",
- "dest": "cargo/vendor/cairo-sys-rs-0.19.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64\", \"files\": {}}",
- "dest": "cargo/vendor/cairo-sys-rs-0.19.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cc/cc-1.0.99.crate",
- "sha256": "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695",
- "dest": "cargo/vendor/cc-1.0.99"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695\", \"files\": {}}",
- "dest": "cargo/vendor/cc-1.0.99",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.15.8.crate",
- "sha256": "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02",
- "dest": "cargo/vendor/cfg-expr-0.15.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02\", \"files\": {}}",
- "dest": "cargo/vendor/cfg-expr-0.15.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/cfg-if/cfg-if-1.0.0.crate",
- "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
- "dest": "cargo/vendor/cfg-if-1.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\", \"files\": {}}",
- "dest": "cargo/vendor/cfg-if-1.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/chrono/chrono-0.4.38.crate",
- "sha256": "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401",
- "dest": "cargo/vendor/chrono-0.4.38"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401\", \"files\": {}}",
- "dest": "cargo/vendor/chrono-0.4.38",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/concurrent-queue/concurrent-queue-2.5.0.crate",
- "sha256": "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973",
- "dest": "cargo/vendor/concurrent-queue-2.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973\", \"files\": {}}",
- "dest": "cargo/vendor/concurrent-queue-2.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/core-foundation-sys/core-foundation-sys-0.8.6.crate",
- "sha256": "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f",
- "dest": "cargo/vendor/core-foundation-sys-0.8.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f\", \"files\": {}}",
- "dest": "cargo/vendor/core-foundation-sys-0.8.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/crossbeam-utils/crossbeam-utils-0.8.20.crate",
- "sha256": "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80",
- "dest": "cargo/vendor/crossbeam-utils-0.8.20"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80\", \"files\": {}}",
- "dest": "cargo/vendor/crossbeam-utils-0.8.20",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/either/either-1.12.0.crate",
- "sha256": "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b",
- "dest": "cargo/vendor/either-1.12.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b\", \"files\": {}}",
- "dest": "cargo/vendor/either-1.12.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/equivalent/equivalent-1.0.1.crate",
- "sha256": "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5",
- "dest": "cargo/vendor/equivalent-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\", \"files\": {}}",
- "dest": "cargo/vendor/equivalent-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/event-listener/event-listener-5.3.1.crate",
- "sha256": "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba",
- "dest": "cargo/vendor/event-listener-5.3.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba\", \"files\": {}}",
- "dest": "cargo/vendor/event-listener-5.3.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/event-listener-strategy/event-listener-strategy-0.5.2.crate",
- "sha256": "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1",
- "dest": "cargo/vendor/event-listener-strategy-0.5.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1\", \"files\": {}}",
- "dest": "cargo/vendor/event-listener-strategy-0.5.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/field-offset/field-offset-0.3.6.crate",
- "sha256": "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f",
- "dest": "cargo/vendor/field-offset-0.3.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f\", \"files\": {}}",
- "dest": "cargo/vendor/field-offset-0.3.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.30.crate",
- "sha256": "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78",
- "dest": "cargo/vendor/futures-channel-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\", \"files\": {}}",
- "dest": "cargo/vendor/futures-channel-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.30.crate",
- "sha256": "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d",
- "dest": "cargo/vendor/futures-core-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\", \"files\": {}}",
- "dest": "cargo/vendor/futures-core-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-executor/futures-executor-0.3.30.crate",
- "sha256": "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d",
- "dest": "cargo/vendor/futures-executor-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\", \"files\": {}}",
- "dest": "cargo/vendor/futures-executor-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.30.crate",
- "sha256": "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1",
- "dest": "cargo/vendor/futures-io-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\", \"files\": {}}",
- "dest": "cargo/vendor/futures-io-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.30.crate",
- "sha256": "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac",
- "dest": "cargo/vendor/futures-macro-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\", \"files\": {}}",
- "dest": "cargo/vendor/futures-macro-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.30.crate",
- "sha256": "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004",
- "dest": "cargo/vendor/futures-task-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\", \"files\": {}}",
- "dest": "cargo/vendor/futures-task-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.30.crate",
- "sha256": "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48",
- "dest": "cargo/vendor/futures-util-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\", \"files\": {}}",
- "dest": "cargo/vendor/futures-util-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk-pixbuf/gdk-pixbuf-0.19.8.crate",
- "sha256": "624eaba126021103c7339b2e179ae4ee8cdab842daab419040710f38ed9f8699",
- "dest": "cargo/vendor/gdk-pixbuf-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"624eaba126021103c7339b2e179ae4ee8cdab842daab419040710f38ed9f8699\", \"files\": {}}",
- "dest": "cargo/vendor/gdk-pixbuf-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk-pixbuf-sys/gdk-pixbuf-sys-0.19.8.crate",
- "sha256": "4efa05a4f83c8cc50eb4d883787b919b85e5f1d8dd10b5a1df53bf5689782379",
- "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4efa05a4f83c8cc50eb4d883787b919b85e5f1d8dd10b5a1df53bf5689782379\", \"files\": {}}",
- "dest": "cargo/vendor/gdk-pixbuf-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4/gdk4-0.8.2.crate",
- "sha256": "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07",
- "dest": "cargo/vendor/gdk4-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-sys/gdk4-sys-0.8.2.crate",
- "sha256": "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd",
- "dest": "cargo/vendor/gdk4-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-wayland/gdk4-wayland-0.8.2.crate",
- "sha256": "f620a0ecbe4c574e3fec6bef6bebcefe19cb1b9a81569245ca4503c95f9b1371",
- "dest": "cargo/vendor/gdk4-wayland-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f620a0ecbe4c574e3fec6bef6bebcefe19cb1b9a81569245ca4503c95f9b1371\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-wayland-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-wayland-sys/gdk4-wayland-sys-0.8.2.crate",
- "sha256": "7a5fd3927c917184b0e8712624eebabdc7f0909b645d468c825f8ec627e61803",
- "dest": "cargo/vendor/gdk4-wayland-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7a5fd3927c917184b0e8712624eebabdc7f0909b645d468c825f8ec627e61803\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-wayland-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-win32/gdk4-win32-0.8.2.crate",
- "sha256": "3294d0d08b179198a01ac2623786e6227e3d7a98e042e26e4d020f31ba8fac41",
- "dest": "cargo/vendor/gdk4-win32-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3294d0d08b179198a01ac2623786e6227e3d7a98e042e26e4d020f31ba8fac41\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-win32-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-win32-sys/gdk4-win32-sys-0.8.2.crate",
- "sha256": "6682a82d3a1616fbe17a9a757528bd3ef0ede3eab7487f0ecf6ed2a499de117d",
- "dest": "cargo/vendor/gdk4-win32-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6682a82d3a1616fbe17a9a757528bd3ef0ede3eab7487f0ecf6ed2a499de117d\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-win32-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-x11/gdk4-x11-0.8.2.crate",
- "sha256": "ec6da3e3527007c14b27ddafe19496c49696a2a74dccb6ab75ba58dfa478b7ab",
- "dest": "cargo/vendor/gdk4-x11-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ec6da3e3527007c14b27ddafe19496c49696a2a74dccb6ab75ba58dfa478b7ab\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-x11-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gdk4-x11-sys/gdk4-x11-sys-0.8.2.crate",
- "sha256": "0bb4e987ec77b7b2fb72c0943ccbec5c3834d9d7165fe762af8ff2414f0ae23d",
- "dest": "cargo/vendor/gdk4-x11-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0bb4e987ec77b7b2fb72c0943ccbec5c3834d9d7165fe762af8ff2414f0ae23d\", \"files\": {}}",
- "dest": "cargo/vendor/gdk4-x11-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gio/gio-0.19.8.crate",
- "sha256": "4c49f117d373ffcc98a35d114db5478bc223341cff53e39a5d6feced9e2ddffe",
- "dest": "cargo/vendor/gio-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4c49f117d373ffcc98a35d114db5478bc223341cff53e39a5d6feced9e2ddffe\", \"files\": {}}",
- "dest": "cargo/vendor/gio-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.19.8.crate",
- "sha256": "2cd743ba4714d671ad6b6234e8ab2a13b42304d0e13ab7eba1dcdd78a7d6d4ef",
- "dest": "cargo/vendor/gio-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2cd743ba4714d671ad6b6234e8ab2a13b42304d0e13ab7eba1dcdd78a7d6d4ef\", \"files\": {}}",
- "dest": "cargo/vendor/gio-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glib/glib-0.19.8.crate",
- "sha256": "b664491bc77ab55daa6714a592cdbe1a55e28abec09cb50e87689b90de456ff4",
- "dest": "cargo/vendor/glib-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b664491bc77ab55daa6714a592cdbe1a55e28abec09cb50e87689b90de456ff4\", \"files\": {}}",
- "dest": "cargo/vendor/glib-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.19.8.crate",
- "sha256": "1d405205a405182f95e637710850a8e82f25ba01fdd6baebc82dabeaf0883376",
- "dest": "cargo/vendor/glib-macros-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1d405205a405182f95e637710850a8e82f25ba01fdd6baebc82dabeaf0883376\", \"files\": {}}",
- "dest": "cargo/vendor/glib-macros-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.19.8.crate",
- "sha256": "5c2dc18d3a82b0006d470b13304fbbb3e0a9bd4884cf985a60a7ed733ac2c4a5",
- "dest": "cargo/vendor/glib-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5c2dc18d3a82b0006d470b13304fbbb3e0a9bd4884cf985a60a7ed733ac2c4a5\", \"files\": {}}",
- "dest": "cargo/vendor/glib-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.19.8.crate",
- "sha256": "2e697e252d6e0416fd1d9e169bda51c0f1c926026c39ca21fbe8b1bb5c3b8b9e",
- "dest": "cargo/vendor/gobject-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2e697e252d6e0416fd1d9e169bda51c0f1c926026c39ca21fbe8b1bb5c3b8b9e\", \"files\": {}}",
- "dest": "cargo/vendor/gobject-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/graphene-rs/graphene-rs-0.19.8.crate",
- "sha256": "f5fb86031d24d9ec0a2a15978fc7a65d545a2549642cf1eb7c3dda358da42bcf",
- "dest": "cargo/vendor/graphene-rs-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f5fb86031d24d9ec0a2a15978fc7a65d545a2549642cf1eb7c3dda358da42bcf\", \"files\": {}}",
- "dest": "cargo/vendor/graphene-rs-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/graphene-sys/graphene-sys-0.19.8.crate",
- "sha256": "2f530e0944bccba4b55065e9c69f4975ad691609191ebac16e13ab8e1f27af05",
- "dest": "cargo/vendor/graphene-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2f530e0944bccba4b55065e9c69f4975ad691609191ebac16e13ab8e1f27af05\", \"files\": {}}",
- "dest": "cargo/vendor/graphene-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gsk4/gsk4-0.8.2.crate",
- "sha256": "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be",
- "dest": "cargo/vendor/gsk4-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be\", \"files\": {}}",
- "dest": "cargo/vendor/gsk4-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gsk4-sys/gsk4-sys-0.8.2.crate",
- "sha256": "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc",
- "dest": "cargo/vendor/gsk4-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc\", \"files\": {}}",
- "dest": "cargo/vendor/gsk4-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gst-plugin-version-helper/gst-plugin-version-helper-0.8.2.crate",
- "sha256": "4e5e874f1660252fd2ec81c602066df3633b3a6fcbe2b196f7f93c27cf069b2a",
- "dest": "cargo/vendor/gst-plugin-version-helper-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4e5e874f1660252fd2ec81c602066df3633b3a6fcbe2b196f7f93c27cf069b2a\", \"files\": {}}",
- "dest": "cargo/vendor/gst-plugin-version-helper-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer/gstreamer-0.22.6.crate",
- "sha256": "080daaf35d22367a398aefd032af80cc36238c76fac7b8822894f5e5be073795",
- "dest": "cargo/vendor/gstreamer-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"080daaf35d22367a398aefd032af80cc36238c76fac7b8822894f5e5be073795\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-allocators/gstreamer-allocators-0.22.6.crate",
- "sha256": "1a53239735ec0376659ec082343225cd0e1a53f7f2ee318aec32adc696e31fe6",
- "dest": "cargo/vendor/gstreamer-allocators-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1a53239735ec0376659ec082343225cd0e1a53f7f2ee318aec32adc696e31fe6\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-allocators-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-allocators-sys/gstreamer-allocators-sys-0.22.6.crate",
- "sha256": "9b651aa05affa0c57dbb5c85b8a0729a10c2aa412bd9ef14d782a39934835e5c",
- "dest": "cargo/vendor/gstreamer-allocators-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9b651aa05affa0c57dbb5c85b8a0729a10c2aa412bd9ef14d782a39934835e5c\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-allocators-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-base/gstreamer-base-0.22.6.crate",
- "sha256": "39d55668b23fc69f1843daa42b43d289c00fe38e9586c5453b134783d2dd75a3",
- "dest": "cargo/vendor/gstreamer-base-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"39d55668b23fc69f1843daa42b43d289c00fe38e9586c5453b134783d2dd75a3\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-base-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-base-sys/gstreamer-base-sys-0.22.6.crate",
- "sha256": "5448abb00c197e3ad306710293bf757303cbeab4036b5ccad21c7642b8bf00c9",
- "dest": "cargo/vendor/gstreamer-base-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"5448abb00c197e3ad306710293bf757303cbeab4036b5ccad21c7642b8bf00c9\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-base-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl/gstreamer-gl-0.22.6.crate",
- "sha256": "2776369ce07de81b1e6f52786caec898db5be5d4678a8104e8fcbffdae68332d",
- "dest": "cargo/vendor/gstreamer-gl-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2776369ce07de81b1e6f52786caec898db5be5d4678a8104e8fcbffdae68332d\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-egl/gstreamer-gl-egl-0.22.6.crate",
- "sha256": "be51a7ceaeabf411ba01a2de5af163ea2b8d79f157d0d924b4682fd217182c15",
- "dest": "cargo/vendor/gstreamer-gl-egl-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"be51a7ceaeabf411ba01a2de5af163ea2b8d79f157d0d924b4682fd217182c15\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-egl-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-egl-sys/gstreamer-gl-egl-sys-0.22.6.crate",
- "sha256": "45bc9d114f161ec27822c203f28e43c88b6523f31cbde29b4cb8d8378a3825a4",
- "dest": "cargo/vendor/gstreamer-gl-egl-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"45bc9d114f161ec27822c203f28e43c88b6523f31cbde29b4cb8d8378a3825a4\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-egl-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-sys/gstreamer-gl-sys-0.22.6.crate",
- "sha256": "050a2cf158354bd5633079baf73d12767a5c90efc6377b4f9507aca082734286",
- "dest": "cargo/vendor/gstreamer-gl-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"050a2cf158354bd5633079baf73d12767a5c90efc6377b4f9507aca082734286\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-wayland/gstreamer-gl-wayland-0.22.6.crate",
- "sha256": "1ed320047a5b5f33eb7011fecd57355eaefece278a244e16bfde475b1b268b68",
- "dest": "cargo/vendor/gstreamer-gl-wayland-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"1ed320047a5b5f33eb7011fecd57355eaefece278a244e16bfde475b1b268b68\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-wayland-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-wayland-sys/gstreamer-gl-wayland-sys-0.22.6.crate",
- "sha256": "2c0fcf9857b41dd4e96dba723edce306853d5a166a5165f7d15a1be672be6c3d",
- "dest": "cargo/vendor/gstreamer-gl-wayland-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2c0fcf9857b41dd4e96dba723edce306853d5a166a5165f7d15a1be672be6c3d\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-wayland-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-x11/gstreamer-gl-x11-0.22.6.crate",
- "sha256": "e4867cfe9333b04ee14672001e914ea995707a8b02d7b12c1b6f3e9f4a5c4f0d",
- "dest": "cargo/vendor/gstreamer-gl-x11-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e4867cfe9333b04ee14672001e914ea995707a8b02d7b12c1b6f3e9f4a5c4f0d\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-x11-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-gl-x11-sys/gstreamer-gl-x11-sys-0.22.6.crate",
- "sha256": "c628a2a3d216df2f85d37923f65a4e0fdafe4652f7cd06c9432f8c8ce8199aa9",
- "dest": "cargo/vendor/gstreamer-gl-x11-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c628a2a3d216df2f85d37923f65a4e0fdafe4652f7cd06c9432f8c8ce8199aa9\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-gl-x11-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-sys/gstreamer-sys-0.22.6.crate",
- "sha256": "71f147e7c6bc9313d5569eb15da61f6f64026ec69791922749de230583a07286",
- "dest": "cargo/vendor/gstreamer-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"71f147e7c6bc9313d5569eb15da61f6f64026ec69791922749de230583a07286\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-video/gstreamer-video-0.22.6.crate",
- "sha256": "25acba301f86b02584a642de0f224317be2bd0ceec3acda49a0ef111cbced98c",
- "dest": "cargo/vendor/gstreamer-video-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"25acba301f86b02584a642de0f224317be2bd0ceec3acda49a0ef111cbced98c\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-video-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gstreamer-video-sys/gstreamer-video-sys-0.22.6.crate",
- "sha256": "f2ec210495f94cabaa45d08003081b550095c2d4ab12d5320f64856a91f3f01c",
- "dest": "cargo/vendor/gstreamer-video-sys-0.22.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f2ec210495f94cabaa45d08003081b550095c2d4ab12d5320f64856a91f3f01c\", \"files\": {}}",
- "dest": "cargo/vendor/gstreamer-video-sys-0.22.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gtk4/gtk4-0.8.2.crate",
- "sha256": "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab",
- "dest": "cargo/vendor/gtk4-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab\", \"files\": {}}",
- "dest": "cargo/vendor/gtk4-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gtk4-macros/gtk4-macros-0.8.2.crate",
- "sha256": "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408",
- "dest": "cargo/vendor/gtk4-macros-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408\", \"files\": {}}",
- "dest": "cargo/vendor/gtk4-macros-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/gtk4-sys/gtk4-sys-0.8.2.crate",
- "sha256": "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5",
- "dest": "cargo/vendor/gtk4-sys-0.8.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5\", \"files\": {}}",
- "dest": "cargo/vendor/gtk4-sys-0.8.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.14.5.crate",
- "sha256": "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1",
- "dest": "cargo/vendor/hashbrown-0.14.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1\", \"files\": {}}",
- "dest": "cargo/vendor/hashbrown-0.14.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/heck/heck-0.5.0.crate",
- "sha256": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea",
- "dest": "cargo/vendor/heck-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\", \"files\": {}}",
- "dest": "cargo/vendor/heck-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/iana-time-zone/iana-time-zone-0.1.60.crate",
- "sha256": "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141",
- "dest": "cargo/vendor/iana-time-zone-0.1.60"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141\", \"files\": {}}",
- "dest": "cargo/vendor/iana-time-zone-0.1.60",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/iana-time-zone-haiku/iana-time-zone-haiku-0.1.2.crate",
- "sha256": "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f",
- "dest": "cargo/vendor/iana-time-zone-haiku-0.1.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\", \"files\": {}}",
- "dest": "cargo/vendor/iana-time-zone-haiku-0.1.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/indexmap/indexmap-2.2.6.crate",
- "sha256": "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26",
- "dest": "cargo/vendor/indexmap-2.2.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26\", \"files\": {}}",
- "dest": "cargo/vendor/indexmap-2.2.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/itertools/itertools-0.13.0.crate",
- "sha256": "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186",
- "dest": "cargo/vendor/itertools-0.13.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186\", \"files\": {}}",
- "dest": "cargo/vendor/itertools-0.13.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.69.crate",
- "sha256": "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d",
- "dest": "cargo/vendor/js-sys-0.3.69"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d\", \"files\": {}}",
- "dest": "cargo/vendor/js-sys-0.3.69",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/khronos-egl/khronos-egl-6.0.0.crate",
- "sha256": "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76",
- "dest": "cargo/vendor/khronos-egl-6.0.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76\", \"files\": {}}",
- "dest": "cargo/vendor/khronos-egl-6.0.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/libc/libc-0.2.155.crate",
- "sha256": "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c",
- "dest": "cargo/vendor/libc-0.2.155"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c\", \"files\": {}}",
- "dest": "cargo/vendor/libc-0.2.155",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/log/log-0.4.21.crate",
- "sha256": "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c",
- "dest": "cargo/vendor/log-0.4.21"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c\", \"files\": {}}",
- "dest": "cargo/vendor/log-0.4.21",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memchr/memchr-2.7.4.crate",
- "sha256": "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3",
- "dest": "cargo/vendor/memchr-2.7.4"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3\", \"files\": {}}",
- "dest": "cargo/vendor/memchr-2.7.4",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/memoffset/memoffset-0.9.1.crate",
- "sha256": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a",
- "dest": "cargo/vendor/memoffset-0.9.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a\", \"files\": {}}",
- "dest": "cargo/vendor/memoffset-0.9.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/muldiv/muldiv-1.0.1.crate",
- "sha256": "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0",
- "dest": "cargo/vendor/muldiv-1.0.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0\", \"files\": {}}",
- "dest": "cargo/vendor/muldiv-1.0.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-integer/num-integer-0.1.46.crate",
- "sha256": "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f",
- "dest": "cargo/vendor/num-integer-0.1.46"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\", \"files\": {}}",
- "dest": "cargo/vendor/num-integer-0.1.46",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-rational/num-rational-0.4.2.crate",
- "sha256": "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824",
- "dest": "cargo/vendor/num-rational-0.4.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824\", \"files\": {}}",
- "dest": "cargo/vendor/num-rational-0.4.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/num-traits/num-traits-0.2.19.crate",
- "sha256": "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841",
- "dest": "cargo/vendor/num-traits-0.2.19"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841\", \"files\": {}}",
- "dest": "cargo/vendor/num-traits-0.2.19",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/once_cell/once_cell-1.19.0.crate",
- "sha256": "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92",
- "dest": "cargo/vendor/once_cell-1.19.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\", \"files\": {}}",
- "dest": "cargo/vendor/once_cell-1.19.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/option-operations/option-operations-0.5.0.crate",
- "sha256": "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0",
- "dest": "cargo/vendor/option-operations-0.5.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0\", \"files\": {}}",
- "dest": "cargo/vendor/option-operations-0.5.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pango/pango-0.19.8.crate",
- "sha256": "3f0d328648058085cfd6897c9ae4272884098a926f3a833cd50c8c73e6eccecd",
- "dest": "cargo/vendor/pango-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3f0d328648058085cfd6897c9ae4272884098a926f3a833cd50c8c73e6eccecd\", \"files\": {}}",
- "dest": "cargo/vendor/pango-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pango-sys/pango-sys-0.19.8.crate",
- "sha256": "ff03da4fa086c0b244d4a4587d3e20622a3ecdb21daea9edf66597224c634ba0",
- "dest": "cargo/vendor/pango-sys-0.19.8"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"ff03da4fa086c0b244d4a4587d3e20622a3ecdb21daea9edf66597224c634ba0\", \"files\": {}}",
- "dest": "cargo/vendor/pango-sys-0.19.8",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/parking/parking-2.2.0.crate",
- "sha256": "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae",
- "dest": "cargo/vendor/parking-2.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae\", \"files\": {}}",
- "dest": "cargo/vendor/parking-2.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/paste/paste-1.0.15.crate",
- "sha256": "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a",
- "dest": "cargo/vendor/paste-1.0.15"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a\", \"files\": {}}",
- "dest": "cargo/vendor/paste-1.0.15",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.14.crate",
- "sha256": "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02",
- "dest": "cargo/vendor/pin-project-lite-0.2.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02\", \"files\": {}}",
- "dest": "cargo/vendor/pin-project-lite-0.2.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate",
- "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184",
- "dest": "cargo/vendor/pin-utils-0.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}",
- "dest": "cargo/vendor/pin-utils-0.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/pkg-config/pkg-config-0.3.30.crate",
- "sha256": "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec",
- "dest": "cargo/vendor/pkg-config-0.3.30"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\", \"files\": {}}",
- "dest": "cargo/vendor/pkg-config-0.3.30",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.1.0.crate",
- "sha256": "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284",
- "dest": "cargo/vendor/proc-macro-crate-3.1.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284\", \"files\": {}}",
- "dest": "cargo/vendor/proc-macro-crate-3.1.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.85.crate",
- "sha256": "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23",
- "dest": "cargo/vendor/proc-macro2-1.0.85"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23\", \"files\": {}}",
- "dest": "cargo/vendor/proc-macro2-1.0.85",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/quote/quote-1.0.36.crate",
- "sha256": "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7",
- "dest": "cargo/vendor/quote-1.0.36"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7\", \"files\": {}}",
- "dest": "cargo/vendor/quote-1.0.36",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/rustc_version/rustc_version-0.4.0.crate",
- "sha256": "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366",
- "dest": "cargo/vendor/rustc_version-0.4.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366\", \"files\": {}}",
- "dest": "cargo/vendor/rustc_version-0.4.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/semver/semver-1.0.23.crate",
- "sha256": "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b",
- "dest": "cargo/vendor/semver-1.0.23"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b\", \"files\": {}}",
- "dest": "cargo/vendor/semver-1.0.23",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde/serde-1.0.203.crate",
- "sha256": "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094",
- "dest": "cargo/vendor/serde-1.0.203"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094\", \"files\": {}}",
- "dest": "cargo/vendor/serde-1.0.203",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.203.crate",
- "sha256": "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba",
- "dest": "cargo/vendor/serde_derive-1.0.203"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba\", \"files\": {}}",
- "dest": "cargo/vendor/serde_derive-1.0.203",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.6.crate",
- "sha256": "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0",
- "dest": "cargo/vendor/serde_spanned-0.6.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0\", \"files\": {}}",
- "dest": "cargo/vendor/serde_spanned-0.6.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/slab/slab-0.4.9.crate",
- "sha256": "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67",
- "dest": "cargo/vendor/slab-0.4.9"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\", \"files\": {}}",
- "dest": "cargo/vendor/slab-0.4.9",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/smallvec/smallvec-1.13.2.crate",
- "sha256": "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67",
- "dest": "cargo/vendor/smallvec-1.13.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\", \"files\": {}}",
- "dest": "cargo/vendor/smallvec-1.13.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/syn/syn-2.0.66.crate",
- "sha256": "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5",
- "dest": "cargo/vendor/syn-2.0.66"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5\", \"files\": {}}",
- "dest": "cargo/vendor/syn-2.0.66",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.2.crate",
- "sha256": "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349",
- "dest": "cargo/vendor/system-deps-6.2.2"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349\", \"files\": {}}",
- "dest": "cargo/vendor/system-deps-6.2.2",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.14.crate",
- "sha256": "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f",
- "dest": "cargo/vendor/target-lexicon-0.12.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f\", \"files\": {}}",
- "dest": "cargo/vendor/target-lexicon-0.12.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.61.crate",
- "sha256": "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709",
- "dest": "cargo/vendor/thiserror-1.0.61"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709\", \"files\": {}}",
- "dest": "cargo/vendor/thiserror-1.0.61",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.61.crate",
- "sha256": "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533",
- "dest": "cargo/vendor/thiserror-impl-1.0.61"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533\", \"files\": {}}",
- "dest": "cargo/vendor/thiserror-impl-1.0.61",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml/toml-0.8.14.crate",
- "sha256": "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335",
- "dest": "cargo/vendor/toml-0.8.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335\", \"files\": {}}",
- "dest": "cargo/vendor/toml-0.8.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.6.crate",
- "sha256": "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf",
- "dest": "cargo/vendor/toml_datetime-0.6.6"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf\", \"files\": {}}",
- "dest": "cargo/vendor/toml_datetime-0.6.6",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.21.1.crate",
- "sha256": "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1",
- "dest": "cargo/vendor/toml_edit-0.21.1"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1\", \"files\": {}}",
- "dest": "cargo/vendor/toml_edit-0.21.1",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.22.14.crate",
- "sha256": "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38",
- "dest": "cargo/vendor/toml_edit-0.22.14"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38\", \"files\": {}}",
- "dest": "cargo/vendor/toml_edit-0.22.14",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate",
- "sha256": "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b",
- "dest": "cargo/vendor/unicode-ident-1.0.12"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\", \"files\": {}}",
- "dest": "cargo/vendor/unicode-ident-1.0.12",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/version-compare/version-compare-0.2.0.crate",
- "sha256": "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b",
- "dest": "cargo/vendor/version-compare-0.2.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b\", \"files\": {}}",
- "dest": "cargo/vendor/version-compare-0.2.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.92.crate",
- "sha256": "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8",
- "dest": "cargo/vendor/wasm-bindgen-0.2.92"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-0.2.92",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.92.crate",
- "sha256": "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da",
- "dest": "cargo/vendor/wasm-bindgen-backend-0.2.92"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-backend-0.2.92",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.92.crate",
- "sha256": "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726",
- "dest": "cargo/vendor/wasm-bindgen-macro-0.2.92"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-macro-0.2.92",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.92.crate",
- "sha256": "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7",
- "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.92"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.92",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.92.crate",
- "sha256": "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96",
- "dest": "cargo/vendor/wasm-bindgen-shared-0.2.92"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96\", \"files\": {}}",
- "dest": "cargo/vendor/wasm-bindgen-shared-0.2.92",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-core/windows-core-0.52.0.crate",
- "sha256": "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9",
- "dest": "cargo/vendor/windows-core-0.52.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9\", \"files\": {}}",
- "dest": "cargo/vendor/windows-core-0.52.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.52.0.crate",
- "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d",
- "dest": "cargo/vendor/windows-sys-0.52.0"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\", \"files\": {}}",
- "dest": "cargo/vendor/windows-sys-0.52.0",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.52.5.crate",
- "sha256": "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb",
- "dest": "cargo/vendor/windows-targets-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb\", \"files\": {}}",
- "dest": "cargo/vendor/windows-targets-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.52.5.crate",
- "sha256": "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.52.5.crate",
- "sha256": "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6\", \"files\": {}}",
- "dest": "cargo/vendor/windows_aarch64_msvc-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.52.5.crate",
- "sha256": "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670",
- "dest": "cargo/vendor/windows_i686_gnu-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_gnu-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.5.crate",
- "sha256": "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9",
- "dest": "cargo/vendor/windows_i686_gnullvm-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_gnullvm-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.52.5.crate",
- "sha256": "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf",
- "dest": "cargo/vendor/windows_i686_msvc-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf\", \"files\": {}}",
- "dest": "cargo/vendor/windows_i686_msvc-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.52.5.crate",
- "sha256": "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnu-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.52.5.crate",
- "sha256": "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.52.5.crate",
- "sha256": "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0\", \"files\": {}}",
- "dest": "cargo/vendor/windows_x86_64_msvc-0.52.5",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winnow/winnow-0.5.40.crate",
- "sha256": "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876",
- "dest": "cargo/vendor/winnow-0.5.40"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876\", \"files\": {}}",
- "dest": "cargo/vendor/winnow-0.5.40",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "archive",
- "archive-type": "tar-gzip",
- "url": "https://static.crates.io/crates/winnow/winnow-0.6.13.crate",
- "sha256": "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1",
- "dest": "cargo/vendor/winnow-0.6.13"
- },
- {
- "type": "inline",
- "contents": "{\"package\": \"59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1\", \"files\": {}}",
- "dest": "cargo/vendor/winnow-0.6.13",
- "dest-filename": ".cargo-checksum.json"
- },
- {
- "type": "inline",
- "contents": "[source.vendored-sources]\ndirectory = \"cargo/vendor\"\n\n[source.crates-io]\nreplace-with = \"vendored-sources\"\n",
- "dest": "cargo",
- "dest-filename": "config"
- }
-]
diff --git a/build-aux/modules/gst-plugin-gtk4.json b/build-aux/modules/gst-plugin-gtk4.json
deleted file mode 100644
index f8c3016b3..000000000
--- a/build-aux/modules/gst-plugin-gtk4.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "name": "gst-plugin-gtk4",
- "buildsystem": "simple",
- "sources": [
- {
- "type": "archive",
- "url": "https://crates.io/api/v1/crates/gst-plugin-gtk4/0.12.7/download",
- "dest-filename": "gst-plugin-gtk4-0.12.7.tar.gz",
- "sha256": "c95543801d561c9fef65704421a7208d06d90dad30f4a5e5e64db741219f6958"
- },
- "gst-plugin-gtk4-sources.json"
- ],
- "build-commands": [
- "cargo cinstall --offline --release --features=wayland,x11glx,x11egl --library-type=cdylib --prefix=/app"
- ],
- "build-options": {
- "env": {
- "CARGO_HOME": "/run/build/gst-plugin-gtk4/cargo"
- }
- }
-}
diff --git a/build-aux/modules/libportal.json b/build-aux/modules/libportal.json
index fcd1f69c4..bfaa3f2c7 100644
--- a/build-aux/modules/libportal.json
+++ b/build-aux/modules/libportal.json
@@ -2,6 +2,7 @@
"name": "libportal",
"buildsystem": "meson",
"config-opts": [
+ "--libdir=/app/lib",
"-Dtests=false",
"-Dbackend-gtk3=disabled",
"-Dbackend-gtk4=enabled",
@@ -11,8 +12,8 @@
"sources": [
{
"type": "archive",
- "url": "https://github.com/flatpak/libportal/releases/download/0.7.1/libportal-0.7.1.tar.xz",
- "sha256": "297b90b263fad22190a26b8c7e8ea938fe6b18fb936265e588927179920d3805"
+ "url": "https://github.com/flatpak/libportal/releases/download/0.8.1/libportal-0.8.1.tar.xz",
+ "sha256": "281e54e4f8561125a65d20658f1462ab932b2b1258c376fed2137718441825ac"
}
]
}
diff --git a/build-aux/modules/libshumate.json b/build-aux/modules/libshumate.json
index e626a3738..d4918e89b 100644
--- a/build-aux/modules/libshumate.json
+++ b/build-aux/modules/libshumate.json
@@ -1,12 +1,12 @@
{
"name": "libshumate",
"buildsystem": "meson",
- "config-opts": ["-Dgtk_doc=false"],
+ "config-opts": ["--libdir=/app/lib", "-Dgtk_doc=false"],
"sources": [
{
"type": "archive",
- "url": "https://download.gnome.org/sources/libshumate/1.2/libshumate-1.2.2.tar.xz",
- "sha256": "6f587579f7f2d60b38d3f4727eb1a8d2feac9cbdc018e53ff5f772a8608fa44b"
+ "url": "https://download.gnome.org/sources/libshumate/1.3/libshumate-1.3.0.tar.xz",
+ "sha256": "8227a6e8281cde12232894fef83760d44fa66b39ef033c61ed934a86c6dc75d4"
}
],
"modules": [
diff --git a/build-aux/modules/libspelling.json b/build-aux/modules/libspelling.json
index 11080a66a..58651b289 100644
--- a/build-aux/modules/libspelling.json
+++ b/build-aux/modules/libspelling.json
@@ -1,12 +1,12 @@
{
"name": "libspelling",
"buildsystem": "meson",
- "config-opts": ["-Ddocs=false"],
+ "config-opts": ["--libdir=/app/lib", "-Ddocs=false"],
"sources": [
{
"type": "archive",
- "url": "https://download.gnome.org/sources/libspelling/0.2/libspelling-0.2.1.tar.xz",
- "sha256": "7a787b467bd493f6baffb44138dbc4bef78aaab60efb76a7db88b243bf0f6343"
+ "url": "https://download.gnome.org/sources/libspelling/0.4/libspelling-0.4.2.tar.xz",
+ "sha256": "b3e609b1a247e71bc097e262564f33f51fd7db566eeb0cd74ae5021536b878b5"
}
]
}
diff --git a/build-aux/modules/vte.json b/build-aux/modules/vte.json
index 46519cbc9..dc5b14c48 100644
--- a/build-aux/modules/vte.json
+++ b/build-aux/modules/vte.json
@@ -2,6 +2,7 @@
"name": "vte",
"buildsystem": "meson",
"config-opts": [
+ "--libdir=/app/lib",
"-Ddocs=false",
"-Dgtk3=false",
"-Dgtk4=true",
@@ -11,8 +12,8 @@
"sources": [
{
"type": "archive",
- "url": "https://download.gnome.org/sources/vte/0.76/vte-0.76.2.tar.xz",
- "sha256": "e3dc6082d5bd70f8aafaaad2cdfcaf7e51da6ba00a919b11ddac6efa09c72847"
+ "url": "https://download.gnome.org/sources/vte/0.78/vte-0.78.0.tar.xz",
+ "sha256": "07f09c6228a8bb3c1599dd0f5a6ec797b30d3010c3ac91cf21b69d9635dfaf7c"
}
]
}
diff --git a/build-aux/re.sonny.Workbench.Devel.json b/build-aux/re.sonny.Workbench.Devel.json
index 05b779299..0bbc6c099 100644
--- a/build-aux/re.sonny.Workbench.Devel.json
+++ b/build-aux/re.sonny.Workbench.Devel.json
@@ -2,17 +2,16 @@
"$schema": "https://raw.githubusercontent.com/flatpak/flatpak-builder/main/data/flatpak-manifest.schema.json",
"id": "re.sonny.Workbench.Devel",
"runtime": "org.gnome.Sdk",
- "runtime-version": "46",
+ "runtime-version": "47",
"sdk": "org.gnome.Sdk",
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.vala",
"org.freedesktop.Sdk.Extension.rust-stable",
"org.freedesktop.Sdk.Extension.llvm18",
- "org.freedesktop.Sdk.Extension.node20",
- "org.freedesktop.Sdk.Extension.typescript"
+ "org.freedesktop.Sdk.Extension.node20"
],
"build-options": {
- "append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin:/usr/lib/sdk/typescript/bin",
+ "append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin",
"append-ld-library-path": "/usr/lib/sdk/vala/lib"
},
"command": "workbench",
@@ -21,9 +20,7 @@
"--share=ipc",
"--socket=fallback-x11",
"--socket=wayland",
- "--device=dri",
- "--share=network",
- "--socket=pulseaudio"
+ "--device=dri"
],
"cleanup": [
"#/include",
@@ -40,11 +37,11 @@
"modules": [
"modules/blueprint-compiler.json",
"modules/biome.json",
- "modules/gst-plugin-gtk4.json",
"modules/vte.json",
"modules/libshumate.json",
"modules/libportal.json",
"modules/libspelling.json",
+ "modules/gom.json",
"modules/GTKCssLanguageServer.json",
"modules/python-python-lsp-server.json",
"modules/python-ruff.json",
diff --git a/build-aux/re.sonny.Workbench.json b/build-aux/re.sonny.Workbench.json
index 4f6e3ab48..13ed0dac4 100644
--- a/build-aux/re.sonny.Workbench.json
+++ b/build-aux/re.sonny.Workbench.json
@@ -2,17 +2,16 @@
"$schema": "https://raw.githubusercontent.com/flatpak/flatpak-builder/main/data/flatpak-manifest.schema.json",
"id": "re.sonny.Workbench",
"runtime": "org.gnome.Sdk",
- "runtime-version": "46",
+ "runtime-version": "47",
"sdk": "org.gnome.Sdk",
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.vala",
"org.freedesktop.Sdk.Extension.rust-stable",
"org.freedesktop.Sdk.Extension.llvm18",
- "org.freedesktop.Sdk.Extension.node20",
- "org.freedesktop.Sdk.Extension.typescript"
+ "org.freedesktop.Sdk.Extension.node20"
],
"build-options": {
- "append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin:/usr/lib/sdk/typescript/bin",
+ "append-path": "/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin",
"append-ld-library-path": "/usr/lib/sdk/vala/lib"
},
"command": "workbench",
@@ -21,9 +20,7 @@
"--share=ipc",
"--socket=fallback-x11",
"--socket=wayland",
- "--device=dri",
- "--share=network",
- "--socket=pulseaudio"
+ "--device=dri"
],
"cleanup": [
"#/include",
@@ -40,11 +37,11 @@
"modules": [
"modules/blueprint-compiler.json",
"modules/biome.json",
- "modules/gst-plugin-gtk4.json",
"modules/vte.json",
"modules/libshumate.json",
"modules/libportal.json",
"modules/libspelling.json",
+ "modules/gom.json",
"modules/GTKCssLanguageServer.json",
"modules/python-python-lsp-server.json",
"modules/python-ruff.json",
diff --git a/build-aux/wip/minimist.js b/build-aux/wip/minimist.js
new file mode 100644
index 000000000..c34298e8c
--- /dev/null
+++ b/build-aux/wip/minimist.js
@@ -0,0 +1,308 @@
+/* eslint-disable */
+
+// https://github.com/minimistjs/minimist/blob/bedaa8b9ab5a901fa342aad4494cbbf676b11a21/index.js
+
+function hasKey(obj, keys) {
+ var o = obj;
+ keys.slice(0, -1).forEach(function (key) {
+ o = o[key] || {};
+ });
+
+ var key = keys[keys.length - 1];
+ return key in o;
+}
+
+function isNumber(x) {
+ if (typeof x === "number") {
+ return true;
+ }
+ if (/^0x[0-9a-f]+$/i.test(x)) {
+ return true;
+ }
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
+}
+
+function isConstructorOrProto(obj, key) {
+ return (
+ (key === "constructor" && typeof obj[key] === "function") ||
+ key === "__proto__"
+ );
+}
+
+export default function minimist(args, opts) {
+ if (!opts) {
+ opts = {};
+ }
+
+ var flags = {
+ bools: {},
+ strings: {},
+ unknownFn: null,
+ };
+
+ if (typeof opts.unknown === "function") {
+ flags.unknownFn = opts.unknown;
+ }
+
+ if (typeof opts.boolean === "boolean" && opts.boolean) {
+ flags.allBools = true;
+ } else {
+ []
+ .concat(opts.boolean)
+ .filter(Boolean)
+ .forEach(function (key) {
+ flags.bools[key] = true;
+ });
+ }
+
+ var aliases = {};
+
+ function isBooleanKey(key) {
+ if (flags.bools[key]) {
+ return true;
+ }
+ if (!aliases[key]) {
+ return false;
+ }
+ return aliases[key].some(function (x) {
+ return flags.bools[x];
+ });
+ }
+
+ Object.keys(opts.alias || {}).forEach(function (key) {
+ aliases[key] = [].concat(opts.alias[key]);
+ aliases[key].forEach(function (x) {
+ aliases[x] = [key].concat(
+ aliases[key].filter(function (y) {
+ return x !== y;
+ }),
+ );
+ });
+ });
+
+ []
+ .concat(opts.string)
+ .filter(Boolean)
+ .forEach(function (key) {
+ flags.strings[key] = true;
+ if (aliases[key]) {
+ [].concat(aliases[key]).forEach(function (k) {
+ flags.strings[k] = true;
+ });
+ }
+ });
+
+ var defaults = opts.default || {};
+
+ var argv = { _: [] };
+
+ function argDefined(key, arg) {
+ return (
+ (flags.allBools && /^--[^=]+$/.test(arg)) ||
+ flags.strings[key] ||
+ flags.bools[key] ||
+ aliases[key]
+ );
+ }
+
+ function setKey(obj, keys, value) {
+ var o = obj;
+ for (var i = 0; i < keys.length - 1; i++) {
+ var key = keys[i];
+ if (isConstructorOrProto(o, key)) {
+ return;
+ }
+ if (o[key] === undefined) {
+ o[key] = {};
+ }
+ if (
+ o[key] === Object.prototype ||
+ o[key] === Number.prototype ||
+ o[key] === String.prototype
+ ) {
+ o[key] = {};
+ }
+ if (o[key] === Array.prototype) {
+ o[key] = [];
+ }
+ o = o[key];
+ }
+
+ var lastKey = keys[keys.length - 1];
+ if (isConstructorOrProto(o, lastKey)) {
+ return;
+ }
+ if (
+ o === Object.prototype ||
+ o === Number.prototype ||
+ o === String.prototype
+ ) {
+ o = {};
+ }
+ if (o === Array.prototype) {
+ o = [];
+ }
+ if (
+ o[lastKey] === undefined ||
+ isBooleanKey(lastKey) ||
+ typeof o[lastKey] === "boolean"
+ ) {
+ o[lastKey] = value;
+ } else if (Array.isArray(o[lastKey])) {
+ o[lastKey].push(value);
+ } else {
+ o[lastKey] = [o[lastKey], value];
+ }
+ }
+
+ function setArg(key, val, arg) {
+ if (arg && flags.unknownFn && !argDefined(key, arg)) {
+ if (flags.unknownFn(arg) === false) {
+ return;
+ }
+ }
+
+ var value = !flags.strings[key] && isNumber(val) ? Number(val) : val;
+ setKey(argv, key.split("."), value);
+
+ (aliases[key] || []).forEach(function (x) {
+ setKey(argv, x.split("."), value);
+ });
+ }
+
+ // Set booleans to false by default.
+ Object.keys(flags.bools).forEach(function (key) {
+ setArg(key, false);
+ });
+ // Set booleans to user defined default if supplied.
+ Object.keys(defaults)
+ .filter(isBooleanKey)
+ .forEach(function (key) {
+ setArg(key, defaults[key]);
+ });
+ var notFlags = [];
+
+ if (args.indexOf("--") !== -1) {
+ notFlags = args.slice(args.indexOf("--") + 1);
+ args = args.slice(0, args.indexOf("--"));
+ }
+
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i];
+ var key;
+ var next;
+
+ if (/^--.+=/.test(arg)) {
+ // Using [\s\S] instead of . because js doesn't support the
+ // 'dotall' regex modifier. See:
+ // http://stackoverflow.com/a/1068308/13216
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
+ key = m[1];
+ var value = m[2];
+ if (isBooleanKey(key)) {
+ value = value !== "false";
+ }
+ setArg(key, value, arg);
+ } else if (/^--no-.+/.test(arg)) {
+ key = arg.match(/^--no-(.+)/)[1];
+ setArg(key, false, arg);
+ } else if (/^--.+/.test(arg)) {
+ key = arg.match(/^--(.+)/)[1];
+ next = args[i + 1];
+ if (
+ next !== undefined &&
+ !/^(-|--)[^-]/.test(next) &&
+ !isBooleanKey(key) &&
+ !flags.allBools
+ ) {
+ setArg(key, next, arg);
+ i += 1;
+ } else if (/^(true|false)$/.test(next)) {
+ setArg(key, next === "true", arg);
+ i += 1;
+ } else {
+ setArg(key, flags.strings[key] ? "" : true, arg);
+ }
+ } else if (/^-[^-]+/.test(arg)) {
+ var letters = arg.slice(1, -1).split("");
+
+ var broken = false;
+ for (var j = 0; j < letters.length; j++) {
+ next = arg.slice(j + 2);
+
+ if (next === "-") {
+ setArg(letters[j], next, arg);
+ continue;
+ }
+
+ if (/[A-Za-z]/.test(letters[j]) && next[0] === "=") {
+ setArg(letters[j], next.slice(1), arg);
+ broken = true;
+ break;
+ }
+
+ if (
+ /[A-Za-z]/.test(letters[j]) &&
+ /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)
+ ) {
+ setArg(letters[j], next, arg);
+ broken = true;
+ break;
+ }
+
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
+ setArg(letters[j], arg.slice(j + 2), arg);
+ broken = true;
+ break;
+ } else {
+ setArg(letters[j], flags.strings[letters[j]] ? "" : true, arg);
+ }
+ }
+
+ key = arg.slice(-1)[0];
+ if (!broken && key !== "-") {
+ if (
+ args[i + 1] &&
+ !/^(-|--)[^-]/.test(args[i + 1]) &&
+ !isBooleanKey(key)
+ ) {
+ setArg(key, args[i + 1], arg);
+ i += 1;
+ } else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) {
+ setArg(key, args[i + 1] === "true", arg);
+ i += 1;
+ } else {
+ setArg(key, flags.strings[key] ? "" : true, arg);
+ }
+ }
+ } else {
+ if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
+ argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));
+ }
+ if (opts.stopEarly) {
+ argv._.push.apply(argv._, args.slice(i + 1));
+ break;
+ }
+ }
+ }
+
+ Object.keys(defaults).forEach(function (k) {
+ if (!hasKey(argv, k.split("."))) {
+ setKey(argv, k.split("."), defaults[k]);
+
+ (aliases[k] || []).forEach(function (x) {
+ setKey(argv, x.split("."), defaults[k]);
+ });
+ }
+ });
+
+ if (opts["--"]) {
+ argv["--"] = notFlags.slice();
+ } else {
+ notFlags.forEach(function (k) {
+ argv._.push(k);
+ });
+ }
+
+ return argv;
+}
diff --git a/build-aux/wip/run.js b/build-aux/wip/run.js
new file mode 100755
index 000000000..0c4b58dd6
--- /dev/null
+++ b/build-aux/wip/run.js
@@ -0,0 +1,263 @@
+#!/usr/bin/env -S gjs -m
+
+import Gio from "gi://Gio";
+import { exit, programArgs, programInvocationName } from "system";
+import GLib from "gi://GLib";
+import minimist from "./minimist.js";
+
+// export G_MESSAGES_DEBUG=Gjs-Console && ./run.js
+
+Gio._promisify(
+ Gio.File.prototype,
+ "load_contents_async",
+ "load_contents_finish",
+);
+
+Gio._promisify(
+ Gio.Subprocess.prototype,
+ "wait_check_async",
+ "wait_check_finish",
+);
+
+// const path = GLib.get_current_dir();
+const path = "/home/sonny/Projects/Workbench";
+console.debug(programInvocationName, programArgs);
+const argv = minimist(programArgs, { boolean: true });
+console.debug(argv);
+
+const [manifest_path] = argv._;
+if (!manifest_path) {
+ // eslint-disable-next-line no-restricted-globals
+ print(`${programInvocationName} [--verbose] [--debug] MANIFEST`);
+ exit(0);
+}
+
+const home = GLib.get_home_dir();
+
+const manifest_file = Gio.File.new_for_path(manifest_path);
+const [contents] = await manifest_file.load_contents_async(null);
+const manifest = JSON.parse(new TextDecoder().decode(contents));
+
+// console.log(JSON.parse(manifest));
+
+const flatpak_id = manifest.id;
+// We assume the last module is the app itself
+const app_module = manifest.modules.at(-1);
+
+function exists(path) {
+ const result = Gio.File.new_for_path(path).query_exists(null);
+ console.debug(`${path} ${result ? "exists" : "non existant"}`);
+ return result;
+}
+
+if (!exists(`${path}/.flatpak/repo`)) {
+ const { runtime, sdk } = manifest;
+ const runtime_version = manifest["runtime-version"];
+ // initializes repo
+ await run([
+ "flatpak",
+ "build-init",
+ `${path}/.flatpak/repo`,
+ flatpak_id,
+ sdk,
+ runtime,
+ runtime_version,
+ ]);
+}
+
+const prefix = [
+ "flatpak-builder",
+ "--ccache",
+ "--force-clean",
+ "--disable-updates",
+];
+const suffix = [
+ `--state-dir=${path}/.flatpak/flatpak-builder`,
+ `--stop-at=${app_module.name}`,
+ `${path}/.flatpak/repo`,
+ Gio.File.new_for_path(path).get_relative_path(manifest_file),
+];
+
+// de-initializes
+async function downloadSources() {
+ await run([...prefix, "--download-only", ...suffix]);
+}
+
+// de-initializes
+async function buildModules() {
+ await run([
+ ...prefix,
+ "--disable-download",
+ "--build-only",
+ "--keep-build-dirs",
+ ...suffix,
+ ]);
+}
+
+if (!exists(`${path}/.flatpak/flatpak-builder`)) {
+ await downloadSources();
+ await buildModules();
+}
+
+// builds workbench
+if (!exists(`${path}/_build`)) {
+ await buildCommand([
+ "meson",
+ "--prefix",
+ "/app",
+ "_build",
+ "-Dprofile=development",
+ ]);
+}
+
+await buildCommand(["meson", "install", "-C", "_build"]);
+// await buildCommand([
+// `troll/gjspack/bin/gjspack`,
+// `--appid=${flatpak_id}`,
+// "--prefix=/re/sonny/Workbench",
+// `--project-root=.`,
+// `--resource-root=./src`,
+// "--blueprint-compiler=/app/bin/blueprint-compiler",
+// "--no-executable",
+// `${path}/src/main.js`,
+// `/app/share/${flatpak_id}.src.gresource`,
+// ]);
+
+// starts workbench
+await runCommand([manifest.command]);
+
+function buildCommand(argv) {
+ let PATH =
+ "/app/bin:/app/bin:/app/bin:/usr/bin:${home}/.var/app/com.visualstudio.code/data/node_modules/bin:/app/bin:/usr/bin";
+ const append_path = manifest["build-options"]?.["append-path"];
+ if (append_path) PATH += `:${append_path}`;
+
+ let LD_LIBRARY_PATH = "/app/lib:/app/lib";
+ const append_ld_library_path =
+ manifest["build-options"]?.["append-ls-library-path"];
+ if (append_ld_library_path) LD_LIBRARY_PATH += `:${append_ld_library_path}`;
+
+ const PKG_CONFIG_PATH =
+ "/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig";
+
+ return run([
+ "flatpak",
+ "build",
+ "--share=network",
+ `--filesystem=${path}`,
+ `--filesystem=${path}/.flatpak/repo`,
+ `--env=PATH=${PATH}`,
+ `--env=LD_LIBRARY_PATH=${LD_LIBRARY_PATH}`,
+ `--env=PKG_CONFIG_PATH=${PKG_CONFIG_PATH}`,
+ `--filesystem=${path}/_build`,
+ `${path}/.flatpak/repo`,
+ ...argv,
+ ]);
+}
+
+async function runCommand(argv) {
+ await exec(
+ [
+ "flatpak",
+ "build",
+ "--with-appdir",
+ "--allow=devel",
+ `--bind-mount=/run/user/1000/doc=/run/user/1000/doc/by-app/${flatpak_id}`,
+ ...manifest["finish-args"],
+
+ // Non default permissions
+ // see Permissions.js
+ // consider getting installed overrides instead
+ "--share=network",
+ "--socket=pulseaudio",
+ "--device=input",
+
+ "--talk-name=org.freedesktop.portal.*",
+ "--talk-name=org.a11y.Bus",
+ "--bind-mount=/run/flatpak/at-spi-bus=/run/user/1000/at-spi/bus",
+ "--env=AT_SPI_BUS_ADDRESS=unix:path=/run/flatpak/at-spi-bus",
+ ...getHostEnv(),
+ "--bind-mount=/run/host/fonts=/usr/share/fonts",
+ "--bind-mount=/run/host/fonts-cache=/usr/lib/fontconfig/cache",
+ `--filesystem=${home}/.local/share/fonts:ro`,
+ `--filesystem=${home}/.cache/fontconfig:ro`,
+ `--bind-mount=/run/host/user-fonts-cache=${home}/.cache/fontconfig`,
+ `--bind-mount=/run/host/font-dirs.xml=${home}/.cache/font-dirs.xml`,
+ `${path}/.flatpak/repo`,
+ ...argv,
+ ],
+ { verbose: true },
+ );
+}
+
+function getHostEnv() {
+ // https://github.com/bilelmoussaoui/flatpak-vscode/blob/6424e7d8f53924faa33c9043153e08b0aedf6225/src/utils.ts#L88
+ const forwarded_env_keys = [
+ "COLORTERM",
+ "DESKTOP_SESSION",
+ "LANG",
+ "WAYLAND_DISPLAY",
+ "XDG_CURRENT_DESKTOP",
+ "XDG_SEAT",
+ "XDG_SESSION_DESKTOP",
+ "XDG_SESSION_ID",
+ "XDG_SESSION_TYPE",
+ "XDG_VTNR",
+ "AT_SPI_BUS_ADDRESS",
+ ];
+
+ const env_vars = [];
+ forwarded_env_keys.forEach((key) => {
+ const value = GLib.getenv(key);
+ if (value === undefined) env_vars.push(key + "=" + value);
+ });
+
+ return env_vars;
+}
+
+async function run(_) {
+ return exec(_, { verbose: argv.verbose });
+}
+
+async function exec(argv, { cancellable = null /*, verbose = false*/ }) {
+ argv = argv.map((arg) => {
+ return arg.toString();
+ });
+
+ console.debug(`$ ${argv}`);
+
+ let cancelId = 0;
+
+ // meson uses stdout for logs
+ // const flags = verbose
+ // ? Gio.SubprocessFlags.NONE
+ // : Gio.SubprocessFlags.STDOUT_SILENCE;
+
+ const flags = Gio.SubprocessFlags.NONE;
+
+ const proc = new Gio.Subprocess({
+ argv,
+ flags,
+ });
+ proc.init(cancellable);
+
+ if (cancellable instanceof Gio.Cancellable)
+ cancelId = cancellable.connect(() => proc.force_exit());
+
+ try {
+ const success = await proc.wait_check_async(null);
+
+ if (!success) {
+ const status = proc.get_exit_status();
+ throw new Gio.IOErrorEnum({
+ code: Gio.IOErrorEnum.FAILED,
+ message: `Command '${argv}' failed with exit code ${status}`,
+ });
+ }
+ } catch (err) {
+ console.debug(err);
+ exit(1);
+ } finally {
+ if (cancelId > 0) cancellable.disconnect(cancelId);
+ }
+}
diff --git a/build-aux/wip/run.sh b/build-aux/wip/run.sh
new file mode 100755
index 000000000..fda3b89f2
--- /dev/null
+++ b/build-aux/wip/run.sh
@@ -0,0 +1,34 @@
+set -eux
+
+flatpak_id=re.sonny.Workbench.Devel
+path=/home/sonny/Projects/Workbench
+manifest=$path/build-aux/$flatpak_id.json
+module_name=Workbench
+command=workbench
+
+function run_build_command {
+ flatpak build --share=network --filesystem=$path --filesystem=$path/.flatpak/repo --env=PATH=/app/bin:/app/bin:/app/bin:/usr/bin:/home/sonny/.var/app/com.visualstudio.code/data/node_modules/bin:/app/bin:/usr/bin:/usr/lib/sdk/vala/bin:/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/node20/bin:/usr/lib/sdk/typescript/bin --env=LD_LIBRARY_PATH=/app/lib:/app/lib:/usr/lib/sdk/vala/lib --env=PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:/app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig --filesystem=$path/_build $path/.flatpak/repo $1
+}
+
+if [ ! -d "$path/.flatpak/repo" ]; then
+ # initializes repo
+ flatpak build-init $path/.flatpak/repo $flatpak_id org.gnome.Sdk org.gnome.Sdk 47
+fi
+
+if [ ! -d "$path/.flatpak/flatpak-builder" ]; then
+ # downloads sources (de-initializes)
+ flatpak-builder --ccache --force-clean --disable-updates --download-only --state-dir=$path/.flatpak/flatpak-builder --stop-at=$module_name $path/.flatpak/repo $manifest
+ # builds modules (de-initializes)
+ flatpak-builder --ccache --force-clean --disable-updates --disable-download --build-only --keep-build-dirs --state-dir=$path/.flatpak/flatpak-builder --stop-at=$module_name $path/.flatpak/repo $manifest
+fi
+
+# builds Workbench module
+if [ ! -d "$path/_build" ]; then
+ run_build_command "meson --prefix /app _build -Dprofile=development"
+else
+ time run_build_command "meson install -C _build"
+ # time run_build_command "$path/troll/gjspack/bin/gjspack --appid=$flatpak_id --prefix=/re.sonny.Workbench --project-root=$path --resource-root=$path/src --blueprint-compiler=/app/bin/blueprint-compiler --no-executable $path/src/main.js /app/share/$flatpak_id.src.gresource"
+fi
+
+# starts workbench
+flatpak build --with-appdir --allow=devel --bind-mount=/run/user/1000/doc=/run/user/1000/doc/by-app/$flatpak_id --share=ipc --socket=fallback-x11 --socket=wayland --device=dri --share=network --socket=pulseaudio --talk-name='org.freedesktop.portal.*' --talk-name=org.a11y.Bus --bind-mount=/run/flatpak/at-spi-bus=/run/user/1000/at-spi/bus --env=AT_SPI_BUS_ADDRESS=unix:path=/run/flatpak/at-spi-bus --env=AT_SPI_BUS_ADDRESS=unix:path=/run/flatpak/at-spi-bus --env=COLORTERM=truecolor --env=DESKTOP_SESSION=gnome --env=LANG=en_US.UTF-8 --env=WAYLAND_DISPLAY=wayland-0 --env=XDG_CURRENT_DESKTOP=GNOME --env=XDG_SESSION_DESKTOP=gnome --env=XDG_SESSION_TYPE=wayland --bind-mount=/run/host/fonts=/usr/share/fonts --bind-mount=/run/host/fonts-cache=/usr/lib/fontconfig/cache --filesystem=/home/sonny/.local/share/fonts:ro --filesystem=/home/sonny/.cache/fontconfig:ro --bind-mount=/run/host/user-fonts-cache=/home/sonny/.cache/fontconfig --bind-mount=/run/host/font-dirs.xml=/home/sonny/.cache/font-dirs.xml $path/.flatpak/repo $command
diff --git a/data/app.gschema.xml b/data/app.gschema.xml
index e89a9dd85..20e075a0c 100644
--- a/data/app.gschema.xml
+++ b/data/app.gschema.xml
@@ -18,6 +18,9 @@
true
+
+ false
+
diff --git a/data/app.metainfo.xml b/data/app.metainfo.xml
index 54d0744a7..cd23fbe66 100644
--- a/data/app.metainfo.xml
+++ b/data/app.metainfo.xml
@@ -19,7 +19,7 @@
JavaScript, Rust, Python and Vala support
Declarative user interface syntax
Autosave, sessions and projects
- Code linter and formatter
+ Code diagnostics, completion and formatter
Terminal output
@@ -43,20 +43,62 @@
-
-
-
-
+ Library:
- - Update Biome to 1.8.3
- - Update gst-plugin-gtk4 to 1.12.7
+ - Add "Button Row" demo
+ - Update "Spinner" to use AdwSpinner
+ - Port "Dialog" to Python
+ - Port "Level Bars" to Rust
+ - Port "Text Fields" to Rust
+ - Port "Column View" to Rust
+ - Port "Clamp" to Rust
+ - Port "List View" to Rust
+ - Port "Frame" to Rust
+ - Port "Audio" to Rust
+ - Port "File Monitor" to Vala
+ - Port "Scrolled Window" to Vala
+ - Port "Menu" to Vala
+ - Port "HTTP Server" to Vala
+ - Port "Map" to Vala
+ - Port "Session Monitor and Inhibit" to Vala
+ - Port "Save File" to Vala
+ - Port "Spin Button" to Vala
+ - Port "Progress Bar" to Vala
+ - Port "Label" to Vala
+ - Port "Power Profile Monitor" to Vala
+ - Port "Drawing Area" to Vala
+ - Port "Font Dialog" to Vala
+ - Port "Select Folder" to Vala
+ - Port "Network Monitor" to Vala
+ - Port "Toggle Button" to Vala
+ - Port "Tooltip" to Vala
+ - Port "Spell Checker" to Vala
+ - Port "Popovers" to Vala
+ - Port "Menu Button" to Vala
+ - Port "Frame" to Vala
+ - Port "Actions" to Vala
+ - Port "Dialog" to Vala
+ - Port "CSS Gradients" to Vala
+
+ Dependencies:
+
+
+ - Add GOM dependency 0.5.3
+ - Update Biome to 1.9.2
+ - Update libshumate to 1.3
+ - Update Blueprint to 0.14.0
+ - Update vte to 0.78.0
+ - Update libspelling to 0.4.2
+ - Update libportal to 0.8.1
@@ -150,7 +192,6 @@
Open the Library on start if there are no sessions to restore
Restore scroll and cusor positions on format and Run
Add "Copy" and "Select All" to Console
-
Add Vala formatter support
Add WebP image format support
Use Biome instead of prettier as JavaScript formatter
diff --git a/data/meson.build b/data/meson.build
index b44179a55..76838f8a8 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -2,7 +2,7 @@ desktop_file = configure_file(
input: 'app.desktop',
output: '@0@.desktop'.format(app_id),
configuration: { 'app_id': app_id },
- install_dir: join_paths(get_option('datadir'), 'applications')
+ install_dir: get_option('datadir') / 'applications'
)
desktop_utils = find_program('desktop-file-validate', required: true)
@@ -14,14 +14,14 @@ configure_file(
input: 'app.service',
output: '@0@.service'.format(app_id),
configuration: { 'app_id': app_id, 'bindir': bindir },
- install_dir: join_paths(get_option('datadir'), 'dbus-1/services')
+ install_dir: get_option('datadir') / 'dbus-1/services'
)
appstream_file = configure_file(
input: 'app.metainfo.xml',
output: '@0@.metainfo.xml'.format(app_id),
configuration: { 'app_id': app_id },
- install_dir: join_paths(get_option('datadir'), 'metainfo')
+ install_dir: get_option('datadir') / 'metainfo'
)
appstreamcli = find_program('appstreamcli', required: false)
@@ -35,7 +35,7 @@ configure_file(
input: 'app.gschema.xml',
output: '@0@.gschema.xml'.format(app_id),
configuration: { 'app_id': app_id },
- install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
+ install_dir: get_option('datadir') / 'glib-2.0/schemas'
)
compile_schemas = find_program('glib-compile-schemas', required: true)
@@ -43,4 +43,4 @@ test('Validate schema file', compile_schemas,
args: ['--strict', '--dry-run', meson.current_source_dir()]
)
-install_subdir('icons/hicolor', install_dir : join_paths(get_option('datadir'), 'icons'))
+install_subdir('icons/hicolor', install_dir : get_option('datadir') / 'icons')
diff --git a/demos b/demos
index 644fb6bb6..13af95a68 160000
--- a/demos
+++ b/demos
@@ -1 +1 @@
-Subproject commit 644fb6bb604bc8cf0067262f8965d57a782f9a80
+Subproject commit 13af95a689101180fd9b05f81c029cd742dc3b03
diff --git a/src/langs/typescript/gi-types b/gi-types
similarity index 100%
rename from src/langs/typescript/gi-types
rename to gi-types
diff --git a/meson.build b/meson.build
index e082b98dc..71124e130 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,10 @@
project('Workbench', ['vala', 'c', 'rust'],
- version: '46.2',
+ version: '47.0',
meson_version: '>= 0.64.0',
- license: 'GPL-3.0-only'
+ license: 'GPL-3.0-only',
+ default_options : [
+ 'libdir=lib',
+ ],
)
gnome = import('gnome')
@@ -20,9 +23,9 @@ else
endif
prefix = get_option('prefix')
-bindir = join_paths(prefix, 'bin')
-datadir = join_paths(prefix, get_option('datadir'))
-pkgdatadir = join_paths(datadir, app_id)
+bindir = prefix / 'bin'
+datadir = prefix / get_option('datadir')
+pkgdatadir = datadir / app_id
subdir('data')
subdir('src')
diff --git a/package-lock.json b/package-lock.json
index ee55d691b..f3cbbc27b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,10 +4,10 @@
"requires": true,
"packages": {
"": {
- "name": "Workbench",
"devDependencies": {
- "@babel/eslint-parser": "^7.22.11",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
+ "@babel/core": "^7.25.7",
+ "@babel/eslint-parser": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
"@rollup/plugin-commonjs": "^22.0.1",
"@rollup/plugin-node-resolve": "^13.3.0",
"eslint": "^8.48.0",
@@ -39,7 +39,6 @@
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
"integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
"dev": true,
- "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
@@ -49,13 +48,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
+ "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/highlight": "^7.24.7",
+ "@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
},
"engines": {
@@ -63,33 +61,31 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
- "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz",
+ "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz",
- "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dev": true,
- "peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.10",
- "@babel/generator": "^7.22.10",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-module-transforms": "^7.22.9",
- "@babel/helpers": "^7.22.11",
- "@babel/parser": "^7.22.11",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.11",
- "@babel/types": "^7.22.11",
- "convert-source-map": "^1.7.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.3",
@@ -104,9 +100,9 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz",
- "integrity": "sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -118,35 +114,33 @@
},
"peerDependencies": {
"@babel/core": "^7.11.0",
- "eslint": "^7.5.0 || ^8.0.0"
+ "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/@babel/generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
- "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/types": "^7.24.7",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz",
- "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz",
+ "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.9",
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -154,71 +148,29 @@
"node": ">=6.9.0"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
- "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
- "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
- "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
- "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz",
+ "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.5"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -228,93 +180,74 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
- "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz",
+ "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
- "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz",
+ "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz",
- "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz",
+ "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.11",
- "@babel/types": "^7.22.11"
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -328,7 +261,6 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "peer": true,
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -341,7 +273,6 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "peer": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -356,17 +287,18 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@babel/parser": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
- "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz",
+ "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==",
"dev": true,
- "peer": true,
+ "dependencies": {
+ "@babel/types": "^7.25.7"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -374,13 +306,13 @@
"node": ">=6.0.0"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
+ "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -390,35 +322,30 @@
}
},
"node_modules/@babel/template": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
- "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -427,14 +354,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
- "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz",
+ "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -574,7 +500,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
- "peer": true,
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -589,7 +514,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.0.0"
}
@@ -599,7 +523,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.0.0"
}
@@ -608,15 +531,13 @@
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
- "peer": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -1028,9 +949,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.10",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz",
- "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==",
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
+ "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
"dev": true,
"funding": [
{
@@ -1046,12 +967,11 @@
"url": "https://github.com/sponsors/ai"
}
],
- "peer": true,
"dependencies": {
- "caniuse-lite": "^1.0.30001517",
- "electron-to-chromium": "^1.4.477",
- "node-releases": "^2.0.13",
- "update-browserslist-db": "^1.0.11"
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
},
"bin": {
"browserslist": "cli.js"
@@ -1110,9 +1030,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001525",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz",
- "integrity": "sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==",
+ "version": "1.0.30001666",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz",
+ "integrity": "sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==",
"dev": true,
"funding": [
{
@@ -1127,8 +1047,7 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ],
- "peer": true
+ ]
},
"node_modules/chalk": {
"version": "5.3.0",
@@ -1178,7 +1097,6 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "peer": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -1187,8 +1105,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/colorette": {
"version": "2.0.20",
@@ -1218,11 +1135,10 @@
"dev": true
},
"node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true,
- "peer": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
},
"node_modules/cross-spawn": {
"version": "7.0.3",
@@ -1351,11 +1267,10 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.508",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz",
- "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==",
- "dev": true,
- "peer": true
+ "version": "1.5.31",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz",
+ "integrity": "sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==",
+ "dev": true
},
"node_modules/emoji-regex": {
"version": "9.2.2",
@@ -1457,11 +1372,10 @@
}
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6"
}
@@ -2169,7 +2083,6 @@
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -2254,7 +2167,6 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -2318,7 +2230,6 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -2821,8 +2732,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/js-yaml": {
"version": "4.1.0",
@@ -2837,16 +2747,15 @@
}
},
"node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"dev": true,
- "peer": true,
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
"node_modules/json-buffer": {
@@ -2872,7 +2781,6 @@
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
- "peer": true,
"bin": {
"json5": "lib/cli.js"
},
@@ -3008,7 +2916,6 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
- "peer": true,
"dependencies": {
"yallist": "^3.0.2"
}
@@ -3124,11 +3031,10 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
- "dev": true,
- "peer": true
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "dev": true
},
"node_modules/npm-run-path": {
"version": "5.1.0",
@@ -3374,9 +3280,9 @@
"dev": true
},
"node_modules/picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
"dev": true
},
"node_modules/picomatch": {
@@ -4037,7 +3943,6 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
- "peer": true,
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -4096,7 +4001,6 @@
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -4257,9 +4161,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
"funding": [
{
@@ -4275,10 +4179,9 @@
"url": "https://github.com/sponsors/ai"
}
],
- "peer": true,
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -4373,8 +4276,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/yaml": {
"version": "2.3.1",
@@ -4410,48 +4312,44 @@
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
"integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
"dev": true,
- "peer": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@babel/code-frame": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
+ "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/highlight": "^7.24.7",
+ "@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
}
},
"@babel/compat-data": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz",
- "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==",
- "dev": true,
- "peer": true
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz",
+ "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==",
+ "dev": true
},
"@babel/core": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz",
- "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dev": true,
- "peer": true,
"requires": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.10",
- "@babel/generator": "^7.22.10",
- "@babel/helper-compilation-targets": "^7.22.10",
- "@babel/helper-module-transforms": "^7.22.9",
- "@babel/helpers": "^7.22.11",
- "@babel/parser": "^7.22.11",
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.11",
- "@babel/types": "^7.22.11",
- "convert-source-map": "^1.7.0",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.3",
@@ -4459,9 +4357,9 @@
}
},
"@babel/eslint-parser": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.11.tgz",
- "integrity": "sha512-YjOYZ3j7TjV8OhLW6NCtyg8G04uStATEUe5eiLuCZaXz2VSDQ3dsAtm2D+TuQyAqNMUK2WacGo0/uma9Pein1w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
"requires": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -4470,154 +4368,103 @@
}
},
"@babel/generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
- "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/types": "^7.24.7",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
}
},
"@babel/helper-compilation-targets": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz",
- "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz",
+ "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.5",
- "browserslist": "^4.21.9",
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
}
},
- "@babel/helper-environment-visitor": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
- "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.24.7"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
- "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.7"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
- "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.24.7"
- }
- },
"@babel/helper-module-imports": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz",
- "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/helper-module-transforms": {
- "version": "7.22.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz",
- "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz",
+ "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.5"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true
},
"@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/types": "^7.22.5"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
- "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz",
+ "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/helper-string-parser": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
- "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
- "dev": true,
- "peer": true
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
+ "dev": true
},
"@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
- "dev": true,
- "peer": true
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
+ "dev": true
},
"@babel/helper-validator-option": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz",
- "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==",
- "dev": true,
- "peer": true
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz",
+ "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==",
+ "dev": true
},
"@babel/helpers": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz",
- "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz",
+ "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/template": "^7.22.5",
- "@babel/traverse": "^7.22.11",
- "@babel/types": "^7.22.11"
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/highlight": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -4628,7 +4475,6 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
- "peer": true,
"requires": {
"color-convert": "^1.9.0"
}
@@ -4638,7 +4484,6 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
- "peer": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -4649,67 +4494,62 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "peer": true
+ "dev": true
}
}
},
"@babel/parser": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
- "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz",
+ "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==",
"dev": true,
- "peer": true
+ "requires": {
+ "@babel/types": "^7.25.7"
+ }
},
- "@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
+ "@babel/plugin-syntax-import-attributes": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
+ "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
}
},
"@babel/template": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
- "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
}
},
"@babel/traverse": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
- "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
- "dev": true,
- "peer": true,
- "requires": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
- "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz",
+ "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==",
"dev": true,
- "peer": true,
"requires": {
- "@babel/helper-string-parser": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
}
},
@@ -4804,7 +4644,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
- "peer": true,
"requires": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -4815,29 +4654,25 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
- "peer": true,
"requires": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -5140,16 +4975,15 @@
}
},
"browserslist": {
- "version": "4.21.10",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz",
- "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==",
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
+ "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
"dev": true,
- "peer": true,
"requires": {
- "caniuse-lite": "^1.0.30001517",
- "electron-to-chromium": "^1.4.477",
- "node-releases": "^2.0.13",
- "update-browserslist-db": "^1.0.11"
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
}
},
"builtin-modules": {
@@ -5184,11 +5018,10 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30001525",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz",
- "integrity": "sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==",
- "dev": true,
- "peer": true
+ "version": "1.0.30001666",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz",
+ "integrity": "sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==",
+ "dev": true
},
"chalk": {
"version": "5.3.0",
@@ -5220,7 +5053,6 @@
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
- "peer": true,
"requires": {
"color-name": "1.1.3"
}
@@ -5229,8 +5061,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"colorette": {
"version": "2.0.20",
@@ -5257,11 +5088,10 @@
"dev": true
},
"convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true,
- "peer": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
},
"cross-spawn": {
"version": "7.0.3",
@@ -5349,11 +5179,10 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.4.508",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz",
- "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==",
- "dev": true,
- "peer": true
+ "version": "1.5.31",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz",
+ "integrity": "sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==",
+ "dev": true
},
"emoji-regex": {
"version": "9.2.2",
@@ -5440,11 +5269,10 @@
}
},
"escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true,
- "peer": true
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true
},
"escape-string-regexp": {
"version": "4.0.0",
@@ -5972,8 +5800,7 @@
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"get-intrinsic": {
"version": "1.2.1",
@@ -6030,8 +5857,7 @@
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "peer": true
+ "dev": true
},
"globalthis": {
"version": "1.0.3",
@@ -6076,8 +5902,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"has-property-descriptors": {
"version": "1.0.0",
@@ -6405,8 +6230,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
- "peer": true
+ "dev": true
},
"js-yaml": {
"version": "4.1.0",
@@ -6418,11 +6242,10 @@
}
},
"jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "peer": true
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true
},
"json-buffer": {
"version": "3.0.1",
@@ -6446,8 +6269,7 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "peer": true
+ "dev": true
},
"keyv": {
"version": "4.5.3",
@@ -6539,7 +6361,6 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
- "peer": true,
"requires": {
"yallist": "^3.0.2"
}
@@ -6621,11 +6442,10 @@
"dev": true
},
"node-releases": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
- "dev": true,
- "peer": true
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "dev": true
},
"npm-run-path": {
"version": "5.1.0",
@@ -6798,9 +6618,9 @@
"dev": true
},
"picocolors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
+ "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
"dev": true
},
"picomatch": {
@@ -7239,7 +7059,6 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
- "peer": true,
"requires": {
"has-flag": "^3.0.0"
}
@@ -7276,8 +7095,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "peer": true
+ "dev": true
},
"to-regex-range": {
"version": "5.0.1",
@@ -7398,14 +7216,13 @@
"dev": true
},
"update-browserslist-db": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
- "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
"dev": true,
- "peer": true,
"requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
}
},
"uri-js": {
@@ -7473,8 +7290,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "peer": true
+ "dev": true
},
"yaml": {
"version": "2.3.1",
diff --git a/package.json b/package.json
index 5ca4a7dec..c52d29452 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,9 @@
{
"private": true,
"devDependencies": {
- "@babel/eslint-parser": "^7.22.11",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
+ "@babel/core": "^7.25.7",
+ "@babel/eslint-parser": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
"@rollup/plugin-commonjs": "^22.0.1",
"@rollup/plugin-node-resolve": "^13.3.0",
"eslint": "^8.48.0",
diff --git a/src/Extensions/Extension.blp b/src/Extensions/Extension.blp
index 28df25804..891c7509f 100644
--- a/src/Extensions/Extension.blp
+++ b/src/Extensions/Extension.blp
@@ -17,7 +17,7 @@ template $Extension: ListBoxRow {
Label label_title {}
[end]
- Image image_enabled {
+ Image image_available {
icon-name: "re.sonny.Workbench-test-pass-symbolic";
styles [
diff --git a/src/Extensions/Extension.js b/src/Extensions/Extension.js
index 56730ea08..06e6c3828 100644
--- a/src/Extensions/Extension.js
+++ b/src/Extensions/Extension.js
@@ -9,7 +9,7 @@ export default GObject.registerClass(
Template,
InternalChildren: [
"label_title",
- "image_enabled",
+ "image_available",
"installation_guide",
"label_command",
],
@@ -21,8 +21,8 @@ export default GObject.registerClass(
GObject.ParamFlags.READWRITE,
"",
),
- enabled: GObject.ParamSpec.boolean(
- "enabled",
+ available: GObject.ParamSpec.boolean(
+ "available",
"",
"",
GObject.ParamFlags.READWRITE,
@@ -49,14 +49,14 @@ export default GObject.registerClass(
);
this.bind_property(
- "enabled",
- this._image_enabled,
+ "available",
+ this._image_available,
"visible",
GObject.BindingFlags.SYNC_CREATE,
);
this.bind_property(
- "enabled",
+ "available",
this._installation_guide,
"visible",
GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.INVERT_BOOLEAN,
diff --git a/src/Extensions/Extensions.blp b/src/Extensions/Extensions.blp
index 266b05e7f..d3ef359f8 100644
--- a/src/Extensions/Extensions.blp
+++ b/src/Extensions/Extensions.blp
@@ -43,12 +43,12 @@ Adw.Dialog dialog {
$Extension {
title: _("JavaScript");
- enabled: true;
+ available: true;
}
$Extension {
title: _("Python");
- enabled: true;
+ available: true;
}
$Extension extension_rust {
diff --git a/src/Extensions/Extensions.js b/src/Extensions/Extensions.js
index 570bcab24..d459920b2 100644
--- a/src/Extensions/Extensions.js
+++ b/src/Extensions/Extensions.js
@@ -6,7 +6,7 @@ import Interface from "./Extensions.blp" with { type: "uri" };
import illustration from "./extensions.svg";
import "./Extension.js";
-import { getFlatpakInfo } from "../util.js";
+import { getFlatpakInfo, settings } from "../util.js";
export const action_extensions = new Gio.SimpleAction({
name: "extensions",
@@ -26,21 +26,22 @@ export function Extensions({ window }) {
picture_illustration.set_resource(illustration);
- extension_rust.enabled = isRustEnabled();
+ extension_rust.available = isRustAvailable();
extension_rust.command = `flatpak install flathub org.freedesktop.Sdk.Extension.rust-stable//${freedesktop_version} org.freedesktop.Sdk.Extension.${llvm}//${freedesktop_version}`;
- extension_vala.enabled = isValaEnabled();
+ extension_vala.available = isValaAvailable();
extension_vala.command = `flatpak install flathub org.freedesktop.Sdk.Extension.vala//${freedesktop_version}`;
- extension_typescript.enabled = isTypeScriptEnabled();
+ extension_typescript.available = isTypeScriptAvailable();
extension_typescript.command = `flatpak install flathub org.freedesktop.Sdk.Extension.${node}//${freedesktop_version} org.freedesktop.Sdk.Extension.typescript//${freedesktop_version}`;
+ extension_typescript.visible = isTypeScriptEnabled();
for (const extension of [
extension_rust,
extension_vala,
extension_typescript,
]) {
- if (!extension.enabled) {
+ if (!extension.available) {
all_set_hint.set_visible(false);
restart_hint.set_visible(true);
}
@@ -53,30 +54,35 @@ export function Extensions({ window }) {
window.add_action(action_extensions);
}
-let rust_enabled = false;
-export function isRustEnabled() {
- rust_enabled ??=
+let rust_available = null;
+export function isRustAvailable() {
+ rust_available ??=
Gio.File.new_for_path("/usr/lib/sdk/rust-stable").query_exists(null) &&
Gio.File.new_for_path(`/usr/lib/sdk/${llvm}`).query_exists(null);
- return rust_enabled;
+ return rust_available;
}
-let vala_enabled = false;
-export function isValaEnabled() {
- vala_enabled ??=
+let vala_available = null;
+export function isValaAvailable() {
+ vala_available ??=
Gio.File.new_for_path("/usr/lib/sdk/vala").query_exists(null);
- return vala_enabled;
+ return vala_available;
}
-let typescript_enabled = false;
-export function isTypeScriptEnabled() {
- typescript_enabled ??=
+let typescript_available = null;
+export function isTypeScriptAvailable() {
+ typescript_available ??=
+ isTypeScriptEnabled() &&
Gio.File.new_for_path("/usr/lib/sdk/typescript").query_exists(null) &&
Gio.File.new_for_path(`/usr/lib/sdk/${node}`).query_exists(null);
- return typescript_enabled;
+ return typescript_available;
}
const llvm = "llvm18";
const node = "node20";
const runtime = getFlatpakInfo().get_string("Application", "runtime");
-const freedesktop_version = runtime.endsWith("master") ? "24.08beta" : "23.08";
+const freedesktop_version = runtime.endsWith("master") ? "24.08" : "24.08";
+
+export function isTypeScriptEnabled() {
+ return settings.get_boolean("typescript");
+}
diff --git a/src/Library/Library.blp b/src/Library/Library.blp
index c63bf450f..7d23823af 100644
--- a/src/Library/Library.blp
+++ b/src/Library/Library.blp
@@ -16,7 +16,7 @@ Adw.Window window {
};
}
- content: ScrolledWindow {
+ content: ScrolledWindow scrolled_window {
hscrollbar-policy: never;
child: Adw.Clamp {
@@ -50,124 +50,32 @@ Adw.Window window {
]
}
- SearchEntry search_entry {
- search-delay: 100;
- placeholder-text: _("Search demos");
- activates-default: true;
- width-request: 400;
- margin-top: 32;
- }
- }
-
- ListBox library_uncategorized {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
-
- Label label_tools {
- label: _("Tools");
- halign: start;
- margin-top: 12;
-
- styles [
- "title-4"
- ]
- }
-
- ListBox library_tools {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
-
- Label label_network {
- label: _("Network");
- halign: start;
- margin-top: 12;
-
- styles [
- "title-4"
- ]
- }
-
- ListBox library_network {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
-
- Label label_controls {
- label: _("Controls");
- halign: start;
- margin-top: 12;
-
- styles [
- "title-4"
- ]
- }
-
- ListBox library_controls {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
-
- Label label_layout {
- label: _("Layout");
- halign: start;
- margin-top: 12;
-
- styles [
- "title-4"
- ]
- }
-
- ListBox library_layout {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
-
- Label label_feedback {
- label: _("Feedback");
- halign: start;
- margin-top: 12;
-
- styles [
- "title-4"
- ]
- }
+ Box {
+ spacing: 6;
+
+ SearchEntry search_entry {
+ search-delay: 100;
+ placeholder-text: _("Search demos");
+ activates-default: true;
+ hexpand: true;
+ margin-top: 32;
+ }
- ListBox library_feedback {
- selection-mode: none;
+ DropDown dropdown_language {
+ valign: end;
- styles [
- "boxed-list"
- ]
- }
+ model: Gtk.StringList {};
+ }
- Label label_navigation {
- label: _("Navigation");
- halign: start;
- margin-top: 12;
+ DropDown dropdown_category {
+ valign: end;
- styles [
- "title-4"
- ]
+ model: Gtk.StringList {};
+ }
+ }
}
- ListBox library_navigation {
+ ListBox listbox {
selection-mode: none;
styles [
@@ -175,46 +83,36 @@ Adw.Window window {
]
}
- Label label_user_interface {
- label: _("User Interface");
- halign: start;
+ Box {
+ halign: center;
+ margin-bottom: 24;
margin-top: 12;
+ orientation: vertical;
- styles [
- "title-4"
- ]
- }
-
- ListBox library_user_interface {
- selection-mode: none;
-
- styles [
- "boxed-list"
- ]
- }
+ Box results_empty {
+ orientation: vertical;
+ visible: false;
+ margin-top: 46;
+ margin-bottom: 70;
+ spacing: 6;
- Label label_platform {
- label: _("Platform APIs");
- halign: start;
- margin-top: 12;
+ Label {
+ label: _("No results");
- styles [
- "title-4"
- ]
- }
-
- ListBox library_platform {
- selection-mode: none;
+ styles [
+ "title-3"
+ ]
+ }
- styles [
- "boxed-list"
- ]
- }
+ Button button_reset {
+ label: _("Reset filters");
+ halign: center;
- Box {
- halign: center;
- margin-bottom: 24;
- margin-top: 12;
+ styles [
+ "pill"
+ ]
+ }
+ }
Label {
label: _("All examples are dedicated to the public domain\nand can be used freely under the terms of CC0 1.0");
diff --git a/src/Library/Library.js b/src/Library/Library.js
index b70358c95..464552b2d 100644
--- a/src/Library/Library.js
+++ b/src/Library/Library.js
@@ -14,12 +14,28 @@ import { createSessionFromDemo } from "../sessions.js";
import EntryRow from "./EntryRow.js";
import illustration from "./library.svg";
+import { gettext as _ } from "gettext";
import { build } from "../../troll/src/builder.js";
+import {
+ needsAdditionalPermissions,
+ showPermissionsDialog,
+} from "../Permissions/Permissions.js";
+import { isTypeScriptEnabled } from "../Extensions/Extensions.js";
export default function Library({ application }) {
const objects = build(resource);
- const { window, picture_illustration, search_entry } = objects;
+ const {
+ window,
+ picture_illustration,
+ search_entry,
+ dropdown_category,
+ dropdown_language,
+ results_empty,
+ button_reset,
+ listbox,
+ scrolled_window,
+ } = objects;
window.application = application;
picture_illustration.set_resource(illustration);
@@ -31,11 +47,52 @@ export default function Library({ application }) {
window.connect("close-request", quitOnLastWindowClose);
+ const categories = [
+ { id: "all", name: _("Any Category"), index: 0 },
+ { id: "tools", name: _("Tools"), index: 1 },
+ { id: "network", name: _("Network"), index: 2 },
+ { id: "controls", name: _("Controls"), index: 3 },
+ { id: "layout", name: _("Layout"), index: 4 },
+ { id: "feedback", name: _("Feedback"), index: 5 },
+ { id: "navigation", name: _("Navigation"), index: 6 },
+ { id: "user_interface", name: _("User Interface"), index: 7 },
+ { id: "platform", name: _("Platform APIs"), index: 8 },
+ ];
+ const categories_by_id = Object.fromEntries(
+ categories.map((category) => [category.id, category]),
+ );
+ const categories_by_index = Object.fromEntries(
+ categories.map((category) => [category.index, category]),
+ );
+ const category_all = categories_by_id["all"];
+
+ categories.forEach((category) => {
+ dropdown_category.model.append(category.name);
+ });
+
+ const languages = [
+ { id: "all", name: _("Any Language"), index: 0 },
+ { id: "javascript", name: _("JavaScript"), index: 1 },
+ { id: "python", name: _("Python"), index: 2 },
+ { id: "rust", name: _("Rust"), index: 3 },
+ { id: "vala", name: _("Vala"), index: 4 },
+ ];
+ if (isTypeScriptEnabled()) {
+ languages.push({ id: "typescript", name: _("TypeScript"), index: 5 });
+ }
+ const languages_by_id = Object.fromEntries(
+ languages.map((language) => [language.id, language]),
+ );
+ const languages_by_index = Object.fromEntries(
+ languages.map((language) => [language.index, language]),
+ );
+ languages.forEach((language) => {
+ dropdown_language.model.append(language.name);
+ });
+
const demos = getDemos();
- const widgets_map = new Map();
- const category_map = new Map();
- demos.forEach((demo) => {
- const entry_row = new EntryRow({ demo: demo });
+ const entries = demos.map((demo) => {
+ const entry_row = new EntryRow({ demo });
if (demo.name === "Welcome") last_triggered = entry_row;
entry_row.connect("triggered", (_self, language) => {
@@ -47,29 +104,59 @@ export default function Library({ application }) {
language,
}).catch(console.error);
});
- if (!category_map.has(demo.category)) {
- category_map.set(demo.category, objects[`library_${demo.category}`]);
- }
- objects[`library_${demo.category}`].append(entry_row);
- widgets_map.set(demo.name, { entry_row, category: demo.category });
+ listbox.append(entry_row);
+
+ const category = categories_by_id[demo.category];
+ const widget = entry_row;
+ const languages = demo.languages.map((lang) => languages_by_id[lang]);
+
+ return { ...demo, category, widget, languages };
});
- search_entry.connect("search-changed", () => {
- const search_term = search_entry.get_text().toLowerCase();
- const visible_categories = new Set();
+ const language_all = languages_by_id["all"];
- widgets_map.forEach(({ entry_row, category }, demo_name) => {
- const is_match = demo_name.toLowerCase().includes(search_term);
- entry_row.visible = is_match;
- if (is_match) visible_categories.add(category);
- });
+ function updateList() {
+ const current_category =
+ categories_by_index[dropdown_category.get_selected()];
+ const current_language =
+ languages_by_index[dropdown_language.get_selected()];
- category_map.forEach((category_widget, category_name) => {
- const label = objects[`label_${category_name}`];
- if (label) label.visible = search_term === "";
- category_widget.visible = visible_categories.has(category_name);
+ const search_term = search_entry.get_text().toLowerCase();
+ let results_found = false;
+ entries.forEach(({ name, description, category, languages, widget }) => {
+ const category_match =
+ current_category === category_all || category === current_category;
+ const language_match =
+ current_language === language_all ||
+ languages.includes(current_language);
+ const search_match =
+ search_term === "" ||
+ name.toLowerCase().includes(search_term) ||
+ description.toLowerCase().includes(search_term) ||
+ category.name.toLowerCase().includes(search_term);
+ const is_match = category_match && language_match && search_match;
+ widget.visible = is_match;
+ if (is_match) {
+ results_found = true;
+ }
});
- });
+
+ results_empty.visible = !results_found;
+ }
+
+ search_entry.connect("search-changed", updateList);
+ dropdown_category.connect("notify::selected", updateList);
+ dropdown_language.connect("notify::selected", updateList);
+
+ function reset() {
+ scrolled_window.vadjustment = null;
+ search_entry.text = "";
+ dropdown_category.selected = category_all.index;
+ dropdown_language.selected = language_all.index;
+ }
+ button_reset.connect("clicked", reset);
+ window.connect("show", reset);
+
const action_library = new Gio.SimpleAction({
name: "library",
parameter_type: null,
@@ -124,9 +211,17 @@ async function openDemo({ application, demo_name, language }) {
);
}
- const { load, runCode } = Window({ application, session });
+ const { load, runCode, window } = Window({
+ application,
+ session,
+ });
await load();
+ if (needsAdditionalPermissions({ demo })) {
+ showPermissionsDialog({ window });
+ return;
+ }
+
const code_language = session.getCodeLanguage();
const run = autorun && code_language.id === "javascript";
if (run) {
diff --git a/src/PanelCode.js b/src/PanelCode.js
index 5c07fe3a2..fb95b424a 100644
--- a/src/PanelCode.js
+++ b/src/PanelCode.js
@@ -4,6 +4,7 @@ import GObject from "gi://GObject";
import { makeDropdownFlat, settings as global_settings } from "./util.js";
import { setupRustProject } from "./langs/rust/rust.js";
import { setupTypeScriptProject } from "./langs/typescript/typescript.js";
+import { setupJavascriptProject } from "./langs/javascript/javascript.js";
export default function PanelCode({
builder,
@@ -55,6 +56,12 @@ export default function PanelCode({
stack_code.visible_child_name = panel.language;
previewer.useInternal().catch(console.error);
+ if (panel.language.toLowerCase() === "javascript") {
+ setupJavascriptProject(file, langs.javascript.document).catch(
+ console.error,
+ );
+ }
+
if (panel.language.toLowerCase() === "rust") {
setupRustProject(file).catch(console.error);
}
diff --git a/src/Permissions/Permissions.blp b/src/Permissions/Permissions.blp
new file mode 100644
index 000000000..86743400d
--- /dev/null
+++ b/src/Permissions/Permissions.blp
@@ -0,0 +1,155 @@
+using Gtk 4.0;
+using Adw 1;
+
+Adw.Dialog dialog {
+ content-height: 750;
+ content-width: 600;
+
+ Adw.ToolbarView {
+ [top]
+ Adw.HeaderBar {}
+
+ content: ScrolledWindow {
+ hscrollbar-policy: never;
+
+ Adw.Clamp {
+ maximum-size: 520;
+ tightening-threshold: 400;
+ margin-start: 12;
+ margin-end: 12;
+ margin-bottom: 24;
+
+ Box {
+ orientation: vertical;
+ halign: fill;
+ spacing: 24;
+ // Gtk.Picture needs to be wrapped in a box to behave properly
+ Box {
+ halign: center;
+
+ Picture picture_illustration {
+ can-shrink: false;
+ margin-bottom: 24;
+ }
+ }
+
+ Label {
+ label: _("Permissions Needed");
+
+ styles [
+ "title-1"
+ ]
+ }
+
+ Label {
+ label: _("Workbench needs additional permissions. Please run the following command in a terminal and restart the app.");
+ wrap: true;
+ justify: center;
+ }
+
+ Label label_command {
+ use-markup: true;
+ wrap: true;
+ wrap-mode: word_char;
+ selectable: true;
+ xalign: 0;
+
+ styles [
+ "command_snippet"
+ ]
+ }
+
+ Box {
+ orientation: vertical;
+
+ Box {
+ margin-bottom: 6;
+
+ Label {
+ label: _("What it does");
+ halign: start;
+ hexpand: true;
+
+ styles [
+ "heading"
+ ]
+ }
+
+ Button button_info {
+ icon-name: "re.sonny.Workbench-external-link-symbolic";
+
+ styles [
+ "flat"
+ ]
+ }
+ }
+
+ ListBox {
+ selection-mode: none;
+
+ styles [
+ "boxed-list"
+ ]
+
+ Adw.ActionRow {
+ [prefix]
+ Image {
+ icon-name: "re.sonny.Workbench-person-symbolic";
+ }
+
+ title: _("--user");
+ subtitle: _("Grant for your account only");
+
+ styles [
+ "property"
+ ]
+ }
+
+ Adw.ActionRow {
+ [prefix]
+ Image {
+ icon-name: "re.sonny.Workbench-network-wireless-symbolic";
+ }
+
+ title: _("--share-network");
+ subtitle: _("Network access");
+
+ styles [
+ "property"
+ ]
+ }
+
+ Adw.ActionRow {
+ [prefix]
+ Image {
+ icon-name: "re.sonny.Workbench-speakers-symbolic";
+ }
+
+ title: _("--socket=pulseaudio");
+ subtitle: _("Record and play audio");
+
+ styles [
+ "property"
+ ]
+ }
+
+ Adw.ActionRow {
+ [prefix]
+ Image {
+ icon-name: "re.sonny.Workbench-gamepad-symbolic";
+ }
+
+ title: _("--device=input");
+ subtitle: _("Access to input device such as gamepads");
+
+ styles [
+ "property"
+ ]
+ }
+ }
+ }
+ }
+ }
+ };
+ }
+}
diff --git a/src/Permissions/Permissions.js b/src/Permissions/Permissions.js
new file mode 100644
index 000000000..c0561b579
--- /dev/null
+++ b/src/Permissions/Permissions.js
@@ -0,0 +1,62 @@
+import Gio from "gi://Gio";
+import GLib from "gi://GLib";
+import Gtk from "gi://Gtk";
+
+import { build } from "../../troll/src/main.js";
+
+import Interface from "./Permissions.blp" with { type: "uri" };
+
+import illustration from "./permissions.svg";
+
+import { getFlatpakInfo } from "../util.js";
+
+const action_permissions = new Gio.SimpleAction({
+ name: "permissions",
+ parameter_type: null,
+});
+
+export function Permissions({ window }) {
+ const { dialog, picture_illustration, label_command, button_info } =
+ build(Interface);
+
+ picture_illustration.set_resource(illustration);
+ label_command.label = `flatpak override --user --share=network --socket=pulseaudio --device=input ${GLib.getenv(
+ "FLATPAK_ID",
+ )}`;
+
+ button_info.connect("clicked", () => {
+ new Gtk.UriLauncher({
+ uri: "https://docs.flatpak.org/en/latest/sandbox-permissions.html",
+ })
+ .launch(window, null)
+ .catch(console.error);
+ });
+
+ action_permissions.connect("activate", () => {
+ dialog.present(window);
+ });
+
+ window.add_action(action_permissions);
+}
+
+const missing_permissions = (() => {
+ const flatpak_info = getFlatpakInfo();
+ const shared = flatpak_info.get_string_list("Context", "shared");
+ const sockets = flatpak_info.get_string_list("Context", "sockets");
+ const devices = flatpak_info.get_string_list("Context", "devices");
+
+ return (
+ !shared.includes("network") ||
+ !sockets.includes("pulseaudio") ||
+ !devices.includes("all")
+ );
+})();
+
+export function needsAdditionalPermissions({ demo }) {
+ if (!demo["flatpak-finish-args"]) return false;
+ return missing_permissions;
+}
+
+export function showPermissionsDialog({ window }) {
+ window.activate_action("permissions", null);
+}
diff --git a/src/Permissions/permissions.svg b/src/Permissions/permissions.svg
new file mode 100644
index 000000000..c1eb540de
--- /dev/null
+++ b/src/Permissions/permissions.svg
@@ -0,0 +1,568 @@
+
+
+
+
diff --git a/src/Previewer/Internal.js b/src/Previewer/Internal.js
index 30b3f2276..4c7d56cd8 100644
--- a/src/Previewer/Internal.js
+++ b/src/Previewer/Internal.js
@@ -132,7 +132,7 @@ export default function Internal({
const prop_name = prop.get_name();
// AdwWindow and AdwApplicationWindow have child and titlebar properties but do not support setting them
// "Using gtk_window_get_titlebar() and gtk_window_set_titlebar() is not supported and will result in a crash."
- // https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.5/class.Window.html
+ // https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.6/class.Window.html
// https://github.com/workbenchdev/Workbench/issues/130
if (
(object_preview instanceof Adw.Window ||
diff --git a/src/actions.js b/src/actions.js
index db65a5e6d..2d14b9898 100644
--- a/src/actions.js
+++ b/src/actions.js
@@ -5,7 +5,9 @@ import Xdp from "gi://Xdp";
import XdpGtk from "gi://XdpGtk4";
import About from "./about.js";
+import Window from "./window.js";
import { portal, settings } from "./util.js";
+import { createSession } from "./sessions.js";
export default function Actions({ application }) {
const quit = new Gio.SimpleAction({
@@ -65,6 +67,15 @@ export default function Actions({ application }) {
// application.add_action(settings.create_action("safe-mode"));
// application.add_action(settings.create_action("auto-preview"));
+ const action_new_project = new Gio.SimpleAction({
+ name: "new",
+ });
+ action_new_project.connect("activate", (_self, _target) => {
+ newProject({ application }).catch(console.error);
+ });
+ application.add_action(action_new_project);
+ application.set_accels_for_action("app.new", ["N"]);
+
const action_open_file = new Gio.SimpleAction({
name: "open",
parameter_type: new GLib.VariantType("s"),
@@ -97,6 +108,12 @@ async function showScreenshot({ application, uri }) {
);
}
+async function newProject({ application }) {
+ const session = createSession();
+ const { load } = Window({ application, session });
+ await load();
+}
+
async function open({ application, hint }) {
const file_dialog = new Gtk.FileDialog();
diff --git a/src/application.js b/src/application.js
index 25acd8d74..a5d0c7713 100644
--- a/src/application.js
+++ b/src/application.js
@@ -30,6 +30,11 @@ import "./icons/re.sonny.Workbench-terminal-symbolic.svg" with { type: "icon" };
import "./icons/re.sonny.Workbench-test-pass-symbolic.svg" with { type: "icon" };
import "./icons/re.sonny.Workbench-up-symbolic.svg" with { type: "icon" };
import "./icons/re.sonny.Workbench-library-symbolic.svg" with { type: "icon" };
+import "./icons/re.sonny.Workbench-gamepad-symbolic.svg" with { type: "icon" };
+import "./icons/re.sonny.Workbench-network-wireless-symbolic.svg" with { type: "icon" };
+import "./icons/re.sonny.Workbench-person-symbolic.svg" with { type: "icon" };
+import "./icons/re.sonny.Workbench-speakers-symbolic.svg" with { type: "icon" };
+import "./icons/re.sonny.Workbench-external-link-symbolic.svg" with { type: "icon" };
const icon_theme = Gtk.IconTheme.get_for_display(Gdk.Display.get_default());
icon_theme.resource_path = [
diff --git a/src/cli/main.js b/src/cli/main.js
index ea0402f2d..d6955e677 100644
--- a/src/cli/main.js
+++ b/src/cli/main.js
@@ -31,7 +31,7 @@ export async function main([action, ...args]) {
if (action === "ci") {
const filenames = args;
- const success = await ci({ filenames, current_dir });
+ const success = await ci({ filenames });
return success ? 0 : 1;
}
@@ -43,12 +43,10 @@ export async function main([action, ...args]) {
}
if (lang.id === "vala") {
- const api_file = (
- GLib.getenv("FLATPAK_ID")
- ? Gio.File.new_for_path(pkg.pkgdatadir)
- : current_dir.resolve_relative_path("src/langs/vala")
- ).get_child("workbench.vala");
- api_file.copy(
+ const file_api = Gio.File.new_for_path(pkg.pkgdatadir).get_child(
+ "workbench.vala",
+ );
+ file_api.copy(
current_dir.get_child("workbench.vala"),
Gio.FileCopyFlags.OVERWRITE,
null,
@@ -122,7 +120,7 @@ async function checkFile({ lspc, file, lang, uri }) {
}
}
-async function ci({ filenames, current_dir }) {
+async function ci({ filenames }) {
for (const filename of filenames) {
const demo_dir = Gio.File.new_for_path(filename);
@@ -354,27 +352,27 @@ async function ci({ filenames, current_dir }) {
const languageId = "vala";
let version = 0;
- const template_dir = GLib.getenv("FLATPAK_ID")
- ? Gio.File.new_for_path(
- `/app/share/${GLib.getenv("FLATPAK_ID")}/langs/vala/template`,
- )
- : current_dir.resolve_relative_path("src/langs/vala/template");
-
- const api_file = template_dir.get_child("workbench.vala");
- api_file.copy(
- demo_dir.get_child("workbench.vala"),
- Gio.FileCopyFlags.OVERWRITE,
- null,
- null,
- );
+ const template_dir = Gio.new_for_path(
+ pkg.pkgdatadir,
+ ).resolve_relative_path("src/langs/vala/template");
+
+ template_dir
+ .get_child("workbench.vala")
+ .copy(
+ demo_dir.get_child("workbench.vala"),
+ Gio.FileCopyFlags.OVERWRITE,
+ null,
+ null,
+ );
- const meson_file = template_dir.get_child("meson.build");
- meson_file.copy(
- demo_dir.get_child("meson.build"),
- Gio.FileCopyFlags.OVERWRITE,
- null,
- null,
- );
+ template_dir
+ .get_child("meson.build")
+ .copy(
+ demo_dir.get_child("meson.build"),
+ Gio.FileCopyFlags.OVERWRITE,
+ null,
+ null,
+ );
const [contents] = await file_vala.load_contents_async(null);
const text = new TextDecoder().decode(contents);
diff --git a/src/cli/meson.build b/src/cli/meson.build
index 51ba1d6a3..d62ee6516 100644
--- a/src/cli/meson.build
+++ b/src/cli/meson.build
@@ -3,7 +3,7 @@ bin_conf.set('GJS', find_program('gjs').full_path())
bin_conf.set('version', meson.project_version() + version_suffix)
bin_conf.set('app_id', app_id)
bin_conf.set('prefix', prefix)
-bin_conf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
+bin_conf.set('libdir', get_option('prefix') / get_option('libdir'))
bin_conf.set('datadir', datadir)
bin_conf.set('pkgdatadir', pkgdatadir)
bin_conf.set('sourcedir', meson.project_source_root())
diff --git a/src/common.js b/src/common.js
index a3f3679c5..868c4f377 100644
--- a/src/common.js
+++ b/src/common.js
@@ -1,5 +1,3 @@
-import GLib from "gi://GLib";
-
import LSPClient from "./lsp/LSPClient.js";
const formatting_options = {
@@ -47,13 +45,12 @@ export const languages = [
document: null,
default_file: "main.js",
index: 0,
+ // language_server: ["typescript-language-server", "--stdio"],
language_server: [
"biome",
"lsp-proxy",
// src/meson.build installs biome.json there
- GLib.getenv("FLATPAK_ID")
- ? `--config-path=${pkg.pkgdatadir}`
- : `--config-path=src/langs/javascript`,
+ `--config-path=${pkg.pkgdatadir}`,
],
formatting_options: {
...formatting_options,
diff --git a/src/icons/re.sonny.Workbench-external-link-symbolic.svg b/src/icons/re.sonny.Workbench-external-link-symbolic.svg
new file mode 100644
index 000000000..e88a887a0
--- /dev/null
+++ b/src/icons/re.sonny.Workbench-external-link-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/icons/re.sonny.Workbench-gamepad-symbolic.svg b/src/icons/re.sonny.Workbench-gamepad-symbolic.svg
new file mode 100644
index 000000000..ff2aa1e8c
--- /dev/null
+++ b/src/icons/re.sonny.Workbench-gamepad-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/icons/re.sonny.Workbench-network-wireless-symbolic.svg b/src/icons/re.sonny.Workbench-network-wireless-symbolic.svg
new file mode 100644
index 000000000..f33a9104e
--- /dev/null
+++ b/src/icons/re.sonny.Workbench-network-wireless-symbolic.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/src/icons/re.sonny.Workbench-person-symbolic.svg b/src/icons/re.sonny.Workbench-person-symbolic.svg
new file mode 100644
index 000000000..4936089f3
--- /dev/null
+++ b/src/icons/re.sonny.Workbench-person-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/icons/re.sonny.Workbench-speakers-symbolic.svg b/src/icons/re.sonny.Workbench-speakers-symbolic.svg
new file mode 100644
index 000000000..bf59b480b
--- /dev/null
+++ b/src/icons/re.sonny.Workbench-speakers-symbolic.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/src/init.js b/src/init.js
index 68f4f85ff..f335f5c28 100644
--- a/src/init.js
+++ b/src/init.js
@@ -1,5 +1,5 @@
import "gi://GIRepository?version=2.0";
-import Gtk from "gi://Gtk";
+import Gtk from "gi://Gtk?version=4.0";
import Source from "gi://GtkSource";
import Adw from "gi://Adw";
import Vte from "gi://Vte";
diff --git a/src/langs/javascript/javascript.js b/src/langs/javascript/javascript.js
index 817d81451..972c33b5b 100644
--- a/src/langs/javascript/javascript.js
+++ b/src/langs/javascript/javascript.js
@@ -1,5 +1,7 @@
+import Gio from "gi://Gio";
+
import { createLSPClient } from "../../common.js";
-import { getLanguage } from "../../util.js";
+import { getLanguage, copy } from "../../util.js";
export function setup({ document }) {
const { file, buffer, code_view } = document;
@@ -30,3 +32,22 @@ export function setup({ document }) {
return lspc;
}
+
+const javascript_template_dir = Gio.File.new_for_path(
+ pkg.pkgdatadir,
+).resolve_relative_path("langs/javascript/template");
+
+export async function setupJavascriptProject(destination, document) {
+ const destination_file = await copy(
+ "jsconfig.json",
+ javascript_template_dir,
+ destination,
+ Gio.FileCopyFlags.NONE,
+ );
+
+ // Notify the language server that the jsconfig file was created
+ // to initialize diagnostics and type checkings
+ await document.lspc.notify("workspace/didCreateFile", {
+ files: [{ uri: destination_file.get_uri() }],
+ });
+}
diff --git a/src/langs/javascript/meson.build b/src/langs/javascript/meson.build
new file mode 100644
index 000000000..a3ddb85bb
--- /dev/null
+++ b/src/langs/javascript/meson.build
@@ -0,0 +1,6 @@
+configure_file(
+ input: 'template/jsconfig.json',
+ output: 'jsconfig.json',
+ install_dir: pkgdatadir / 'langs/javascript/template/',
+ configuration: bin_conf,
+)
diff --git a/src/langs/javascript/template/jsconfig.json b/src/langs/javascript/template/jsconfig.json
new file mode 100644
index 000000000..835b0797c
--- /dev/null
+++ b/src/langs/javascript/template/jsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "checkJs": true,
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ // TODO: should probably be fixed to ES2023, or whatever standard is
+ // currently supported by the latest GJS
+ "target": "ESNext",
+ "outDir": "compiled_javascript",
+ "baseUrl": ".",
+ "paths": {
+ "*": ["*", "@pkgdatadir@/langs/typescript/gi-types/*"]
+ },
+ "skipLibCheck": true
+ },
+ "include": [
+ "main.js",
+ "@pkgdatadir@/langs/typescript/types/ambient.d.ts",
+ "@pkgdatadir@/langs/typescript/gi-types/gi.d.ts"
+ ]
+}
diff --git a/src/langs/rust/rust.js b/src/langs/rust/rust.js
index 4e7a84dc2..774b9f052 100644
--- a/src/langs/rust/rust.js
+++ b/src/langs/rust/rust.js
@@ -2,10 +2,10 @@ import Gio from "gi://Gio";
import { createLSPClient } from "../../common.js";
import { getLanguage, copy } from "../../util.js";
-import { isRustEnabled } from "../../Extensions/Extensions.js";
+import { isRustAvailable } from "../../Extensions/Extensions.js";
export function setup({ document }) {
- if (!isRustEnabled()) return;
+ if (!isRustAvailable()) return;
const { file, buffer, code_view } = document;
diff --git a/src/langs/rust/template/meson.build b/src/langs/rust/template/meson.build
index e5ea1c9c8..d6da0ccd6 100644
--- a/src/langs/rust/template/meson.build
+++ b/src/langs/rust/template/meson.build
@@ -1,2 +1,2 @@
install_data(['Cargo.lock', 'Cargo.toml', 'lib.rs', 'workbench.rs'],
- install_dir : join_paths(pkgdatadir, 'langs/rust/template'))
+ install_dir : pkgdatadir / 'langs/rust/template')
diff --git a/src/langs/typescript/meson.build b/src/langs/typescript/meson.build
index 103d365b9..9ff964ba7 100644
--- a/src/langs/typescript/meson.build
+++ b/src/langs/typescript/meson.build
@@ -1,14 +1,17 @@
configure_file(
input: 'template/tsconfig.json',
output: 'tsconfig.json',
- install_dir: join_paths(pkgdatadir, 'langs/typescript/template/'),
+ install_dir: pkgdatadir / 'langs/typescript/template/',
configuration: bin_conf,
)
install_data(
['types/ambient.d.ts'],
- install_dir: join_paths(pkgdatadir, 'langs/typescript'),
+ install_dir: pkgdatadir / 'langs/typescript',
preserve_path: true,
)
-install_subdir('gi-types', install_dir: join_paths(pkgdatadir, 'langs/typescript'))
\ No newline at end of file
+install_subdir(
+ meson.project_source_root() / 'gi-types',
+ install_dir: pkgdatadir / 'langs/typescript',
+)
diff --git a/src/langs/typescript/typescript.js b/src/langs/typescript/typescript.js
index 2414e148d..ecc296792 100644
--- a/src/langs/typescript/typescript.js
+++ b/src/langs/typescript/typescript.js
@@ -2,10 +2,10 @@ import Gio from "gi://Gio";
import { createLSPClient } from "../../common.js";
import { getLanguage, copy } from "../../util.js";
-import { isTypeScriptEnabled } from "../../Extensions/Extensions.js";
+import { isTypeScriptAvailable } from "../../Extensions/Extensions.js";
export function setup({ document }) {
- if (!isTypeScriptEnabled()) return;
+ if (!isTypeScriptAvailable()) return;
const { file, buffer, code_view } = document;
diff --git a/src/langs/vala/vala.js b/src/langs/vala/vala.js
index 27dd28518..002d25885 100644
--- a/src/langs/vala/vala.js
+++ b/src/langs/vala/vala.js
@@ -1,11 +1,11 @@
import Gio from "gi://Gio";
-import { isValaEnabled } from "../../Extensions/Extensions.js";
+import { isValaAvailable } from "../../Extensions/Extensions.js";
import { createLSPClient } from "../../common.js";
import { getLanguage, copy } from "../../util.js";
export function setup({ document }) {
- if (!isValaEnabled()) return;
+ if (!isValaAvailable()) return;
const { file, buffer, code_view } = document;
diff --git a/src/libworkbench/meson.build b/src/libworkbench/meson.build
index f5b2b448c..e45a9a069 100644
--- a/src/libworkbench/meson.build
+++ b/src/libworkbench/meson.build
@@ -3,13 +3,13 @@
# SPDX-FileContributor: Andy Holmes
prefix = get_option('prefix')
-datadir = join_paths(prefix, get_option('datadir'))
-includedir = join_paths(prefix, get_option('includedir'))
-libdir = join_paths(prefix, get_option('libdir'))
+datadir = prefix / get_option('datadir')
+includedir = prefix / get_option('includedir')
+libdir = prefix / get_option('libdir')
-girdir = join_paths(datadir, 'gir-1.0')
-typelibdir = join_paths(libdir, 'girepository-1.0')
-vapidir = join_paths(datadir, 'vala', 'vapi')
+girdir = datadir / 'gir-1.0'
+typelibdir = libdir / 'girepository-1.0'
+vapidir = datadir / 'vala' / 'vapi'
libworkbench_api_version = '0'
libworkbench_api_name = 'libworkbench-@0@'.format(libworkbench_api_version)
@@ -71,13 +71,13 @@ libworkbench_sources = files([
])
install_headers(libworkbench_headers,
- subdir: join_paths(includedir, 'libworkbench'),
+ subdir: includedir / 'libworkbench',
)
libworkbench_enums = gnome.mkenums_simple('libworkbench-enums',
sources: libworkbench_headers,
install_header: true,
- install_dir: join_paths(includedir, 'libworkbench'),
+ install_dir: includedir / 'libworkbench',
)
libworkbench = shared_library('workbench-@0@'.format(libworkbench_api_version),
diff --git a/src/meson.build b/src/meson.build
index 8fe30f585..9d8db22f9 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -3,7 +3,7 @@ bin_conf.set('GJS', find_program('gjs').full_path())
bin_conf.set('version', meson.project_version() + version_suffix)
bin_conf.set('app_id', app_id)
bin_conf.set('prefix', prefix)
-bin_conf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
+bin_conf.set('libdir', get_option('prefix') / get_option('libdir'))
bin_conf.set('datadir', datadir)
bin_conf.set('pkgdatadir', pkgdatadir)
bin_conf.set('sourcedir', meson.project_source_root())
@@ -15,6 +15,7 @@ blueprint_compiler = find_program(
meson.add_install_script('../build-aux/library.js', pkgdatadir)
+subdir('langs/javascript')
subdir('langs/rust/template')
subdir('langs/typescript')
subdir('langs/vala')
diff --git a/src/sessions.js b/src/sessions.js
index a3b90c0d6..96327aef4 100644
--- a/src/sessions.js
+++ b/src/sessions.js
@@ -56,7 +56,7 @@ export async function getSessions() {
return [...files.values()].map((file) => new Session(file));
}
-function createSession() {
+export function createSession() {
const id = getNowForFilename();
const file = sessions_dir.get_child(id);
ensureDir(file);
diff --git a/src/shortcutsWindow.blp b/src/shortcutsWindow.blp
index d10929b30..e8a09edd5 100644
--- a/src/shortcutsWindow.blp
+++ b/src/shortcutsWindow.blp
@@ -17,6 +17,11 @@ ShortcutsWindow window {
title: _("Format");
}
+ ShortcutsShortcut {
+ accelerator: "N";
+ title: _("New Project");
+ }
+
ShortcutsShortcut {
accelerator: "O";
title: _("Open Project");
diff --git a/src/widgets/CodeView.js b/src/widgets/CodeView.js
index 3859952f3..7d9f452b9 100644
--- a/src/widgets/CodeView.js
+++ b/src/widgets/CodeView.js
@@ -73,7 +73,6 @@ class CodeView extends Gtk.Widget {
}
#onUpdate = () => {
- this.clearDiagnostics();
this.emit("changed");
};
diff --git a/src/window.blp b/src/window.blp
index 7dad45993..863302f7e 100644
--- a/src/window.blp
+++ b/src/window.blp
@@ -180,15 +180,7 @@ Adw.ApplicationWindow window {
}
DropDown dropdown_code_lang {
- model: StringList {
- strings [
- "JavaScript",
- "Vala",
- "Rust",
- "Python",
- "TypeScript",
- ]
- };
+ model: StringList {};
tooltip-text: _("Switch Document");
}
@@ -595,6 +587,11 @@ menu menu_app {
}
section {
+ item {
+ label: _("New Project");
+ action: "app.new";
+ }
+
item {
label: _("Open Project…");
action: "app.open";
@@ -695,6 +692,11 @@ menu menu_app {
action: "win.extensions";
}
+ item {
+ label: _("Permissions");
+ action: "win.permissions";
+ }
+
section {
item {
label: _("Reveal in Files");
diff --git a/src/window.js b/src/window.js
index 773af7eff..664250348 100644
--- a/src/window.js
+++ b/src/window.js
@@ -29,10 +29,12 @@ import {
import {
action_extensions,
Extensions,
- isRustEnabled,
+ isRustAvailable,
+ isTypeScriptAvailable,
isTypeScriptEnabled,
- isValaEnabled,
+ isValaAvailable,
} from "./Extensions/Extensions.js";
+import { Permissions } from "./Permissions/Permissions.js";
import { JavaScriptDocument } from "./langs/javascript/JavaScriptDocument.js";
import { BlueprintDocument } from "./langs/blueprint/BlueprintDocument.js";
import { CssDocument } from "./langs/css/CssDocument.js";
@@ -67,6 +69,15 @@ export default function Window({ application, session }) {
Extensions({
window,
});
+ Permissions({ window });
+
+ const dropdown_code_lang = builder.get_object("dropdown_code_lang");
+ for (const lang of ["JavaScript", "Vala", "Rust", "Python"]) {
+ dropdown_code_lang.model.append(lang);
+ }
+ if (isTypeScriptEnabled()) {
+ dropdown_code_lang.model.append("TypeScript");
+ }
// Popover menu theme switcher
const button_menu = builder.get_object("button_menu");
@@ -245,13 +256,13 @@ export default function Window({ application, session }) {
async function runCode() {
const { language } = panel_code;
- if (language === "Vala" && !isValaEnabled()) {
+ if (language === "Vala" && !isValaAvailable()) {
action_extensions.activate(null);
return;
- } else if (language === "Rust" && !isRustEnabled()) {
+ } else if (language === "Rust" && !isRustAvailable()) {
action_extensions.activate(null);
return;
- } else if (language === "TypeScript" && !isTypeScriptEnabled()) {
+ } else if (language === "TypeScript" && !isTypeScriptAvailable()) {
action_extensions.activate(null);
return;
}
diff --git a/troll b/troll
index 89e0c822f..1dc72cb29 160000
--- a/troll
+++ b/troll
@@ -1 +1 @@
-Subproject commit 89e0c822fc6c0d58e7a57ed1f7a8affc05113815
+Subproject commit 1dc72cb295edbc212b4a0952286c7b5cc66db60a