diff --git a/Cargo.lock b/Cargo.lock index 1bea2a6f85..c9cb28484c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -281,12 +281,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -496,7 +496,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cexpr", "clang-sys", "itertools 0.13.0", @@ -546,9 +546,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ "serde", ] @@ -603,9 +603,9 @@ dependencies = [ [[package]] name = "bpaf" -version = "0.9.19" +version = "0.9.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4848ed5727d39a7573551c205bcb1ccd88c8cad4ed2c80f62e2316f208196b8d" +checksum = "473976d7a8620bb1e06dcdd184407c2363fe4fec8e983ee03ed9197222634a31" [[package]] name = "bstr" @@ -697,9 +697,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.22" +version = "1.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" +checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" dependencies = [ "shlex", ] @@ -815,9 +815,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -825,9 +825,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.38" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -901,9 +901,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -922,7 +922,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation", "core-graphics-types", "foreign-types", @@ -935,7 +935,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation", "libc", ] @@ -1241,7 +1241,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", "libc", "objc2", @@ -1272,9 +1272,9 @@ dependencies = [ [[package]] name = "docx-rust" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8e9647d314f66d467a705715111d045955949b5dbcf2dc7aee89e078af83d" +checksum = "75463cd42bd579fdf76cf10ff1c4fb5988568c726f8ed4c2ed3921ddb6ef5c89" dependencies = [ "derive_more", "hard-xml", @@ -1339,9 +1339,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", "windows-sys 0.59.0", @@ -1595,15 +1595,16 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" dependencies = [ + "cc", "cfg-if", "libc", "log", "rustversion", - "windows 0.58.0", + "windows 0.61.1", ] [[package]] @@ -1689,9 +1690,9 @@ dependencies = [ [[package]] name = "hard-xml" -version = "1.39.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18b4f798dc293307dc5445b47403a317adc8131782963f3ad4700a836bd26c93" +checksum = "3b07b8ba970e18a03dbb79f6786b6e4d6f198a0ac839aa5182017001bb8dee17" dependencies = [ "hard-xml-derive", "jetscii", @@ -1702,11 +1703,11 @@ dependencies = [ [[package]] name = "hard-xml-derive" -version = "1.39.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef0ad18601a1563729b311c9d49e5d46b1c987dc0353742cb8219f61f4339a6" +checksum = "f0c43e7c3212bd992c11b6b9796563388170950521ae8487f5cdf6f6e792f1c8" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "proc-macro2", "quote", "syn 1.0.109", @@ -1825,7 +1826,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.0", + "windows-core 0.57.0", ] [[package]] @@ -1910,9 +1911,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections 2.0.0", @@ -1926,9 +1927,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -2049,15 +2050,14 @@ dependencies = [ [[package]] name = "io-surface" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8283575d5f0b2e7447ec0840363879d71c0fa325d4c699d5b45208ea4a51f45e" +checksum = "554b8c5d64ec09a3a520fe58e4d48a73e00ff32899cdcbe32a4877afd4968b8e" dependencies = [ "cgl", "core-foundation", "core-foundation-sys", "leaky-cow", - "libc", ] [[package]] @@ -2188,12 +2188,12 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.0", + "windows-targets 0.48.5", ] [[package]] @@ -2279,7 +2279,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59fa2559e99ba0f26a12458aabc754432c805bbb8cba516c427825a997af1fb7" dependencies = [ "aes", - "bitflags 2.9.0", + "bitflags 2.9.1", "cbc", "ecb", "encoding_rs", @@ -2390,13 +2390,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2410,12 +2410,12 @@ dependencies = [ [[package]] name = "napi" -version = "3.0.0-alpha.33" +version = "3.0.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c857a2b38c994db8bec785554ab4216d45ad63469832070c86a992be0b5491ad" +checksum = "2a5c343e6e1fb57bf3ea3386638c4affb394ee932708128840a56aaac3d6a8ab" dependencies = [ "anyhow", - "bitflags 2.9.0", + "bitflags 2.9.1", "chrono", "ctor", "napi-build", @@ -2426,17 +2426,18 @@ dependencies = [ [[package]] name = "napi-build" -version = "2.1.6" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28acfa557c083f6e254a786e01ba253fc56f18ee000afcd4f79af735f73a6da" +checksum = "03acbfa4f156a32188bfa09b86dc11a431b5725253fc1fc6f6df5bed273382c4" [[package]] name = "napi-derive" -version = "3.0.0-alpha.29" +version = "3.0.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7165d931d54f68115e651330d5fe0ae0081133d3f4ee3ab55b0b808f0c23f71" +checksum = "08d23065ee795a4b1a8755fdf4a39c2a229679f01f923a8feea33f045d6d96cb" dependencies = [ "convert_case 0.8.0", + "ctor", "napi-derive-backend", "proc-macro2", "quote", @@ -2445,9 +2446,9 @@ dependencies = [ [[package]] name = "napi-derive-backend" -version = "2.0.0-alpha.28" +version = "2.0.0-beta.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3f36354262054df8e1c3a73bdcd36ea13f130feb1e4d86b67cab9e10d6ef6d" +checksum = "348aaac2c51b5d11cf90cf7670b470c7f4d1607d15c338efd4d3db361003e4f5" dependencies = [ "convert_case 0.8.0", "proc-macro2", @@ -2458,9 +2459,9 @@ dependencies = [ [[package]] name = "napi-sys" -version = "3.0.0-alpha.1" +version = "3.0.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc061b99c514ad4b7abc99d4db1ca24b9542b7ff48b4760bd9f82b24611534d" +checksum = "b443b980b2258dbaa31b99115e74da6c0866e537278309d566b4672a2f8df516" dependencies = [ "libloading", ] @@ -2477,7 +2478,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "cfg_aliases", "libc", @@ -2625,7 +2626,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "dispatch2", "objc2", ] @@ -2642,7 +2643,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "block2", "libc", "objc2", @@ -2673,6 +2674,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "oorandom" version = "11.1.5" @@ -3009,7 +3016,7 @@ checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.9.0", + "bitflags 2.9.1", "lazy_static", "num-traits", "rand 0.8.5", @@ -3038,7 +3045,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "memchr", "unicase", ] @@ -3243,7 +3250,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -3418,7 +3425,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", @@ -3461,9 +3468,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "rusty-fork" @@ -3717,9 +3724,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3746,9 +3753,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c3a85280daca669cfd3bcb68a337882a8bc57ec882f72c5d13a430613a738e" +checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" dependencies = [ "sqlx-core", "sqlx-macros", @@ -3759,9 +3766,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f743f2a3cea30a58cd479013f75550e879009e3a02f616f18ca699335aa248c3" +checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ "base64 0.22.1", "bytes", @@ -3796,9 +3803,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4200e0fde19834956d4252347c12a083bdcb237d7a1a1446bffd8768417dce" +checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" dependencies = [ "proc-macro2", "quote", @@ -3809,9 +3816,9 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882ceaa29cade31beca7129b6beeb05737f44f82dbe2a9806ecea5a7093d00b7" +checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", @@ -3828,20 +3835,19 @@ dependencies = [ "sqlx-postgres", "sqlx-sqlite", "syn 2.0.101", - "tempfile", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afdd3aa7a629683c2d750c2df343025545087081ab5942593a5288855b1b7a7" +checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "bytes", "chrono", @@ -3878,13 +3884,13 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0bedbe1bbb5e2615ef347a5e9d8cd7680fb63e77d9dafc0f29be15e53f1ebe6" +checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64 0.22.1", - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "chrono", "crc", @@ -3916,9 +3922,9 @@ dependencies = [ [[package]] name = "sqlx-sqlite" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c26083e9a520e8eb87a06b12347679b142dc2ea29e6e409f805644a7a979a5bc" +checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" dependencies = [ "atoi", "chrono", @@ -4432,9 +4438,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", @@ -4570,9 +4576,9 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.25.4" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69aff09fea9a41fb061ae6b206cb87cac1b8db07df31be3ba271fbc26760f213" +checksum = "ac5fff5c47490dfdf473b5228039bfacad9d765d9b6939d26bf7cc064c1c7822" dependencies = [ "cc", "regex", @@ -4935,11 +4941,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -5115,9 +5123,9 @@ dependencies = [ [[package]] name = "weezl" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" +checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" [[package]] name = "whoami" @@ -5157,7 +5165,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -5178,12 +5186,24 @@ dependencies = [ [[package]] name = "windows" -version = "0.58.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", ] [[package]] @@ -5200,28 +5220,26 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", + "windows-result 0.3.4", + "windows-strings", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link", + "windows-threading", ] [[package]] @@ -5235,17 +5253,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-implement" version = "0.60.0" @@ -5268,17 +5275,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-interface" version = "0.59.1" @@ -5296,6 +5292,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link", +] + [[package]] name = "windows-result" version = "0.1.2" @@ -5307,37 +5313,18 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.2.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -5393,7 +5380,7 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", @@ -5401,19 +5388,12 @@ dependencies = [ ] [[package]] -name = "windows-targets" -version = "0.53.0" +name = "windows-threading" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link", ] [[package]] @@ -5428,12 +5408,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -5446,12 +5420,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -5464,24 +5432,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -5494,12 +5450,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -5512,12 +5462,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -5530,12 +5474,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -5548,12 +5486,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" version = "0.7.10" @@ -5569,7 +5501,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -5638,7 +5570,7 @@ dependencies = [ "serde_json", "smol_str", "thiserror 2.0.12", - "yrs 0.23.1", + "yrs 0.23.4", ] [[package]] @@ -5669,7 +5601,7 @@ dependencies = [ "regex", "y-octo", "y-sync", - "yrs 0.23.1", + "yrs 0.23.4", ] [[package]] @@ -5747,9 +5679,9 @@ dependencies = [ [[package]] name = "yrs" -version = "0.23.1" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a7cab84724ae7f361a8c92465f5160922cbb941a499e1a8cacd103351ab9c78" +checksum = "bb1d740a98b12112352f05ddfc06c1505b66fca116601f9388b84be45d21f84d" dependencies = [ "arc-swap", "async-lock", @@ -5760,7 +5692,7 @@ dependencies = [ "serde_json", "smallstr", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 88fa4674c6..f5e0cd8b5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,9 +47,9 @@ log = "0.4" loom = { version = "0.7", features = ["checkpoint"] } mimalloc = "0.1" nanoid = "0.4" -napi = { version = "3.0.0-alpha.31", features = ["async", "chrono_date", "error_anyhow", "napi9", "serde"] } +napi = { version = "3.0.0-beta.3", features = ["async", "chrono_date", "error_anyhow", "napi9", "serde"] } napi-build = { version = "2" } -napi-derive = { version = "3.0.0-alpha.28" } +napi-derive = { version = "3.0.0-beta.3" } nom = "8" notify = { version = "8", features = ["serde"] } objc2 = "0.6" @@ -80,7 +80,7 @@ symphonia = { version = "0.5", features = ["all", "opt-simd"] } text-splitter = "0.25" thiserror = "2" tiktoken-rs = "0.6" -tokio = "1.37" +tokio = "1.45" tree-sitter = { version = "0.25" } tree-sitter-c = { version = "0.23" } tree-sitter-c-sharp = { version = "0.23" } diff --git a/packages/backend/native/package.json b/packages/backend/native/package.json index 716b30a6a1..791bd0fc2c 100644 --- a/packages/backend/native/package.json +++ b/packages/backend/native/package.json @@ -32,7 +32,7 @@ "build:debug": "napi build" }, "devDependencies": { - "@napi-rs/cli": "3.0.0-alpha.78", + "@napi-rs/cli": "3.0.0-alpha.81", "lib0": "^0.2.99", "tiktoken": "^1.0.17", "tinybench": "^4.0.0", diff --git a/packages/backend/native/src/doc_loader.rs b/packages/backend/native/src/doc_loader.rs index 57f2829163..5d3aba9897 100644 --- a/packages/backend/native/src/doc_loader.rs +++ b/packages/backend/native/src/doc_loader.rs @@ -1,8 +1,8 @@ use affine_common::doc_loader::Doc; use napi::{ anyhow::anyhow, - bindgen_prelude::{AsyncTask, Buffer}, - Env, JsObject, Result, Task, + bindgen_prelude::{Array, AsyncTask, Buffer, Object}, + Env, Result, Task, }; pub struct Document { @@ -14,24 +14,21 @@ impl Document { self.inner.name.clone() } - fn chunks(&self, env: Env) -> Result { - let mut array = env.create_array_with_length(self.inner.chunks.len())?; - for (i, chunk) in self.inner.chunks.iter().enumerate() { - let content = crate::utils::clean_content(&chunk.content); - - let mut obj = env.create_object()?; - obj.set_named_property("index", i as i64)?; - obj.set_named_property("content", content)?; - array.set_element(i as u32, obj)?; - } - Ok(array) - } - - fn resolve(self, env: Env) -> Result { - let mut obj = env.create_object()?; - obj.set_named_property("name", self.name())?; - obj.set_named_property("chunks", self.chunks(env)?)?; - Ok(obj) + fn chunks(&self, env: &Env) -> Result { + let vec = self + .inner + .chunks + .iter() + .enumerate() + .map(|(i, chunk)| { + let content = crate::utils::clean_content(&chunk.content); + let mut obj = Object::new(env)?; + obj.set("index", i as i64)?; + obj.set("content", content)?; + Ok(obj) + }) + .collect::>>()?; + Array::from_vec(env, vec) } } @@ -43,7 +40,7 @@ pub struct AsyncParseDocResponse { #[napi] impl Task for AsyncParseDocResponse { type Output = Document; - type JsValue = JsObject; + type JsValue = Object<'static>; fn compute(&mut self) -> Result { let doc = Doc::new(&self.file_path, &self.doc).map_err(|e| anyhow!(e))?; @@ -51,7 +48,10 @@ impl Task for AsyncParseDocResponse { } fn resolve(&mut self, env: Env, doc: Document) -> Result { - doc.resolve(env) + let mut obj = Object::new(&env)?; + obj.set("name", doc.name())?; + obj.set("chunks", doc.chunks(&env)?)?; + Ok(obj) } } diff --git a/packages/backend/native/src/hashcash.rs b/packages/backend/native/src/hashcash.rs index a9aa75f0b9..3ad339ba58 100644 --- a/packages/backend/native/src/hashcash.rs +++ b/packages/backend/native/src/hashcash.rs @@ -1,7 +1,7 @@ use std::convert::TryFrom; use affine_common::hashcash::Stamp; -use napi::{bindgen_prelude::AsyncTask, Env, JsBoolean, JsString, Result as NapiResult, Task}; +use napi::{bindgen_prelude::AsyncTask, Env, Result as NapiResult, Task}; use napi_derive::napi; pub struct AsyncVerifyChallengeResponse { @@ -13,7 +13,7 @@ pub struct AsyncVerifyChallengeResponse { #[napi] impl Task for AsyncVerifyChallengeResponse { type Output = bool; - type JsValue = JsBoolean; + type JsValue = bool; fn compute(&mut self) -> NapiResult { Ok(if let Ok(stamp) = Stamp::try_from(self.response.as_str()) { @@ -23,8 +23,8 @@ impl Task for AsyncVerifyChallengeResponse { }) } - fn resolve(&mut self, env: Env, output: bool) -> NapiResult { - env.get_boolean(output) + fn resolve(&mut self, _: Env, output: bool) -> NapiResult { + Ok(output) } } @@ -49,14 +49,14 @@ pub struct AsyncMintChallengeResponse { #[napi] impl Task for AsyncMintChallengeResponse { type Output = String; - type JsValue = JsString; + type JsValue = String; fn compute(&mut self) -> NapiResult { Ok(Stamp::mint(self.resource.clone(), self.bits).format()) } - fn resolve(&mut self, env: Env, output: String) -> NapiResult { - env.create_string(&output) + fn resolve(&mut self, _: Env, output: String) -> NapiResult { + Ok(output) } } diff --git a/packages/common/y-octo/node/package.json b/packages/common/y-octo/node/package.json index 1b514088ee..3b4523aef6 100644 --- a/packages/common/y-octo/node/package.json +++ b/packages/common/y-octo/node/package.json @@ -21,7 +21,7 @@ }, "license": "MIT", "devDependencies": { - "@napi-rs/cli": "3.0.0-alpha.78", + "@napi-rs/cli": "3.0.0-alpha.81", "@types/node": "^22.14.1", "@types/prompts": "^2.4.9", "c8": "^10.1.3", diff --git a/packages/common/y-octo/node/src/array.rs b/packages/common/y-octo/node/src/array.rs index d2ac89c1eb..98af181461 100644 --- a/packages/common/y-octo/node/src/array.rs +++ b/packages/common/y-octo/node/src/array.rs @@ -1,5 +1,5 @@ use napi::{ - bindgen_prelude::{Array as JsArray, Env, Unknown}, + bindgen_prelude::{Array as JsArray, Env, JsObjectValue, JsValue, Null, ToNapiValue, Unknown}, ValueType, }; use y_octo::{Any, Array, Value}; @@ -34,18 +34,18 @@ impl YArray { } #[napi(ts_generic_types = "T = unknown", ts_return_type = "T")] - pub fn get(&self, env: Env, index: i64) -> Result { + pub fn get<'a>(&'a self, env: &'a Env, index: i64) -> Result> { if let Some(value) = self.array.get(index as u64) { match value { Value::Any(any) => get_js_unknown_from_any(env, any).map(MixedYType::D), Value::Array(array) => Ok(MixedYType::A(YArray::inner_new(array))), Value::Map(map) => Ok(MixedYType::B(YMap::inner_new(map))), Value::Text(text) => Ok(MixedYType::C(YText::inner_new(text))), - _ => env.get_null().map(|v| v.into_unknown()).map(MixedYType::D), + _ => Null.into_unknown(env).map(MixedYType::D), } .map_err(anyhow::Error::from) } else { - Ok(MixedYType::D(env.get_null()?.into_unknown())) + Ok(MixedYType::D(Null.into_unknown(env)?)) } } @@ -73,7 +73,7 @@ impl YArray { .array .insert(index as u64, Any::Null) .map_err(anyhow::Error::from), - ValueType::Boolean => match unknown.coerce_to_bool().and_then(|v| v.get_value()) { + ValueType::Boolean => match unsafe { unknown.cast::() } { Ok(boolean) => self .array .insert(index as u64, boolean) @@ -140,7 +140,7 @@ impl YArray { } #[napi] - pub fn to_json(&self, env: Env) -> Result { + pub fn to_json<'env>(&'env self, env: &'env Env) -> Result> { let mut js_array = env.create_array(0)?; for value in self.array.iter() { js_array.insert(get_js_unknown_from_value(env, value)?)?; diff --git a/packages/common/y-octo/node/src/map.rs b/packages/common/y-octo/node/src/map.rs index d9609de495..77d28398e4 100644 --- a/packages/common/y-octo/node/src/map.rs +++ b/packages/common/y-octo/node/src/map.rs @@ -1,4 +1,4 @@ -use napi::bindgen_prelude::{Env, Object, ValueType}; +use napi::bindgen_prelude::{Env, JsValue, Null, Object, ToNapiValue, ValueType}; use y_octo::{Any, Map, Value}; use super::*; @@ -25,18 +25,18 @@ impl YMap { } #[napi(ts_generic_types = "T = unknown", ts_return_type = "T")] - pub fn get(&self, env: Env, key: String) -> Result { + pub fn get<'a>(&'a self, env: &'a Env, key: String) -> Result> { if let Some(value) = self.map.get(&key) { match value { Value::Any(any) => get_js_unknown_from_any(env, any).map(MixedYType::D), Value::Array(array) => Ok(MixedYType::A(YArray::inner_new(array))), Value::Map(map) => Ok(MixedYType::B(YMap::inner_new(map))), Value::Text(text) => Ok(MixedYType::C(YText::inner_new(text))), - _ => env.get_null().map(|v| v.into_unknown()).map(MixedYType::D), + _ => Null.into_unknown(env).map(MixedYType::D), } .map_err(anyhow::Error::from) } else { - Ok(MixedYType::D(env.get_null()?.into_unknown())) + Ok(MixedYType::D(Null.into_unknown(env)?)) } } @@ -63,7 +63,7 @@ impl YMap { ValueType::Undefined | ValueType::Null => { self.map.insert(key, Any::Null).map_err(anyhow::Error::from) } - ValueType::Boolean => match unknown.coerce_to_bool().and_then(|v| v.get_value()) { + ValueType::Boolean => match unsafe { unknown.cast::() } { Ok(boolean) => self.map.insert(key, boolean).map_err(anyhow::Error::from), Err(e) => Err(anyhow::Error::from(e).context("Failed to coerce value to boolean")), }, @@ -106,9 +106,9 @@ impl YMap { #[napi] pub fn to_json(&self, env: Env) -> Result { - let mut js_object = env.create_object()?; + let mut js_object = Object::new(&env)?; for (key, value) in self.map.iter() { - js_object.set(key, get_js_unknown_from_value(env, value))?; + js_object.set(key, get_js_unknown_from_value(&env, value))?; } Ok(js_object) } diff --git a/packages/common/y-octo/node/src/utils.rs b/packages/common/y-octo/node/src/utils.rs index e08bc41705..380c17c261 100644 --- a/packages/common/y-octo/node/src/utils.rs +++ b/packages/common/y-octo/node/src/utils.rs @@ -1,38 +1,39 @@ -use napi::{ - bindgen_prelude::{ - Either4, Env, Error, External, Object, Result, Status, ToNapiValue, Unknown, ValueType, - }, - NapiValue, +use napi::bindgen_prelude::{ + Array, Either4, Env, Error, External, JsObjectValue, JsValue, Null, Object, Result, Status, + ToNapiValue, Unknown, ValueType, }; use y_octo::{AHashMap, Any, HashMapExt, Value}; use super::*; -pub type MixedYType = Either4; -pub type MixedRefYType<'a> = Either4<&'a YArray, &'a YMap, &'a YText, Unknown>; +pub type MixedYType<'a> = Either4>; +pub type MixedRefYType<'a> = Either4<&'a YArray, &'a YMap, &'a YText, Unknown<'a>>; -pub fn get_js_unknown_from_any(env: Env, any: Any) -> Result { +pub fn get_js_unknown_from_any(env: &Env, any: Any) -> Result { match any { - Any::Null | Any::Undefined => env.get_null().map(|v| v.into_unknown()), - Any::True => env.get_boolean(true).map(|v| v.into_unknown()), - Any::False => env.get_boolean(false).map(|v| v.into_unknown()), - Any::Integer(number) => env.create_int32(number).map(|v| v.into_unknown()), - Any::BigInt64(number) => env.create_int64(number).map(|v| v.into_unknown()), - Any::Float32(number) => env.create_double(number.0 as f64).map(|v| v.into_unknown()), - Any::Float64(number) => env.create_double(number.0).map(|v| v.into_unknown()), - Any::String(string) => env.create_string(string.as_str()).map(|v| v.into_unknown()), + Any::Null | Any::Undefined => Null.into_unknown(env), + Any::True => true.into_unknown(env), + Any::False => false.into_unknown(env), + Any::Integer(number) => number.into_unknown(env), + Any::BigInt64(number) => number.into_unknown(env), + Any::Float32(number) => number.0.into_unknown(env), + Any::Float64(number) => number.0.into_unknown(env), + Any::String(string) => string.into_unknown(env), Any::Array(array) => { - let mut js_array = env.create_array_with_length(array.len())?; - for (i, value) in array.into_iter().enumerate() { - js_array.set_element(i as u32, get_js_unknown_from_any(env, value)?)?; - } - Ok(js_array.into_unknown()) + let js_array = Array::from_vec( + env, + array + .into_iter() + .map(|value| get_js_unknown_from_any(env, value)) + .collect::>>()?, + )?; + Ok(js_array.to_unknown()) } - _ => env.get_null().map(|v| v.into_unknown()), + _ => Null.into_unknown(env), } } -pub fn get_js_unknown_from_value(env: Env, value: Value) -> Result { +pub fn get_js_unknown_from_value(env: &Env, value: Value) -> Result { match value { Value::Any(any) => get_js_unknown_from_any(env, any), Value::Array(array) => { @@ -49,11 +50,9 @@ pub fn get_js_unknown_from_value(env: Env, value: Value) -> Result { } Value::Text(text) => { let external = External::new(YText::inner_new(text)); - Ok(unsafe { - Unknown::from_raw_unchecked(env.raw(), ToNapiValue::to_napi_value(env.raw(), external)?) - }) + external.into_unknown(env) } - _ => env.get_null().map(|v| v.into_unknown()), + _ => Null.into_unknown(env), } } @@ -71,14 +70,14 @@ pub fn get_any_from_js_object(object: Object) -> Result { let keys = object.get_property_names()?; if let Ok(length) = keys.get_array_length() { for i in 0..length { - if let Ok((obj, key)) = keys.get_element::(i).and_then(|o| { + if let Ok(key) = keys.get_element::(i).and_then(|o| { o.coerce_to_string().and_then(|obj| { obj .into_utf8() - .and_then(|s| s.as_str().map(|s| (obj, s.to_string()))) + .and_then(|s| s.as_str().map(|s| s.to_string())) }) }) { - if let Ok(value) = object.get_property::<_, Unknown>(obj) { + if let Ok(value) = object.get_named_property_unchecked::(&key) { println!("key: {}", key); map.insert(key, get_any_from_js_unknown(value)?); } @@ -92,12 +91,7 @@ pub fn get_any_from_js_object(object: Object) -> Result { pub fn get_any_from_js_unknown(js_unknown: Unknown) -> Result { match js_unknown.get_type()? { ValueType::Undefined | ValueType::Null => Ok(Any::Null), - ValueType::Boolean => Ok( - js_unknown - .coerce_to_bool() - .and_then(|v| v.get_value())? - .into(), - ), + ValueType::Boolean => Ok(unsafe { js_unknown.cast::()? }.into()), ValueType::Number => Ok( js_unknown .coerce_to_number() diff --git a/packages/frontend/native/index.js b/packages/frontend/native/index.js index ee8de356f3..c5d8f7c483 100644 --- a/packages/frontend/native/index.js +++ b/packages/frontend/native/index.js @@ -68,7 +68,7 @@ function requireNative() { try { nativeBinding = require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH); } catch (err) { - loadErrors.push(err); + loadErrors.push(err) } } else if (process.platform === 'android') { if (process.arch === 'arm64') { @@ -374,6 +374,7 @@ if (!nativeBinding) { throw new Error(`Failed to load native binding`) } +module.exports = nativeBinding module.exports.Application = nativeBinding.Application module.exports.ApplicationListChangedSubscriber = nativeBinding.ApplicationListChangedSubscriber module.exports.ApplicationStateChangedSubscriber = nativeBinding.ApplicationStateChangedSubscriber diff --git a/packages/frontend/native/package.json b/packages/frontend/native/package.json index e5330b3302..907661787e 100644 --- a/packages/frontend/native/package.json +++ b/packages/frontend/native/package.json @@ -25,7 +25,7 @@ ] }, "devDependencies": { - "@napi-rs/cli": "3.0.0-alpha.78", + "@napi-rs/cli": "3.0.0-alpha.81", "@napi-rs/whisper": "^0.0.4", "@types/node": "^22.0.0", "ava": "^6.2.0", @@ -38,8 +38,8 @@ }, "scripts": { "artifacts": "napi artifacts", - "build": "napi build -p affine_native --platform --release --no-dts-cache", - "build:debug": "napi build -p affine_native --platform --no-dts-cache", + "build": "napi build -p affine_native --platform --release", + "build:debug": "napi build -p affine_native --platform", "universal": "napi universal", "test": "ava", "version": "napi version" diff --git a/yarn.lock b/yarn.lock index cdc26dee73..820feac262 100644 --- a/yarn.lock +++ b/yarn.lock @@ -806,7 +806,7 @@ __metadata: version: 0.0.0-use.local resolution: "@affine/native@workspace:packages/frontend/native" dependencies: - "@napi-rs/cli": "npm:3.0.0-alpha.78" + "@napi-rs/cli": "npm:3.0.0-alpha.81" "@napi-rs/whisper": "npm:^0.0.4" "@types/node": "npm:^22.0.0" ava: "npm:^6.2.0" @@ -891,7 +891,7 @@ __metadata: version: 0.0.0-use.local resolution: "@affine/server-native@workspace:packages/backend/native" dependencies: - "@napi-rs/cli": "npm:3.0.0-alpha.78" + "@napi-rs/cli": "npm:3.0.0-alpha.81" lib0: "npm:^0.2.99" tiktoken: "npm:^1.0.17" tinybench: "npm:^4.0.0" @@ -7956,14 +7956,14 @@ __metadata: languageName: node linkType: hard -"@napi-rs/cli@npm:3.0.0-alpha.78": - version: 3.0.0-alpha.78 - resolution: "@napi-rs/cli@npm:3.0.0-alpha.78" +"@napi-rs/cli@npm:3.0.0-alpha.81": + version: 3.0.0-alpha.81 + resolution: "@napi-rs/cli@npm:3.0.0-alpha.81" dependencies: "@inquirer/prompts": "npm:^7.4.0" "@napi-rs/cross-toolchain": "npm:^0.0.19" "@napi-rs/wasm-tools": "npm:^0.0.3" - "@octokit/rest": "npm:^21.1.1" + "@octokit/rest": "npm:^22.0.0" clipanion: "npm:^4.0.0-rc.4" colorette: "npm:^2.0.20" debug: "npm:^4.4.0" @@ -7985,7 +7985,7 @@ __metadata: bin: napi: ./dist/cli.js napi-raw: ./cli.mjs - checksum: 10/82cb2b182087fe87259683c9eca1a472e6306834070f37b7ce0608ec8dcdd8bd6a14a20f80e42031ae7c5917e85b7cf8de49a25f0b7bc5f2d0a1460314ed0e2d + checksum: 10/1b086706f753141d3632dd49bfeb2539c1e67af7c362da937cbd0cbad1c8578cf088d2afedc3a86302fb77e3dc7784c096081dc1b4b9e1d1a3c6bffe6308a5ff languageName: node linkType: hard @@ -9730,143 +9730,127 @@ __metadata: languageName: node linkType: hard -"@octokit/auth-token@npm:^5.0.0": - version: 5.1.2 - resolution: "@octokit/auth-token@npm:5.1.2" - checksum: 10/53636ea9dbf77d491ce387d36f75b2c9f76a8f71de0d892e08999e6ef3382a151bd52faf5ad9711b9ade6c19cfe71d4c69cfd4a16594858299201cef93412b0f +"@octokit/auth-token@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/auth-token@npm:6.0.0" + checksum: 10/a30f5c4c984964b57193de5b6f67169f74e4779fedbe716157dd3558dd9de3ca5c105cae521b7bd8ce1ae180773a2ef01afe2306ad5a329f4fd291eba2b7c7d1 languageName: node linkType: hard -"@octokit/core@npm:^6.1.4": - version: 6.1.5 - resolution: "@octokit/core@npm:6.1.5" +"@octokit/core@npm:^7.0.2": + version: 7.0.2 + resolution: "@octokit/core@npm:7.0.2" dependencies: - "@octokit/auth-token": "npm:^5.0.0" - "@octokit/graphql": "npm:^8.2.2" - "@octokit/request": "npm:^9.2.3" - "@octokit/request-error": "npm:^6.1.8" + "@octokit/auth-token": "npm:^6.0.0" + "@octokit/graphql": "npm:^9.0.1" + "@octokit/request": "npm:^10.0.2" + "@octokit/request-error": "npm:^7.0.0" "@octokit/types": "npm:^14.0.0" - before-after-hook: "npm:^3.0.2" + before-after-hook: "npm:^4.0.0" universal-user-agent: "npm:^7.0.0" - checksum: 10/ccdd85bb58cecb6817908506cc82dd80bfb18ca62464a619bdc00b174e7adeff3c3ab061d6e7eb204dcd7a39d4b43233f3b45b91cd7c19ad4bb126261aaaa017 + checksum: 10/bef39511f3653b9dec239a7e8e8bdb4f17eb43f95d4f69b14eda44a4e2d22ab0239e2a4b0a445f474afd85169928b60420d0be5b316165505851b8a69b3ab596 languageName: node linkType: hard -"@octokit/endpoint@npm:^10.1.4": - version: 10.1.4 - resolution: "@octokit/endpoint@npm:10.1.4" +"@octokit/endpoint@npm:^11.0.0": + version: 11.0.0 + resolution: "@octokit/endpoint@npm:11.0.0" dependencies: "@octokit/types": "npm:^14.0.0" universal-user-agent: "npm:^7.0.2" - checksum: 10/b6f2305fcad33c5756d540972f20822eda7838df80e0a683b4cd8e6dc47edf90ca6fc723423848d029739c57eaf38e68e4d1133482935aaa085609037c0b82fb + checksum: 10/d7583a44f8560343b0fbd191aa9d2653e563cdd78f550c83cf7440a66edbe47bab6d0d6c52ae271bcbd35703356154ed590b22881aa8ee690f0d8f249ce6bde0 languageName: node linkType: hard -"@octokit/graphql@npm:^8.2.2": - version: 8.2.2 - resolution: "@octokit/graphql@npm:8.2.2" +"@octokit/graphql@npm:^9.0.1": + version: 9.0.1 + resolution: "@octokit/graphql@npm:9.0.1" dependencies: - "@octokit/request": "npm:^9.2.3" + "@octokit/request": "npm:^10.0.2" "@octokit/types": "npm:^14.0.0" universal-user-agent: "npm:^7.0.0" - checksum: 10/e97653b71ed74c384c77edf06f80d01d863ff8c62dd7851d7395ec8558645c5c5737c828a8c250807b3a953edb2aa4f792312c7243652819499081befba4afbb + checksum: 10/02d7ea4e2c17a4d4b7311150d0326318c756aff6cf955d9ba443a4bf26b32784832060379fc74f4537657415b262c10adb7f4a1655e15b143d19c2f099b87f16 languageName: node linkType: hard -"@octokit/openapi-types@npm:^24.2.0": - version: 24.2.0 - resolution: "@octokit/openapi-types@npm:24.2.0" - checksum: 10/000897ebc6e247c2591049d6081e95eb5636f73798dadd695ee6048496772b58065df88823e74a760201828545a7ac601dd3c1bcd2e00079a62a9ee9d389409c +"@octokit/openapi-types@npm:^25.1.0": + version: 25.1.0 + resolution: "@octokit/openapi-types@npm:25.1.0" + checksum: 10/91989a4cec12250e6b3226e9aa931c05c27d46a946725d01e6a831af3890f157210a7032f07641a156c608cc6bf6cf55a28f07179910b644966358d6d559dec6 languageName: node linkType: hard -"@octokit/openapi-types@npm:^25.0.0": - version: 25.0.0 - resolution: "@octokit/openapi-types@npm:25.0.0" - checksum: 10/d412a7ee77d7e3767aff1df012023b8c4d4c0d58a52c110e78557ac368b20fd01205c3f0c14e0fc2d6c0e2163b8e9931bd8d1bb59986477af49d04e6e5bbf827 - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^11.4.2": - version: 11.6.0 - resolution: "@octokit/plugin-paginate-rest@npm:11.6.0" +"@octokit/plugin-paginate-rest@npm:^13.0.1": + version: 13.0.1 + resolution: "@octokit/plugin-paginate-rest@npm:13.0.1" dependencies: - "@octokit/types": "npm:^13.10.0" + "@octokit/types": "npm:^14.1.0" peerDependencies: "@octokit/core": ">=6" - checksum: 10/4b9e1ca479a0c577fe3dade6133b12ff172b6606586eb31ba2b7c7f651e0a173d365d45c5c7512e83659860a36fc4021ad6c0582be4698504fbfc201be17d164 + checksum: 10/eb58db6bbe69ccb7ac4f73ddc20f4e491d26cdef820d0676a5682ecfe01c486a3a3059cc5151802dc6efeb2b4766eac84d05eafc9a35ac4855cb4b73b29ce809 languageName: node linkType: hard -"@octokit/plugin-request-log@npm:^5.3.1": - version: 5.3.1 - resolution: "@octokit/plugin-request-log@npm:5.3.1" +"@octokit/plugin-request-log@npm:^6.0.0": + version: 6.0.0 + resolution: "@octokit/plugin-request-log@npm:6.0.0" peerDependencies: "@octokit/core": ">=6" - checksum: 10/a27e163282c8d0ba8feee4d3cbbd1b62e1aa89a892877f7a9876fc17ddde3e1e1af922e6664221a0cabae99b8a7a2a5215b9ec2ee5222edb50e06298e99022b0 + checksum: 10/8a79973b1429bfead9113c4117f418aaef5ff368795daded3415ba14623d97d5fc08d1e822dbd566ecc9f041119e1a48a11853a9c48d9eb1caa62baa79c17f83 languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^13.3.0": - version: 13.5.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.5.0" +"@octokit/plugin-rest-endpoint-methods@npm:^16.0.0": + version: 16.0.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:16.0.0" dependencies: - "@octokit/types": "npm:^13.10.0" + "@octokit/types": "npm:^14.1.0" peerDependencies: "@octokit/core": ">=6" - checksum: 10/bfd4da842b1a867a508baedc41788ffd84b0232814d9eff5551f460343685a52d91c3446133451cea50c79feee0ee64881431684ac86c3c62ab12212cd75c072 + checksum: 10/17a299d2cda214fbc3a9d741746abb181845375b8094d1086e3810ec3796547754fa5a2d83aee410821d0d67c1f168343b38e6573813552482afdb6ebbb08189 languageName: node linkType: hard -"@octokit/request-error@npm:^6.1.8": - version: 6.1.8 - resolution: "@octokit/request-error@npm:6.1.8" +"@octokit/request-error@npm:^7.0.0": + version: 7.0.0 + resolution: "@octokit/request-error@npm:7.0.0" dependencies: "@octokit/types": "npm:^14.0.0" - checksum: 10/9354d9f6d95147fce0ab90d4a60d1a9b78a382876634d9504e49b3a077eb2857f92bef3aede2d9a6235e65ce9bbe93d72e4e99012e0a307bad6d23d637dfa802 + checksum: 10/c4370d2c31f599c1f366c480d5a02bc93442e5a0e151ec5caf0d5a5b0f0f91b50ecedc945aa6ea61b4c9ed1e89153dc7727daf4317680d33e916f829da7d141b languageName: node linkType: hard -"@octokit/request@npm:^9.2.3": - version: 9.2.3 - resolution: "@octokit/request@npm:9.2.3" +"@octokit/request@npm:^10.0.2": + version: 10.0.2 + resolution: "@octokit/request@npm:10.0.2" dependencies: - "@octokit/endpoint": "npm:^10.1.4" - "@octokit/request-error": "npm:^6.1.8" + "@octokit/endpoint": "npm:^11.0.0" + "@octokit/request-error": "npm:^7.0.0" "@octokit/types": "npm:^14.0.0" - fast-content-type-parse: "npm:^2.0.0" + fast-content-type-parse: "npm:^3.0.0" universal-user-agent: "npm:^7.0.2" - checksum: 10/ecf86b4eeea2be4e4259d5c0baae23bb9acdfbcb7e1bd5c2b570c66773d9b86cfdc0e79a96e20833a0986d5ca982122382116db399fbaad3ec670bb356c37fef + checksum: 10/eaddfd49787e8caad664a80c7c665d69bd303f90b5e6be822d571b684a4cd42bdfee29119f838fdfaed2946bc09f38219e1d7a0923388436bff0bfdd0202acca languageName: node linkType: hard -"@octokit/rest@npm:^21.1.1": - version: 21.1.1 - resolution: "@octokit/rest@npm:21.1.1" +"@octokit/rest@npm:^22.0.0": + version: 22.0.0 + resolution: "@octokit/rest@npm:22.0.0" dependencies: - "@octokit/core": "npm:^6.1.4" - "@octokit/plugin-paginate-rest": "npm:^11.4.2" - "@octokit/plugin-request-log": "npm:^5.3.1" - "@octokit/plugin-rest-endpoint-methods": "npm:^13.3.0" - checksum: 10/34a0088c19a202e64bb32bfc939411b96267cf4b38773c4483957600f9d5669381bcfe86f3078d1e03cade9d289dc95e196422eac3c1d0939aaba25a78cce9a7 + "@octokit/core": "npm:^7.0.2" + "@octokit/plugin-paginate-rest": "npm:^13.0.1" + "@octokit/plugin-request-log": "npm:^6.0.0" + "@octokit/plugin-rest-endpoint-methods": "npm:^16.0.0" + checksum: 10/d2b80fefd6aed307cb728980cb1d94cb484d48fabf0055198664287a7fb50544d312b005e4fb8dec2a6e97a153ec0ad7654d62f59898e1077a4cfba64e6d5c3e languageName: node linkType: hard -"@octokit/types@npm:^13.10.0": - version: 13.10.0 - resolution: "@octokit/types@npm:13.10.0" +"@octokit/types@npm:^14.0.0, @octokit/types@npm:^14.1.0": + version: 14.1.0 + resolution: "@octokit/types@npm:14.1.0" dependencies: - "@octokit/openapi-types": "npm:^24.2.0" - checksum: 10/32f8f5010d7faae128b0cdd0c221f0ca8c3781fe44483ecd87162b3da507db667f7369acda81340f6e2c9c374d9a938803409c6085c2c01d98210b6c58efb99a - languageName: node - linkType: hard - -"@octokit/types@npm:^14.0.0": - version: 14.0.0 - resolution: "@octokit/types@npm:14.0.0" - dependencies: - "@octokit/openapi-types": "npm:^25.0.0" - checksum: 10/bff427e7f4ff32ccf62536b87e2f7b7d4f6baa543de27006dc55b0356df0274267f3a782372efda5921412b15d2b37e92f30bbacf8b09d7134699fe79a6907a1 + "@octokit/openapi-types": "npm:^25.1.0" + checksum: 10/ea5549ca6176bd1184427141a77bca88c68f07d252d3ea1db7f9b58ec16b66391218a75a99927efb1e36a2cb00e8ed37a79b71fdc95a1117a9982516156fd997 languageName: node linkType: hard @@ -16733,7 +16717,7 @@ __metadata: version: 0.0.0-use.local resolution: "@y-octo/node@workspace:packages/common/y-octo/node" dependencies: - "@napi-rs/cli": "npm:3.0.0-alpha.78" + "@napi-rs/cli": "npm:3.0.0-alpha.81" "@types/node": "npm:^22.14.1" "@types/prompts": "npm:^2.4.9" c8: "npm:^10.1.3" @@ -17592,10 +17576,10 @@ __metadata: languageName: node linkType: hard -"before-after-hook@npm:^3.0.2": - version: 3.0.2 - resolution: "before-after-hook@npm:3.0.2" - checksum: 10/57dfee78930276a740559552460a83f31c605e0164f02f170f71352aa1f4f5fb2c1632ac3bcba06ba711c32bd88b7e3c82431428e0c4984fbd2336faa78cf08c +"before-after-hook@npm:^4.0.0": + version: 4.0.0 + resolution: "before-after-hook@npm:4.0.0" + checksum: 10/9fd52bc0c3cca0fb115e04dacbeeaacff38fa23e1af725d62392254c31ef433b15da60efcba61552e44d64e26f25ea259f72dba005115924389e88d2fd56e19f languageName: node linkType: hard @@ -21658,10 +21642,10 @@ __metadata: languageName: node linkType: hard -"fast-content-type-parse@npm:^2.0.0": - version: 2.0.1 - resolution: "fast-content-type-parse@npm:2.0.1" - checksum: 10/ec361f5b79254259dadc8192005ceaa54789e63779f144ec3033bd54710f7cb666d47528aa0b12ea29da13f812a0c5f78ce7bc7d779f400bc612f2c65a5972d5 +"fast-content-type-parse@npm:^3.0.0": + version: 3.0.0 + resolution: "fast-content-type-parse@npm:3.0.0" + checksum: 10/8616a8aa6c9b4f8f4f3c90eaa4e7bfc2240cfa6f41f0eef5b5aa2b2c8b38bd9ad435f1488b6d817ffd725c54651e2777b882ae9dd59366e71e7896f1ec11d473 languageName: node linkType: hard