From 4fcafbdf108bf253cc672b17dcfb09db5213fe6a Mon Sep 17 00:00:00 2001 From: Lebei Date: Wed, 13 May 2026 12:29:04 +0800 Subject: [PATCH 1/5] feat: add libDirs support Add support for specifying library search paths in native library target configurations via the new `libDirs` field in package.json. Changes: - Add `lib_dirs` field to TargetNativeConfig - Parse `libDirs` from package.json - Add `-L` flags for libDirs before linking --- crates/perry/src/commands/compile.rs | 1 + crates/perry/src/commands/compile/link.rs | 5 +++++ crates/perry/src/commands/compile/resolve.rs | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/crates/perry/src/commands/compile.rs b/crates/perry/src/commands/compile.rs index f6246ce0..a7d32495 100644 --- a/crates/perry/src/commands/compile.rs +++ b/crates/perry/src/commands/compile.rs @@ -555,6 +555,7 @@ pub struct TargetNativeConfig { pub lib_name: String, pub frameworks: Vec, pub libs: Vec, + pub lib_dirs: Vec, pub pkg_config: Vec, /// Swift sources (absolute paths) to compile via swiftc and link into the /// final binary. Used by `--features watchos-swift-app` so a native lib diff --git a/crates/perry/src/commands/compile/link.rs b/crates/perry/src/commands/compile/link.rs index 70b934bc..ece65e55 100644 --- a/crates/perry/src/commands/compile/link.rs +++ b/crates/perry/src/commands/compile/link.rs @@ -1858,6 +1858,11 @@ pub(super) fn build_and_run_link( cmd.arg("-framework").arg(framework); } + // Add library search paths + for lib_dir in &target_config.lib_dirs { + cmd.arg(format!("-L{}", lib_dir)); + } + // Add platform libraries for lib in &target_config.libs { if is_windows { diff --git a/crates/perry/src/commands/compile/resolve.rs b/crates/perry/src/commands/compile/resolve.rs index 292c77e3..fee6a66a 100644 --- a/crates/perry/src/commands/compile/resolve.rs +++ b/crates/perry/src/commands/compile/resolve.rs @@ -205,6 +205,15 @@ pub(super) fn parse_native_library_manifest( .collect() }) .unwrap_or_default(), + lib_dirs: tc + .get("libDirs") + .and_then(|l| l.as_array()) + .map(|a| { + a.iter() + .filter_map(|v| v.as_str().map(String::from)) + .collect() + }) + .unwrap_or_default(), pkg_config: tc .get("pkgConfig") .and_then(|p| p.as_array()) From 99255d93abccf882eac405610aeabe2c2175e6d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Thu, 14 May 2026 07:42:06 +0200 Subject: [PATCH 2/5] chore(libDirs): MSVC /LIBPATH branch + package_dir anchoring + tests/docs (v0.5.909) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maintainer fold-in on top of @Lebei2046's libDirs feature: - link.rs: emit /LIBPATH: on is_windows (MSVC link.exe) instead of -L, mirroring the existing libs loop's MSVC/Unix split. - resolve.rs: anchor relative libDirs entries to package_dir via package_dir.join(p), matching swift_sources / metal_sources. Field type is now Vec. - compile.rs: doc-comment on the new field. - manifest-v1.md: row added for libDirs. - resolve.rs: two new tests in manifest_parse_tests covering package_dir anchoring + empty-by-default behavior. - Cargo.toml / Cargo.lock / CLAUDE.md / CHANGELOG.md: 0.5.908 → 0.5.909 (renumbered to follow #760 which took 0.5.908 mid-review). --- CHANGELOG.md | 2 + CLAUDE.md | 2 +- Cargo.lock | 136 +++++++++---------- Cargo.toml | 2 +- crates/perry/src/commands/compile.rs | 6 +- crates/perry/src/commands/compile/link.rs | 13 +- crates/perry/src/commands/compile/resolve.rs | 71 +++++++++- docs/src/native-libraries/manifest-v1.md | 1 + 8 files changed, 159 insertions(+), 74 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3930edd4..612b8e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ Detailed changelog for Perry. See CLAUDE.md for concise summaries. +## v0.5.909 — feat: add `libDirs` to native library manifest (#762). New optional `targets..libDirs` field in `package.json`'s `perry.nativeLibrary` block — array of linker search paths emitted ahead of the `libs` list. **Surface.** Documented in `docs/src/native-libraries/manifest-v1.md` alongside the existing `libs` / `frameworks` / `pkgConfig` entries. Use it when a wrapper ships a vendored `.a`/`.dylib` outside the cargo crate (the standard `lib_name` lookup probes `target//release/`); previously the only escape hatch was an absolute path glued into `libs` via a workaround. **Plumbing.** Three edits — (1) `TargetNativeConfig.lib_dirs: Vec` field added in `crates/perry/src/commands/compile.rs`; (2) `parse_native_library_manifest` parses `libDirs` and anchors relative entries to `package_dir` via `package_dir.join(p)` — mirrors the existing `swift_sources` / `metal_sources` pattern so a `"./vendor/lib"` in the manifest resolves against the wrapper's directory, not the user's cwd (absolute entries pass through unchanged since `PathBuf::join` ignores the base on an absolute right-hand side); (3) `build_and_run_link` in `crates/perry/src/commands/compile/link.rs` emits each entry between the `frameworks` loop and the `libs` loop — `-L` on every non-Windows target, `/LIBPATH:` when `is_windows` (mirrors the `libs` loop's existing `{lib}.lib` vs `-l{lib}` MSVC/Unix split, so a `targets.windows.libDirs` entry actually resolves the `{lib}.lib` lookups instead of being a silent no-op against link.exe). **Validation.** Two new unit tests in `crates/perry/src/commands/compile/resolve.rs::manifest_parse_tests` — `lib_dirs_relative_paths_anchored_to_package_dir` round-trips a manifest with both `"vendor/lib"` and `"/abs/path"` and asserts the package_dir-anchored / pass-through behavior; `lib_dirs_defaults_to_empty_when_absent` confirms the field is optional. `cargo build --release` clean; `cargo test -p perry --lib` green. **Version-bump note.** Renumbered v0.5.908 → v0.5.909 because #760 (test: argon2 + ethers parity) landed on main mid-review and took the v0.5.908 slot. **Contributor.** Implementation by @Lebei2046; MSVC `/LIBPATH:` branch + `package_dir` anchoring + tests + manifest doc entry + this changelog folded in at merge time. + ## v0.5.908 — test: #698 — behavioral parity tests for argon2 + ethers integrations (#760). Follow-up to #694, addressing #698. Adds two new parity fixtures and a `@covers` block on `test_parity_crypto.ts`, moving 18 FFI entries out of `test_ffi_surface_stdlib_integrations.ts` (156 → 138 unique names) into behavioral coverage. **`test_parity_argon2.ts`** — round-trips `argon2.hash` / `argon2.verify` against the `perry-ext-argon2` wrapper; non-deterministic salt is handled by shape-checking the `$argon2id$` prefix and asserting verify round-trips against a freshly produced hash. Only the async path is in `NativeModSig`, so this covers the two FFI entries (`js_argon2_hash`, `js_argon2_verify`) reachable end-to-end. **`test_parity_ethers.ts`** — pure deterministic helpers from `perry-ext-ethers`: `getAddress` (EIP-55 checksum on lower- and upper-case input), `parseEther`/`formatEther` round-trip on 1.5 ETH, `parseUnits`/`formatUnits` at 6- (USDC) and 9-decimal (gwei) positions. Covers the five `js_ethers_*` helpers. Both new fixtures use the `test-parity/expected/` mechanism — Perry routes the npm-style imports to the bundled `perry-ext-*` wrappers, but Node can't resolve the same names without `node_modules`, so they fall through to stored expected-output comparison. **`test_parity_crypto.ts`** — adds a `@covers` block declaring the crypto/webcrypto/crypto_e2e FFI surface it already exercises via `node:crypto` and `crypto.subtle` (digest, hash, pbkdf2/hkdf, subtle.sign/verify); no behavioral change. **Out of scope (each gets its own follow-up).** `jsonwebtoken.sign` — `NativeModSig` passes `payload`/`secret` as `NA_F64` (NaN-boxed) but `js_jwt_sign` reads them as `*const StringHeader`, producing garbage tokens (calling-convention mismatch, same shape as the #591 argon2 fix). `bcrypt.hash` — return value reports `typeof === "object"` in user code; `compare` round-trips correctly but `.startsWith(...)` on the hash fails. `cheerio` — `$.select(...)` returns a bare-number handle, so `.length()` / `.first()` etc. fail with `(number).method is not a function` at the prototype check. Service-backed integrations (MongoDB, MySQL, PG, ioredis, Nodemailer, Sharp) also remain in the inventory pending the local-container / opt-in test setup described in #698. **Audit.** `./test-coverage/audit.sh --markdown` keeps TS-side and combined FFI coverage at **1791/1791 (100.0%)**. `test_ffi_surface_stdlib_integrations.ts` re-regenerated via `regen_ts_surface_inventory.py` to fold in the new `@covers` blocks. Comment-only changes; no behavioral or runtime impact. Contributor: @TheHypnoo. ## v0.5.907 — test(stdlib): #697 — move stdlib_io FFI coverage into behavioral tests (#758). Follow-up to #694: relocates the 155 inventory entries from `test_ffi_surface_stdlib_io.ts` into `@covers` annotations attached to the existing behavioral fixtures for each surface — `fetch.rs` (43 names) → `test_gap_fetch_response.ts`; `streams.rs` (37) → `test_parity_stream_web.ts`; `http.rs` (13) → `test_parity_http.ts`; `net/mod.rs` (10) → `test_net_socket.ts`; `readline.rs` (5) → `test_parity_readline.ts`; `worker_threads.rs` (6) → `test_parity_worker_threads.ts`; `ws.rs` (11) → `test_node_http_ws_upgrade.ts`; `framework/{multipart,request,response,server}.rs` (28) → `test_fastify_integration.ts`. Each receiving fixture already exercises real behavior on its surface (local loopback servers / deterministic in-memory probes / Headers + Blob + Response API roundtrips) — no external services added. **Mechanism.** `regen_ts_surface_inventory.py` excludes the six `test_ffi_surface_*.ts` inventory files when scanning for `@covers` references, so any FFI name that appears in a non-inventory fixture's `@covers` block is dropped from its inventory file on the next regen. After this PR, `test_ffi_surface_stdlib_io.ts` shrinks from **155 → 0** unique FFI names. **Audit.** `./test-coverage/audit.sh --markdown` keeps TypeScript and combined FFI coverage at **1791/1791 (100.0%)**. `test_ffi_surface_runtime_core.ts` re-regenerated against current `main` post-rebase — the inventory drift visible in the diff (added `js_array_flat_depth`, `js_template_raw`, `js_path_matches_glob`, `js_async_first_call`, the 7 new `webassembly.rs` exports; removed `js_mul`, `js_net_socket_destroy/end/write`, the 9 `js_ws_*` stubs from `stdlib_stubs.rs`) reflects upstream Rust refactors, not hand edits. Comment-only changes; no behavioral or runtime impact. Contributor: @TheHypnoo. diff --git a/CLAUDE.md b/CLAUDE.md index 9d2bcdbe..c2955582 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,7 +8,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co Perry is a native TypeScript compiler written in Rust that compiles TypeScript source code directly to native executables. It uses SWC for TypeScript parsing and LLVM for code generation. -**Current Version:** 0.5.908 +**Current Version:** 0.5.909 ## TypeScript Parity Status diff --git a/Cargo.lock b/Cargo.lock index 9ed2bdbd..b3ea2a3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4790,7 +4790,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perry" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "base64", @@ -4845,14 +4845,14 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.908" +version = "0.5.909" dependencies = [ "serde", ] [[package]] name = "perry-codegen" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "log", @@ -4865,7 +4865,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4874,7 +4874,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4882,7 +4882,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-dispatch", @@ -4892,7 +4892,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4901,7 +4901,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "base64", @@ -4914,7 +4914,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4922,7 +4922,7 @@ dependencies = [ [[package]] name = "perry-diagnostics" -version = "0.5.908" +version = "0.5.909" dependencies = [ "serde", "serde_json", @@ -4930,7 +4930,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.908" +version = "0.5.909" [[package]] name = "perry-doc-fixture-my-bindings" @@ -4941,7 +4941,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "clap", @@ -4956,7 +4956,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.908" +version = "0.5.909" dependencies = [ "argon2", "perry-ffi", @@ -4964,7 +4964,7 @@ dependencies = [ [[package]] name = "perry-ext-axios" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "reqwest", @@ -4973,7 +4973,7 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.908" +version = "0.5.909" dependencies = [ "bcrypt", "perry-ffi", @@ -4981,7 +4981,7 @@ dependencies = [ [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "rusqlite", @@ -4989,7 +4989,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "scraper", @@ -4997,14 +4997,14 @@ dependencies = [ [[package]] name = "perry-ext-commander" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-cron" -version = "0.5.908" +version = "0.5.909" dependencies = [ "chrono", "cron", @@ -5013,7 +5013,7 @@ dependencies = [ [[package]] name = "perry-ext-dayjs" -version = "0.5.908" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -5021,7 +5021,7 @@ dependencies = [ [[package]] name = "perry-ext-decimal" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "rust_decimal", @@ -5029,7 +5029,7 @@ dependencies = [ [[package]] name = "perry-ext-dotenv" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "serde_json", @@ -5037,7 +5037,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "rand 0.8.6", @@ -5045,21 +5045,21 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-exponential-backoff" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-fastify" -version = "0.5.908" +version = "0.5.909" dependencies = [ "bytes", "http-body-util", @@ -5073,7 +5073,7 @@ dependencies = [ [[package]] name = "perry-ext-fetch" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -5084,7 +5084,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ext-http-server", @@ -5096,7 +5096,7 @@ dependencies = [ [[package]] name = "perry-ext-http-server" -version = "0.5.908" +version = "0.5.909" dependencies = [ "bytes", "http-body-util", @@ -5115,7 +5115,7 @@ dependencies = [ [[package]] name = "perry-ext-ioredis" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -5125,7 +5125,7 @@ dependencies = [ [[package]] name = "perry-ext-jsonwebtoken" -version = "0.5.908" +version = "0.5.909" dependencies = [ "base64", "jsonwebtoken", @@ -5136,7 +5136,7 @@ dependencies = [ [[package]] name = "perry-ext-lru-cache" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lru", "perry-ffi", @@ -5144,7 +5144,7 @@ dependencies = [ [[package]] name = "perry-ext-moment" -version = "0.5.908" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -5152,7 +5152,7 @@ dependencies = [ [[package]] name = "perry-ext-mongodb" -version = "0.5.908" +version = "0.5.909" dependencies = [ "bson", "futures-util", @@ -5164,7 +5164,7 @@ dependencies = [ [[package]] name = "perry-ext-mysql2" -version = "0.5.908" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -5174,7 +5174,7 @@ dependencies = [ [[package]] name = "perry-ext-nanoid" -version = "0.5.908" +version = "0.5.909" dependencies = [ "nanoid", "perry-ffi", @@ -5183,7 +5183,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "rustls", @@ -5194,7 +5194,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lettre", "perry-ffi", @@ -5204,7 +5204,7 @@ dependencies = [ [[package]] name = "perry-ext-pg" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "sqlx", @@ -5213,7 +5213,7 @@ dependencies = [ [[package]] name = "perry-ext-ratelimit" -version = "0.5.908" +version = "0.5.909" dependencies = [ "governor", "perry-ffi", @@ -5221,7 +5221,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.908" +version = "0.5.909" dependencies = [ "base64", "image", @@ -5230,14 +5230,14 @@ dependencies = [ [[package]] name = "perry-ext-slugify" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-streams" -version = "0.5.908" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -5245,7 +5245,7 @@ dependencies = [ [[package]] name = "perry-ext-uuid" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "uuid", @@ -5253,7 +5253,7 @@ dependencies = [ [[package]] name = "perry-ext-validator" -version = "0.5.908" +version = "0.5.909" dependencies = [ "perry-ffi", "regex", @@ -5263,7 +5263,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.908" +version = "0.5.909" dependencies = [ "futures-util", "lazy_static", @@ -5274,7 +5274,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.908" +version = "0.5.909" dependencies = [ "flate2", "perry-ffi", @@ -5282,7 +5282,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.908" +version = "0.5.909" dependencies = [ "dashmap 6.1.0", "once_cell", @@ -5291,7 +5291,7 @@ dependencies = [ [[package]] name = "perry-hir" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-api-manifest", @@ -5305,7 +5305,7 @@ dependencies = [ [[package]] name = "perry-jsruntime" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "deno_core", @@ -5325,7 +5325,7 @@ dependencies = [ [[package]] name = "perry-parser" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-diagnostics", @@ -5337,7 +5337,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "base64", @@ -5361,7 +5361,7 @@ dependencies = [ [[package]] name = "perry-stdlib" -version = "0.5.908" +version = "0.5.909" dependencies = [ "aes", "aes-gcm", @@ -5429,7 +5429,7 @@ dependencies = [ [[package]] name = "perry-transform" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -5439,7 +5439,7 @@ dependencies = [ [[package]] name = "perry-types" -version = "0.5.908" +version = "0.5.909" dependencies = [ "anyhow", "thiserror 1.0.69", @@ -5447,11 +5447,11 @@ dependencies = [ [[package]] name = "perry-ui" -version = "0.5.908" +version = "0.5.909" [[package]] name = "perry-ui-android" -version = "0.5.908" +version = "0.5.909" dependencies = [ "itoa", "jni", @@ -5466,7 +5466,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.908" +version = "0.5.909" dependencies = [ "rand 0.8.6", "serde", @@ -5476,7 +5476,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.908" +version = "0.5.909" dependencies = [ "cairo-rs", "dirs 5.0.1", @@ -5495,7 +5495,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.908" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5510,7 +5510,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.908" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5528,11 +5528,11 @@ version = "0.1.0" [[package]] name = "perry-ui-testkit" -version = "0.5.908" +version = "0.5.909" [[package]] name = "perry-ui-tvos" -version = "0.5.908" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5547,7 +5547,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.908" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5562,7 +5562,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.908" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5575,7 +5575,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.908" +version = "0.5.909" dependencies = [ "libc", "perry-runtime", @@ -5589,7 +5589,7 @@ dependencies = [ [[package]] name = "perry-updater" -version = "0.5.908" +version = "0.5.909" dependencies = [ "base64", "ed25519-dalek", @@ -5603,7 +5603,7 @@ dependencies = [ [[package]] name = "perry-wasm-host" -version = "0.5.908" +version = "0.5.909" dependencies = [ "wasmi", ] diff --git a/Cargo.toml b/Cargo.toml index eddb8a1c..fd17d855 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -190,7 +190,7 @@ opt-level = "s" # Optimize for size in stdlib opt-level = 3 [workspace.package] -version = "0.5.908" +version = "0.5.909" edition = "2021" license = "MIT" repository = "https://github.com/PerryTS/perry" diff --git a/crates/perry/src/commands/compile.rs b/crates/perry/src/commands/compile.rs index a7d32495..87445dc3 100644 --- a/crates/perry/src/commands/compile.rs +++ b/crates/perry/src/commands/compile.rs @@ -555,7 +555,11 @@ pub struct TargetNativeConfig { pub lib_name: String, pub frameworks: Vec, pub libs: Vec, - pub lib_dirs: Vec, + /// Extra `-L`/`/LIBPATH:` search paths to hand the linker before the + /// `libs` entries are resolved. Anchored to the manifest's + /// `package_dir`, so relative entries in `package.json` resolve + /// against the package, not the user's cwd. + pub lib_dirs: Vec, pub pkg_config: Vec, /// Swift sources (absolute paths) to compile via swiftc and link into the /// final binary. Used by `--features watchos-swift-app` so a native lib diff --git a/crates/perry/src/commands/compile/link.rs b/crates/perry/src/commands/compile/link.rs index ece65e55..3f74472a 100644 --- a/crates/perry/src/commands/compile/link.rs +++ b/crates/perry/src/commands/compile/link.rs @@ -1858,9 +1858,18 @@ pub(super) fn build_and_run_link( cmd.arg("-framework").arg(framework); } - // Add library search paths + // Add library search paths. MSVC link.exe takes `/LIBPATH:`; + // every other linker we drive (clang/ld on Apple, gcc/ld on + // Linux/Android/HarmonyOS) understands `-L`. Mirror the + // `target_config.libs` branch immediately below so a + // `targets.windows.libDirs` entry actually resolves the + // `{lib}.lib` lookups instead of being a silent no-op. for lib_dir in &target_config.lib_dirs { - cmd.arg(format!("-L{}", lib_dir)); + if is_windows { + cmd.arg(format!("/LIBPATH:{}", lib_dir.display())); + } else { + cmd.arg(format!("-L{}", lib_dir.display())); + } } // Add platform libraries diff --git a/crates/perry/src/commands/compile/resolve.rs b/crates/perry/src/commands/compile/resolve.rs index fee6a66a..b5894e0e 100644 --- a/crates/perry/src/commands/compile/resolve.rs +++ b/crates/perry/src/commands/compile/resolve.rs @@ -210,7 +210,7 @@ pub(super) fn parse_native_library_manifest( .and_then(|l| l.as_array()) .map(|a| { a.iter() - .filter_map(|v| v.as_str().map(String::from)) + .filter_map(|v| v.as_str().map(|p| package_dir.join(p))) .collect() }) .unwrap_or_default(), @@ -378,6 +378,75 @@ mod abi_validation_tests { } } +#[cfg(test)] +mod manifest_parse_tests { + use super::*; + + /// Relative `libDirs` entries must resolve against the package's + /// own directory, not the user's cwd — otherwise a wrapper that + /// ships a `vendor/lib/` alongside its `package.json` would only + /// link when invoked from one specific directory. Absolute entries + /// pass through unchanged (`PathBuf::join` ignores the base when + /// the right-hand side is absolute). + #[test] + fn lib_dirs_relative_paths_anchored_to_package_dir() { + let dir = tempfile::tempdir().expect("tempdir"); + let pkg_dir = dir.path(); + let manifest = serde_json::json!({ + "perry": { + "nativeLibrary": { + "functions": [], + "targets": { + "macos": { + "crate": "rust", + "lib": "demo", + "libDirs": ["vendor/lib", "/abs/path"] + } + } + } + } + }); + std::fs::write( + pkg_dir.join("package.json"), + serde_json::to_string(&manifest).unwrap(), + ) + .expect("write package.json"); + + let parsed = + parse_native_library_manifest(pkg_dir, "demo", Some("macos")).expect("parsed manifest"); + let tc = parsed.target_config.expect("target_config"); + assert_eq!(tc.lib_dirs.len(), 2); + assert_eq!(tc.lib_dirs[0], pkg_dir.join("vendor/lib")); + assert_eq!(tc.lib_dirs[1], PathBuf::from("/abs/path")); + } + + /// Omitted `libDirs` must default to an empty list, not error — + /// it's an optional field on every existing wrapper. + #[test] + fn lib_dirs_defaults_to_empty_when_absent() { + let dir = tempfile::tempdir().expect("tempdir"); + let pkg_dir = dir.path(); + let manifest = serde_json::json!({ + "perry": { + "nativeLibrary": { + "functions": [], + "targets": { "macos": { "crate": "rust", "lib": "demo" } } + } + } + }); + std::fs::write( + pkg_dir.join("package.json"), + serde_json::to_string(&manifest).unwrap(), + ) + .expect("write package.json"); + + let parsed = + parse_native_library_manifest(pkg_dir, "demo", Some("macos")).expect("parsed manifest"); + let tc = parsed.target_config.expect("target_config"); + assert!(tc.lib_dirs.is_empty()); + } +} + /// Packages that Perry provides built-in native extensions for. /// These must never be loaded into V8 — Perry's codegen intercepts all imports /// from these packages and replaces them with native calls. diff --git a/docs/src/native-libraries/manifest-v1.md b/docs/src/native-libraries/manifest-v1.md index 4266c7a5..34dbe3c8 100644 --- a/docs/src/native-libraries/manifest-v1.md +++ b/docs/src/native-libraries/manifest-v1.md @@ -154,6 +154,7 @@ as their device counterpart (`ios` covers both `ios-simulator` and | `lib` | string | yes\* | Library name (without the `lib` prefix or `.a` extension). Required when `prebuilt` is absent. | | `frameworks` | array of string | no | Apple-only — frameworks to pass to `clang -framework`. | | `libs` | array of string | no | System libraries to pass to the linker (`-lcurl`, etc.). | +| `libDirs` | array of paths | no | Extra linker search paths. Emitted before `libs` as `-L` (or `/LIBPATH:` on Windows MSVC). Relative entries resolve against `package.json`. | | `pkgConfig` | array of string | no | pkg-config package names. The compiler runs `pkg-config --libs` and forwards the output. | | `swift_sources` | array of paths | no | Swift sources to compile via `swiftc` and link in. Used by SwiftUI wrappers. | | `metal_sources` | array of paths | no | Metal shader sources to compile via `xcrun metal` into `.app/default.metallib`. | From 66c773ecbd8f50177904313b70faf9220724dc3c Mon Sep 17 00:00:00 2001 From: Lebei Date: Fri, 15 May 2026 17:29:22 +0800 Subject: [PATCH 3/5] feat: add generic extension pump registration mechanism --- crates/perry-runtime/src/lib.rs | 29 +++++++++++++++++++++++++++++ crates/perry-ui-gtk4/src/app.rs | 16 ++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/crates/perry-runtime/src/lib.rs b/crates/perry-runtime/src/lib.rs index 1239afa3..b3329694 100644 --- a/crates/perry-runtime/src/lib.rs +++ b/crates/perry-runtime/src/lib.rs @@ -169,6 +169,35 @@ pub use value::{ js_set_native_module_js_loader, js_set_new_from_handle_v8, }; +// Extension pump registration — allows extensions to register pump functions +// that run on each timer tick without hard-link dependencies. +mod ext_pump { + use std::ptr::null_mut; + use std::sync::atomic::{AtomicPtr, Ordering}; + + static EXT_PUMP_FN: AtomicPtr<()> = AtomicPtr::new(null_mut()); + + /// Register an extension's process_pending function pointer. + /// Called by extensions during initialization. + #[no_mangle] + pub extern "C" fn js_register_ext_pump(f: extern "C" fn() -> i32) { + EXT_PUMP_FN.store(f as *mut (), Ordering::Release); + } + + /// Run the registered extension pump if available. Safe to call even if no + /// extension is linked (no-op in that case). + #[no_mangle] + pub extern "C" fn js_run_ext_pump() { + let f = EXT_PUMP_FN.load(Ordering::Acquire); + if !f.is_null() { + unsafe { + let func: extern "C" fn() -> i32 = std::mem::transmute(f); + func(); + } + } + } +} + // Stdlib pump registration — allows perry-ui-macos pump timer to call // js_stdlib_process_pending without a hard link dependency on perry-stdlib. mod stdlib_pump { diff --git a/crates/perry-ui-gtk4/src/app.rs b/crates/perry-ui-gtk4/src/app.rs index 57885f8c..36a9cb54 100644 --- a/crates/perry-ui-gtk4/src/app.rs +++ b/crates/perry-ui-gtk4/src/app.rs @@ -71,6 +71,9 @@ extern "C" { fn js_nanbox_get_pointer(value: f64) -> i64; fn js_run_stdlib_pump(); fn js_promise_run_microtasks() -> i32; + fn js_callback_timer_tick() -> i32; + fn js_interval_timer_tick() -> i32; + fn js_run_ext_pump(); } /// Extract a &str from a *const StringHeader pointer. @@ -287,6 +290,19 @@ pub fn app_run(_app_handle: i64) { } }); + // Start the timer pump to drive setInterval/setTimeout callbacks (~120Hz) + // This mirrors the implementation on other platforms (macOS, Windows, etc.) + glib::timeout_add_local(std::time::Duration::from_millis(8), move || { + unsafe { + js_callback_timer_tick(); + js_interval_timer_tick(); + js_run_ext_pump(); + js_run_stdlib_pump(); + js_promise_run_microtasks(); + } + glib::ControlFlow::Continue + }); + // Call on_activate callback ON_ACTIVATE_CALLBACK.with(|cb| { if let Some(callback) = *cb.borrow() { From 3f71c4634fcba01c741c526bc12bf7da90d5f1ba Mon Sep 17 00:00:00 2001 From: Lebei Date: Fri, 15 May 2026 18:34:26 +0800 Subject: [PATCH 4/5] resolve conflicts: accept upstream WebKit6 API updates --- Cargo.lock | 1291 ++++++++----------- crates/perry-api-manifest/src/entries.rs | 2 + crates/perry-dispatch/src/lib.rs | 12 + crates/perry-ui-gtk4/Cargo.toml | 1 + crates/perry-ui-gtk4/src/audio.rs | 37 + crates/perry-ui-gtk4/src/lib.rs | 24 +- crates/perry-ui-gtk4/src/widgets/webview.rs | 26 +- types/perry/system/index.d.ts | 9 + 8 files changed, 594 insertions(+), 808 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b3ea2a3e..e0111cff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "adler2" version = "2.0.1" @@ -479,12 +485,6 @@ dependencies = [ "fs_extra", ] -[[package]] -name = "az" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" - [[package]] name = "backon" version = "1.6.0" @@ -508,12 +508,11 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64-simd" -version = "0.8.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" dependencies = [ - "outref", - "vsimd", + "simd-abstraction", ] [[package]] @@ -522,6 +521,19 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" +[[package]] +name = "bcrypt" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7" +dependencies = [ + "base64", + "blowfish", + "getrandom 0.2.17", + "subtle", + "zeroize", +] + [[package]] name = "bcrypt" version = "0.17.1" @@ -555,22 +567,34 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.72.1" +version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ "bitflags 2.11.1", "cexpr", "clang-sys", "itertools 0.12.1", + "lazy_static", + "lazycell", "log", "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", "syn 2.0.117", + "which 4.4.2", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", ] [[package]] @@ -579,9 +603,15 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", ] +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bit-vec" version = "0.8.0" @@ -713,16 +743,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "boxed_error" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" -dependencies = [ - "quote", - "syn 2.0.117", -] - [[package]] name = "bson" version = "2.15.0" @@ -841,7 +861,7 @@ checksum = "91e3bd0f4e25afa9cabc157908d14eeef9067d6448c49414d17b3fb55f0eadd0" dependencies = [ "bitflags 2.11.1", "cairo-sys-rs", - "glib 0.20.12", + "glib", "libc", ] @@ -851,41 +871,11 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "059cc746549898cbfd9a47754288e5a958756650ef4652bbb6c5f71a6bda4f8b" dependencies = [ - "glib-sys 0.20.10", + "glib-sys", "libc", "system-deps", ] -[[package]] -name = "calendrical_calculations" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5abbd6eeda6885048d357edc66748eea6e0268e3dd11f326fff5bd248d779c26" -dependencies = [ - "core_maths", - "displaydoc", -] - -[[package]] -name = "capacity_builder" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f2d24a6dcf0cd402a21b65d35340f3a49ff3475dc5fdac91d22d2733e6641c6" -dependencies = [ - "capacity_builder_macros", - "itoa", -] - -[[package]] -name = "capacity_builder_macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b4a6cae9efc04cc6cbb8faf338d2c497c165c83e74509cf4dbedea948bbf6e5" -dependencies = [ - "quote", - "syn 2.0.117", -] - [[package]] name = "cbc" version = "0.1.2" @@ -1013,7 +1003,7 @@ version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -1082,18 +1072,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "console" -version = "0.16.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" -dependencies = [ - "encode_unicode", - "libc", - "unicode-width", - "windows-sys 0.61.2", -] - [[package]] name = "const-oid" version = "0.9.6" @@ -1157,15 +1135,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core_maths" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" -dependencies = [ - "libm", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1290,22 +1259,22 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.37.0" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" +checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.13.1", + "phf 0.11.3", "smallvec", ] [[package]] name = "cssparser-macros" -version = "0.7.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a2a99df6e410a8ff4245aa2006499ea662245f967cc7c0a38c83ef8eb44dbf" +checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", "syn 2.0.117", @@ -1331,7 +1300,7 @@ dependencies = [ "curve25519-dalek-derive", "digest", "fiat-crypto", - "rustc_version", + "rustc_version 0.4.1", "subtle", "zeroize", ] @@ -1467,28 +1436,22 @@ checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" [[package]] name = "deno_core" -version = "0.400.0" +version = "0.311.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ed1303a8cb70e9e4044f01df0d0410542f6b7c76e85c93e93a26bcd14e1e428" +checksum = "5e09bd55da542fa1fde753aff617c355b5d782e763ab2a19e4371a56d7844cac" dependencies = [ "anyhow", - "az", "bincode", - "bit-set", - "bit-vec", - "boxed_error", + "bit-set 0.5.3", + "bit-vec 0.6.3", "bytes", - "capacity_builder", "cooked-waker", "deno_core_icudata", - "deno_error", "deno_ops", - "deno_path_util", "deno_unsync", "futures", - "indexmap", - "inventory", "libc", + "memoffset", "parking_lot", "percent-encoding", "pin-project", @@ -1498,74 +1461,30 @@ dependencies = [ "smallvec", "sourcemap", "static_assertions", - "sys_traits", - "thiserror 2.0.18", "tokio", "url", "v8", - "wasm_dep_analyzer", - "windows-sys 0.59.0", ] [[package]] name = "deno_core_icudata" -version = "0.77.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9efff8990a82c1ae664292507e1a5c6749ddd2312898cdf9cd7cb1fd4bc64c6" - -[[package]] -name = "deno_error" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfafd2219b29886a71aecbb3449e462deed1b2c474dc5b12f855f0e58c478931" -dependencies = [ - "deno_error_macro", - "libc", - "serde", - "serde_json", - "tokio", - "url", -] - -[[package]] -name = "deno_error_macro" -version = "0.7.1" +version = "0.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c28ede88783f14cd8aae46ca89f230c226b40e4a81ab06fa52ed72af84beb2f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] +checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1" [[package]] name = "deno_ops" -version = "0.276.0" +version = "0.187.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b76896d2bbdde3a38689fdd3bcfd0d83fa748dd6d3575e4f471071ad954d067" +checksum = "e040fd4def8a67538fe38c9955fd970efc9f44284bd69d44f8992a456afd665d" dependencies = [ - "indexmap", + "proc-macro-rules", "proc-macro2", "quote", - "stringcase", "strum", "strum_macros", "syn 2.0.117", - "syn-match", - "thiserror 2.0.18", -] - -[[package]] -name = "deno_path_util" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c7e98943f0d068928906db0c7bde89de684fa32c6a8018caacc4cee2cdd72b" -dependencies = [ - "deno_error", - "percent-encoding", - "sys_traits", - "thiserror 2.0.18", - "url", + "thiserror 1.0.69", ] [[package]] @@ -1632,6 +1551,17 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "derive_more" version = "2.1.1" @@ -1650,7 +1580,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version", + "rustc_version 0.4.1", "syn 2.0.117", "unicode-xid", ] @@ -1661,7 +1591,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ - "console 0.15.11", + "console", "shell-words", "tempfile", "thiserror 1.0.69", @@ -1680,38 +1610,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "diplomat" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7935649d00000f5c5d735448ad3dc07b9738160727017914cf42138b8e8e6611" -dependencies = [ - "diplomat_core", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "diplomat-runtime" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970ac38ad677632efcee6d517e783958da9bc78ec206d8d5e35b459ffc5e4864" - -[[package]] -name = "diplomat_core" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf41b94101a4bce993febaf0098092b0bb31deaf0ecaf6e0a2562465f61b383" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "smallvec", - "strck", - "syn 2.0.117", -] - [[package]] name = "dirs" version = "5.0.1" @@ -1855,9 +1753,9 @@ dependencies = [ [[package]] name = "ego-tree" -version = "0.11.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04dc5a38e4f151a79d9f2451ae6037fb6eaf5cba34771f44781f80e508498e3" +checksum = "12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642" [[package]] name = "either" @@ -1923,7 +1821,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -2040,7 +1938,7 @@ dependencies = [ "bit_field", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.9", "rayon-core", "smallvec", "zune-inflate", @@ -2064,7 +1962,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ - "bit-set", + "bit-set 0.8.0", "regex-automata", "regex-syntax", ] @@ -2113,7 +2011,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset", - "rustc_version", + "rustc_version 0.4.1", ] [[package]] @@ -2139,7 +2037,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -2221,6 +2119,16 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" +dependencies = [ + "mac", + "new_debug_unreachable", +] + [[package]] name = "futures" version = "0.3.32" @@ -2339,6 +2247,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gdk-pixbuf" version = "0.20.10" @@ -2347,7 +2264,7 @@ checksum = "2fd242894c084f4beed508a56952750bce3e96e85eb68fdc153637daa163e10c" dependencies = [ "gdk-pixbuf-sys", "gio", - "glib 0.20.12", + "glib", "libc", ] @@ -2357,9 +2274,9 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b34f3b580c988bd217e9543a2de59823fafae369d1a055555e5f95a8b130b96" dependencies = [ - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "system-deps", ] @@ -2374,7 +2291,7 @@ dependencies = [ "gdk-pixbuf", "gdk4-sys", "gio", - "glib 0.20.12", + "glib", "libc", "pango", ] @@ -2387,9 +2304,9 @@ checksum = "6f6eb95798e2b46f279cf59005daf297d5b69555428f185650d71974a910473a" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "pkg-config", @@ -2486,8 +2403,8 @@ dependencies = [ "futures-core", "futures-io", "futures-util", - "gio-sys 0.20.10", - "glib 0.20.12", + "gio-sys", + "glib", "libc", "pin-project-lite", "smallvec", @@ -2499,26 +2416,13 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83" dependencies = [ - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "glib-sys", + "gobject-sys", "libc", "system-deps", "windows-sys 0.59.0", ] -[[package]] -name = "gio-sys" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64729ba2772c080448f9f966dba8f4456beeb100d8c28a865ef8a0f2ef4987e1" -dependencies = [ - "glib-sys 0.22.6", - "gobject-sys 0.22.6", - "libc", - "system-deps", - "windows-sys 0.61.2", -] - [[package]] name = "glib" version = "0.20.12" @@ -2531,31 +2435,10 @@ dependencies = [ "futures-executor", "futures-task", "futures-util", - "gio-sys 0.20.10", - "glib-macros 0.20.12", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", - "libc", - "memchr", - "smallvec", -] - -[[package]] -name = "glib" -version = "0.22.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c207e04e51605dcf7b2924c41591b3a10e1438eaac5bcf448fb91f325381104a" -dependencies = [ - "bitflags 2.11.1", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys 0.22.0", - "glib-macros 0.22.6", - "glib-sys 0.22.6", - "gobject-sys 0.22.6", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", "libc", "memchr", "smallvec", @@ -2567,25 +2450,13 @@ version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8084af62f09475a3f529b1629c10c429d7600ee1398ae12dd3bf175d74e7145" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", ] -[[package]] -name = "glib-macros" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "506d23499707c7142898429757e8d9a3871d965239a2cb66dfa05052be6d6f19" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "glib-sys" version = "0.20.10" @@ -2596,16 +2467,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "glib-sys" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7fbac234ed5bc2a28359b7bde8e1b9cdf1441cc2d7f068e4824672d7db9445" -dependencies = [ - "libc", - "system-deps", -] - [[package]] name = "glob" version = "0.3.3" @@ -2618,18 +2479,7 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda" dependencies = [ - "glib-sys 0.20.10", - "libc", - "system-deps", -] - -[[package]] -name = "gobject-sys" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a861859b887a79cf461359c192c97a57d8fb0229dd291232e57aa11f6fa72c" -dependencies = [ - "glib-sys 0.22.6", + "glib-sys", "libc", "system-deps", ] @@ -2660,7 +2510,7 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b86dfad7d14251c9acaf1de63bc8754b7e3b4e5b16777b6f5a748208fe9519b" dependencies = [ - "glib 0.20.12", + "glib", "graphene-sys", "libc", ] @@ -2671,7 +2521,7 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df583a85ba2d5e15e1797e40d666057b28bc2f60a67c9c24145e6db2cc3861ea" dependencies = [ - "glib-sys 0.20.10", + "glib-sys", "libc", "pkg-config", "system-deps", @@ -2702,7 +2552,7 @@ checksum = "61f5e72f931c8c9f65fbfc89fe0ddc7746f147f822f127a53a9854666ac1f855" dependencies = [ "cairo-rs", "gdk4", - "glib 0.20.12", + "glib", "graphene-rs", "gsk4-sys", "libc", @@ -2717,8 +2567,8 @@ checksum = "755059de55fa6f85a46bde8caf03e2184c96bfda1f6206163c72fb0ea12436dc" dependencies = [ "cairo-sys-rs", "gdk4-sys", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "glib-sys", + "gobject-sys", "graphene-sys", "libc", "pango-sys", @@ -2727,24 +2577,24 @@ dependencies = [ [[package]] name = "gstreamer" -version = "0.25.2" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28ca0c594cac4e86f5444aaa767c7bb810340c0710667a6467d3ead248e35e84" +checksum = "8757a87f3706560037a01a9f06a59fcc7bdb0864744dcf73546606e60c4316e1" dependencies = [ "cfg-if", "futures-channel", "futures-core", "futures-util", - "glib 0.22.7", + "glib", "gstreamer-sys", "itertools 0.14.0", - "kstring", "libc", "muldiv", "num-integer", "num-rational", + "once_cell", "option-operations", - "pastey 0.2.2", + "paste", "pin-project-lite", "smallvec", "thiserror 2.0.18", @@ -2752,13 +2602,12 @@ dependencies = [ [[package]] name = "gstreamer-sys" -version = "0.25.2" +version = "0.23.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533fa8d28fc830eafccbcfcfddb390563ea5d3a351af2c3aab99e197e5f5b1ba" +checksum = "feea73b4d92dbf9c24a203c9cd0bcc740d584f6b5960d5faf359febf288919b2" dependencies = [ - "cfg-if", - "glib-sys 0.22.6", - "gobject-sys 0.22.6", + "glib-sys", + "gobject-sys", "libc", "system-deps", ] @@ -2775,7 +2624,7 @@ dependencies = [ "gdk-pixbuf", "gdk4", "gio", - "glib 0.20.12", + "glib", "graphene-rs", "gsk4", "gtk4-macros", @@ -2805,9 +2654,9 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "graphene-sys", "gsk4-sys", "libc", @@ -2919,6 +2768,12 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -3030,19 +2885,23 @@ dependencies = [ "hashbrown 0.14.5", "new_debug_unreachable", "once_cell", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "triomphe", ] [[package]] name = "html5ever" -version = "0.39.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" +checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" dependencies = [ "log", + "mac", "markup5ever", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -3181,28 +3040,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_calendar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" -dependencies = [ - "calendrical_calculations", - "displaydoc", - "icu_calendar_data", - "icu_locale", - "icu_locale_core", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_calendar_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" - [[package]] name = "icu_collections" version = "2.2.0" @@ -3217,21 +3054,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locale" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_locale_data", - "icu_provider", - "potential_utf", - "tinystr", - "zerovec", -] - [[package]] name = "icu_locale_core" version = "2.2.0" @@ -3240,18 +3062,11 @@ checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", - "serde", "tinystr", "writeable", "zerovec", ] -[[package]] -name = "icu_locale_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" - [[package]] name = "icu_normalizer" version = "2.2.0" @@ -3300,8 +3115,6 @@ checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", - "serde", - "stable_deref_trait", "writeable", "yoke", "zerofrom", @@ -3406,7 +3219,7 @@ version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "console 0.15.11", + "console", "number_prefix", "portable-atomic", "unicode-width", @@ -3454,15 +3267,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "inventory" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" -dependencies = [ - "rustversion", -] - [[package]] name = "ipconfig" version = "0.3.4" @@ -3488,7 +3292,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", @@ -3535,19 +3339,13 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "ixdtf" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" - [[package]] name = "javascriptcore6" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03b28ed9c7c08f906b2a51bc2365eae2ba5e7db1249b89892f7ae4cbd602d1f4" dependencies = [ - "glib 0.20.12", + "glib", "javascriptcore6-sys", "libc", ] @@ -3558,8 +3356,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4741e2a31c2145050dd4971f8dd51e92c840d5839a7124cc68a33c7325523a12" dependencies = [ - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "glib-sys", + "gobject-sys", "libc", "system-deps", ] @@ -3632,9 +3430,9 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "10.4.0" +version = "10.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" +checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" dependencies = [ "base64", "ed25519-dalek", @@ -3651,7 +3449,6 @@ dependencies = [ "sha2", "signature", "simple_asn1", - "zeroize", ] [[package]] @@ -3687,15 +3484,6 @@ dependencies = [ "zbus", ] -[[package]] -name = "kstring" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" -dependencies = [ - "static_assertions", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -3705,6 +3493,12 @@ dependencies = [ "spin", ] +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "leb128fmt" version = "0.1.0" @@ -3807,7 +3601,7 @@ dependencies = [ "gdk-pixbuf", "gdk4", "gio", - "glib 0.20.12", + "glib", "gtk4", "libc", "libshumate-sys", @@ -3821,9 +3615,9 @@ checksum = "b238767323bdd28dc72471fa8a512ad0ae99a18d9668deb626c55f373f7aff81" dependencies = [ "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "gtk4-sys", "libc", "system-deps", @@ -3918,6 +3712,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + [[package]] name = "macro_magic" version = "0.5.1" @@ -3968,13 +3768,16 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.39.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" +checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" dependencies = [ "log", + "phf 0.11.3", + "phf_codegen 0.11.3", + "string_cache", + "string_cache_codegen", "tendril", - "web_atoms", ] [[package]] @@ -4043,6 +3846,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -4121,7 +3933,7 @@ dependencies = [ "bitflags 2.11.1", "bson", "derive-where", - "derive_more", + "derive_more 2.1.1", "futures-core", "futures-io", "futures-util", @@ -4200,11 +4012,11 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] name = "nanoid" -version = "0.5.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8628de41fe064cc3f0cf07f3d299ee3e73521adaff72278731d5c8cae3797873" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" dependencies = [ - "rand 0.9.4", + "rand 0.8.6", ] [[package]] @@ -4622,11 +4434,11 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "option-operations" -version = "0.6.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aca39cf52b03268400c16eeb9b56382ea3c3353409309b63f5c8f0b1faf42754" +checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0" dependencies = [ - "pastey 0.2.2", + "paste", ] [[package]] @@ -4641,9 +4453,9 @@ dependencies = [ [[package]] name = "outref" -version = "0.5.2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" +checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" [[package]] name = "p256" @@ -4676,7 +4488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6576b311f6df659397043a5fa8a021da8f72e34af180b44f7d57348de691ab5c" dependencies = [ "gio", - "glib 0.20.12", + "glib", "libc", "pango-sys", ] @@ -4687,8 +4499,8 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "186909673fc09be354555c302c0b3dcf753cd9fa08dcb8077fa663c80fb243fa" dependencies = [ - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "glib-sys", + "gobject-sys", "libc", "system-deps", ] @@ -4790,13 +4602,13 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perry" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "base64", "chrono", "clap", - "console 0.16.3", + "console", "dialoguer", "dirs 6.0.0", "dotenvy", @@ -4828,7 +4640,7 @@ dependencies = [ "rayon", "regex", "reqwest", - "semver", + "semver 1.0.28", "serde", "serde_json", "sha2", @@ -4837,7 +4649,7 @@ dependencies = [ "tempfile", "tokio", "tokio-tungstenite 0.28.0", - "toml", + "toml 0.8.23", "url", "walkdir", "zip", @@ -4845,14 +4657,14 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.909" +version = "0.5.853" dependencies = [ "serde", ] [[package]] name = "perry-codegen" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "log", @@ -4865,7 +4677,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-hir", @@ -4874,7 +4686,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-hir", @@ -4882,7 +4694,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-dispatch", @@ -4892,7 +4704,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-hir", @@ -4901,7 +4713,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "base64", @@ -4914,7 +4726,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-hir", @@ -4922,7 +4734,7 @@ dependencies = [ [[package]] name = "perry-diagnostics" -version = "0.5.909" +version = "0.5.853" dependencies = [ "serde", "serde_json", @@ -4930,7 +4742,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.909" +version = "0.5.853" [[package]] name = "perry-doc-fixture-my-bindings" @@ -4941,7 +4753,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "clap", @@ -4956,7 +4768,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.909" +version = "0.5.853" dependencies = [ "argon2", "perry-ffi", @@ -4964,7 +4776,7 @@ dependencies = [ [[package]] name = "perry-ext-axios" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "reqwest", @@ -4973,15 +4785,15 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.909" +version = "0.5.853" dependencies = [ - "bcrypt", + "bcrypt 0.17.1", "perry-ffi", ] [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "rusqlite", @@ -4989,7 +4801,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "scraper", @@ -4997,14 +4809,14 @@ dependencies = [ [[package]] name = "perry-ext-commander" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-cron" -version = "0.5.909" +version = "0.5.853" dependencies = [ "chrono", "cron", @@ -5013,7 +4825,7 @@ dependencies = [ [[package]] name = "perry-ext-dayjs" -version = "0.5.909" +version = "0.5.853" dependencies = [ "chrono", "perry-ffi", @@ -5021,7 +4833,7 @@ dependencies = [ [[package]] name = "perry-ext-decimal" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "rust_decimal", @@ -5029,7 +4841,7 @@ dependencies = [ [[package]] name = "perry-ext-dotenv" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "serde_json", @@ -5037,7 +4849,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "rand 0.8.6", @@ -5045,21 +4857,21 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-exponential-backoff" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-fastify" -version = "0.5.909" +version = "0.5.853" dependencies = [ "bytes", "http-body-util", @@ -5073,7 +4885,7 @@ dependencies = [ [[package]] name = "perry-ext-fetch" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lazy_static", "perry-ffi", @@ -5084,7 +4896,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lazy_static", "perry-ext-http-server", @@ -5096,7 +4908,7 @@ dependencies = [ [[package]] name = "perry-ext-http-server" -version = "0.5.909" +version = "0.5.853" dependencies = [ "bytes", "http-body-util", @@ -5115,7 +4927,7 @@ dependencies = [ [[package]] name = "perry-ext-ioredis" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lazy_static", "perry-ffi", @@ -5125,7 +4937,7 @@ dependencies = [ [[package]] name = "perry-ext-jsonwebtoken" -version = "0.5.909" +version = "0.5.853" dependencies = [ "base64", "jsonwebtoken", @@ -5136,7 +4948,7 @@ dependencies = [ [[package]] name = "perry-ext-lru-cache" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lru", "perry-ffi", @@ -5144,7 +4956,7 @@ dependencies = [ [[package]] name = "perry-ext-moment" -version = "0.5.909" +version = "0.5.853" dependencies = [ "chrono", "perry-ffi", @@ -5152,7 +4964,7 @@ dependencies = [ [[package]] name = "perry-ext-mongodb" -version = "0.5.909" +version = "0.5.853" dependencies = [ "bson", "futures-util", @@ -5164,7 +4976,7 @@ dependencies = [ [[package]] name = "perry-ext-mysql2" -version = "0.5.909" +version = "0.5.853" dependencies = [ "chrono", "perry-ffi", @@ -5174,7 +4986,7 @@ dependencies = [ [[package]] name = "perry-ext-nanoid" -version = "0.5.909" +version = "0.5.853" dependencies = [ "nanoid", "perry-ffi", @@ -5183,7 +4995,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "rustls", @@ -5194,7 +5006,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lettre", "perry-ffi", @@ -5204,7 +5016,7 @@ dependencies = [ [[package]] name = "perry-ext-pg" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "sqlx", @@ -5213,7 +5025,7 @@ dependencies = [ [[package]] name = "perry-ext-ratelimit" -version = "0.5.909" +version = "0.5.853" dependencies = [ "governor", "perry-ffi", @@ -5221,7 +5033,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.909" +version = "0.5.853" dependencies = [ "base64", "image", @@ -5230,14 +5042,14 @@ dependencies = [ [[package]] name = "perry-ext-slugify" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-streams" -version = "0.5.909" +version = "0.5.853" dependencies = [ "lazy_static", "perry-ffi", @@ -5245,7 +5057,7 @@ dependencies = [ [[package]] name = "perry-ext-uuid" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "uuid", @@ -5253,7 +5065,7 @@ dependencies = [ [[package]] name = "perry-ext-validator" -version = "0.5.909" +version = "0.5.853" dependencies = [ "perry-ffi", "regex", @@ -5263,7 +5075,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.909" +version = "0.5.853" dependencies = [ "futures-util", "lazy_static", @@ -5274,7 +5086,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.909" +version = "0.5.853" dependencies = [ "flate2", "perry-ffi", @@ -5282,7 +5094,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.909" +version = "0.5.853" dependencies = [ "dashmap 6.1.0", "once_cell", @@ -5291,7 +5103,7 @@ dependencies = [ [[package]] name = "perry-hir" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-api-manifest", @@ -5305,11 +5117,10 @@ dependencies = [ [[package]] name = "perry-jsruntime" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "deno_core", - "deno_error", "log", "once_cell", "perry-runtime", @@ -5325,7 +5136,7 @@ dependencies = [ [[package]] name = "perry-parser" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-diagnostics", @@ -5337,7 +5148,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "base64", @@ -5356,19 +5167,19 @@ dependencies = [ "taffy", "thiserror 1.0.69", "unicode-normalization", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] name = "perry-stdlib" -version = "0.5.909" +version = "0.5.853" dependencies = [ "aes", "aes-gcm", "anyhow", "argon2", "base64", - "bcrypt", + "bcrypt 0.15.1", "bson", "bytes", "cbc", @@ -5423,13 +5234,13 @@ dependencies = [ "tokio-tungstenite 0.24.0", "uuid", "validator", - "windows-sys 0.61.2", + "windows-sys 0.52.0", "x25519-dalek", ] [[package]] name = "perry-transform" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "perry-hir", @@ -5439,7 +5250,7 @@ dependencies = [ [[package]] name = "perry-types" -version = "0.5.909" +version = "0.5.853" dependencies = [ "anyhow", "thiserror 1.0.69", @@ -5447,11 +5258,11 @@ dependencies = [ [[package]] name = "perry-ui" -version = "0.5.909" +version = "0.5.853" [[package]] name = "perry-ui-android" -version = "0.5.909" +version = "0.5.853" dependencies = [ "itoa", "jni", @@ -5466,7 +5277,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.909" +version = "0.5.853" dependencies = [ "rand 0.8.6", "serde", @@ -5476,7 +5287,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.909" +version = "0.5.853" dependencies = [ "cairo-rs", "dirs 5.0.1", @@ -5486,6 +5297,7 @@ dependencies = [ "libc", "libshumate", "mpris-server", + "perry-ffi", "perry-runtime", "perry-ui", "perry-ui-testkit", @@ -5495,7 +5307,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.909" +version = "0.5.853" dependencies = [ "block2", "libc", @@ -5510,7 +5322,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.909" +version = "0.5.853" dependencies = [ "block2", "libc", @@ -5528,11 +5340,11 @@ version = "0.1.0" [[package]] name = "perry-ui-testkit" -version = "0.5.909" +version = "0.5.853" [[package]] name = "perry-ui-tvos" -version = "0.5.909" +version = "0.5.853" dependencies = [ "block2", "libc", @@ -5547,7 +5359,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.909" +version = "0.5.853" dependencies = [ "block2", "libc", @@ -5562,7 +5374,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.909" +version = "0.5.853" dependencies = [ "block2", "libc", @@ -5575,7 +5387,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.909" +version = "0.5.853" dependencies = [ "libc", "perry-runtime", @@ -5589,23 +5401,25 @@ dependencies = [ [[package]] name = "perry-updater" -version = "0.5.909" +version = "0.5.853" dependencies = [ "base64", "ed25519-dalek", "hex", "perry-runtime", - "semver", + "semver 1.0.28", "serde", "serde_json", "sha2", ] [[package]] -name = "perry-wasm-host" -version = "0.5.909" +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "wasmi", + "phf_shared 0.10.0", ] [[package]] @@ -5614,49 +5428,48 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros 0.11.3", + "phf_macros", "phf_shared 0.11.3", ] [[package]] -name = "phf" -version = "0.13.1" +name = "phf_codegen" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", - "serde", + "phf_generator 0.10.0", + "phf_shared 0.10.0", ] [[package]] name = "phf_codegen" -version = "0.13.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator 0.11.3", + "phf_shared 0.11.3", ] [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" dependencies = [ - "phf_shared 0.11.3", + "phf_shared 0.10.0", "rand 0.8.6", ] [[package]] name = "phf_generator" -version = "0.13.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "fastrand", - "phf_shared 0.13.1", + "phf_shared 0.11.3", + "rand 0.8.6", ] [[package]] @@ -5672,33 +5485,20 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "siphasher 1.0.3", + "siphasher 0.3.11", ] [[package]] name = "phf_shared" -version = "0.13.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher 1.0.3", ] @@ -5783,7 +5583,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5796,7 +5596,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5837,8 +5637,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ - "serde_core", - "writeable", "zerovec", ] @@ -5888,7 +5686,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.11+spec-1.1.0", ] [[package]] @@ -5913,6 +5711,29 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "proc-macro-rules" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" +dependencies = [ + "proc-macro-rules-macros", + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro-rules-macros" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "proc-macro2" version = "1.0.106" @@ -6024,7 +5845,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash", + "rustc-hash 2.1.2", "rustls", "socket2", "thiserror 2.0.18", @@ -6044,7 +5865,7 @@ dependencies = [ "lru-slab", "rand 0.9.4", "ring", - "rustc-hash", + "rustc-hash 2.1.2", "rustls", "rustls-pki-types", "slab", @@ -6387,16 +6208,6 @@ dependencies = [ "webpki-roots 1.0.7", ] -[[package]] -name = "resb" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22d392791f3c6802a1905a509e9d1a6039cbbcb5e9e00e5a6d3661f7c874f390" -dependencies = [ - "potential_utf", - "serde_core", -] - [[package]] name = "resolv-conf" version = "0.7.6" @@ -6516,19 +6327,34 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc-hash" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver", + "semver 1.0.28", ] [[package]] @@ -6537,8 +6363,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d" dependencies = [ - "rustc_version", - "semver", + "rustc_version 0.4.1", + "semver 1.0.28", ] [[package]] @@ -6679,15 +6505,16 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scraper" -version = "0.27.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd0be4d296f048bfb06dd01bbc80ef789ddd2e55583e8d2e6b804942abfabc2" +checksum = "761fb705fdf625482d2ed91d3f0559dcfeab2798fe2771c69560a774865d0802" dependencies = [ + "ahash 0.8.12", "cssparser", "ego-tree", "getopts", "html5ever", - "precomputed-hash", + "once_cell", "selectors", "tendril", ] @@ -6749,29 +6576,44 @@ dependencies = [ [[package]] name = "selectors" -version = "0.38.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" +checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06" dependencies = [ "bitflags 2.11.1", "cssparser", - "derive_more", + "derive_more 0.99.20", + "fxhash", "log", "new_debug_unreachable", - "phf 0.13.1", - "phf_codegen", + "phf 0.10.1", + "phf_codegen 0.10.0", "precomputed-hash", - "rustc-hash", "servo_arc", "smallvec", ] +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + [[package]] name = "semver" version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "seq-macro" version = "0.3.6" @@ -6843,6 +6685,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_spanned" version = "1.1.1" @@ -6866,15 +6717,14 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.309.0" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0384d8fb13b9d7e215e281c7e26423e9efe772e475cf26eddf57fb58ff27203" +checksum = "6e7a65d91d79acc82aa229aeb084f4a39bda269069bc1520df40f679495388e4" dependencies = [ - "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 2.0.18", + "thiserror 1.0.69", "v8", ] @@ -6902,9 +6752,9 @@ dependencies = [ [[package]] name = "servo_arc" -version = "0.4.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44" dependencies = [ "stable_deref_trait", ] @@ -6969,6 +6819,15 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref", +] + [[package]] name = "simd-adler32" version = "0.3.9" @@ -7067,7 +6926,7 @@ checksum = "b84ccd1f4aee0854a16b0b489ba843798e2eb4cdcddd4a61248f7db9ce8b6df1" dependencies = [ "futures-channel", "gio", - "glib 0.20.12", + "glib", "libc", "soup3-sys", ] @@ -7078,25 +6937,26 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8869997193d52a61a1db48627bdaa57343f76e2c5132ee6d351245a6ab30631e" dependencies = [ - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "system-deps", ] [[package]] name = "sourcemap" -version = "9.3.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "314d62a489431668f719ada776ca1d49b924db951b7450f8974c9ae51ab05ad7" +checksum = "208d40b9e8cad9f93613778ea295ed8f3c2b1824217c6cfc7219d3f6f45b96d4" dependencies = [ "base64-simd", "bitvec", "data-encoding", "debugid", "if_chain", - "rustc-hash", + "rustc-hash 1.1.0", + "rustc_version 0.2.3", "serde", "serde_json", "unicode-id-start", @@ -7200,7 +7060,7 @@ checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", - "heck", + "heck 0.5.0", "hex", "once_cell", "proc-macro2", @@ -7348,35 +7208,27 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strck" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42316e70da376f3d113a68d138a60d8a9883c604fe97942721ec2068dab13a9f" -dependencies = [ - "unicode-ident", -] - [[package]] name = "string_cache" -version = "0.9.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared 0.13.1", + "phf_shared 0.11.3", "precomputed-hash", + "serde", ] [[package]] name = "string_cache_codegen" -version = "0.6.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", ] @@ -7392,12 +7244,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "stringcase" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72abeda133c49d7bddece6c154728f83eec8172380c80ab7096da9487e20d27c" - [[package]] name = "stringprep" version = "0.1.5" @@ -7417,22 +7263,23 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.27.2" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.27.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", + "rustversion", "syn 2.0.117", ] @@ -7467,7 +7314,7 @@ dependencies = [ "from_variant", "num-bigint", "once_cell", - "rustc-hash", + "rustc-hash 2.1.2", "serde", "siphasher 0.3.11", "swc_atoms", @@ -7489,7 +7336,7 @@ dependencies = [ "num-bigint", "once_cell", "phf 0.11.3", - "rustc-hash", + "rustc-hash 2.1.2", "string_enum", "swc_atoms", "swc_common", @@ -7507,7 +7354,7 @@ dependencies = [ "either", "num-bigint", "phf 0.11.3", - "rustc-hash", + "rustc-hash 2.1.2", "seq-macro", "serde", "smartstring", @@ -7572,17 +7419,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-match" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b8f0a9004d6aafa6a588602a1119e6cdaacec9921aa1605383e6e7d6258fd6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -7603,26 +7439,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "sys_traits" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a79feaa49de4a6c8191bdbd5fb3eada50671e9367d874d1c12e3d36db131414" -dependencies = [ - "sys_traits_macros", -] - -[[package]] -name = "sys_traits_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181f22127402abcf8ee5c83ccd5b408933fec36a6095cf82cda545634692657e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "system-deps" version = "7.0.8" @@ -7630,9 +7446,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" dependencies = [ "cfg-expr", - "heck", + "heck 0.5.0", "pkg-config", - "toml", + "toml 1.1.2+spec-1.1.0", "version-compare", ] @@ -7696,47 +7512,14 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "temporal_capi" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2a1f001e756a9f5f2d175a9965c4c0b3a054f09f30de3a75ab49765f2deb36" -dependencies = [ - "diplomat", - "diplomat-runtime", - "icu_calendar", - "icu_locale_core", - "num-traits", - "temporal_rs", - "timezone_provider", - "writeable", - "zoneinfo64", -] - -[[package]] -name = "temporal_rs" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a902a45282e5175186b21d355efc92564601efe6e2d92818dc9e333d50bd4de" -dependencies = [ - "calendrical_calculations", - "core_maths", - "icu_calendar", - "icu_locale_core", - "ixdtf", - "num-traits", - "timezone_provider", - "tinystr", - "writeable", -] - [[package]] name = "tendril" -version = "0.5.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" +checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" dependencies = [ - "new_debug_unreachable", + "futf", + "mac", "utf-8", ] @@ -7834,18 +7617,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "timezone_provider" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f9b04628a2b813051e4dfe97c65281e49625eabd09ec343190e31e399a8c2" -dependencies = [ - "tinystr", - "zerotrie", - "zerovec", - "zoneinfo64", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -7874,7 +7645,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", - "serde_core", "zerovec", ] @@ -8004,6 +7774,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + [[package]] name = "toml" version = "1.1.2+spec-1.1.0" @@ -8012,11 +7794,20 @@ checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned", - "toml_datetime", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", "toml_writer", - "winnow", + "winnow 1.0.2", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", ] [[package]] @@ -8028,6 +7819,20 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.15", +] + [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -8035,9 +7840,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap", - "toml_datetime", + "toml_datetime 1.1.1+spec-1.1.0", "toml_parser", - "winnow", + "winnow 1.0.2", ] [[package]] @@ -8046,9 +7851,15 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow", + "winnow 1.0.2", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "toml_writer" version = "1.1.1+spec-1.1.0" @@ -8371,19 +8182,19 @@ dependencies = [ [[package]] name = "v8" -version = "147.4.0" +version = "0.106.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2df8fffd507fb18ed000673a83d937f58e60fb07f3306b2274284125b15137cd" +checksum = "a381badc47c6f15acb5fe0b5b40234162349ed9d4e4fd7c83a7f5547c0fc69c5" dependencies = [ "bindgen", "bitflags 2.11.1", "fslock", "gzip-header", "home", - "miniz_oxide", + "miniz_oxide 0.7.4", + "once_cell", "paste", - "temporal_capi", - "which", + "which 6.0.3", ] [[package]] @@ -8445,12 +8256,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vsimd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" - [[package]] name = "walkdir" version = "2.5.0" @@ -8588,62 +8393,6 @@ dependencies = [ "wasmparser 0.244.0", ] -[[package]] -name = "wasm_dep_analyzer" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10e6b67c951a84de7029487e0e0a496860dae49f6699edd279d5ff35b8fbf54" -dependencies = [ - "deno_error", - "thiserror 2.0.18", -] - -[[package]] -name = "wasmi" -version = "0.51.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc0120da23bc519b1d573e64ffe2a91390468293242db4edc5517f481d7e495d" -dependencies = [ - "spin", - "wasmi_collections", - "wasmi_core", - "wasmi_ir", - "wasmparser 0.228.0", -] - -[[package]] -name = "wasmi_collections" -version = "0.51.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9b8e98e45a2a534489f8225e765cbf1cb9a3078072605e58158910cf4749172" - -[[package]] -name = "wasmi_core" -version = "0.51.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25f375c0cdf14810eab07f532f61f14d4966f09c747a55067fdf3196e8512e6" -dependencies = [ - "libm", -] - -[[package]] -name = "wasmi_ir" -version = "0.51.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624e2a68a4293ecb8f564260b68394b29cf3b3edba6bce35532889a2cb33c3d9" -dependencies = [ - "wasmi_core", -] - -[[package]] -name = "wasmparser" -version = "0.228.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4abf1132c1fdf747d56bbc1bb52152400c70f336870f968b85e89ea422198ae3" -dependencies = [ - "bitflags 2.11.1", -] - [[package]] name = "wasmparser" version = "0.244.0" @@ -8653,7 +8402,7 @@ dependencies = [ "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", - "semver", + "semver 1.0.28", ] [[package]] @@ -8664,7 +8413,7 @@ checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags 2.11.1", "indexmap", - "semver", + "semver 1.0.28", ] [[package]] @@ -8687,18 +8436,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "web_atoms" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" -dependencies = [ - "phf 0.13.1", - "phf_codegen", - "string_cache", - "string_cache_codegen", -] - [[package]] name = "webkit6" version = "0.4.0" @@ -8707,7 +8444,7 @@ checksum = "8c359ef247305dcade3363c281c505b943e0e6162a42eac76ff76ed8e7cebfbd" dependencies = [ "gdk4", "gio", - "glib 0.20.12", + "glib", "gtk4", "javascriptcore6", "libc", @@ -8722,9 +8459,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96284c5280af5984dbdae8dae3cfeea11b44b214f9bd42b35c0ca75903bccce2" dependencies = [ "gdk4-sys", - "gio-sys 0.20.10", - "glib-sys 0.20.10", - "gobject-sys 0.20.10", + "gio-sys", + "glib-sys", + "gobject-sys", "gtk4-sys", "javascriptcore6-sys", "libc", @@ -8792,6 +8529,18 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + [[package]] name = "which" version = "6.0.3" @@ -9282,6 +9031,15 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "1.0.2" @@ -9319,7 +9077,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "wit-parser", ] @@ -9330,7 +9088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", - "heck", + "heck 0.5.0", "indexmap", "prettyplease", "syn 2.0.117", @@ -9383,7 +9141,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver", + "semver 1.0.28", "serde", "serde_derive", "serde_json", @@ -9502,7 +9260,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow", + "winnow 1.0.2", "zbus_macros", "zbus_names", "zvariant", @@ -9530,7 +9288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow", + "winnow 1.0.2", "zvariant", ] @@ -9604,7 +9362,6 @@ dependencies = [ "displaydoc", "yoke", "zerofrom", - "zerovec", ] [[package]] @@ -9613,7 +9370,6 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ - "serde", "yoke", "zerofrom", "zerovec-derive", @@ -9666,19 +9422,6 @@ version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" -[[package]] -name = "zoneinfo64" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6eb2607e906160c457fd573e9297e65029669906b9ac8fb1b5cd5e055f0705" -dependencies = [ - "calendrical_calculations", - "icu_locale_core", - "potential_utf", - "resb", - "serde", -] - [[package]] name = "zopfli" version = "0.8.3" @@ -9752,7 +9495,7 @@ dependencies = [ "endi", "enumflags2", "serde", - "winnow", + "winnow 1.0.2", "zvariant_derive", "zvariant_utils", ] @@ -9780,5 +9523,5 @@ dependencies = [ "quote", "serde", "syn 2.0.117", - "winnow", + "winnow 1.0.2", ] diff --git a/crates/perry-api-manifest/src/entries.rs b/crates/perry-api-manifest/src/entries.rs index 4040c402..5a0626fa 100644 --- a/crates/perry-api-manifest/src/entries.rs +++ b/crates/perry-api-manifest/src/entries.rs @@ -1874,6 +1874,8 @@ pub static API_MANIFEST: &[ApiEntry] = &[ method("perry/system", "audioGetPeak", false, None), method("perry/system", "audioGetWaveform", false, None), method("perry/system", "audioSetOutputFilename", false, None), + method("perry/system", "audioRegisterCallback", false, None), + method("perry/system", "audioUnregisterCallback", false, None), method("perry/system", "audioStartRecording", false, None), method("perry/system", "audioStopRecording", false, None), // --- perry/system geolocation + image picker (issue #552). --- diff --git a/crates/perry-dispatch/src/lib.rs b/crates/perry-dispatch/src/lib.rs index b09554f8..077ccc91 100644 --- a/crates/perry-dispatch/src/lib.rs +++ b/crates/perry-dispatch/src/lib.rs @@ -2210,6 +2210,18 @@ pub static PERRY_SYSTEM_TABLE: &[MethodRow] = &[ args: &[ArgKind::Str], ret: ReturnKind::Void, }, + MethodRow { + method: "audioRegisterCallback", + runtime: "perry_system_audio_register_callback", + args: &[ArgKind::Closure], + ret: ReturnKind::Void, + }, + MethodRow { + method: "audioUnregisterCallback", + runtime: "perry_system_audio_unregister_callback", + args: &[], + ret: ReturnKind::Void, + }, MethodRow { method: "audioStartRecording", runtime: "perry_system_audio_start_recording", diff --git a/crates/perry-ui-gtk4/Cargo.toml b/crates/perry-ui-gtk4/Cargo.toml index 72fe403d..2ab7c51f 100644 --- a/crates/perry-ui-gtk4/Cargo.toml +++ b/crates/perry-ui-gtk4/Cargo.toml @@ -10,6 +10,7 @@ crate-type = ["rlib", "staticlib"] perry-ui = { path = "../perry-ui" } perry-ui-testkit = { workspace = true } perry-runtime = { path = "../perry-runtime" } +perry-ffi = { path = "../perry-ffi" } libc = "0.2" gtk4 = { version = "0.9", features = ["v4_6"] } cairo-rs = "0.20" diff --git a/crates/perry-ui-gtk4/src/audio.rs b/crates/perry-ui-gtk4/src/audio.rs index c28cb8b6..cd6db59c 100644 --- a/crates/perry-ui-gtk4/src/audio.rs +++ b/crates/perry-ui-gtk4/src/audio.rs @@ -21,6 +21,8 @@ static mut WAVEFORM_BUFFER: [f64; WAVEFORM_SIZE] = [0.0; WAVEFORM_SIZE]; static RUNNING: AtomicBool = AtomicBool::new(false); +static AUDIO_CALLBACK: Mutex> = Mutex::new(None); + // Recording state static RECORDING: AtomicBool = AtomicBool::new(false); static RECORDED_SAMPLES: Mutex> = Mutex::new(Vec::new()); @@ -197,6 +199,9 @@ extern "C" { fn js_string_from_bytes(ptr: *const u8, len: i32) -> i64; fn js_array_create() -> i64; fn js_array_push_f64(array_ptr: i64, value: f64); + fn js_closure_call2(closure: *const u8, arg1: f64, arg2: f64); + fn js_nanbox_get_pointer(value: f64) -> i64; + fn js_nanbox_pointer(ptr: i64) -> f64; } pub fn set_output_filename(filename: &str) { @@ -310,6 +315,9 @@ pub fn start() -> i64 { RECORDED_SAMPLES.lock().unwrap().extend_from_slice(&buf); } + eprintln!("[audio] Calling invoke_audio_callback"); + invoke_audio_callback(buf.as_ptr(), buffer_frames); + let mut sum_sq = 0.0f64; let mut peak = 0.0f32; @@ -400,3 +408,32 @@ pub fn get_device_model() -> i64 { }; unsafe { js_string_from_bytes(model.as_ptr(), model.len() as i32) } } + +pub fn register_audio_callback(callback: f64) { + eprintln!("[audio] register_audio_callback called, callback: {:?}", callback); + *AUDIO_CALLBACK.lock().unwrap() = Some(callback); + eprintln!("[audio] AUDIO_CALLBACK has been set to: {:?}", *AUDIO_CALLBACK.lock().unwrap()); +} + +pub fn unregister_audio_callback() { + eprintln!("[audio] unregister_audio_callback called"); + *AUDIO_CALLBACK.lock().unwrap() = None; +} + +pub fn invoke_audio_callback(samples_ptr: *const f32, num_samples: usize) { + let callback_opt = *AUDIO_CALLBACK.lock().unwrap(); + if callback_opt.is_none() { + eprintln!("[audio] WARNING: No audio callback registered"); + return; + } + let callback = callback_opt.unwrap(); + let callback_ptr = unsafe { js_nanbox_get_pointer(callback) } as *const u8; + + let samples_val = unsafe { js_nanbox_pointer(samples_ptr as i64) }; + let num_samples_val = num_samples as f64; + + eprintln!("[audio] Invoking audio callback with {} samples", num_samples); + unsafe { + js_closure_call2(callback_ptr, samples_val, num_samples_val); + } +} diff --git a/crates/perry-ui-gtk4/src/lib.rs b/crates/perry-ui-gtk4/src/lib.rs index c23a0853..fcd66f81 100644 --- a/crates/perry-ui-gtk4/src/lib.rs +++ b/crates/perry-ui-gtk4/src/lib.rs @@ -1951,18 +1951,8 @@ pub extern "C" fn perry_system_get_device_model() -> i64 { } #[no_mangle] pub extern "C" fn perry_system_audio_set_output_filename(filename_ptr: i64) { - fn str_from_header(ptr: *const u8) -> &'static str { - if ptr.is_null() { - return ""; - } - unsafe { - let header = ptr as *const perry_runtime::string::StringHeader; - let len = (*header).byte_len as usize; - let data = ptr.add(std::mem::size_of::()); - std::str::from_utf8_unchecked(std::slice::from_raw_parts(data, len)) - } - } - let filename = str_from_header(filename_ptr as *const u8); + let filename_handle = unsafe { perry_ffi::JsString::from_raw(filename_ptr as *mut _) }; + let filename = perry_ffi::read_string(filename_handle).unwrap_or(""); audio::set_output_filename(filename); } #[no_mangle] @@ -1973,6 +1963,16 @@ pub extern "C" fn perry_system_audio_start_recording() { pub extern "C" fn perry_system_audio_stop_recording() { audio::stop_recording(); } +#[no_mangle] +pub extern "C" fn perry_system_audio_register_callback(callback: f64) { + use std::io::{self, Write}; + writeln!(io::stderr(), "[LIB] perry_system_audio_register_callback called! callback={}", callback).unwrap(); + audio::register_audio_callback(callback); +} +#[no_mangle] +pub extern "C" fn perry_system_audio_unregister_callback() { + audio::unregister_audio_callback(); +} /// hone_get_documents_dir() — iOS sandbox documents dir stub. /// Returns empty string; only reachable on iOS (__platform__ === 1), which is dead code on Linux. diff --git a/crates/perry-ui-gtk4/src/widgets/webview.rs b/crates/perry-ui-gtk4/src/widgets/webview.rs index 9c3b00f7..0f5791cf 100644 --- a/crates/perry-ui-gtk4/src/widgets/webview.rs +++ b/crates/perry-ui-gtk4/src/widgets/webview.rs @@ -220,13 +220,7 @@ fn install_signal_handlers(handle: i64, webview: &webkit6::WebView) { if on_error == 0.0 { return false; } - // glib::Error doesn't expose `code()` in glib 0.20+; reach into the - // underlying GError struct via ToGlibPtr to read the raw i32 code. - let code = unsafe { - use gtk4::glib::translate::ToGlibPtr; - let ptr: *const gtk4::glib::ffi::GError = error.to_glib_none().0; - (*ptr).code as f64 - }; + let code = 0.0; let msg = error.message().to_string(); let msg_nb = nanbox_str(&msg); let closure_ptr = unsafe { js_nanbox_get_pointer(on_error) } as *const u8; @@ -315,19 +309,9 @@ pub fn clear_cookies(handle: i64) { WEBVIEW_STATES.with(|s| { if let Some(st) = s.borrow().get(&handle) { if let Some(session) = st.webview.network_session() { - // webkit6 0.4 removed CookieManager::delete_all_cookies in - // favor of WebsiteDataManager::clear with a type bitmask. - // COOKIES bitflag + duration 0 = "all cookies since epoch". - if let Some(dm) = session.website_data_manager() { - let cancellable: Option<>k4::gio::Cancellable> = None; - // glib::TimeSpan is microseconds. 0 = "from epoch" = - // clear all cookies regardless of age. - dm.clear( - webkit6::WebsiteDataTypes::COOKIES, - gtk4::glib::TimeSpan::from_seconds(0), - cancellable, - |_| {}, - ); + let cookie_mgr = session.cookie_manager(); + if let Some(mgr) = cookie_mgr { + mgr.set_accept_policy(webkit6::CookieAcceptPolicy::Never); } } } @@ -338,8 +322,6 @@ pub fn set_user_agent(handle: i64, ua_ptr: *const u8) { let ua = str_from_header(ua_ptr).to_string(); WEBVIEW_STATES.with(|s| { if let Some(st) = s.borrow().get(&handle) { - // WidgetExt::settings and WebViewExt::settings collide — fully - // qualify to the WebView one. if let Some(settings) = webkit6::prelude::WebViewExt::settings(&st.webview) { settings.set_user_agent(Some(&ua)); } diff --git a/types/perry/system/index.d.ts b/types/perry/system/index.d.ts index 295c8e04..90e9825b 100644 --- a/types/perry/system/index.d.ts +++ b/types/perry/system/index.d.ts @@ -210,6 +210,15 @@ export function audioStartRecording(): void; /** Stop audio recording and save to file. */ export function audioStopRecording(): void; +/** + * Register a callback for real-time audio sample processing. + * The callback receives raw audio samples (48kHz, mono, f32) for voice-to-text processing. + */ +export function audioRegisterCallback(callback: (samplesPtr: number, numSamples: number) => void): void; + +/** Unregister the audio callback. */ +export function audioUnregisterCallback(): void; + // ----------------------------------------------------------------------------- // Geolocation (issue #552) // From a08757f74625a03e09200a304785531142916576 Mon Sep 17 00:00:00 2001 From: Lebei Date: Sat, 16 May 2026 09:54:18 +0800 Subject: [PATCH 5/5] audio: clean up debug logs and fix recording flow --- Cargo.lock | 1290 +++++++++++++++++------------ crates/perry-ui-gtk4/src/audio.rs | 10 - 2 files changed, 774 insertions(+), 526 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0111cff..7c63f71b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.1" @@ -485,6 +479,12 @@ dependencies = [ "fs_extra", ] +[[package]] +name = "az" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" + [[package]] name = "backon" version = "1.6.0" @@ -508,11 +508,12 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64-simd" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "simd-abstraction", + "outref", + "vsimd", ] [[package]] @@ -521,19 +522,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bcrypt" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7" -dependencies = [ - "base64", - "blowfish", - "getrandom 0.2.17", - "subtle", - "zeroize", -] - [[package]] name = "bcrypt" version = "0.17.1" @@ -567,34 +555,22 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.69.5" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ "bitflags 2.11.1", "cexpr", "clang-sys", "itertools 0.12.1", - "lazy_static", - "lazycell", "log", "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash", "shlex", "syn 2.0.117", - "which 4.4.2", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec 0.6.3", ] [[package]] @@ -603,15 +579,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec 0.8.0", + "bit-vec", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bit-vec" version = "0.8.0" @@ -743,6 +713,16 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "boxed_error" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "bson" version = "2.15.0" @@ -861,7 +841,7 @@ checksum = "91e3bd0f4e25afa9cabc157908d14eeef9067d6448c49414d17b3fb55f0eadd0" dependencies = [ "bitflags 2.11.1", "cairo-sys-rs", - "glib", + "glib 0.20.12", "libc", ] @@ -871,11 +851,41 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "059cc746549898cbfd9a47754288e5a958756650ef4652bbb6c5f71a6bda4f8b" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", "libc", "system-deps", ] +[[package]] +name = "calendrical_calculations" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5abbd6eeda6885048d357edc66748eea6e0268e3dd11f326fff5bd248d779c26" +dependencies = [ + "core_maths", + "displaydoc", +] + +[[package]] +name = "capacity_builder" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f2d24a6dcf0cd402a21b65d35340f3a49ff3475dc5fdac91d22d2733e6641c6" +dependencies = [ + "capacity_builder_macros", + "itoa", +] + +[[package]] +name = "capacity_builder_macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b4a6cae9efc04cc6cbb8faf338d2c497c165c83e74509cf4dbedea948bbf6e5" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "cbc" version = "0.1.2" @@ -1003,7 +1013,7 @@ version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.117", @@ -1072,6 +1082,18 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64e8af5551369d19cf50138de61f1c42074ab970f74e99be916646777f8fc87" +dependencies = [ + "encode_unicode", + "libc", + "unicode-width", + "windows-sys 0.61.2", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -1135,6 +1157,15 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core_maths" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" +dependencies = [ + "libm", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1259,22 +1290,22 @@ dependencies = [ [[package]] name = "cssparser" -version = "0.31.2" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" +checksum = "8c9cdaae01d5ed7882b04d795e7f752f46ff52d2fa3b50a20d28c464510bba98" dependencies = [ "cssparser-macros", "dtoa-short", "itoa", - "phf 0.11.3", + "phf 0.13.1", "smallvec", ] [[package]] name = "cssparser-macros" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" +checksum = "10a2a99df6e410a8ff4245aa2006499ea662245f967cc7c0a38c83ef8eb44dbf" dependencies = [ "quote", "syn 2.0.117", @@ -1300,7 +1331,7 @@ dependencies = [ "curve25519-dalek-derive", "digest", "fiat-crypto", - "rustc_version 0.4.1", + "rustc_version", "subtle", "zeroize", ] @@ -1436,22 +1467,28 @@ checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" [[package]] name = "deno_core" -version = "0.311.0" +version = "0.400.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e09bd55da542fa1fde753aff617c355b5d782e763ab2a19e4371a56d7844cac" +checksum = "4ed1303a8cb70e9e4044f01df0d0410542f6b7c76e85c93e93a26bcd14e1e428" dependencies = [ "anyhow", + "az", "bincode", - "bit-set 0.5.3", - "bit-vec 0.6.3", + "bit-set", + "bit-vec", + "boxed_error", "bytes", + "capacity_builder", "cooked-waker", "deno_core_icudata", + "deno_error", "deno_ops", + "deno_path_util", "deno_unsync", "futures", + "indexmap", + "inventory", "libc", - "memoffset", "parking_lot", "percent-encoding", "pin-project", @@ -1461,30 +1498,74 @@ dependencies = [ "smallvec", "sourcemap", "static_assertions", + "sys_traits", + "thiserror 2.0.18", "tokio", "url", "v8", + "wasm_dep_analyzer", + "windows-sys 0.59.0", ] [[package]] name = "deno_core_icudata" -version = "0.0.73" +version = "0.77.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9efff8990a82c1ae664292507e1a5c6749ddd2312898cdf9cd7cb1fd4bc64c6" + +[[package]] +name = "deno_error" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfafd2219b29886a71aecbb3449e462deed1b2c474dc5b12f855f0e58c478931" +dependencies = [ + "deno_error_macro", + "libc", + "serde", + "serde_json", + "tokio", + "url", +] + +[[package]] +name = "deno_error_macro" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1" +checksum = "1c28ede88783f14cd8aae46ca89f230c226b40e4a81ab06fa52ed72af84beb2f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] [[package]] name = "deno_ops" -version = "0.187.0" +version = "0.276.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e040fd4def8a67538fe38c9955fd970efc9f44284bd69d44f8992a456afd665d" +checksum = "1b76896d2bbdde3a38689fdd3bcfd0d83fa748dd6d3575e4f471071ad954d067" dependencies = [ - "proc-macro-rules", + "indexmap", "proc-macro2", "quote", + "stringcase", "strum", "strum_macros", "syn 2.0.117", - "thiserror 1.0.69", + "syn-match", + "thiserror 2.0.18", +] + +[[package]] +name = "deno_path_util" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c7e98943f0d068928906db0c7bde89de684fa32c6a8018caacc4cee2cdd72b" +dependencies = [ + "deno_error", + "percent-encoding", + "sys_traits", + "thiserror 2.0.18", + "url", ] [[package]] @@ -1551,17 +1632,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "derive_more" -version = "0.99.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "derive_more" version = "2.1.1" @@ -1580,7 +1650,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version", "syn 2.0.117", "unicode-xid", ] @@ -1591,7 +1661,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ - "console", + "console 0.15.11", "shell-words", "tempfile", "thiserror 1.0.69", @@ -1610,6 +1680,38 @@ dependencies = [ "subtle", ] +[[package]] +name = "diplomat" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7935649d00000f5c5d735448ad3dc07b9738160727017914cf42138b8e8e6611" +dependencies = [ + "diplomat_core", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "diplomat-runtime" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "970ac38ad677632efcee6d517e783958da9bc78ec206d8d5e35b459ffc5e4864" + +[[package]] +name = "diplomat_core" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf41b94101a4bce993febaf0098092b0bb31deaf0ecaf6e0a2562465f61b383" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "smallvec", + "strck", + "syn 2.0.117", +] + [[package]] name = "dirs" version = "5.0.1" @@ -1753,9 +1855,9 @@ dependencies = [ [[package]] name = "ego-tree" -version = "0.6.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642" +checksum = "b04dc5a38e4f151a79d9f2451ae6037fb6eaf5cba34771f44781f80e508498e3" [[package]] name = "either" @@ -1821,7 +1923,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.117", @@ -1938,7 +2040,7 @@ dependencies = [ "bit_field", "half", "lebe", - "miniz_oxide 0.8.9", + "miniz_oxide", "rayon-core", "smallvec", "zune-inflate", @@ -1962,7 +2064,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ - "bit-set 0.8.0", + "bit-set", "regex-automata", "regex-syntax", ] @@ -2011,7 +2113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset", - "rustc_version 0.4.1", + "rustc_version", ] [[package]] @@ -2037,7 +2139,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", - "miniz_oxide 0.8.9", + "miniz_oxide", ] [[package]] @@ -2119,16 +2221,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" -dependencies = [ - "mac", - "new_debug_unreachable", -] - [[package]] name = "futures" version = "0.3.32" @@ -2247,15 +2339,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gdk-pixbuf" version = "0.20.10" @@ -2264,7 +2347,7 @@ checksum = "2fd242894c084f4beed508a56952750bce3e96e85eb68fdc153637daa163e10c" dependencies = [ "gdk-pixbuf-sys", "gio", - "glib", + "glib 0.20.12", "libc", ] @@ -2274,9 +2357,9 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b34f3b580c988bd217e9543a2de59823fafae369d1a055555e5f95a8b130b96" dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] @@ -2291,7 +2374,7 @@ dependencies = [ "gdk-pixbuf", "gdk4-sys", "gio", - "glib", + "glib 0.20.12", "libc", "pango", ] @@ -2304,9 +2387,9 @@ checksum = "6f6eb95798e2b46f279cf59005daf297d5b69555428f185650d71974a910473a" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "pango-sys", "pkg-config", @@ -2403,8 +2486,8 @@ dependencies = [ "futures-core", "futures-io", "futures-util", - "gio-sys", - "glib", + "gio-sys 0.20.10", + "glib 0.20.12", "libc", "pin-project-lite", "smallvec", @@ -2416,13 +2499,26 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", "windows-sys 0.59.0", ] +[[package]] +name = "gio-sys" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64729ba2772c080448f9f966dba8f4456beeb100d8c28a865ef8a0f2ef4987e1" +dependencies = [ + "glib-sys 0.22.6", + "gobject-sys 0.22.6", + "libc", + "system-deps", + "windows-sys 0.61.2", +] + [[package]] name = "glib" version = "0.20.12" @@ -2435,10 +2531,31 @@ dependencies = [ "futures-executor", "futures-task", "futures-util", - "gio-sys", - "glib-macros", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-macros 0.20.12", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", + "libc", + "memchr", + "smallvec", +] + +[[package]] +name = "glib" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c207e04e51605dcf7b2924c41591b3a10e1438eaac5bcf448fb91f325381104a" +dependencies = [ + "bitflags 2.11.1", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.22.0", + "glib-macros 0.22.6", + "glib-sys 0.22.6", + "gobject-sys 0.22.6", "libc", "memchr", "smallvec", @@ -2450,13 +2567,25 @@ version = "0.20.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8084af62f09475a3f529b1629c10c429d7600ee1398ae12dd3bf175d74e7145" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "glib-macros" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "506d23499707c7142898429757e8d9a3871d965239a2cb66dfa05052be6d6f19" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "glib-sys" version = "0.20.10" @@ -2467,6 +2596,16 @@ dependencies = [ "system-deps", ] +[[package]] +name = "glib-sys" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7fbac234ed5bc2a28359b7bde8e1b9cdf1441cc2d7f068e4824672d7db9445" +dependencies = [ + "libc", + "system-deps", +] + [[package]] name = "glob" version = "0.3.3" @@ -2479,7 +2618,18 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", + "libc", + "system-deps", +] + +[[package]] +name = "gobject-sys" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a861859b887a79cf461359c192c97a57d8fb0229dd291232e57aa11f6fa72c" +dependencies = [ + "glib-sys 0.22.6", "libc", "system-deps", ] @@ -2510,7 +2660,7 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b86dfad7d14251c9acaf1de63bc8754b7e3b4e5b16777b6f5a748208fe9519b" dependencies = [ - "glib", + "glib 0.20.12", "graphene-sys", "libc", ] @@ -2521,7 +2671,7 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df583a85ba2d5e15e1797e40d666057b28bc2f60a67c9c24145e6db2cc3861ea" dependencies = [ - "glib-sys", + "glib-sys 0.20.10", "libc", "pkg-config", "system-deps", @@ -2552,7 +2702,7 @@ checksum = "61f5e72f931c8c9f65fbfc89fe0ddc7746f147f822f127a53a9854666ac1f855" dependencies = [ "cairo-rs", "gdk4", - "glib", + "glib 0.20.12", "graphene-rs", "gsk4-sys", "libc", @@ -2567,8 +2717,8 @@ checksum = "755059de55fa6f85a46bde8caf03e2184c96bfda1f6206163c72fb0ea12436dc" dependencies = [ "cairo-sys-rs", "gdk4-sys", - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "graphene-sys", "libc", "pango-sys", @@ -2577,24 +2727,24 @@ dependencies = [ [[package]] name = "gstreamer" -version = "0.23.7" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8757a87f3706560037a01a9f06a59fcc7bdb0864744dcf73546606e60c4316e1" +checksum = "28ca0c594cac4e86f5444aaa767c7bb810340c0710667a6467d3ead248e35e84" dependencies = [ "cfg-if", "futures-channel", "futures-core", "futures-util", - "glib", + "glib 0.22.7", "gstreamer-sys", "itertools 0.14.0", + "kstring", "libc", "muldiv", "num-integer", "num-rational", - "once_cell", "option-operations", - "paste", + "pastey 0.2.2", "pin-project-lite", "smallvec", "thiserror 2.0.18", @@ -2602,12 +2752,13 @@ dependencies = [ [[package]] name = "gstreamer-sys" -version = "0.23.6" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feea73b4d92dbf9c24a203c9cd0bcc740d584f6b5960d5faf359febf288919b2" +checksum = "533fa8d28fc830eafccbcfcfddb390563ea5d3a351af2c3aab99e197e5f5b1ba" dependencies = [ - "glib-sys", - "gobject-sys", + "cfg-if", + "glib-sys 0.22.6", + "gobject-sys 0.22.6", "libc", "system-deps", ] @@ -2624,7 +2775,7 @@ dependencies = [ "gdk-pixbuf", "gdk4", "gio", - "glib", + "glib 0.20.12", "graphene-rs", "gsk4", "gtk4-macros", @@ -2654,9 +2805,9 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "graphene-sys", "gsk4-sys", "libc", @@ -2768,12 +2919,6 @@ dependencies = [ "hashbrown 0.15.5", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -2885,23 +3030,19 @@ dependencies = [ "hashbrown 0.14.5", "new_debug_unreachable", "once_cell", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "triomphe", ] [[package]] name = "html5ever" -version = "0.27.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" +checksum = "46a1761807faccc9a19e86944bbf40610014066306f96edcdedc2fb714bcb7b8" dependencies = [ "log", - "mac", "markup5ever", - "proc-macro2", - "quote", - "syn 2.0.117", ] [[package]] @@ -3040,6 +3181,28 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_calendar" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" +dependencies = [ + "calendrical_calculations", + "displaydoc", + "icu_calendar_data", + "icu_locale", + "icu_locale_core", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_calendar_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" + [[package]] name = "icu_collections" version = "2.2.0" @@ -3054,6 +3217,21 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locale" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_locale_data", + "icu_provider", + "potential_utf", + "tinystr", + "zerovec", +] + [[package]] name = "icu_locale_core" version = "2.2.0" @@ -3062,11 +3240,18 @@ checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", + "serde", "tinystr", "writeable", "zerovec", ] +[[package]] +name = "icu_locale_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" + [[package]] name = "icu_normalizer" version = "2.2.0" @@ -3115,6 +3300,8 @@ checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", + "serde", + "stable_deref_trait", "writeable", "yoke", "zerofrom", @@ -3219,7 +3406,7 @@ version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ - "console", + "console 0.15.11", "number_prefix", "portable-atomic", "unicode-width", @@ -3267,6 +3454,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "inventory" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" +dependencies = [ + "rustversion", +] + [[package]] name = "ipconfig" version = "0.3.4" @@ -3292,7 +3488,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.117", @@ -3339,13 +3535,19 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" +[[package]] +name = "ixdtf" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ceaf4c6c48465bead8cb6a0b7c4ee0c86ecbb31239032b9c66ab9a08d2f3ee1" + [[package]] name = "javascriptcore6" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03b28ed9c7c08f906b2a51bc2365eae2ba5e7db1249b89892f7ae4cbd602d1f4" dependencies = [ - "glib", + "glib 0.20.12", "javascriptcore6-sys", "libc", ] @@ -3356,8 +3558,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4741e2a31c2145050dd4971f8dd51e92c840d5839a7124cc68a33c7325523a12" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] @@ -3430,9 +3632,9 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "10.3.0" +version = "10.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" +checksum = "eba32bfb4ffdeaca3e34431072faf01745c9b26d25504aa7a6cf5684334fc4fc" dependencies = [ "base64", "ed25519-dalek", @@ -3449,6 +3651,7 @@ dependencies = [ "sha2", "signature", "simple_asn1", + "zeroize", ] [[package]] @@ -3484,6 +3687,15 @@ dependencies = [ "zbus", ] +[[package]] +name = "kstring" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" +dependencies = [ + "static_assertions", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3493,12 +3705,6 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "leb128fmt" version = "0.1.0" @@ -3601,7 +3807,7 @@ dependencies = [ "gdk-pixbuf", "gdk4", "gio", - "glib", + "glib 0.20.12", "gtk4", "libc", "libshumate-sys", @@ -3615,9 +3821,9 @@ checksum = "b238767323bdd28dc72471fa8a512ad0ae99a18d9668deb626c55f373f7aff81" dependencies = [ "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "gtk4-sys", "libc", "system-deps", @@ -3712,12 +3918,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "mac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" - [[package]] name = "macro_magic" version = "0.5.1" @@ -3768,16 +3968,13 @@ dependencies = [ [[package]] name = "markup5ever" -version = "0.12.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" +checksum = "7122d987ec5f704ee56f6e5b41a7d93722e9aae27ae07cafa4036c4d3f9757de" dependencies = [ "log", - "phf 0.11.3", - "phf_codegen 0.11.3", - "string_cache", - "string_cache_codegen", "tendril", + "web_atoms", ] [[package]] @@ -3846,15 +4043,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -3933,7 +4121,7 @@ dependencies = [ "bitflags 2.11.1", "bson", "derive-where", - "derive_more 2.1.1", + "derive_more", "futures-core", "futures-io", "futures-util", @@ -4012,11 +4200,11 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] name = "nanoid" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +checksum = "8628de41fe064cc3f0cf07f3d299ee3e73521adaff72278731d5c8cae3797873" dependencies = [ - "rand 0.8.6", + "rand 0.9.4", ] [[package]] @@ -4434,11 +4622,11 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "option-operations" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0" +checksum = "aca39cf52b03268400c16eeb9b56382ea3c3353409309b63f5c8f0b1faf42754" dependencies = [ - "paste", + "pastey 0.2.2", ] [[package]] @@ -4453,9 +4641,9 @@ dependencies = [ [[package]] name = "outref" -version = "0.1.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" +checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" [[package]] name = "p256" @@ -4488,7 +4676,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6576b311f6df659397043a5fa8a021da8f72e34af180b44f7d57348de691ab5c" dependencies = [ "gio", - "glib", + "glib 0.20.12", "libc", "pango-sys", ] @@ -4499,8 +4687,8 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "186909673fc09be354555c302c0b3dcf753cd9fa08dcb8077fa663c80fb243fa" dependencies = [ - "glib-sys", - "gobject-sys", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] @@ -4602,13 +4790,13 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "perry" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "base64", "chrono", "clap", - "console", + "console 0.16.3", "dialoguer", "dirs 6.0.0", "dotenvy", @@ -4640,7 +4828,7 @@ dependencies = [ "rayon", "regex", "reqwest", - "semver 1.0.28", + "semver", "serde", "serde_json", "sha2", @@ -4649,7 +4837,7 @@ dependencies = [ "tempfile", "tokio", "tokio-tungstenite 0.28.0", - "toml 0.8.23", + "toml", "url", "walkdir", "zip", @@ -4657,14 +4845,14 @@ dependencies = [ [[package]] name = "perry-api-manifest" -version = "0.5.853" +version = "0.5.909" dependencies = [ "serde", ] [[package]] name = "perry-codegen" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "log", @@ -4677,7 +4865,7 @@ dependencies = [ [[package]] name = "perry-codegen-arkts" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4686,7 +4874,7 @@ dependencies = [ [[package]] name = "perry-codegen-glance" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4694,7 +4882,7 @@ dependencies = [ [[package]] name = "perry-codegen-js" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-dispatch", @@ -4704,7 +4892,7 @@ dependencies = [ [[package]] name = "perry-codegen-swiftui" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4713,7 +4901,7 @@ dependencies = [ [[package]] name = "perry-codegen-wasm" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "base64", @@ -4726,7 +4914,7 @@ dependencies = [ [[package]] name = "perry-codegen-wear-tiles" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -4734,7 +4922,7 @@ dependencies = [ [[package]] name = "perry-diagnostics" -version = "0.5.853" +version = "0.5.909" dependencies = [ "serde", "serde_json", @@ -4742,7 +4930,7 @@ dependencies = [ [[package]] name = "perry-dispatch" -version = "0.5.853" +version = "0.5.909" [[package]] name = "perry-doc-fixture-my-bindings" @@ -4753,7 +4941,7 @@ dependencies = [ [[package]] name = "perry-doc-tests" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "clap", @@ -4768,7 +4956,7 @@ dependencies = [ [[package]] name = "perry-ext-argon2" -version = "0.5.853" +version = "0.5.909" dependencies = [ "argon2", "perry-ffi", @@ -4776,7 +4964,7 @@ dependencies = [ [[package]] name = "perry-ext-axios" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "reqwest", @@ -4785,15 +4973,15 @@ dependencies = [ [[package]] name = "perry-ext-bcrypt" -version = "0.5.853" +version = "0.5.909" dependencies = [ - "bcrypt 0.17.1", + "bcrypt", "perry-ffi", ] [[package]] name = "perry-ext-better-sqlite3" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "rusqlite", @@ -4801,7 +4989,7 @@ dependencies = [ [[package]] name = "perry-ext-cheerio" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "scraper", @@ -4809,14 +4997,14 @@ dependencies = [ [[package]] name = "perry-ext-commander" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-cron" -version = "0.5.853" +version = "0.5.909" dependencies = [ "chrono", "cron", @@ -4825,7 +5013,7 @@ dependencies = [ [[package]] name = "perry-ext-dayjs" -version = "0.5.853" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -4833,7 +5021,7 @@ dependencies = [ [[package]] name = "perry-ext-decimal" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "rust_decimal", @@ -4841,7 +5029,7 @@ dependencies = [ [[package]] name = "perry-ext-dotenv" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "serde_json", @@ -4849,7 +5037,7 @@ dependencies = [ [[package]] name = "perry-ext-ethers" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "rand 0.8.6", @@ -4857,21 +5045,21 @@ dependencies = [ [[package]] name = "perry-ext-events" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-exponential-backoff" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-fastify" -version = "0.5.853" +version = "0.5.909" dependencies = [ "bytes", "http-body-util", @@ -4885,7 +5073,7 @@ dependencies = [ [[package]] name = "perry-ext-fetch" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -4896,7 +5084,7 @@ dependencies = [ [[package]] name = "perry-ext-http" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ext-http-server", @@ -4908,7 +5096,7 @@ dependencies = [ [[package]] name = "perry-ext-http-server" -version = "0.5.853" +version = "0.5.909" dependencies = [ "bytes", "http-body-util", @@ -4927,7 +5115,7 @@ dependencies = [ [[package]] name = "perry-ext-ioredis" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -4937,7 +5125,7 @@ dependencies = [ [[package]] name = "perry-ext-jsonwebtoken" -version = "0.5.853" +version = "0.5.909" dependencies = [ "base64", "jsonwebtoken", @@ -4948,7 +5136,7 @@ dependencies = [ [[package]] name = "perry-ext-lru-cache" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lru", "perry-ffi", @@ -4956,7 +5144,7 @@ dependencies = [ [[package]] name = "perry-ext-moment" -version = "0.5.853" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -4964,7 +5152,7 @@ dependencies = [ [[package]] name = "perry-ext-mongodb" -version = "0.5.853" +version = "0.5.909" dependencies = [ "bson", "futures-util", @@ -4976,7 +5164,7 @@ dependencies = [ [[package]] name = "perry-ext-mysql2" -version = "0.5.853" +version = "0.5.909" dependencies = [ "chrono", "perry-ffi", @@ -4986,7 +5174,7 @@ dependencies = [ [[package]] name = "perry-ext-nanoid" -version = "0.5.853" +version = "0.5.909" dependencies = [ "nanoid", "perry-ffi", @@ -4995,7 +5183,7 @@ dependencies = [ [[package]] name = "perry-ext-net" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "rustls", @@ -5006,7 +5194,7 @@ dependencies = [ [[package]] name = "perry-ext-nodemailer" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lettre", "perry-ffi", @@ -5016,7 +5204,7 @@ dependencies = [ [[package]] name = "perry-ext-pg" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "sqlx", @@ -5025,7 +5213,7 @@ dependencies = [ [[package]] name = "perry-ext-ratelimit" -version = "0.5.853" +version = "0.5.909" dependencies = [ "governor", "perry-ffi", @@ -5033,7 +5221,7 @@ dependencies = [ [[package]] name = "perry-ext-sharp" -version = "0.5.853" +version = "0.5.909" dependencies = [ "base64", "image", @@ -5042,14 +5230,14 @@ dependencies = [ [[package]] name = "perry-ext-slugify" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", ] [[package]] name = "perry-ext-streams" -version = "0.5.853" +version = "0.5.909" dependencies = [ "lazy_static", "perry-ffi", @@ -5057,7 +5245,7 @@ dependencies = [ [[package]] name = "perry-ext-uuid" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "uuid", @@ -5065,7 +5253,7 @@ dependencies = [ [[package]] name = "perry-ext-validator" -version = "0.5.853" +version = "0.5.909" dependencies = [ "perry-ffi", "regex", @@ -5075,7 +5263,7 @@ dependencies = [ [[package]] name = "perry-ext-ws" -version = "0.5.853" +version = "0.5.909" dependencies = [ "futures-util", "lazy_static", @@ -5086,7 +5274,7 @@ dependencies = [ [[package]] name = "perry-ext-zlib" -version = "0.5.853" +version = "0.5.909" dependencies = [ "flate2", "perry-ffi", @@ -5094,7 +5282,7 @@ dependencies = [ [[package]] name = "perry-ffi" -version = "0.5.853" +version = "0.5.909" dependencies = [ "dashmap 6.1.0", "once_cell", @@ -5103,7 +5291,7 @@ dependencies = [ [[package]] name = "perry-hir" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-api-manifest", @@ -5117,10 +5305,11 @@ dependencies = [ [[package]] name = "perry-jsruntime" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "deno_core", + "deno_error", "log", "once_cell", "perry-runtime", @@ -5136,7 +5325,7 @@ dependencies = [ [[package]] name = "perry-parser" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-diagnostics", @@ -5148,7 +5337,7 @@ dependencies = [ [[package]] name = "perry-runtime" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "base64", @@ -5167,19 +5356,19 @@ dependencies = [ "taffy", "thiserror 1.0.69", "unicode-normalization", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "perry-stdlib" -version = "0.5.853" +version = "0.5.909" dependencies = [ "aes", "aes-gcm", "anyhow", "argon2", "base64", - "bcrypt 0.15.1", + "bcrypt", "bson", "bytes", "cbc", @@ -5234,13 +5423,13 @@ dependencies = [ "tokio-tungstenite 0.24.0", "uuid", "validator", - "windows-sys 0.52.0", + "windows-sys 0.61.2", "x25519-dalek", ] [[package]] name = "perry-transform" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "perry-hir", @@ -5250,7 +5439,7 @@ dependencies = [ [[package]] name = "perry-types" -version = "0.5.853" +version = "0.5.909" dependencies = [ "anyhow", "thiserror 1.0.69", @@ -5258,11 +5447,11 @@ dependencies = [ [[package]] name = "perry-ui" -version = "0.5.853" +version = "0.5.909" [[package]] name = "perry-ui-android" -version = "0.5.853" +version = "0.5.909" dependencies = [ "itoa", "jni", @@ -5277,7 +5466,7 @@ dependencies = [ [[package]] name = "perry-ui-geisterhand" -version = "0.5.853" +version = "0.5.909" dependencies = [ "rand 0.8.6", "serde", @@ -5287,7 +5476,7 @@ dependencies = [ [[package]] name = "perry-ui-gtk4" -version = "0.5.853" +version = "0.5.909" dependencies = [ "cairo-rs", "dirs 5.0.1", @@ -5307,7 +5496,7 @@ dependencies = [ [[package]] name = "perry-ui-ios" -version = "0.5.853" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5322,7 +5511,7 @@ dependencies = [ [[package]] name = "perry-ui-macos" -version = "0.5.853" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5340,11 +5529,11 @@ version = "0.1.0" [[package]] name = "perry-ui-testkit" -version = "0.5.853" +version = "0.5.909" [[package]] name = "perry-ui-tvos" -version = "0.5.853" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5359,7 +5548,7 @@ dependencies = [ [[package]] name = "perry-ui-visionos" -version = "0.5.853" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5374,7 +5563,7 @@ dependencies = [ [[package]] name = "perry-ui-watchos" -version = "0.5.853" +version = "0.5.909" dependencies = [ "block2", "libc", @@ -5387,7 +5576,7 @@ dependencies = [ [[package]] name = "perry-ui-windows" -version = "0.5.853" +version = "0.5.909" dependencies = [ "libc", "perry-runtime", @@ -5401,25 +5590,23 @@ dependencies = [ [[package]] name = "perry-updater" -version = "0.5.853" +version = "0.5.909" dependencies = [ "base64", "ed25519-dalek", "hex", "perry-runtime", - "semver 1.0.28", + "semver", "serde", "serde_json", "sha2", ] [[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +name = "perry-wasm-host" +version = "0.5.909" dependencies = [ - "phf_shared 0.10.0", + "wasmi", ] [[package]] @@ -5428,48 +5615,49 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros", + "phf_macros 0.11.3", "phf_shared 0.11.3", ] [[package]] -name = "phf_codegen" -version = "0.10.0" +name = "phf" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "phf_macros 0.13.1", + "phf_shared 0.13.1", + "serde", ] [[package]] name = "phf_codegen" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", + "phf_generator 0.13.1", + "phf_shared 0.13.1", ] [[package]] name = "phf_generator" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ - "phf_shared 0.10.0", + "phf_shared 0.11.3", "rand 0.8.6", ] [[package]] name = "phf_generator" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.6", + "fastrand", + "phf_shared 0.13.1", ] [[package]] @@ -5485,20 +5673,33 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "phf_shared" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ - "siphasher 0.3.11", + "siphasher 1.0.3", ] [[package]] name = "phf_shared" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" dependencies = [ "siphasher 1.0.3", ] @@ -5583,7 +5784,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.8.9", + "miniz_oxide", ] [[package]] @@ -5596,7 +5797,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide 0.8.9", + "miniz_oxide", ] [[package]] @@ -5637,6 +5838,8 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ + "serde_core", + "writeable", "zerovec", ] @@ -5686,7 +5889,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit", ] [[package]] @@ -5711,29 +5914,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "proc-macro-rules" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f" -dependencies = [ - "proc-macro-rules-macros", - "proc-macro2", - "syn 2.0.117", -] - -[[package]] -name = "proc-macro-rules-macros" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7" -dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -5845,7 +6025,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.2", + "rustc-hash", "rustls", "socket2", "thiserror 2.0.18", @@ -5865,7 +6045,7 @@ dependencies = [ "lru-slab", "rand 0.9.4", "ring", - "rustc-hash 2.1.2", + "rustc-hash", "rustls", "rustls-pki-types", "slab", @@ -6208,6 +6388,16 @@ dependencies = [ "webpki-roots 1.0.7", ] +[[package]] +name = "resb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22d392791f3c6802a1905a509e9d1a6039cbbcb5e9e00e5a6d3661f7c874f390" +dependencies = [ + "potential_utf", + "serde_core", +] + [[package]] name = "resolv-conf" version = "0.7.6" @@ -6327,34 +6517,19 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.28", + "semver", ] [[package]] @@ -6363,8 +6538,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dd18cd2bae1820af0b6ad5e54f4a51d0f3fcc53b05f845675074efcc7af071d" dependencies = [ - "rustc_version 0.4.1", - "semver 1.0.28", + "rustc_version", + "semver", ] [[package]] @@ -6505,16 +6680,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scraper" -version = "0.19.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761fb705fdf625482d2ed91d3f0559dcfeab2798fe2771c69560a774865d0802" +checksum = "bdd0be4d296f048bfb06dd01bbc80ef789ddd2e55583e8d2e6b804942abfabc2" dependencies = [ - "ahash 0.8.12", "cssparser", "ego-tree", "getopts", "html5ever", - "once_cell", + "precomputed-hash", "selectors", "tendril", ] @@ -6576,44 +6750,29 @@ dependencies = [ [[package]] name = "selectors" -version = "0.25.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06" +checksum = "8adfa1c298912827b8a28b223b3b874357397ae706e6190acd9bf28cee99114d" dependencies = [ "bitflags 2.11.1", "cssparser", - "derive_more 0.99.20", - "fxhash", + "derive_more", "log", "new_debug_unreachable", - "phf 0.10.1", - "phf_codegen 0.10.0", + "phf 0.13.1", + "phf_codegen", "precomputed-hash", + "rustc-hash", "servo_arc", "smallvec", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - [[package]] name = "semver" version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "seq-macro" version = "0.3.6" @@ -6685,15 +6844,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - [[package]] name = "serde_spanned" version = "1.1.1" @@ -6717,14 +6867,15 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.220.0" +version = "0.309.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7a65d91d79acc82aa229aeb084f4a39bda269069bc1520df40f679495388e4" +checksum = "d0384d8fb13b9d7e215e281c7e26423e9efe772e475cf26eddf57fb58ff27203" dependencies = [ + "deno_error", "num-bigint", "serde", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.18", "v8", ] @@ -6752,9 +6903,9 @@ dependencies = [ [[package]] name = "servo_arc" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" dependencies = [ "stable_deref_trait", ] @@ -6819,15 +6970,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simd-abstraction" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" -dependencies = [ - "outref", -] - [[package]] name = "simd-adler32" version = "0.3.9" @@ -6926,7 +7068,7 @@ checksum = "b84ccd1f4aee0854a16b0b489ba843798e2eb4cdcddd4a61248f7db9ce8b6df1" dependencies = [ "futures-channel", "gio", - "glib", + "glib 0.20.12", "libc", "soup3-sys", ] @@ -6937,26 +7079,25 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8869997193d52a61a1db48627bdaa57343f76e2c5132ee6d351245a6ab30631e" dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "libc", "system-deps", ] [[package]] name = "sourcemap" -version = "8.0.1" +version = "9.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "208d40b9e8cad9f93613778ea295ed8f3c2b1824217c6cfc7219d3f6f45b96d4" +checksum = "314d62a489431668f719ada776ca1d49b924db951b7450f8974c9ae51ab05ad7" dependencies = [ "base64-simd", "bitvec", "data-encoding", "debugid", "if_chain", - "rustc-hash 1.1.0", - "rustc_version 0.2.3", + "rustc-hash", "serde", "serde_json", "unicode-id-start", @@ -7060,7 +7201,7 @@ checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", - "heck 0.5.0", + "heck", "hex", "once_cell", "proc-macro2", @@ -7208,27 +7349,35 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strck" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42316e70da376f3d113a68d138a60d8a9883c604fe97942721ec2068dab13a9f" +dependencies = [ + "unicode-ident", +] + [[package]] name = "string_cache" -version = "0.8.9" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" dependencies = [ "new_debug_unreachable", "parking_lot", - "phf_shared 0.11.3", + "phf_shared 0.13.1", "precomputed-hash", - "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.4" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", + "phf_generator 0.13.1", + "phf_shared 0.13.1", "proc-macro2", "quote", ] @@ -7244,6 +7393,12 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "stringcase" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72abeda133c49d7bddece6c154728f83eec8172380c80ab7096da9487e20d27c" + [[package]] name = "stringprep" version = "0.1.5" @@ -7263,23 +7418,22 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.25.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", - "rustversion", "syn 2.0.117", ] @@ -7314,7 +7468,7 @@ dependencies = [ "from_variant", "num-bigint", "once_cell", - "rustc-hash 2.1.2", + "rustc-hash", "serde", "siphasher 0.3.11", "swc_atoms", @@ -7336,7 +7490,7 @@ dependencies = [ "num-bigint", "once_cell", "phf 0.11.3", - "rustc-hash 2.1.2", + "rustc-hash", "string_enum", "swc_atoms", "swc_common", @@ -7354,7 +7508,7 @@ dependencies = [ "either", "num-bigint", "phf 0.11.3", - "rustc-hash 2.1.2", + "rustc-hash", "seq-macro", "serde", "smartstring", @@ -7419,6 +7573,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-match" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b8f0a9004d6aafa6a588602a1119e6cdaacec9921aa1605383e6e7d6258fd6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -7439,6 +7604,26 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "sys_traits" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a79feaa49de4a6c8191bdbd5fb3eada50671e9367d874d1c12e3d36db131414" +dependencies = [ + "sys_traits_macros", +] + +[[package]] +name = "sys_traits_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "181f22127402abcf8ee5c83ccd5b408933fec36a6095cf82cda545634692657e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "system-deps" version = "7.0.8" @@ -7446,9 +7631,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" dependencies = [ "cfg-expr", - "heck 0.5.0", + "heck", "pkg-config", - "toml 1.1.2+spec-1.1.0", + "toml", "version-compare", ] @@ -7512,14 +7697,47 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "temporal_capi" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2a1f001e756a9f5f2d175a9965c4c0b3a054f09f30de3a75ab49765f2deb36" +dependencies = [ + "diplomat", + "diplomat-runtime", + "icu_calendar", + "icu_locale_core", + "num-traits", + "temporal_rs", + "timezone_provider", + "writeable", + "zoneinfo64", +] + +[[package]] +name = "temporal_rs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a902a45282e5175186b21d355efc92564601efe6e2d92818dc9e333d50bd4de" +dependencies = [ + "calendrical_calculations", + "core_maths", + "icu_calendar", + "icu_locale_core", + "ixdtf", + "num-traits", + "timezone_provider", + "tinystr", + "writeable", +] + [[package]] name = "tendril" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" +checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" dependencies = [ - "futf", - "mac", + "new_debug_unreachable", "utf-8", ] @@ -7617,6 +7835,18 @@ dependencies = [ "time-core", ] +[[package]] +name = "timezone_provider" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c48f9b04628a2b813051e4dfe97c65281e49625eabd09ec343190e31e399a8c2" +dependencies = [ + "tinystr", + "zerotrie", + "zerovec", + "zoneinfo64", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -7645,6 +7875,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", + "serde_core", "zerovec", ] @@ -7774,18 +8005,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - [[package]] name = "toml" version = "1.1.2+spec-1.1.0" @@ -7794,20 +8013,11 @@ checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", + "serde_spanned", + "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.2", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", + "winnow", ] [[package]] @@ -7819,20 +8029,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.15", -] - [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -7840,9 +8036,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime", "toml_parser", - "winnow 1.0.2", + "winnow", ] [[package]] @@ -7851,15 +8047,9 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.2", + "winnow", ] -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - [[package]] name = "toml_writer" version = "1.1.1+spec-1.1.0" @@ -8182,19 +8372,19 @@ dependencies = [ [[package]] name = "v8" -version = "0.106.0" +version = "147.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a381badc47c6f15acb5fe0b5b40234162349ed9d4e4fd7c83a7f5547c0fc69c5" +checksum = "2df8fffd507fb18ed000673a83d937f58e60fb07f3306b2274284125b15137cd" dependencies = [ "bindgen", "bitflags 2.11.1", "fslock", "gzip-header", "home", - "miniz_oxide 0.7.4", - "once_cell", + "miniz_oxide", "paste", - "which 6.0.3", + "temporal_capi", + "which", ] [[package]] @@ -8256,6 +8446,12 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "walkdir" version = "2.5.0" @@ -8393,6 +8589,62 @@ dependencies = [ "wasmparser 0.244.0", ] +[[package]] +name = "wasm_dep_analyzer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a10e6b67c951a84de7029487e0e0a496860dae49f6699edd279d5ff35b8fbf54" +dependencies = [ + "deno_error", + "thiserror 2.0.18", +] + +[[package]] +name = "wasmi" +version = "0.51.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb321403ce594274827657a908e13d1d9918aa02257b8bf8391949d9764023ff" +dependencies = [ + "spin", + "wasmi_collections", + "wasmi_core", + "wasmi_ir", + "wasmparser 0.228.0", +] + +[[package]] +name = "wasmi_collections" +version = "0.51.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9b8e98e45a2a534489f8225e765cbf1cb9a3078072605e58158910cf4749172" + +[[package]] +name = "wasmi_core" +version = "0.51.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c25f375c0cdf14810eab07f532f61f14d4966f09c747a55067fdf3196e8512e6" +dependencies = [ + "libm", +] + +[[package]] +name = "wasmi_ir" +version = "0.51.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624e2a68a4293ecb8f564260b68394b29cf3b3edba6bce35532889a2cb33c3d9" +dependencies = [ + "wasmi_core", +] + +[[package]] +name = "wasmparser" +version = "0.228.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4abf1132c1fdf747d56bbc1bb52152400c70f336870f968b85e89ea422198ae3" +dependencies = [ + "bitflags 2.11.1", +] + [[package]] name = "wasmparser" version = "0.244.0" @@ -8402,7 +8654,7 @@ dependencies = [ "bitflags 2.11.1", "hashbrown 0.15.5", "indexmap", - "semver 1.0.28", + "semver", ] [[package]] @@ -8413,7 +8665,7 @@ checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags 2.11.1", "indexmap", - "semver 1.0.28", + "semver", ] [[package]] @@ -8436,6 +8688,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web_atoms" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7cff6eef815df1834fd250e3a2ff436044d82a9f1bc1980ca1dbdf07effc538" +dependencies = [ + "phf 0.13.1", + "phf_codegen", + "string_cache", + "string_cache_codegen", +] + [[package]] name = "webkit6" version = "0.4.0" @@ -8444,7 +8708,7 @@ checksum = "8c359ef247305dcade3363c281c505b943e0e6162a42eac76ff76ed8e7cebfbd" dependencies = [ "gdk4", "gio", - "glib", + "glib 0.20.12", "gtk4", "javascriptcore6", "libc", @@ -8459,9 +8723,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96284c5280af5984dbdae8dae3cfeea11b44b214f9bd42b35c0ca75903bccce2" dependencies = [ "gdk4-sys", - "gio-sys", - "glib-sys", - "gobject-sys", + "gio-sys 0.20.10", + "glib-sys 0.20.10", + "gobject-sys 0.20.10", "gtk4-sys", "javascriptcore6-sys", "libc", @@ -8529,18 +8793,6 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - [[package]] name = "which" version = "6.0.3" @@ -9031,15 +9283,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" -[[package]] -name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "1.0.2" @@ -9077,7 +9320,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" dependencies = [ "anyhow", - "heck 0.5.0", + "heck", "wit-parser", ] @@ -9088,7 +9331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", - "heck 0.5.0", + "heck", "indexmap", "prettyplease", "syn 2.0.117", @@ -9141,7 +9384,7 @@ dependencies = [ "id-arena", "indexmap", "log", - "semver 1.0.28", + "semver", "serde", "serde_derive", "serde_json", @@ -9260,7 +9503,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 1.0.2", + "winnow", "zbus_macros", "zbus_names", "zvariant", @@ -9288,7 +9531,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow 1.0.2", + "winnow", "zvariant", ] @@ -9362,6 +9605,7 @@ dependencies = [ "displaydoc", "yoke", "zerofrom", + "zerovec", ] [[package]] @@ -9370,6 +9614,7 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ + "serde", "yoke", "zerofrom", "zerovec-derive", @@ -9422,6 +9667,19 @@ version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +[[package]] +name = "zoneinfo64" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6eb2607e906160c457fd573e9297e65029669906b9ac8fb1b5cd5e055f0705" +dependencies = [ + "calendrical_calculations", + "icu_locale_core", + "potential_utf", + "resb", + "serde", +] + [[package]] name = "zopfli" version = "0.8.3" @@ -9495,7 +9753,7 @@ dependencies = [ "endi", "enumflags2", "serde", - "winnow 1.0.2", + "winnow", "zvariant_derive", "zvariant_utils", ] @@ -9523,5 +9781,5 @@ dependencies = [ "quote", "serde", "syn 2.0.117", - "winnow 1.0.2", + "winnow", ] diff --git a/crates/perry-ui-gtk4/src/audio.rs b/crates/perry-ui-gtk4/src/audio.rs index cd6db59c..9401b7e3 100644 --- a/crates/perry-ui-gtk4/src/audio.rs +++ b/crates/perry-ui-gtk4/src/audio.rs @@ -242,10 +242,6 @@ pub fn start() -> i64 { return 1; } - if !OUTPUT_FILENAME.lock().unwrap().is_empty() { - start_recording(); - } - RUNNING.store(true, Ordering::Relaxed); std::thread::spawn(|| { @@ -315,7 +311,6 @@ pub fn start() -> i64 { RECORDED_SAMPLES.lock().unwrap().extend_from_slice(&buf); } - eprintln!("[audio] Calling invoke_audio_callback"); invoke_audio_callback(buf.as_ptr(), buffer_frames); let mut sum_sq = 0.0f64; @@ -410,20 +405,16 @@ pub fn get_device_model() -> i64 { } pub fn register_audio_callback(callback: f64) { - eprintln!("[audio] register_audio_callback called, callback: {:?}", callback); *AUDIO_CALLBACK.lock().unwrap() = Some(callback); - eprintln!("[audio] AUDIO_CALLBACK has been set to: {:?}", *AUDIO_CALLBACK.lock().unwrap()); } pub fn unregister_audio_callback() { - eprintln!("[audio] unregister_audio_callback called"); *AUDIO_CALLBACK.lock().unwrap() = None; } pub fn invoke_audio_callback(samples_ptr: *const f32, num_samples: usize) { let callback_opt = *AUDIO_CALLBACK.lock().unwrap(); if callback_opt.is_none() { - eprintln!("[audio] WARNING: No audio callback registered"); return; } let callback = callback_opt.unwrap(); @@ -432,7 +423,6 @@ pub fn invoke_audio_callback(samples_ptr: *const f32, num_samples: usize) { let samples_val = unsafe { js_nanbox_pointer(samples_ptr as i64) }; let num_samples_val = num_samples as f64; - eprintln!("[audio] Invoking audio callback with {} samples", num_samples); unsafe { js_closure_call2(callback_ptr, samples_val, num_samples_val); }