aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeckoEidechse <gecko.eidechse+git@pm.me>2024-02-11 17:51:51 +0100
committerGeckoEidechse <gecko.eidechse+git@pm.me>2024-02-11 17:51:51 +0100
commit0f89bf6821ee1aacb2a47d5760f3edf078690571 (patch)
treeea09a89f4b6a21422c320270a507f997a8801713
parent5284445cab89bb5af6d415c825a2cfa45cb92592 (diff)
parent205c3e3e6382de53e267ead750f2fe92cca06725 (diff)
downloadFlightCore-0f89bf6821ee1aacb2a47d5760f3edf078690571.tar.gz
FlightCore-0f89bf6821ee1aacb2a47d5760f3edf078690571.zip
Merge branch 'main' into refactor/pass-launch-options-object
-rw-r--r--.github/workflows/push-test.yml8
-rw-r--r--.github/workflows/release.yml2
-rw-r--r--src-tauri/Cargo.lock575
-rw-r--r--src-tauri/Cargo.toml12
-rw-r--r--src-tauri/src/constants.rs3
-rw-r--r--src-tauri/src/main.rs8
-rw-r--r--src-tauri/src/northstar/install.rs5
-rw-r--r--src-tauri/src/northstar/mod.rs12
-rw-r--r--src-tauri/src/util.rs75
-rw-r--r--src-tauri/tauri.conf.json2
-rw-r--r--src-vue/package-lock.json52
-rw-r--r--src-vue/package.json6
-rw-r--r--src-vue/src/views/DeveloperView.vue24
13 files changed, 673 insertions, 111 deletions
diff --git a/.github/workflows/push-test.yml b/.github/workflows/push-test.yml
index 9da3c9db..6fd267b1 100644
--- a/.github/workflows/push-test.yml
+++ b/.github/workflows/push-test.yml
@@ -132,21 +132,21 @@ jobs:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
- name: Upload Linux artifact
if: matrix.platform == 'ubuntu-22.04'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v3
with:
name: linux-artifacts
path: |
src-tauri/target/release/bundle/appimage/*
- name: Upload Linux AppImage
if: matrix.platform == 'ubuntu-22.04'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v3
with:
name: linux-appimage
path: |
src-tauri/target/release/bundle/appimage/*.AppImage
- name: Upload Windows artifact
if: matrix.platform == 'windows-latest'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v3
with:
name: windows-artifacts
path: |
@@ -154,7 +154,7 @@ jobs:
src-tauri/target/release/app.pdb
- name: Additionally upload Windows installer separately
if: matrix.platform == 'windows-latest'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v3
with:
name: windows-msi
path: |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 6a5096c4..48539636 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -59,7 +59,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
- name: upload build artifact
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v3
with:
path: |
src-tauri/target/release/bundle/appimage/*AppImage*
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 2fdd1077..c6eff797 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -99,6 +99,12 @@ dependencies = [
]
[[package]]
+name = "arc-swap"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+[[package]]
name = "async-broadcast"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -446,9 +452,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.81"
+version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c6b2562119bf28c3439f7f02db99faf0aa1a8cdfe5772a2ee155d32227239f0"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"jobserver",
"libc",
@@ -906,6 +912,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
name = "dtoa"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1107,7 +1119,7 @@ dependencies = [
[[package]]
name = "flightcore"
-version = "2.17.3"
+version = "2.18.2"
dependencies = [
"anyhow",
"async-recursion",
@@ -1118,9 +1130,11 @@ dependencies = [
"json5",
"libthermite",
"log",
+ "octocrab",
"open 5.0.1",
"pretty_env_logger",
"regex",
+ "remove-markdown-links",
"reqwest",
"semver",
"sentry",
@@ -1181,12 +1195,28 @@ dependencies = [
]
[[package]]
+name = "futures"
+version = "0.3.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
name = "futures-channel"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
dependencies = [
"futures-core",
+ "futures-sink",
]
[[package]]
@@ -1256,6 +1286,7 @@ version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
dependencies = [
+ "futures-channel",
"futures-core",
"futures-io",
"futures-macro",
@@ -1413,8 +1444,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if",
+ "js-sys",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
+ "wasm-bindgen",
]
[[package]]
@@ -1594,7 +1627,7 @@ dependencies = [
"futures-core",
"futures-sink",
"futures-util",
- "http",
+ "http 0.2.9",
"indexmap 1.9.3",
"slab",
"tokio",
@@ -1687,13 +1720,47 @@ dependencies = [
]
[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa 1.0.9",
+]
+
+[[package]]
name = "http-body"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
"bytes",
- "http",
+ "http 0.2.9",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
"pin-project-lite",
]
@@ -1732,8 +1799,8 @@ dependencies = [
"futures-core",
"futures-util",
"h2",
- "http",
- "http-body",
+ "http 0.2.9",
+ "http-body 0.4.5",
"httparse",
"httpdate",
"itoa 1.0.9",
@@ -1746,19 +1813,89 @@ dependencies = [
]
[[package]]
+name = "hyper"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "itoa 1.0.9",
+ "pin-project-lite",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.0.0",
+ "hyper 1.1.0",
+ "hyper-util",
+ "log",
+ "rustls 0.22.2",
+ "rustls-native-certs",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-timeout"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793"
+dependencies = [
+ "hyper 1.1.0",
+ "hyper-util",
+ "pin-project-lite",
+ "tokio",
+ "tower-service",
+]
+
+[[package]]
name = "hyper-tls"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
"bytes",
- "hyper",
+ "hyper 0.14.27",
"native-tls",
"tokio",
"tokio-native-tls",
]
[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.1.0",
+ "pin-project-lite",
+ "socket2 0.5.5",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
name = "iana-time-zone"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1905,6 +2042,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
[[package]]
+name = "iri-string"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21859b667d66a4c1dacd9df0863b3efb65785474255face87f5bca39dd8407c0"
+dependencies = [
+ "memchr",
+ "serde",
+]
+
+[[package]]
name = "is-docker"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2037,6 +2184,21 @@ dependencies = [
]
[[package]]
+name = "jsonwebtoken"
+version = "9.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
+dependencies = [
+ "base64 0.21.2",
+ "js-sys",
+ "pem",
+ "ring 0.17.7",
+ "serde",
+ "serde_json",
+ "simple_asn1",
+]
+
+[[package]]
name = "keyvalues-parser"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2088,9 +2250,9 @@ checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
[[package]]
name = "libthermite"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f03a5433bd7fe142ed36e8df2596fff1d2fa5d3cd3a4ee80480ba37e7645313"
+checksum = "1c4f076e602c8aa9ec99cd8b2d23cdf1606c27e5f04cba13aa61bdc50e678ee8"
dependencies = [
"flate2",
"json5",
@@ -2387,6 +2549,17 @@ dependencies = [
]
[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2496,6 +2669,45 @@ dependencies = [
]
[[package]]
+name = "octocrab"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b04754b007c5d3a027f77776d13619d8baab2fd73ab03608ca08ae65b8c7c1"
+dependencies = [
+ "arc-swap",
+ "async-trait",
+ "base64 0.21.2",
+ "bytes",
+ "cfg-if",
+ "chrono",
+ "either",
+ "futures",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-rustls",
+ "hyper-timeout",
+ "hyper-util",
+ "jsonwebtoken",
+ "once_cell",
+ "percent-encoding",
+ "pin-project",
+ "secrecy",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_urlencoded",
+ "snafu",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "url",
+]
+
+[[package]]
name = "once_cell"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2699,6 +2911,16 @@ dependencies = [
]
[[package]]
+name = "pem"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+dependencies = [
+ "base64 0.21.2",
+ "serde",
+]
+
+[[package]]
name = "percent-encoding"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2883,6 +3105,26 @@ dependencies = [
]
[[package]]
+name = "pin-project"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.46",
+]
+
+[[package]]
name = "pin-project-lite"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3224,10 +3466,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
+name = "remove-markdown-links"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f12300eb28972e58b37a90854ec8a8f58e762e526f3c429a350879a8d4cbbeb"
+dependencies = [
+ "regex",
+]
+
+[[package]]
name = "reqwest"
-version = "0.11.23"
+version = "0.11.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
dependencies = [
"base64 0.21.2",
"bytes",
@@ -3235,9 +3486,9 @@ dependencies = [
"futures-core",
"futures-util",
"h2",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.9",
+ "http-body 0.4.5",
+ "hyper 0.14.27",
"hyper-tls",
"ipnet",
"js-sys",
@@ -3247,9 +3498,11 @@ dependencies = [
"once_cell",
"percent-encoding",
"pin-project-lite",
+ "rustls-pemfile 1.0.4",
"serde",
"serde_json",
"serde_urlencoded",
+ "sync_wrapper",
"system-configuration",
"tokio",
"tokio-native-tls",
@@ -3296,13 +3549,27 @@ dependencies = [
"cc",
"libc",
"once_cell",
- "spin",
- "untrusted",
+ "spin 0.5.2",
+ "untrusted 0.7.1",
"web-sys",
"winapi",
]
[[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom 0.2.10",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
name = "rustc-demangle"
version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3351,19 +3618,71 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
dependencies = [
"log",
- "ring",
+ "ring 0.16.20",
"rustls-webpki 0.101.2",
"sct",
]
[[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.0.0",
+ "rustls-pki-types",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.2",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
+dependencies = [
+ "base64 0.21.2",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf"
+
+[[package]]
name = "rustls-webpki"
version = "0.100.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
]
[[package]]
@@ -3372,8 +3691,19 @@ version = "0.101.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
]
[[package]]
@@ -3430,8 +3760,17 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
dependencies = [
- "ring",
- "untrusted",
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "secrecy"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e"
+dependencies = [
+ "zeroize",
]
[[package]]
@@ -3488,9 +3827,9 @@ dependencies = [
[[package]]
name = "sentry"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab18211f62fb890f27c9bb04861f76e4be35e4c2fcbfc2d98afa37aadebb16f1"
+checksum = "766448f12e44d68e675d5789a261515c46ac6ccd240abdd451a9c46c84a49523"
dependencies = [
"httpdate",
"native-tls",
@@ -3507,9 +3846,9 @@ dependencies = [
[[package]]
name = "sentry-backtrace"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf018ff7d5ce5b23165a9cbfee60b270a55ae219bc9eebef2a3b6039356dd7e5"
+checksum = "32701cad8b3c78101e1cd33039303154791b0ff22e7802ed8cc23212ef478b45"
dependencies = [
"backtrace",
"once_cell",
@@ -3519,9 +3858,9 @@ dependencies = [
[[package]]
name = "sentry-contexts"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d934df6f9a17b8c15b829860d9d6d39e78126b5b970b365ccbd817bc0fe82c9"
+checksum = "17ddd2a91a13805bd8dab4ebf47323426f758c35f7bf24eacc1aded9668f3824"
dependencies = [
"hostname",
"libc",
@@ -3533,9 +3872,9 @@ dependencies = [
[[package]]
name = "sentry-core"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e362d3fb1c5de5124bf1681086eaca7adf6a8c4283a7e1545359c729f9128ff"
+checksum = "b1189f68d7e7e102ef7171adf75f83a59607fafd1a5eecc9dc06c026ff3bdec4"
dependencies = [
"once_cell",
"rand 0.8.5",
@@ -3546,9 +3885,9 @@ dependencies = [
[[package]]
name = "sentry-debug-images"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8bca420d75d9e7a8e54a4806bf4fa8a7e9a804e8f2ff05c7c80234168c6ca66"
+checksum = "7b4d0a615e5eeca5699030620c119a094e04c14cf6b486ea1030460a544111a7"
dependencies = [
"findshlibs",
"once_cell",
@@ -3557,9 +3896,9 @@ dependencies = [
[[package]]
name = "sentry-log"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f7574422f662fe062a2ef7d027659ad8745e05fb815770887aeb08e2fb92cf6"
+checksum = "d2d7cd58e7b31a1a533163abf86c182824ea8f8867853a6b402cde053595a54b"
dependencies = [
"log",
"sentry-core",
@@ -3567,9 +3906,9 @@ dependencies = [
[[package]]
name = "sentry-panic"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0224e7a8e2bd8a32d96804acb8243d6d6e073fed55618afbdabae8249a964d8"
+checksum = "d1c18d0b5fba195a4950f2f4c31023725c76f00aabb5840b7950479ece21b5ca"
dependencies = [
"sentry-backtrace",
"sentry-core",
@@ -3577,9 +3916,9 @@ dependencies = [
[[package]]
name = "sentry-tracing"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "087bed8c616d176a9c6b662a8155e5f23b40dc9e1fa96d0bd5fb56e8636a9275"
+checksum = "3012699a9957d7f97047fd75d116e22d120668327db6e7c59824582e16e791b2"
dependencies = [
"sentry-backtrace",
"sentry-core",
@@ -3589,9 +3928,9 @@ dependencies = [
[[package]]
name = "sentry-types"
-version = "0.32.1"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb4f0e37945b7a8ce7faebc310af92442e2d7c5aa7ef5b42fe6daa98ee133f65"
+checksum = "c7173fd594569091f68a7c37a886e202f4d0c1db1e1fa1d18a051ba695b2e2ec"
dependencies = [
"debugid",
"hex",
@@ -3606,18 +3945,18 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.195"
+version = "1.0.196"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.195"
+version = "1.0.196"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
dependencies = [
"proc-macro2",
"quote",
@@ -3626,9 +3965,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.111"
+version = "1.0.113"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
dependencies = [
"itoa 1.0.9",
"ryu",
@@ -3636,6 +3975,16 @@ dependencies = [
]
[[package]]
+name = "serde_path_to_error"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
+dependencies = [
+ "itoa 1.0.9",
+ "serde",
+]
+
+[[package]]
name = "serde_repr"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3794,6 +4143,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
name = "siphasher"
version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3815,6 +4176,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
[[package]]
+name = "snafu"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
+dependencies = [
+ "backtrace",
+ "doc-comment",
+ "snafu-derive",
+]
+
+[[package]]
+name = "snafu-derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
name = "socket2"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3869,6 +4253,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3979,6 +4369,12 @@ dependencies = [
]
[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
name = "sys-locale"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4147,7 +4543,7 @@ dependencies = [
"glob",
"gtk",
"heck 0.4.1",
- "http",
+ "http 0.2.9",
"ignore",
"minisign-verify",
"notify-rust",
@@ -4265,7 +4661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf2d0652aa2891ff3e9caa2401405257ea29ab8372cce01f186a5825f1bd0e76"
dependencies = [
"gtk",
- "http",
+ "http 0.2.9",
"http-range",
"rand 0.8.5",
"raw-window-handle",
@@ -4514,6 +4910,17 @@ dependencies = [
]
[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
name = "tokio-util"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4571,6 +4978,49 @@ dependencies = [
]
[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e"
+dependencies = [
+ "bitflags 2.3.3",
+ "bytes",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "iri-string",
+ "pin-project-lite",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
name = "tower-service"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4583,6 +5033,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
dependencies = [
"cfg-if",
+ "log",
"pin-project-lite",
"tracing-attributes",
"tracing-core",
@@ -4747,6 +5198,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
name = "ureq"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4757,7 +5214,7 @@ dependencies = [
"log",
"native-tls",
"once_cell",
- "rustls",
+ "rustls 0.21.6",
"rustls-webpki 0.100.1",
"url",
"webpki-roots",
@@ -4946,9 +5403,9 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wasm-streams"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
dependencies = [
"futures-util",
"js-sys",
@@ -5504,7 +5961,7 @@ dependencies = [
"glib",
"gtk",
"html5ever",
- "http",
+ "http 0.2.9",
"kuchikiki",
"libc",
"log",
@@ -5654,6 +6111,12 @@ dependencies = [
]
[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
name = "zip"
version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5675,9 +6138,9 @@ dependencies = [
[[package]]
name = "zip-extract"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb654964c003959ed64cbd0d7b329bcdcbd9690facd50c8617748d3622543972"
+checksum = "e109e5a291403b4c1e514d39f8a22d3f98d257e691a52bb1f16051bb1ffed63e"
dependencies = [
"log",
"thiserror",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 7934366b..9851b02a 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "flightcore"
-version = "2.17.3"
+version = "2.18.2"
description = "Mod-manager for Northstar"
authors = ["https://github.com/R2NorthstarTools/FlightCore/graphs/contributors"]
license = "MIT"
@@ -33,7 +33,7 @@ steamlocate = "1.2"
# Error messages
anyhow = "1.0"
# libthermite for Northstar/mod install handling
-libthermite = { version = "0.7.0", features = ["proton"] }
+libthermite = { version = "0.7.1", features = ["proton"] }
# zip stuff
zip = "0.6.2"
# Regex
@@ -58,7 +58,7 @@ const_format = "0.2.32"
pretty_env_logger = "0.5.0"
log = "0.4"
# Extracting zip files easily
-zip-extract = "0.1.2"
+zip-extract = "0.1.3"
# open urls
open = "5.0.1"
semver = "1.0"
@@ -66,6 +66,12 @@ semver = "1.0"
glob = "0.3.1"
dirs = "5"
+# Interacting with GitHub
+octocrab = "0.34.0"
+# Library for removing markdown links
+remove-markdown-links = "1.0.0"
+
+
[target.'cfg(windows)'.dependencies]
# Windows API stuff
winapi = "0.3.9"
diff --git a/src-tauri/src/constants.rs b/src-tauri/src/constants.rs
index 1f6a0a25..bd394ed0 100644
--- a/src-tauri/src/constants.rs
+++ b/src-tauri/src/constants.rs
@@ -26,9 +26,6 @@ pub const BLACKLISTED_MODS: [&str; 3] = [
"ebkr-r2modman",
];
-/// Titanfall2 Steam App ID
-pub const TITANFALL2_STEAM_ID: &str = "1237970";
-
/// Order in which the sections for release notes should be displayed
pub const SECTION_ORDER: [&str; 11] = [
"feat", "fix", "docs", "style", "refactor", "build", "test", "i18n", "ci", "chore", "other",
diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs
index 1fc55678..60e5a3ed 100644
--- a/src-tauri/src/main.rs
+++ b/src-tauri/src/main.rs
@@ -65,7 +65,7 @@ fn main() {
},
));
- match tauri::Builder::default()
+ let tauri_builder_res = tauri::Builder::default()
.plugin(tauri_plugin_store::Builder::default().build())
.setup(|app| {
let app_handle = app.app_handle();
@@ -155,14 +155,16 @@ fn main() {
thunderstore::query_thunderstore_packages_api,
util::close_application,
util::force_panic,
+ util::generate_release_note_announcement,
util::get_flightcore_version_number,
util::get_server_player_count,
util::is_debug_mode,
util::kill_northstar,
util::open_repair_window,
])
- .run(tauri::generate_context!())
- {
+ .run(tauri::generate_context!());
+
+ match tauri_builder_res {
Ok(()) => (),
Err(err) => {
// Failed to launch system native web view
diff --git a/src-tauri/src/northstar/install.rs b/src-tauri/src/northstar/install.rs
index a89de018..e0653ddb 100644
--- a/src-tauri/src/northstar/install.rs
+++ b/src-tauri/src/northstar/install.rs
@@ -4,7 +4,7 @@ use std::time::Duration;
use std::{cell::RefCell, time::Instant};
use ts_rs::TS;
-use crate::constants::{CORE_MODS, NORTHSTAR_DEFAULT_PROFILE, NORTHSTAR_DLL, TITANFALL2_STEAM_ID};
+use crate::constants::{CORE_MODS, NORTHSTAR_DEFAULT_PROFILE, NORTHSTAR_DLL};
use crate::{
util::{extract, move_dir_all},
GameInstall, InstallType,
@@ -310,8 +310,7 @@ pub fn find_game_install_location() -> Result<GameInstall, String> {
}
}
- let titanfall2_steamid = TITANFALL2_STEAM_ID.parse().unwrap();
- match steamdir.app(&titanfall2_steamid) {
+ match steamdir.app(&thermite::TITANFALL2_STEAM_ID) {
Some(app) => {
// println!("{:#?}", app);
let game_install = GameInstall {
diff --git a/src-tauri/src/northstar/mod.rs b/src-tauri/src/northstar/mod.rs
index ea4f4cde..9191c595 100644
--- a/src-tauri/src/northstar/mod.rs
+++ b/src-tauri/src/northstar/mod.rs
@@ -4,11 +4,7 @@ pub mod install;
pub mod profile;
use crate::util::check_ea_app_or_origin_running;
-use crate::{
- constants::{CORE_MODS, TITANFALL2_STEAM_ID},
- platform_specific::get_host_os,
- GameInstall, InstallType,
-};
+use crate::{constants::CORE_MODS, platform_specific::get_host_os, GameInstall, InstallType};
use crate::{NorthstarThunderstoreRelease, NorthstarThunderstoreReleaseWrapper};
use anyhow::anyhow;
@@ -239,8 +235,7 @@ pub fn launch_northstar_steam(
match steamlocate::SteamDir::locate() {
Some(mut steamdir) => {
if get_host_os() != "windows" {
- let titanfall2_steamid: u32 = TITANFALL2_STEAM_ID.parse().unwrap();
- match steamdir.compat_tool(&titanfall2_steamid) {
+ match steamdir.compat_tool(&thermite::TITANFALL2_STEAM_ID) {
Some(_) => {}
None => {
return Err(
@@ -263,7 +258,8 @@ pub fn launch_northstar_steam(
match open::that(format!(
"steam://run/{}//-profile={} --northstar/",
- TITANFALL2_STEAM_ID, game_install.profile
+ thermite::TITANFALL2_STEAM_ID,
+ game_install.profile
)) {
Ok(()) => Ok("Started game".to_string()),
Err(_err) => Err("Failed to launch Titanfall 2 via Steam".to_string()),
diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs
index ad09eec2..b358b32b 100644
--- a/src-tauri/src/util.rs
+++ b/src-tauri/src/util.rs
@@ -265,6 +265,81 @@ pub fn convert_release_candidate_number(version_number: String) -> String {
panic!();
}
+/// Checks latest GitHub release and generates a announcement message for Discord based on it
+#[tauri::command]
+pub async fn generate_release_note_announcement() -> Result<String, String> {
+ let octocrab = octocrab::instance();
+ let page = octocrab
+ .repos("R2Northstar", "Northstar")
+ .releases()
+ .list()
+ // Optional Parameters
+ .per_page(1)
+ .page(1u32)
+ // Send the request
+ .send()
+ .await
+ .unwrap();
+
+ // Get newest element
+ let latest_release_item = &page.items[0];
+
+ // Extract the URL to the GitHub release note
+ let github_release_link = latest_release_item.html_url.clone();
+
+ // Extract release version number
+ let current_ns_version = &latest_release_item.tag_name;
+
+ // Extract changelog and format it
+ let changelog = remove_markdown_links::remove_markdown_links(
+ latest_release_item
+ .body
+ .as_ref()
+ .unwrap()
+ .split("**Contributors:**")
+ .next()
+ .unwrap()
+ .trim(),
+ );
+
+ // Strings to insert for different sections
+ // Hardcoded for now
+ let general_info = "REPLACE ME";
+ let modders_info = "Mod compatibility should not be impacted";
+ let server_hosters_info = "REPLACE ME";
+
+ // Build announcement string
+ let return_string = format!(
+ r"Hello beautiful people <3
+**Northstar `{current_ns_version}` is out!**
+
+{general_info}
+
+**__Modders:__**
+
+{modders_info}
+
+**__Server hosters:__**
+
+{server_hosters_info}
+
+**__Changelog:__**
+```
+{changelog}
+```
+{github_release_link}
+
+Checkout #installation on how to install/update Northstar
+(the process is the same for both, using a Northstar installer like FlightCore, Viper, or VTOL is recommended over manual installation)
+
+If you do notice any bugs, please open an issue on Github or drop a message in the thread below
+"
+ );
+
+ // Return built announcement message
+ Ok(return_string.to_string())
+}
+
#[cfg(test)]
mod tests {
use super::*;
diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
index cfca4314..1863e7f8 100644
--- a/src-tauri/tauri.conf.json
+++ b/src-tauri/tauri.conf.json
@@ -8,7 +8,7 @@
},
"package": {
"productName": "FlightCore",
- "version": "2.17.3"
+ "version": "2.18.2"
},
"tauri": {
"allowlist": {
diff --git a/src-vue/package-lock.json b/src-vue/package-lock.json
index e087cec2..daf85e65 100644
--- a/src-vue/package-lock.json
+++ b/src-vue/package-lock.json
@@ -9,11 +9,11 @@
"version": "0.0.0",
"dependencies": {
"@element-plus/icons-vue": "^2.0.9",
- "element-plus": "^2.5.3",
- "marked": "^11.1.1",
+ "element-plus": "^2.5.5",
+ "marked": "^12.0.0",
"tauri-plugin-store-api": "github:tauri-apps/tauri-plugin-store#9bd993aa67766596638bbfd91e79a1bf8f632014",
"vue": "^3.4.15",
- "vue-i18n": "^9.9.0",
+ "vue-i18n": "^9.9.1",
"vue-router": "^4.2.5",
"vuex": "^4.0.2"
},
@@ -107,12 +107,12 @@
"integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw=="
},
"node_modules/@intlify/core-base": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.0.tgz",
- "integrity": "sha512-C7UXPymDIOlMGSNjAhNLtKgzITc/8BjINK5gNKXg8GiWCTwL6n3MWr55czksxn8RM5wTMz0qcLOFT+adtaVQaA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.9.1.tgz",
+ "integrity": "sha512-qsV15dg7jNX2faBRyKMgZS8UcFJViWEUPLdzZ9UR0kQZpFVeIpc0AG7ZOfeP7pX2T9SQ5jSiorq/tii9nkkafA==",
"dependencies": {
- "@intlify/message-compiler": "9.9.0",
- "@intlify/shared": "9.9.0"
+ "@intlify/message-compiler": "9.9.1",
+ "@intlify/shared": "9.9.1"
},
"engines": {
"node": ">= 16"
@@ -122,11 +122,11 @@
}
},
"node_modules/@intlify/message-compiler": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.0.tgz",
- "integrity": "sha512-yDU/jdUm9KuhEzYfS+wuyja209yXgdl1XFhMlKtXEgSFTxz4COZQCRXXbbH8JrAjMsaJ7bdoPSLsKlY6mXG2iA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.9.1.tgz",
+ "integrity": "sha512-zTvP6X6HeumHOXuAE1CMMsV6tTX+opKMOxO1OHTCg5N5Sm/F7d8o2jdT6W6L5oHUsJ/vvkGefHIs7Q3hfowmsA==",
"dependencies": {
- "@intlify/shared": "9.9.0",
+ "@intlify/shared": "9.9.1",
"source-map-js": "^1.0.2"
},
"engines": {
@@ -137,9 +137,9 @@
}
},
"node_modules/@intlify/shared": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.0.tgz",
- "integrity": "sha512-1ECUyAHRrzOJbOizyGufYP2yukqGrWXtkmTu4PcswVnWbkcjzk3YQGmJ0bLkM7JZ0ZYAaohLGdYvBYnTOGYJ9g==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.9.1.tgz",
+ "integrity": "sha512-b3Pta1nwkz5rGq434v0psHwEwHGy1pYCttfcM22IE//K9owbpkEvFptx9VcuRAxjQdrO2If249cmDDjBu5wMDA==",
"engines": {
"node": ">= 16"
},
@@ -491,9 +491,9 @@
"dev": true
},
"node_modules/element-plus": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.5.3.tgz",
- "integrity": "sha512-wmtstxaMkD6UinIgD+45CjrhbRh4u0vt+/GgxfPeMLt5pDpIVwZFjkUaVcWqqxcxd5a80HP3XlDF74fW7wim9A==",
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.5.5.tgz",
+ "integrity": "sha512-yGU/MruLOWI0ImQPFCyFM4cXtHtILJNAi0hhLImcxjRukjgQLYNkvcvbwqNgBUt808KSeKF9MyxENFyBQLTg+Q==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.3.1",
@@ -990,9 +990,9 @@
}
},
"node_modules/marked": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/marked/-/marked-11.1.1.tgz",
- "integrity": "sha512-EgxRjgK9axsQuUa/oKMx5DEY8oXpKJfk61rT5iY3aRlgU6QJtUcxU5OAymdhCvWvhYcd9FKmO5eQoX8m9VGJXg==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.0.tgz",
+ "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==",
"bin": {
"marked": "bin/marked.js"
},
@@ -1257,12 +1257,12 @@
}
},
"node_modules/vue-i18n": {
- "version": "9.9.0",
- "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.0.tgz",
- "integrity": "sha512-xQ5SxszUAqK5n84N+uUyHH/PiQl9xZ24FOxyAaNonmOQgXeN+rD9z/6DStOpOxNFQn4Cgcquot05gZc+CdOujA==",
+ "version": "9.9.1",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.9.1.tgz",
+ "integrity": "sha512-xyQ4VspLdNSPTKBFBPWa1tvtj+9HuockZwgFeD2OhxxXuC2CWeNvV4seu2o9+vbQOyQbhAM5Ez56oxUrrnTWdw==",
"dependencies": {
- "@intlify/core-base": "9.9.0",
- "@intlify/shared": "9.9.0",
+ "@intlify/core-base": "9.9.1",
+ "@intlify/shared": "9.9.1",
"@vue/devtools-api": "^6.5.0"
},
"engines": {
diff --git a/src-vue/package.json b/src-vue/package.json
index 32be0476..2ff4052d 100644
--- a/src-vue/package.json
+++ b/src-vue/package.json
@@ -10,11 +10,11 @@
},
"dependencies": {
"@element-plus/icons-vue": "^2.0.9",
- "element-plus": "^2.5.3",
- "marked": "^11.1.1",
+ "element-plus": "^2.5.5",
+ "marked": "^12.0.0",
"tauri-plugin-store-api": "github:tauri-apps/tauri-plugin-store#9bd993aa67766596638bbfd91e79a1bf8f632014",
"vue": "^3.4.15",
- "vue-i18n": "^9.9.0",
+ "vue-i18n": "^9.9.1",
"vue-router": "^4.2.5",
"vuex": "^4.0.2"
},
diff --git a/src-vue/src/views/DeveloperView.vue b/src-vue/src/views/DeveloperView.vue
index 5e835b3e..869de2f8 100644
--- a/src-vue/src/views/DeveloperView.vue
+++ b/src-vue/src/views/DeveloperView.vue
@@ -129,6 +129,19 @@
:rows="5"
placeholder="Output"
/>
+
+ <h3>Release announcements</h3>
+
+ <el-button type="primary" @click="generateReleaseAnnouncementMessage">
+ Generate release announcement
+ </el-button>
+
+ <el-input
+ v-model="discord_release_announcement_text"
+ type="textarea"
+ :rows="5"
+ placeholder="Output"
+ />
</el-scrollbar>
</div>
</template>
@@ -152,6 +165,7 @@ export default defineComponent({
return {
mod_to_install_field_string: "",
release_notes_text: "",
+ discord_release_announcement_text: "",
first_tag: { label: '', value: { name: '' } },
second_tag: { label: '', value: { name: '' } },
ns_release_tags: [] as TagWrapper[],
@@ -338,6 +352,16 @@ export default defineComponent({
showErrorNotification("Failed copying to clipboard");
});
},
+ async generateReleaseAnnouncementMessage() {
+ await invoke<string>("generate_release_note_announcement", { })
+ .then((message) => {
+ this.discord_release_announcement_text = message;
+ showNotification("Done", "Generated announcement");
+ })
+ .catch((error) => {
+ showErrorNotification(error);
+ });
+ },
}
});
</script>