diff --git a/.cargo/config.toml b/.cargo/config.toml index 6bef25d..e69de29 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,6 +0,0 @@ -[registries.forgejo] -index = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -credential-provider = "cargo:token" - -[registry] -default = "forgejo" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 346ca85..af74842 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,19 +15,9 @@ jobs: rust: runs-on: [self-hosted, node-b, linux, x64] env: - FORGEJO_CARGO_TOKEN: ${{ secrets.FORGEJO_CARGO_TOKEN }} CARGO_BUILD_JOBS: 1 steps: - uses: actions/checkout@v7 - - name: Configure Cargo credentials - shell: bash - run: | - export CARGO_HOME="$RUNNER_TEMP/cargo-home" - mkdir -p "$CARGO_HOME" - printf '[registries.forgejo]\ntoken = "Bearer %s"\n' "$FORGEJO_CARGO_TOKEN" > "$CARGO_HOME/credentials.toml" - chmod 600 "$CARGO_HOME/credentials.toml" - test -n "$FORGEJO_CARGO_TOKEN" - echo "CARGO_HOME=$CARGO_HOME" >> "$GITHUB_ENV" - uses: dtolnay/rust-toolchain@stable with: toolchain: 1.97 diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 99ef4d4..a94d4f7 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -49,8 +49,6 @@ jobs: tags: ${{ steps.tags.outputs.tags }} cache-from: '' cache-to: '' - secrets: | - git_auth_token=${{ secrets.FORGEJO_CARGO_TOKEN }} - name: Verify anonymous destination manifest shell: bash run: | diff --git a/CLAUDE.md b/CLAUDE.md index 6b16b89..5ac32e9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -62,7 +62,7 @@ indexarr-xmpp XMPP/MUC peer discovery (XEP-0045 join, XEP-0077 register), ## Production deployments -All managed via Komodo (`indexarr/ops`). Image is `ghcr.io/ausagentsmith-org/indexarr-rs:`; Komodo pulls via the `AusAgentSmith` GHCR registry account. +All managed via Komodo (`indexarr/ops`). Image is `ghcr.io/thedancingdeveloper-org/indexarr-rs:`; the historical Forgejo image remains only as a rollback artifact during migration soak. | Stack | Periphery | URL | Workers | Purpose | |-------|-----------|-----|---------|---------| @@ -94,17 +94,17 @@ All prefixed with `INDEXARR_`. See `crates/indexarr-core/src/config.rs` for the ## CI / release -Woodpecker (`ci.indexarr.net`) — pipeline at `.woodpecker.yml`. +GitHub Actions — workflows under `.github/workflows/`. | Trigger | Steps that fire | |---------|-----------------| -| `push: main` | fmt, check, test, clippy, build-and-push (GHCR `latest` + ``), komodo-deploy → Node B | -| `tag` | the above PLUS build-ui, build-linux, build-windows, NSIS installer, github-release, discord-release (changelog webhook) | -| `pull_request` | fmt, check, test, clippy | +| `push: main` | Rust/UI CI, migration policy, and immutable GHCR container publication | +| `tag` | Rust/UI CI, migration policy, multi-arch GHCR publication, and GitHub release workflow | +| `pull_request` | Rust/UI CI and migration policy | Linux/Windows binary builds are tag-only — saves ~10 min per main push. -`gh_release_token` org secret has `read:packages` so Komodo pulls private GHCR images. +The canonical GHCR package is public and Komodo pins immutable SHA tags. ## Tests diff --git a/Cargo.lock b/Cargo.lock index b2c004a..4e660df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2058,8 +2058,7 @@ dependencies = [ [[package]] name = "librtbit-bencode" version = "0.1.5" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "e7d35dd07182c2bc219e499bbbe8fa6ce059331767f46cd75cc144608b15840b" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-bencode.git#255c93423c6fc86da5d9227457da28c8c1f3fdd6" dependencies = [ "anyhow", "arrayvec", @@ -2075,8 +2074,7 @@ dependencies = [ [[package]] name = "librtbit-buffers" version = "0.1.2" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "a3c284674535972fd7693f515f1d12c8ca20b5a2c37a03020bdeca32241cf29c" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-buffers.git#60fde393b379face7c0acfe7f654a1a5ae3f3731" dependencies = [ "bytes", "librtbit-clone-to-owned", @@ -2087,8 +2085,7 @@ dependencies = [ [[package]] name = "librtbit-clone-to-owned" version = "0.1.1" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "652077f668126ff93bf2c61fbfc88a38b60b9e50c1edc440a72c2a9a5b614459" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-clone-to-owned.git#6944f73c91e9a4cc3be7694f864c5c06012066fc" dependencies = [ "bytes", ] @@ -2096,8 +2093,7 @@ dependencies = [ [[package]] name = "librtbit-core" version = "0.1.5" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "5666666c2bd8714347ae0f68fbfef885d4ae28446a26c394e0a8a43ccb78238d" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-core.git#486540bb77448ae50df5e2ca846aa0caeef5314e" dependencies = [ "anyhow", "bytes", @@ -2126,8 +2122,7 @@ dependencies = [ [[package]] name = "librtbit-dht" version = "0.1.4" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "d9fb1b5d2c7905457647ae6d6f02a5de2401b708eece095850759c1026507159" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-dht.git#05f1aa116e767a8020cd459cd43fdd5907c55ada" dependencies = [ "anyhow", "aws-lc-rs", @@ -2159,8 +2154,7 @@ dependencies = [ [[package]] name = "librtbit-peer-protocol" version = "0.1.4" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "256461f7844da8da709c246ec77b3e1a0b6694156f966d4d9b6193ea1576bb57" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-peer-protocol.git#f91f07946002b9348d7d8c9378cf3b5206f77160" dependencies = [ "anyhow", "bitvec", @@ -2179,9 +2173,8 @@ dependencies = [ [[package]] name = "librtbit-sha1-wrapper" -version = "0.1.2" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "2a49584e920ec499c2ea310f636b56169bad910a2be2920429c2964f81df2f53" +version = "0.1.1" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-sha1-wrapper.git#26062b9c6d4e73ad8b061f366d01056d401e467b" dependencies = [ "assert_cfg", "crypto-hash", @@ -2190,8 +2183,7 @@ dependencies = [ [[package]] name = "librtbit-tracker-comms" version = "0.1.6" -source = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/" -checksum = "576c8f588202c6b51000980f084f59810810ca576e7d78568332e08f193fd95a" +source = "git+https://github.com/TheDancingDeveloper-org/librtbit-tracker-comms.git#96580fb94839b71fd2ebbfb11dded5d93c53e808" dependencies = [ "anyhow", "async-stream", diff --git a/Cargo.toml b/Cargo.toml index 7ae2d28..8696dd8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,7 +59,7 @@ windows-service = "0.8" version = "0.3.2" edition = "2024" license = "AGPL-3.0-only" -repository = "https://github.com/AusAgentSmith-org/indexarr-rs" +repository = "https://github.com/TheDancingDeveloper-org/indexarr-rs" [workspace.lints.clippy] all = { level = "warn", priority = -1 } diff --git a/Dockerfile b/Dockerfile index 1bc375b..c7101bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,8 +22,6 @@ ARG TARGETARCH WORKDIR /build -RUN printf '[registries.forgejo]\nindex = "sparse+https://repo.indexarr.net/api/packages/indexarr/cargo/"\ncredential-provider = "cargo:token"\n\n[registry]\ndefault = "forgejo"\n' > $CARGO_HOME/config.toml - # Install the aarch64 cross-compilation toolchain when targeting arm64 RUN if [ "$TARGETARCH" = "arm64" ]; then \ apt-get update && apt-get install -y --no-install-recommends \ @@ -34,10 +32,7 @@ RUN if [ "$TARGETARCH" = "arm64" ]; then \ # Cache dependencies by building a dummy project first COPY Cargo.toml Cargo.lock ./ COPY crates/ crates/ -RUN --mount=type=secret,id=git_auth_token \ - printf '[registries.forgejo]\ntoken = "Bearer %s"\n' "$(cat /run/secrets/git_auth_token)" > $CARGO_HOME/credentials.toml && \ - trap 'rm -f "$CARGO_HOME/credentials.toml"' EXIT && \ - mkdir -p src && echo 'fn main() {}' > src/main.rs && \ +RUN mkdir -p src && echo 'fn main() {}' > src/main.rs && \ if [ "$TARGETARCH" = "arm64" ]; then \ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ cargo build --release --target aarch64-unknown-linux-gnu --features vendored-ssl 2>/dev/null || true; \ @@ -47,10 +42,7 @@ RUN --mount=type=secret,id=git_auth_token \ # Build the real binary COPY src/ src/ -RUN --mount=type=secret,id=git_auth_token \ - printf '[registries.forgejo]\ntoken = "Bearer %s"\n' "$(cat /run/secrets/git_auth_token)" > $CARGO_HOME/credentials.toml && \ - trap 'rm -f "$CARGO_HOME/credentials.toml"' EXIT && \ - touch src/main.rs && \ +RUN touch src/main.rs && \ if [ "$TARGETARCH" = "arm64" ]; then \ CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \ cargo build --release --target aarch64-unknown-linux-gnu --features vendored-ssl && \ diff --git a/crates/indexarr-announcer/Cargo.toml b/crates/indexarr-announcer/Cargo.toml index 99bcfee..77eda70 100644 --- a/crates/indexarr-announcer/Cargo.toml +++ b/crates/indexarr-announcer/Cargo.toml @@ -24,6 +24,6 @@ url.workspace = true # UDP tracker scrape (BEP 15) — same lib the resolver uses for peer discovery, # pulled here so we can announce-with-counts against UDP-only trackers. -tracker_comms = { version = "0.1.6", package = "librtbit-tracker-comms", registry = "forgejo" } -librtbit-core = { version = "0.1.5", default-features = false, registry = "forgejo" } +tracker_comms = { git = "https://github.com/TheDancingDeveloper-org/librtbit-tracker-comms.git", package = "librtbit-tracker-comms" } +librtbit-core = { git = "https://github.com/TheDancingDeveloper-org/librtbit-core.git", default-features = false } anyhow.workspace = true diff --git a/crates/indexarr-bep28/Cargo.toml b/crates/indexarr-bep28/Cargo.toml index 34aa4c4..f3a4f7f 100644 --- a/crates/indexarr-bep28/Cargo.toml +++ b/crates/indexarr-bep28/Cargo.toml @@ -11,7 +11,7 @@ workspace = true [dependencies] # Aliased to `bencode` to match the librtbit family's import style; eases # upstreaming this code into librtbit-peer-protocol later. -bencode = { version = "0.1.5", package = "librtbit-bencode", registry = "forgejo" } +bencode = { git = "https://github.com/TheDancingDeveloper-org/librtbit-bencode.git", package = "librtbit-bencode" } serde = { workspace = true } thiserror = { workspace = true } diff --git a/crates/indexarr-bep51/Cargo.toml b/crates/indexarr-bep51/Cargo.toml index bac4ce1..ef19c5a 100644 --- a/crates/indexarr-bep51/Cargo.toml +++ b/crates/indexarr-bep51/Cargo.toml @@ -9,14 +9,14 @@ description = "BEP 51 (DHT Infohash Indexing) message types and codec, staging g workspace = true [dependencies] -# Pulled from the Forgejo cargo registry and sourced uniformly across the -# indexarr-rs workspace — the workspace consumes -# librtbit-peer-protocol from Forgejo and cargo treats the same crate from two -# sources as two distinct crates, so all librtbit-* deps must agree on source). -# Aliased to `bencode` to match the rest of the librtbit family's import style; -# eases upstreaming this code into librtbit-dht later. -bencode = { version = "0.1.5", package = "librtbit-bencode", registry = "forgejo" } -librtbit-core = { version = "0.1.5", default-features = false, registry = "forgejo" } +# Pulled from GitHub and sourced uniformly across the indexarr-rs workspace — +# the workspace consumes librtbit-peer-protocol from GitHub and cargo treats +# the same crate from two sources as two distinct crates, so all librtbit-* +# deps must agree on source. Aliased to `bencode` to match the rest of the +# librtbit family's import style; eases upstreaming this code into +# librtbit-dht later. +bencode = { git = "https://github.com/TheDancingDeveloper-org/librtbit-bencode.git", package = "librtbit-bencode" } +librtbit-core = { git = "https://github.com/TheDancingDeveloper-org/librtbit-core.git", default-features = false } serde = { workspace = true } thiserror = { workspace = true } diff --git a/crates/indexarr-dht/Cargo.toml b/crates/indexarr-dht/Cargo.toml index ad57dbd..49bd990 100644 --- a/crates/indexarr-dht/Cargo.toml +++ b/crates/indexarr-dht/Cargo.toml @@ -13,14 +13,14 @@ indexarr-bep51 = { path = "../indexarr-bep51" } indexarr-parser = { path = "../indexarr-parser" } indexarr-classifier = { path = "../indexarr-classifier" } -# DHT library (re-exports Id20 from librtbit-core). Sourced from the Forgejo -# cargo registry to keep all librtbit-* deps unified across the workspace -# (resolver-v2 needs librtbit-peer-protocol which is Forgejo-only; the same -# crate from a second registry would be treated as distinct by cargo). -dht = { version = "0.1.4", package = "librtbit-dht", registry = "forgejo" } -librtbit-core = { version = "0.1.5", default-features = false, registry = "forgejo" } -bencode = { version = "0.1.5", package = "librtbit-bencode", registry = "forgejo" } -tracker_comms = { version = "0.1.6", package = "librtbit-tracker-comms", registry = "forgejo" } +# DHT library (re-exports Id20 from librtbit-core). Sourced from GitHub to +# keep all librtbit-* deps unified across the workspace (resolver-v2 needs +# librtbit-peer-protocol which is GitHub-only; the same crate from a second +# source would be treated as distinct by cargo). +dht = { git = "https://github.com/TheDancingDeveloper-org/librtbit-dht.git", package = "librtbit-dht" } +librtbit-core = { git = "https://github.com/TheDancingDeveloper-org/librtbit-core.git", default-features = false } +bencode = { git = "https://github.com/TheDancingDeveloper-org/librtbit-bencode.git", package = "librtbit-bencode" } +tracker_comms = { git = "https://github.com/TheDancingDeveloper-org/librtbit-tracker-comms.git", package = "librtbit-tracker-comms" } # BEP 9 metadata fetcher (workspace-internal). indexarr-resolver-v2 = { path = "../indexarr-resolver-v2" } diff --git a/crates/indexarr-resolver-v2/Cargo.toml b/crates/indexarr-resolver-v2/Cargo.toml index 816da43..6c45c98 100644 --- a/crates/indexarr-resolver-v2/Cargo.toml +++ b/crates/indexarr-resolver-v2/Cargo.toml @@ -9,16 +9,17 @@ description = "BEP 9 metadata-fetch orchestrator for indexarr-rs, layered on lib workspace = true [dependencies] -# All librtbit-* deps must be unified on the Forgejo registry — see .cargo/config.toml +# All librtbit-* deps must be unified on the same source — see .cargo/config.toml # and bep-uplift.md Phase A inventory. cargo treats the same crate@version sourced -# from crates.io vs Forgejo as two distinct crates, which breaks trait coherence. -peer_protocol = { version = "0.1.4", package = "librtbit-peer-protocol", registry = "forgejo" } +# from two different places (e.g. crates.io vs git) as two distinct crates, which +# breaks trait coherence. +peer_protocol = { git = "https://github.com/TheDancingDeveloper-org/librtbit-peer-protocol.git", package = "librtbit-peer-protocol" } # BEP 28 lt_tex codec (workspace-internal, staging for upstreaming). indexarr-bep28 = { path = "../indexarr-bep28" } -librtbit-core = { version = "0.1.5", default-features = false, registry = "forgejo" } -buffers = { version = "0.1.2", package = "librtbit-buffers", registry = "forgejo" } -bencode = { version = "0.1.5", package = "librtbit-bencode", registry = "forgejo" } +librtbit-core = { git = "https://github.com/TheDancingDeveloper-org/librtbit-core.git", default-features = false } +buffers = { git = "https://github.com/TheDancingDeveloper-org/librtbit-buffers.git", package = "librtbit-buffers" } +bencode = { git = "https://github.com/TheDancingDeveloper-org/librtbit-bencode.git", package = "librtbit-bencode" } tokio = { workspace = true } thiserror = { workspace = true } diff --git a/ui/package-lock.json b/ui/package-lock.json index ec08476..5581169 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -16,7 +16,7 @@ "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.9.0", "vite": "^6.4.3", - "vue-tsc": "^2.2.0" + "vue-tsc": "^3.3.8" } }, "node_modules/@babel/helper-string-parser": { @@ -885,30 +885,30 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.15.tgz", - "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", "dev": true, "license": "MIT", "dependencies": { - "@volar/source-map": "2.4.15" + "@volar/source-map": "2.4.28" } }, "node_modules/@volar/source-map": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.15.tgz", - "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", "dev": true, "license": "MIT" }, "node_modules/@volar/typescript": { - "version": "2.4.15", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.15.tgz", - "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.15", + "@volar/language-core": "2.4.28", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -963,17 +963,6 @@ "@vue/shared": "3.5.30" } }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "license": "MIT", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", @@ -981,28 +970,19 @@ "license": "MIT" }, "node_modules/@vue/language-core": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.12.tgz", - "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.8.tgz", + "integrity": "sha512-ieGT8jJdhhy0mGzStZhsg/qPw5bQZJg5yF+3+XU6saf4sM7yo9ZXy3h+nCwrm2+b4qS/SypkNdR2jAF3uei9tA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/language-core": "2.4.15", + "@volar/language-core": "2.4.28", "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", - "alien-signals": "^1.0.3", - "minimatch": "^9.0.3", + "alien-signals": "^3.2.1", "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "path-browserify": "^1.0.1", + "picomatch": "^4.0.4" } }, "node_modules/@vue/reactivity": { @@ -1056,42 +1036,18 @@ "license": "MIT" }, "node_modules/alien-signals": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", - "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz", + "integrity": "sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==", "dev": true, "license": "MIT" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true, - "license": "MIT" - }, "node_modules/entities": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", @@ -1185,16 +1141,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", @@ -1204,22 +1150,6 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", @@ -1551,14 +1481,14 @@ } }, "node_modules/vue-tsc": { - "version": "2.2.12", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.12.tgz", - "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.8.tgz", + "integrity": "sha512-xXmYlVQpcwJDWyGlqbHrGVOl1h3UOsASymRibrHc+iy9j/UNnOrOn4u+fntHz4D6Cs74RtapeqVV6CzJeg+UlA==", "dev": true, "license": "MIT", "dependencies": { - "@volar/typescript": "2.4.15", - "@vue/language-core": "2.2.12" + "@volar/typescript": "2.4.28", + "@vue/language-core": "3.3.8" }, "bin": { "vue-tsc": "bin/vue-tsc.js" diff --git a/ui/package.json b/ui/package.json index 2e71b54..88cf70d 100644 --- a/ui/package.json +++ b/ui/package.json @@ -19,6 +19,6 @@ "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.9.0", "vite": "^6.4.3", - "vue-tsc": "^2.2.0" + "vue-tsc": "^3.3.8" } }