Compare commits

...

10 Commits

Author SHA1 Message Date
nym21 18fb2e7d4d release: v0.0.106 2025-09-09 17:53:09 +02:00
nym21 a610fd53e2 global: add min max choppiness datasets + fixes 2025-09-09 17:52:45 +02:00
nym21 16abce1f2d release: v0.0.105 2025-09-08 20:16:38 +02:00
nym21 f3b42f34a6 dist: add config back to config.toml 2025-09-08 20:16:21 +02:00
nym21 6483d324de release: v0.0.104 2025-09-08 20:02:18 +02:00
nym21 5ab97050dd ci: udpate dist + release.yml 2025-09-08 20:01:51 +02:00
nym21 17eed70903 release: v0.0.103 2025-09-08 19:24:00 +02:00
nym21 88067c03b7 release: v0.0.102 2025-09-08 19:21:43 +02:00
nym21 7c1e5b913f cargo: update 2025-09-08 19:20:53 +02:00
nym21 0014235e91 global: add price volatility datasets 2025-09-08 18:24:22 +02:00
16 changed files with 1746 additions and 948 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ jobs:
# we specify bash to get pipefail; it guards against the `curl` command # we specify bash to get pipefail; it guards against the `curl` command
# failing. otherwise `sh` won't catch that `curl` returned non-0 # failing. otherwise `sh` won't catch that `curl` returned non-0
shell: bash shell: bash
run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.29.0/cargo-dist-installer.sh | sh" run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.30.0/cargo-dist-installer.sh | sh"
- name: Cache dist - name: Cache dist
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
Generated
+181 -144
View File
@@ -82,12 +82,6 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "android-tzdata"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
[[package]] [[package]]
name = "android_system_properties" name = "android_system_properties"
version = "0.1.5" version = "0.1.5"
@@ -504,7 +498,7 @@ dependencies = [
[[package]] [[package]]
name = "brk" name = "brk"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"brk_bundler", "brk_bundler",
"brk_cli", "brk_cli",
@@ -523,7 +517,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_bundler" name = "brk_bundler"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"brk_rolldown", "brk_rolldown",
"log", "log",
@@ -534,7 +528,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_cli" name = "brk_cli"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"bitcoincore-rpc", "bitcoincore-rpc",
"brk_bundler", "brk_bundler",
@@ -559,7 +553,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_computer" name = "brk_computer"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"allocative", "allocative",
"allocative_derive", "allocative_derive",
@@ -588,7 +582,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_error" name = "brk_error"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"bitcoincore-rpc", "bitcoincore-rpc",
"fjall", "fjall",
@@ -601,7 +595,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_fetcher" name = "brk_fetcher"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"brk_error", "brk_error",
"brk_logger", "brk_logger",
@@ -613,7 +607,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_indexer" name = "brk_indexer"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"bitcoin", "bitcoin",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -630,7 +624,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_interface" name = "brk_interface"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"brk_computer", "brk_computer",
"brk_error", "brk_error",
@@ -649,7 +643,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_logger" name = "brk_logger"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"env_logger", "env_logger",
"jiff", "jiff",
@@ -659,7 +653,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_mcp" name = "brk_mcp"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"axum", "axum",
"brk_interface", "brk_interface",
@@ -669,7 +663,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_parser" name = "brk_parser"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"bitcoin", "bitcoin",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -727,9 +721,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown" name = "brk_rolldown"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "010960c65a7c74c19d5f4436b8f87702951d2d48d4a28a2c0dd013945bcc113d" checksum = "c0dfb4767a625199016aa5be14edc12e63e7a3b22e9b7d5cc37582f76d1d7d24"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"append-only-vec", "append-only-vec",
@@ -750,21 +744,24 @@ dependencies = [
"brk_rolldown_std_utils", "brk_rolldown_std_utils",
"brk_rolldown_tracing", "brk_rolldown_tracing",
"brk_rolldown_utils", "brk_rolldown_utils",
"brk_rolldown_watcher",
"brk_string_wizard", "brk_string_wizard",
"commondir", "commondir",
"css-module-lexer", "css-module-lexer",
"dunce", "dunce",
"futures", "futures",
"indexmap 2.11.0", "indexmap 2.11.1",
"itertools", "itertools",
"itoa", "itoa",
"memchr", "memchr",
"notify", "notify",
"oxc", "oxc",
"oxc_allocator",
"oxc_ecmascript", "oxc_ecmascript",
"oxc_index", "oxc_index",
"oxc_traverse", "oxc_traverse",
"petgraph", "petgraph",
"rayon",
"rustc-hash", "rustc-hash",
"serde", "serde",
"serde_json", "serde_json",
@@ -777,16 +774,15 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_common" name = "brk_rolldown_common"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23cd66173b33436aaec126f64e8f1d0938539d2eb934e88c633cf6181f7e4c53" checksum = "e3412bb06f9eef1d34ad8d8decd55f7625db7852d440e3fececafdaddac367b0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arcstr", "arcstr",
"bitflags 2.9.4", "bitflags 2.9.4",
"brk_rolldown_ecmascript", "brk_rolldown_ecmascript",
"brk_rolldown_error", "brk_rolldown_error",
"brk_rolldown_fs",
"brk_rolldown_sourcemap", "brk_rolldown_sourcemap",
"brk_rolldown_std_utils", "brk_rolldown_std_utils",
"brk_rolldown_utils", "brk_rolldown_utils",
@@ -809,9 +805,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_debug" name = "brk_rolldown_debug"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "247e0e91e73e0cee560046f0c9ac926659fb8dd7d868bf8a2121779d3066e78c" checksum = "0e28020dcca285e50003eab2faed661a3f147e5c3b7b103ac7fa46f3d9811656"
dependencies = [ dependencies = [
"blake3", "blake3",
"brk_rolldown_debug_action", "brk_rolldown_debug_action",
@@ -825,9 +821,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_debug_action" name = "brk_rolldown_debug_action"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1080c5563e49c04bf6fe91cdcaa46b2edc3cfa40e2a4acc3378a6bf8fdb0adda" checksum = "b55010d6b5a8dcf3524ca8b504680a9387dd5709c555fe6e1c87fca3f77b5b89"
dependencies = [ dependencies = [
"serde", "serde",
"ts-rs", "ts-rs",
@@ -835,9 +831,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_ecmascript" name = "brk_rolldown_ecmascript"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee5a1a1f6c8b655b6dd3303c7076163af9345f0b212f4e7420d20cba7f5dc4f0" checksum = "9e5f4324e457d930dc61bc2fa1ec6ca006ab8f1b25b3a7d4e89e64b009a92244"
dependencies = [ dependencies = [
"arcstr", "arcstr",
"brk_rolldown_error", "brk_rolldown_error",
@@ -848,9 +844,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_ecmascript_utils" name = "brk_rolldown_ecmascript_utils"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71b0bb857b1475a1d0f962a841f9e6844964815181d221a66a75a0f638a87e89" checksum = "d4e67014dd9afcc8982f3e03d0f6f0389e8f8e38aed8130368678f2599d18630"
dependencies = [ dependencies = [
"brk_rolldown_common", "brk_rolldown_common",
"oxc", "oxc",
@@ -859,9 +855,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_error" name = "brk_rolldown_error"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fd007c612609bcf46e3dca4f9f3c79d16dc1f0bdf7cd0047bfe752fbc6fbecc" checksum = "d7b1666952fcfc93fb494638c26be72aae73cca2267834fa3fd9657e32fdbb8f"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arcstr", "arcstr",
@@ -879,9 +875,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_fs" name = "brk_rolldown_fs"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8c0ad1920283907b092236ac53f214fc013ce0cc18b7e2ba448ee459043189f" checksum = "364160f3619b61db2dba73539ca9df72326bcf6516eedb84479f9aec7ff916a3"
dependencies = [ dependencies = [
"oxc_resolver", "oxc_resolver",
"vfs", "vfs",
@@ -889,9 +885,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_plugin" name = "brk_rolldown_plugin"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b0adf5b4b4e50e6e7abb838fd8490b1b9282fc7a1b0a8e97575a95b692be31d" checksum = "57211c1b798955a934c68c3d5288df64c5215f9bf8117371aa229eb8284048d8"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arcstr", "arcstr",
@@ -919,9 +915,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_plugin_chunk_import_map" name = "brk_rolldown_plugin_chunk_import_map"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e71203616a1bbc27f366a9187dcd99303ddd269ff1ee33c60b1878ff492c0dce" checksum = "e312f5953e7dcfb1d7bdb02cf996e0c83fc0bb27601681836b53973755bad18e"
dependencies = [ dependencies = [
"arcstr", "arcstr",
"brk_rolldown_common", "brk_rolldown_common",
@@ -934,9 +930,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_plugin_data_uri" name = "brk_rolldown_plugin_data_uri"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bedaadb22c7c0975604b57b7862ec6e220764330156f54e339ac70b16641f53" checksum = "75d9bfa5cda344f58deff64c9da579edfa51d78f340b92faac08c201cc642ee9"
dependencies = [ dependencies = [
"arcstr", "arcstr",
"base64-simd", "base64-simd",
@@ -948,9 +944,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_plugin_hmr" name = "brk_rolldown_plugin_hmr"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca831a54b5a83b554063960648f0f540fdb101033ac83a23883648c43482ab5d" checksum = "ed08c47846e429ffe87a047206ac3a2251659d01e28b4fecb0a5fc1881624a7b"
dependencies = [ dependencies = [
"arcstr", "arcstr",
"brk_rolldown_common", "brk_rolldown_common",
@@ -960,9 +956,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_resolver" name = "brk_rolldown_resolver"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dda2ee25ea4a0bca25025a919092add30c06e920671103b8ab1dafd07ebc804" checksum = "d99246fc977891718c909a99330f58d80ea4fa079cab4acf37bf58055e0bbeb4"
dependencies = [ dependencies = [
"arcstr", "arcstr",
"brk_rolldown_common", "brk_rolldown_common",
@@ -976,9 +972,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_sourcemap" name = "brk_rolldown_sourcemap"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fa747f34a65f2b4605bf116a596807a130aa96a0aff6a6e7c69c23bcc77a71d" checksum = "a0e238138ca5395313ca4376d3b412450653cf701935e6c05ad32e1c317598ca"
dependencies = [ dependencies = [
"brk_rolldown_utils", "brk_rolldown_utils",
"memchr", "memchr",
@@ -989,18 +985,18 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_std_utils" name = "brk_rolldown_std_utils"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bb452af6b4553d11a0648cafaf96a718b8726d9430f5be7608d154c17cff34c" checksum = "9672fb5d256a9c944b4050cbf69f06f68274264aaa97d45d25b2f226a05ed269"
dependencies = [ dependencies = [
"regex", "regex",
] ]
[[package]] [[package]]
name = "brk_rolldown_tracing" name = "brk_rolldown_tracing"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c8c62d0a76d9cbe90d711aa79af5e4b8148a65004539bb0655a09030cd90dc" checksum = "b33f1e5d84a5f6a065dc35db551ebedb20501d95955c76b110439965d2e1c14d"
dependencies = [ dependencies = [
"tracing", "tracing",
"tracing-chrome", "tracing-chrome",
@@ -1009,9 +1005,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_rolldown_utils" name = "brk_rolldown_utils"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e438af059be459547cbb9a9977dfac6bcf91103c7180be92a2590fb1e1051fab" checksum = "f39314bf9875e0b461aadc293b3156063ecc2e4fcdb76decb5d051b1c32f0449"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"arcstr", "arcstr",
@@ -1024,7 +1020,7 @@ dependencies = [
"fast-glob", "fast-glob",
"form_urlencoded", "form_urlencoded",
"futures", "futures",
"indexmap 2.11.0", "indexmap 2.11.1",
"infer", "infer",
"itoa", "itoa",
"memchr", "memchr",
@@ -1045,9 +1041,20 @@ dependencies = [
"xxhash-rust", "xxhash-rust",
] ]
[[package]]
name = "brk_rolldown_watcher"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53159dd01ed61374892e101ea5afe34862fade82ae8aedc17a36c1664923a2ac"
dependencies = [
"brk_rolldown_error",
"notify",
"notify-debouncer-full",
]
[[package]] [[package]]
name = "brk_server" name = "brk_server"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"axum", "axum",
"bitcoincore-rpc", "bitcoincore-rpc",
@@ -1071,7 +1078,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_store" name = "brk_store"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"brk_error", "brk_error",
"brk_structs", "brk_structs",
@@ -1082,9 +1089,9 @@ dependencies = [
[[package]] [[package]]
name = "brk_string_wizard" name = "brk_string_wizard"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "054f2739a8615fcfc6823021ae0cfb8189714f01d586de08a7eaa7d3a9f2b7ef" checksum = "c40057b36de33ed24a8b78e81e190e134f4cb6f85e25d5a133536c40ab4ddb6d"
dependencies = [ dependencies = [
"oxc_index", "oxc_index",
"oxc_sourcemap", "oxc_sourcemap",
@@ -1094,7 +1101,7 @@ dependencies = [
[[package]] [[package]]
name = "brk_structs" name = "brk_structs"
version = "0.0.101" version = "0.0.106"
dependencies = [ dependencies = [
"allocative", "allocative",
"allocative_derive", "allocative_derive",
@@ -1218,17 +1225,16 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.41" version = "0.4.42"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
dependencies = [ dependencies = [
"android-tzdata",
"iana-time-zone", "iana-time-zone",
"js-sys", "js-sys",
"num-traits", "num-traits",
"serde", "serde",
"wasm-bindgen", "wasm-bindgen",
"windows-link 0.1.3", "windows-link 0.2.0",
] ]
[[package]] [[package]]
@@ -1766,12 +1772,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]] [[package]]
name = "errno" name = "errno"
version = "0.3.13" version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.60.2", "windows-sys 0.61.0",
] ]
[[package]] [[package]]
@@ -1810,6 +1816,15 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "file-id"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1fc6a637b6dc58414714eddd9170ff187ecb0933d4c7024d1abbd23a3cc26e9"
dependencies = [
"windows-sys 0.60.2",
]
[[package]] [[package]]
name = "filetime" name = "filetime"
version = "0.2.26" version = "0.2.26"
@@ -2059,6 +2074,15 @@ dependencies = [
"foldhash", "foldhash",
] ]
[[package]]
name = "hashbrown"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
dependencies = [
"allocator-api2",
]
[[package]] [[package]]
name = "heck" name = "heck"
version = "0.5.0" version = "0.5.0"
@@ -2325,9 +2349,9 @@ dependencies = [
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "2.11.0" version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921"
dependencies = [ dependencies = [
"equivalent", "equivalent",
"hashbrown 0.15.5", "hashbrown 0.15.5",
@@ -2355,7 +2379,7 @@ dependencies = [
"crossbeam-utils", "crossbeam-utils",
"dashmap", "dashmap",
"env_logger", "env_logger",
"indexmap 2.11.0", "indexmap 2.11.1",
"itoa", "itoa",
"log", "log",
"num-format", "num-format",
@@ -2571,9 +2595,9 @@ dependencies = [
[[package]] [[package]]
name = "linux-raw-sys" name = "linux-raw-sys"
version = "0.9.4" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]] [[package]]
name = "litemap" name = "litemap"
@@ -2742,6 +2766,19 @@ dependencies = [
"windows-sys 0.60.2", "windows-sys 0.60.2",
] ]
[[package]]
name = "notify-debouncer-full"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "375bd3a138be7bfeff3480e4a623df4cbfb55b79df617c055cd810ba466fa078"
dependencies = [
"file-id",
"log",
"notify",
"notify-types",
"walkdir",
]
[[package]] [[package]]
name = "notify-types" name = "notify-types"
version = "2.0.0" version = "2.0.0"
@@ -2868,9 +2905,9 @@ checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
[[package]] [[package]]
name = "oxc" name = "oxc"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7420dea2e5dd2a6415f445acaa1f9192e62756bb26bb20b21c9730341f034d4f" checksum = "1273a1f856d670d49d62ac0e362a6989ea3be208f6846aab85f34383a04b0fae"
dependencies = [ dependencies = [
"oxc_allocator", "oxc_allocator",
"oxc_ast", "oxc_ast",
@@ -2933,13 +2970,13 @@ dependencies = [
[[package]] [[package]]
name = "oxc_allocator" name = "oxc_allocator"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c67f2b817263a72b6cc5b46e32467bc4077496f88315ce08c1796647fed84d4" checksum = "90237f36cf0cd3ea2dcf9682b48fa0c1762a4b407fdcc630f60a72c277877c9f"
dependencies = [ dependencies = [
"allocator-api2", "allocator-api2",
"bumpalo", "bumpalo",
"hashbrown 0.15.5", "hashbrown 0.16.0",
"oxc_data_structures", "oxc_data_structures",
"oxc_estree", "oxc_estree",
"rustc-hash", "rustc-hash",
@@ -2948,14 +2985,15 @@ dependencies = [
[[package]] [[package]]
name = "oxc_ast" name = "oxc_ast"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "989b81258ce151e23adee6f1393f7c0fb7e10e3a6c6c001f71bbaff4081c72a4" checksum = "a73ff824d44e51ac6c20381b644d48db4326935e811eeab29d52ca45e4d19670"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"oxc_allocator", "oxc_allocator",
"oxc_ast_macros", "oxc_ast_macros",
"oxc_data_structures", "oxc_data_structures",
"oxc_diagnostics",
"oxc_estree", "oxc_estree",
"oxc_regular_expression", "oxc_regular_expression",
"oxc_span", "oxc_span",
@@ -2964,9 +3002,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_ast_macros" name = "oxc_ast_macros"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff7e8e42eea621e6fa7072a480fa04ae4dfe73f9a958822c066cc7f1eba57e82" checksum = "4f6af164ffae11248f32c449dad6a15f85d2154fe398bfec75502e0e2af5767a"
dependencies = [ dependencies = [
"phf", "phf",
"proc-macro2", "proc-macro2",
@@ -2976,22 +3014,21 @@ dependencies = [
[[package]] [[package]]
name = "oxc_ast_visit" name = "oxc_ast_visit"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0a968790ef8968de08d813a2fe1a15739930fb1c171fddeebf3545d802ea216" checksum = "a0ff52052e2cfb72fff062d4b7a393f9e9bded601dc16df796e3e460e17a9031"
dependencies = [ dependencies = [
"oxc_allocator", "oxc_allocator",
"oxc_ast", "oxc_ast",
"oxc_data_structures",
"oxc_span", "oxc_span",
"oxc_syntax", "oxc_syntax",
] ]
[[package]] [[package]]
name = "oxc_cfg" name = "oxc_cfg"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5361ef66f38635d9671596d83abf44bcdbc3e39dbff303f3517828b86ad60e8f" checksum = "859f43d20760f159a0b94264bd4d1d0b3c062b69c074d894e80e65295117719b"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"itertools", "itertools",
@@ -3004,13 +3041,14 @@ dependencies = [
[[package]] [[package]]
name = "oxc_codegen" name = "oxc_codegen"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fde8fc6f7337632fce3e9e51c150f57fb0ef234524c6947f63e8009e1ea613cf" checksum = "08e84ab41c9f848471f206674c94781bdc0364699fb14574a3d26dd2a2985844"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"cow-utils", "cow-utils",
"dragonbox_ecma", "dragonbox_ecma",
"itoa",
"nonmax", "nonmax",
"oxc_allocator", "oxc_allocator",
"oxc_ast", "oxc_ast",
@@ -3025,19 +3063,18 @@ dependencies = [
[[package]] [[package]]
name = "oxc_data_structures" name = "oxc_data_structures"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16c58a40be09dbb289150046a39da2fb130eb5b8ff1f013f2963e880e1af261c" checksum = "7f048c4ae3569bcc9dbbed29730b5c5f6dd3a35e9f5c3750cd4b3ed72381fbd0"
dependencies = [ dependencies = [
"ropey", "ropey",
"rustversion",
] ]
[[package]] [[package]]
name = "oxc_diagnostics" name = "oxc_diagnostics"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702bde62d95587518aec86247457830f189242f814fba8389beb6e8c1585c444" checksum = "7d96c95294deec2f038e8c7749a751f929c263da34cc68a621472c57c916c14e"
dependencies = [ dependencies = [
"cow-utils", "cow-utils",
"oxc-miette", "oxc-miette",
@@ -3046,9 +3083,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_ecmascript" name = "oxc_ecmascript"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4dab5abe97e790fe1b631a7eacb9a1cbecbe2dad5b984ef11fcb9115b376ab" checksum = "aa7b86782020722b3190c083dfc3de59cb73425d1fa275ff6f91b5b4ee509550"
dependencies = [ dependencies = [
"cow-utils", "cow-utils",
"num-bigint", "num-bigint",
@@ -3061,9 +3098,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_estree" name = "oxc_estree"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa9a453daacd90f168554015dd49467038ab6894045805f861950c1d0a8e6a5e" checksum = "97f7078ef0c6da21657f5dcade4540c65a460d2a26a42e4418d12ecac860143a"
dependencies = [ dependencies = [
"dragonbox_ecma", "dragonbox_ecma",
"itoa", "itoa",
@@ -3082,9 +3119,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_isolated_declarations" name = "oxc_isolated_declarations"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83d8c311d64fa0bf8cab1bde3f7760cd828e71ed483ca0878799f1f72542cb4d" checksum = "75e6efdb4f6d09772773cc254caed257270b2b32ee4df21dac196dfb0d966c1e"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"oxc_allocator", "oxc_allocator",
@@ -3099,11 +3136,10 @@ dependencies = [
[[package]] [[package]]
name = "oxc_mangler" name = "oxc_mangler"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a19a662666a6a150e91a5aee2e99287800c561682841f68736170312b1275d10" checksum = "401c8ff0fc5e60c94a5821b768bf019a42a0d058469dd26e604dda57723bc404"
dependencies = [ dependencies = [
"fixedbitset",
"itertools", "itertools",
"oxc_allocator", "oxc_allocator",
"oxc_ast", "oxc_ast",
@@ -3116,9 +3152,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_minifier" name = "oxc_minifier"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5e4723cd29a83305e953270e0aaaf2c6d8994ab2472e9132719ffa5fabaa78c" checksum = "cd50617ac26b8cd1e6788dbb527ce16704f47fd5e8e6d87fee4a5e63224a71e8"
dependencies = [ dependencies = [
"cow-utils", "cow-utils",
"oxc_allocator", "oxc_allocator",
@@ -3128,6 +3164,7 @@ dependencies = [
"oxc_ecmascript", "oxc_ecmascript",
"oxc_mangler", "oxc_mangler",
"oxc_parser", "oxc_parser",
"oxc_regular_expression",
"oxc_semantic", "oxc_semantic",
"oxc_span", "oxc_span",
"oxc_syntax", "oxc_syntax",
@@ -3137,9 +3174,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_parser" name = "oxc_parser"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70253728183a5a92d1ba964d9952201e0269ebd07c4917c4553283d564225bab" checksum = "ef71ea1e9bde8ff15f89b60874363359fc7e9796de7bf6cdff69fa54f6869bba"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"cow-utils", "cow-utils",
@@ -3160,9 +3197,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_regular_expression" name = "oxc_regular_expression"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de5bb2ed6646bb7815126e0f36787c349e13561fed2c05f95b27a1f82dd066c4" checksum = "60a4df17b1c47c7fe749208f3a32158dfe90dca5ce630ce86cb9415521f87eb3"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"oxc_allocator", "oxc_allocator",
@@ -3181,7 +3218,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0784392356fa78dd4c9047fce7c9046c141f8990736792d00310bf40935b1870" checksum = "0784392356fa78dd4c9047fce7c9046c141f8990736792d00310bf40935b1870"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"indexmap 2.11.0", "indexmap 2.11.1",
"json-strip-comments", "json-strip-comments",
"once_cell", "once_cell",
"papaya", "papaya",
@@ -3197,9 +3234,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_semantic" name = "oxc_semantic"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06858ccc5976a5303ac903bef13d03b7f8860e837b7399e4899c05f5c729d30b" checksum = "8239fa4e6eaee7a16039a3292a3adbaa645ba3013bf2f801517d8fadc4396557"
dependencies = [ dependencies = [
"itertools", "itertools",
"oxc_allocator", "oxc_allocator",
@@ -3231,9 +3268,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_span" name = "oxc_span"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b315080fee7613168e0e08d3280efccdc12fea1efe5c0285e3a2d6265660f02" checksum = "7d88265af3fb8fc2a2317144dfc40b5e120e0ebe21693cfbf7508d4d3ec6d74f"
dependencies = [ dependencies = [
"compact_str", "compact_str",
"oxc-miette", "oxc-miette",
@@ -3245,9 +3282,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_syntax" name = "oxc_syntax"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72d9d80d47d2eee5c1e6dbcdf1841b42afc4f1cd1f63701fc346162616dac52f" checksum = "b2596e7891b08899f7b74a1fb87b5f5c14153918bb2966648c84581f0a7e6795"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"cow-utils", "cow-utils",
@@ -3267,14 +3304,14 @@ dependencies = [
[[package]] [[package]]
name = "oxc_transformer" name = "oxc_transformer"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89f15659109f115788d7750f31f970d500085e9544c250aa3b20ad23a3901c46" checksum = "bd3cadde4466d8b059bd5032e248a172dfd1dfdcdf82388d3d87bc36b023e895"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"compact_str", "compact_str",
"cow-utils", "cow-utils",
"indexmap 2.11.0", "indexmap 2.11.1",
"itoa", "itoa",
"memchr", "memchr",
"oxc-browserslist", "oxc-browserslist",
@@ -3298,9 +3335,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_transformer_plugins" name = "oxc_transformer_plugins"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb02ec9eb07a34df8adf2559439ef731c7668feff54b7b80a733284055ddce79" checksum = "633645296d62b4550dcf3a28ef08a21055b09b6966feae36043c367b1f511345"
dependencies = [ dependencies = [
"cow-utils", "cow-utils",
"itoa", "itoa",
@@ -3320,9 +3357,9 @@ dependencies = [
[[package]] [[package]]
name = "oxc_traverse" name = "oxc_traverse"
version = "0.81.0" version = "0.87.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adef9483d1b5132a82e05e7f6a4a0b72138bf3c6459d0a5ef40f1fe33e9f77d1" checksum = "6d4dfe9de6b462cb2b2e8e1040b912233781dbb4032c8266f30297a9e2cf4155"
dependencies = [ dependencies = [
"itoa", "itoa",
"oxc_allocator", "oxc_allocator",
@@ -3467,15 +3504,15 @@ checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca"
dependencies = [ dependencies = [
"fixedbitset", "fixedbitset",
"hashbrown 0.15.5", "hashbrown 0.15.5",
"indexmap 2.11.0", "indexmap 2.11.1",
"serde", "serde",
] ]
[[package]] [[package]]
name = "phf" name = "phf"
version = "0.12.1" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "913273894cec178f401a31ec4b656318d95473527be05c0752cc41cdc32be8b7" checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf"
dependencies = [ dependencies = [
"phf_macros", "phf_macros",
"phf_shared", "phf_shared",
@@ -3484,9 +3521,9 @@ dependencies = [
[[package]] [[package]]
name = "phf_generator" name = "phf_generator"
version = "0.12.1" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cbb1126afed61dd6368748dae63b1ee7dc480191c6262a3b4ff1e29d86a6c5b" checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737"
dependencies = [ dependencies = [
"fastrand", "fastrand",
"phf_shared", "phf_shared",
@@ -3494,9 +3531,9 @@ dependencies = [
[[package]] [[package]]
name = "phf_macros" name = "phf_macros"
version = "0.12.1" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d713258393a82f091ead52047ca779d37e5766226d009de21696c4e667044368" checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef"
dependencies = [ dependencies = [
"phf_generator", "phf_generator",
"phf_shared", "phf_shared",
@@ -3507,9 +3544,9 @@ dependencies = [
[[package]] [[package]]
name = "phf_shared" name = "phf_shared"
version = "0.12.1" version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06005508882fb681fd97892ecff4b7fd0fee13ef1aa569f8695dae7ab9099981" checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266"
dependencies = [ dependencies = [
"siphasher", "siphasher",
] ]
@@ -3928,15 +3965,15 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
[[package]] [[package]]
name = "rustix" name = "rustix"
version = "1.0.8" version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
dependencies = [ dependencies = [
"bitflags 2.9.4", "bitflags 2.9.4",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
"windows-sys 0.60.2", "windows-sys 0.61.0",
] ]
[[package]] [[package]]
@@ -4081,9 +4118,9 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
[[package]] [[package]]
name = "seqdb" name = "seqdb"
version = "0.2.11" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078349d3b0b862848f518737b1228fdbaa725819688036db54363aa6c960ead" checksum = "c97f1528725c4bb77e7f804440e353ef2c55dd73dceffc0ef856873b01a5216b"
dependencies = [ dependencies = [
"allocative", "allocative",
"allocative_derive", "allocative_derive",
@@ -4142,7 +4179,7 @@ version = "1.0.143"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
dependencies = [ dependencies = [
"indexmap 2.11.0", "indexmap 2.11.1",
"itoa", "itoa",
"memchr", "memchr",
"ryu", "ryu",
@@ -4190,7 +4227,7 @@ dependencies = [
"chrono", "chrono",
"hex", "hex",
"indexmap 1.9.3", "indexmap 1.9.3",
"indexmap 2.11.0", "indexmap 2.11.1",
"schemars 0.9.0", "schemars 0.9.0",
"schemars 1.0.4", "schemars 1.0.4",
"serde", "serde",
@@ -4592,7 +4629,7 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8"
dependencies = [ dependencies = [
"indexmap 2.11.0", "indexmap 2.11.1",
"serde", "serde",
"serde_spanned", "serde_spanned",
"toml_datetime 0.7.0", "toml_datetime 0.7.0",
@@ -4622,7 +4659,7 @@ version = "0.22.27"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
dependencies = [ dependencies = [
"indexmap 2.11.0", "indexmap 2.11.1",
"toml_datetime 0.6.11", "toml_datetime 0.6.11",
"winnow", "winnow",
] ]
@@ -4939,9 +4976,9 @@ checksum = "8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23"
[[package]] [[package]]
name = "vecdb" name = "vecdb"
version = "0.2.11" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f3b3745eeee3b56f0db302a3ccaa2b400b5c881adf7319afde753b2fed83aae" checksum = "f0f9d0664d3ddb92e67ecc155b748ba16bb2d0c04a92276a33be6eac1a38d533"
dependencies = [ dependencies = [
"allocative", "allocative",
"allocative_derive", "allocative_derive",
@@ -4961,9 +4998,9 @@ dependencies = [
[[package]] [[package]]
name = "vecdb_derive" name = "vecdb_derive"
version = "0.2.11" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb14e5900ae8ba26112c438311b274de59e566a180d7795a584a83e3faa5cb9f" checksum = "d263723d1fbfeed0a279d8983e6b7f58ece72a6fa2bf4772d630b72d1ba2b298"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.106", "syn 2.0.106",
@@ -5487,7 +5524,7 @@ dependencies = [
"arbitrary", "arbitrary",
"crc32fast", "crc32fast",
"flate2", "flate2",
"indexmap 2.11.0", "indexmap 2.11.1",
"memchr", "memchr",
"zopfli", "zopfli",
] ]
+16 -16
View File
@@ -4,7 +4,7 @@ members = ["crates/*"]
package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node" package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node"
package.license = "MIT" package.license = "MIT"
package.edition = "2024" package.edition = "2024"
package.version = "0.0.101" package.version = "0.0.106"
package.homepage = "https://bitcoinresearchkit.org" package.homepage = "https://bitcoinresearchkit.org"
package.repository = "https://github.com/bitcoinresearchkit/brk" package.repository = "https://github.com/bitcoinresearchkit/brk"
package.readme = "README.md" package.readme = "README.md"
@@ -28,19 +28,19 @@ allocative_derive = "0.3.3"
axum = "0.8.4" axum = "0.8.4"
bitcoin = { version = "0.32.7", features = ["serde"] } bitcoin = { version = "0.32.7", features = ["serde"] }
bitcoincore-rpc = "0.19.0" bitcoincore-rpc = "0.19.0"
brk_bundler = { version = "0.0.101", path = "crates/brk_bundler" } brk_bundler = { version = "0.0.106", path = "crates/brk_bundler" }
brk_cli = { version = "0.0.101", path = "crates/brk_cli" } brk_cli = { version = "0.0.106", path = "crates/brk_cli" }
brk_computer = { version = "0.0.101", path = "crates/brk_computer" } brk_computer = { version = "0.0.106", path = "crates/brk_computer" }
brk_error = { version = "0.0.101", path = "crates/brk_error" } brk_error = { version = "0.0.106", path = "crates/brk_error" }
brk_fetcher = { version = "0.0.101", path = "crates/brk_fetcher" } brk_fetcher = { version = "0.0.106", path = "crates/brk_fetcher" }
brk_indexer = { version = "0.0.101", path = "crates/brk_indexer" } brk_indexer = { version = "0.0.106", path = "crates/brk_indexer" }
brk_interface = { version = "0.0.101", path = "crates/brk_interface" } brk_interface = { version = "0.0.106", path = "crates/brk_interface" }
brk_logger = { version = "0.0.101", path = "crates/brk_logger" } brk_logger = { version = "0.0.106", path = "crates/brk_logger" }
brk_mcp = { version = "0.0.101", path = "crates/brk_mcp" } brk_mcp = { version = "0.0.106", path = "crates/brk_mcp" }
brk_parser = { version = "0.0.101", path = "crates/brk_parser" } brk_parser = { version = "0.0.106", path = "crates/brk_parser" }
brk_server = { version = "0.0.101", path = "crates/brk_server" } brk_server = { version = "0.0.106", path = "crates/brk_server" }
brk_store = { version = "0.0.101", path = "crates/brk_store" } brk_store = { version = "0.0.106", path = "crates/brk_store" }
brk_structs = { version = "0.0.101", path = "crates/brk_structs" } brk_structs = { version = "0.0.106", path = "crates/brk_structs" }
byteview = "=0.6.1" byteview = "=0.6.1"
derive_deref = "1.1.1" derive_deref = "1.1.1"
fjall = "2.11.2" fjall = "2.11.2"
@@ -56,7 +56,7 @@ serde_derive = "1.0.219"
serde_json = { version = "1.0.143", features = ["float_roundtrip"] } serde_json = { version = "1.0.143", features = ["float_roundtrip"] }
tokio = { version = "1.47.1", features = ["rt-multi-thread"] } tokio = { version = "1.47.1", features = ["rt-multi-thread"] }
# vecdb = { path = "../seqdb/crates/vecdb", features = ["derive"]} # vecdb = { path = "../seqdb/crates/vecdb", features = ["derive"]}
vecdb = { version = "0.2.11", features = ["derive"]} vecdb = { version = "0.2.12", features = ["derive"]}
zerocopy = "0.8.27" zerocopy = "0.8.27"
zerocopy-derive = "0.8.27" zerocopy-derive = "0.8.27"
@@ -67,7 +67,7 @@ pre-release-commit-message = "release: v{{version}}"
tag-message = "release: v{{version}}" tag-message = "release: v{{version}}"
[workspace.metadata.dist] [workspace.metadata.dist]
cargo-dist-version = "0.29.0" cargo-dist-version = "0.30.0"
ci = "github" ci = "github"
allow-dirty = ["ci"] allow-dirty = ["ci"]
installers = [] installers = []
+1 -1
View File
@@ -12,7 +12,7 @@ build = "build.rs"
[dependencies] [dependencies]
log = { workspace = true } log = { workspace = true }
notify = "8.2.0" notify = "8.2.0"
brk_rolldown = "0.1.4" brk_rolldown = "0.1.5"
# brk_rolldown = { path = "../../../rolldown/crates/rolldown"} # brk_rolldown = { path = "../../../rolldown/crates/rolldown"}
sugar_path = "1.2.0" sugar_path = "1.2.0"
tokio = { workspace = true } tokio = { workspace = true }
+45 -1
View File
@@ -2,7 +2,7 @@ use std::path::Path;
use brk_error::Result; use brk_error::Result;
use brk_indexer::Indexer; use brk_indexer::Indexer;
use brk_structs::{StoredI16, StoredU16, Version}; use brk_structs::{StoredF32, StoredI16, StoredU16, Version};
use vecdb::{AnyCollectableVec, AnyVec, Database, Exit}; use vecdb::{AnyCollectableVec, AnyVec, Database, Exit};
use crate::grouped::Source; use crate::grouped::Source;
@@ -24,7 +24,9 @@ pub struct Vecs {
pub constant_2: ComputedVecsFromHeight<StoredU16>, pub constant_2: ComputedVecsFromHeight<StoredU16>,
pub constant_3: ComputedVecsFromHeight<StoredU16>, pub constant_3: ComputedVecsFromHeight<StoredU16>,
pub constant_4: ComputedVecsFromHeight<StoredU16>, pub constant_4: ComputedVecsFromHeight<StoredU16>,
pub constant_38_2: ComputedVecsFromHeight<StoredF32>,
pub constant_50: ComputedVecsFromHeight<StoredU16>, pub constant_50: ComputedVecsFromHeight<StoredU16>,
pub constant_61_8: ComputedVecsFromHeight<StoredF32>,
pub constant_100: ComputedVecsFromHeight<StoredU16>, pub constant_100: ComputedVecsFromHeight<StoredU16>,
pub constant_600: ComputedVecsFromHeight<StoredU16>, pub constant_600: ComputedVecsFromHeight<StoredU16>,
pub constant_minus_1: ComputedVecsFromHeight<StoredI16>, pub constant_minus_1: ComputedVecsFromHeight<StoredI16>,
@@ -78,6 +80,14 @@ impl Vecs {
indexes, indexes,
VecBuilderOptions::default().add_last(), VecBuilderOptions::default().add_last(),
)?, )?,
constant_38_2: ComputedVecsFromHeight::forced_import(
&db,
"constant_38_2",
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_50: ComputedVecsFromHeight::forced_import( constant_50: ComputedVecsFromHeight::forced_import(
&db, &db,
"constant_50", "constant_50",
@@ -86,6 +96,14 @@ impl Vecs {
indexes, indexes,
VecBuilderOptions::default().add_last(), VecBuilderOptions::default().add_last(),
)?, )?,
constant_61_8: ComputedVecsFromHeight::forced_import(
&db,
"constant_61_8",
Source::Compute,
version + VERSION + Version::ZERO,
indexes,
VecBuilderOptions::default().add_last(),
)?,
constant_100: ComputedVecsFromHeight::forced_import( constant_100: ComputedVecsFromHeight::forced_import(
&db, &db,
"constant_100", "constant_100",
@@ -223,6 +241,30 @@ impl Vecs {
) )
})?; })?;
[
(&mut self.constant_38_2, 38.2),
(&mut self.constant_61_8, 61.8),
]
.into_iter()
.try_for_each(|(vec, value)| {
vec.compute_all(
indexer,
indexes,
starting_indexes,
exit,
|vec, _, indexes, starting_indexes, exit| {
vec.compute_to(
starting_indexes.height,
indexes.height_to_date.len(),
indexes.height_to_date.version(),
|i| (i, StoredF32::from(value)),
exit,
)?;
Ok(())
},
)
})?;
Ok(()) Ok(())
} }
@@ -233,7 +275,9 @@ impl Vecs {
self.constant_2.vecs(), self.constant_2.vecs(),
self.constant_3.vecs(), self.constant_3.vecs(),
self.constant_4.vecs(), self.constant_4.vecs(),
self.constant_38_2.vecs(),
self.constant_50.vecs(), self.constant_50.vecs(),
self.constant_61_8.vecs(),
self.constant_100.vecs(), self.constant_100.vecs(),
self.constant_600.vecs(), self.constant_600.vecs(),
self.constant_minus_1.vecs(), self.constant_minus_1.vecs(),
+100 -100
View File
@@ -20,11 +20,11 @@ where
pub average: Option<Box<EagerVec<I, T>>>, pub average: Option<Box<EagerVec<I, T>>>,
pub sum: Option<Box<EagerVec<I, T>>>, pub sum: Option<Box<EagerVec<I, T>>>,
pub max: Option<Box<EagerVec<I, T>>>, pub max: Option<Box<EagerVec<I, T>>>,
pub p90: Option<Box<EagerVec<I, T>>>, pub pct90: Option<Box<EagerVec<I, T>>>,
pub p75: Option<Box<EagerVec<I, T>>>, pub pct75: Option<Box<EagerVec<I, T>>>,
pub median: Option<Box<EagerVec<I, T>>>, pub median: Option<Box<EagerVec<I, T>>>,
pub p25: Option<Box<EagerVec<I, T>>>, pub pct25: Option<Box<EagerVec<I, T>>>,
pub p10: Option<Box<EagerVec<I, T>>>, pub pct10: Option<Box<EagerVec<I, T>>>,
pub min: Option<Box<EagerVec<I, T>>>, pub min: Option<Box<EagerVec<I, T>>>,
pub last: Option<Box<EagerVec<I, T>>>, pub last: Option<Box<EagerVec<I, T>>>,
pub cumulative: Option<Box<EagerVec<I, T>>>, pub cumulative: Option<Box<EagerVec<I, T>>>,
@@ -152,44 +152,44 @@ where
.unwrap(), .unwrap(),
) )
}), }),
p90: options.p90.then(|| { pct90: options.pct90.then(|| {
Box::new( Box::new(
EagerVec::forced_import( EagerVec::forced_import(
db, db,
&maybe_suffix("p90"), &maybe_suffix("pct90"),
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
format, format,
) )
.unwrap(), .unwrap(),
) )
}), }),
p75: options.p75.then(|| { pct75: options.pct75.then(|| {
Box::new( Box::new(
EagerVec::forced_import( EagerVec::forced_import(
db, db,
&maybe_suffix("p75"), &maybe_suffix("pct75"),
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
format, format,
) )
.unwrap(), .unwrap(),
) )
}), }),
p25: options.p25.then(|| { pct25: options.pct25.then(|| {
Box::new( Box::new(
EagerVec::forced_import( EagerVec::forced_import(
db, db,
&maybe_suffix("p25"), &maybe_suffix("pct25"),
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
format, format,
) )
.unwrap(), .unwrap(),
) )
}), }),
p10: options.p10.then(|| { pct10: options.pct10.then(|| {
Box::new( Box::new(
EagerVec::forced_import( EagerVec::forced_import(
db, db,
&maybe_suffix("p10"), &maybe_suffix("pct10"),
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
format, format,
) )
@@ -293,11 +293,11 @@ where
let needs_average_sum_or_cumulative = let needs_average_sum_or_cumulative =
needs_sum_or_cumulative || self.average.is_some(); needs_sum_or_cumulative || self.average.is_some();
let needs_sorted = self.max.is_some() let needs_sorted = self.max.is_some()
|| self.p90.is_some() || self.pct90.is_some()
|| self.p75.is_some() || self.pct75.is_some()
|| self.median.is_some() || self.median.is_some()
|| self.p25.is_some() || self.pct25.is_some()
|| self.p10.is_some() || self.pct10.is_some()
|| self.min.is_some(); || self.min.is_some();
let needs_values = needs_sorted || needs_average_sum_or_cumulative; let needs_values = needs_sorted || needs_average_sum_or_cumulative;
@@ -334,24 +334,24 @@ where
)?; )?;
} }
if let Some(p90) = self.p90.as_mut() { if let Some(pct90) = self.pct90.as_mut() {
p90.forced_push_at(index, get_percentile(&values, 0.90), exit)?; pct90.forced_push_at(index, get_percentile(&values, 0.90), exit)?;
} }
if let Some(p75) = self.p75.as_mut() { if let Some(pct75) = self.pct75.as_mut() {
p75.forced_push_at(index, get_percentile(&values, 0.75), exit)?; pct75.forced_push_at(index, get_percentile(&values, 0.75), exit)?;
} }
if let Some(median) = self.median.as_mut() { if let Some(median) = self.median.as_mut() {
median.forced_push_at(index, get_percentile(&values, 0.50), exit)?; median.forced_push_at(index, get_percentile(&values, 0.50), exit)?;
} }
if let Some(p25) = self.p25.as_mut() { if let Some(pct25) = self.pct25.as_mut() {
p25.forced_push_at(index, get_percentile(&values, 0.25), exit)?; pct25.forced_push_at(index, get_percentile(&values, 0.25), exit)?;
} }
if let Some(p10) = self.p10.as_mut() { if let Some(pct10) = self.pct10.as_mut() {
p10.forced_push_at(index, get_percentile(&values, 0.10), exit)?; pct10.forced_push_at(index, get_percentile(&values, 0.10), exit)?;
} }
if let Some(min) = self.min.as_mut() { if let Some(min) = self.min.as_mut() {
@@ -402,11 +402,11 @@ where
where where
I2: StoredIndex + StoredRaw + CheckedSub<I2>, I2: StoredIndex + StoredRaw + CheckedSub<I2>,
{ {
if self.p90.is_some() if self.pct90.is_some()
|| self.p75.is_some() || self.pct75.is_some()
|| self.median.is_some() || self.median.is_some()
|| self.p25.is_some() || self.pct25.is_some()
|| self.p10.is_some() || self.pct10.is_some()
{ {
panic!("unsupported"); panic!("unsupported");
} }
@@ -559,24 +559,24 @@ where
self.max.as_ref().unwrap() self.max.as_ref().unwrap()
} }
#[allow(unused)] #[allow(unused)]
pub fn unwrap_p90(&self) -> &EagerVec<I, T> { pub fn unwrap_pct90(&self) -> &EagerVec<I, T> {
self.p90.as_ref().unwrap() self.pct90.as_ref().unwrap()
} }
#[allow(unused)] #[allow(unused)]
pub fn unwrap_p75(&self) -> &EagerVec<I, T> { pub fn unwrap_pct75(&self) -> &EagerVec<I, T> {
self.p75.as_ref().unwrap() self.pct75.as_ref().unwrap()
} }
#[allow(unused)] #[allow(unused)]
pub fn unwrap_median(&self) -> &EagerVec<I, T> { pub fn unwrap_median(&self) -> &EagerVec<I, T> {
self.median.as_ref().unwrap() self.median.as_ref().unwrap()
} }
#[allow(unused)] #[allow(unused)]
pub fn unwrap_p25(&self) -> &EagerVec<I, T> { pub fn unwrap_pct25(&self) -> &EagerVec<I, T> {
self.p25.as_ref().unwrap() self.pct25.as_ref().unwrap()
} }
#[allow(unused)] #[allow(unused)]
pub fn unwrap_p10(&self) -> &EagerVec<I, T> { pub fn unwrap_pct10(&self) -> &EagerVec<I, T> {
self.p10.as_ref().unwrap() self.pct10.as_ref().unwrap()
} }
pub fn unwrap_min(&self) -> &EagerVec<I, T> { pub fn unwrap_min(&self) -> &EagerVec<I, T> {
self.min.as_ref().unwrap() self.min.as_ref().unwrap()
@@ -616,17 +616,17 @@ where
if let Some(cumulative) = self.cumulative.as_ref() { if let Some(cumulative) = self.cumulative.as_ref() {
v.push(cumulative.as_ref()); v.push(cumulative.as_ref());
} }
if let Some(p90) = self.p90.as_ref() { if let Some(pct90) = self.pct90.as_ref() {
v.push(p90.as_ref()); v.push(pct90.as_ref());
} }
if let Some(p75) = self.p75.as_ref() { if let Some(pct75) = self.pct75.as_ref() {
v.push(p75.as_ref()); v.push(pct75.as_ref());
} }
if let Some(p25) = self.p25.as_ref() { if let Some(pct25) = self.pct25.as_ref() {
v.push(p25.as_ref()); v.push(pct25.as_ref());
} }
if let Some(p10) = self.p10.as_ref() { if let Some(pct10) = self.pct10.as_ref() {
v.push(p10.as_ref()); v.push(pct10.as_ref());
} }
v v
@@ -657,17 +657,17 @@ where
if let Some(cumulative) = self.cumulative.as_mut() { if let Some(cumulative) = self.cumulative.as_mut() {
cumulative.safe_flush(exit)?; cumulative.safe_flush(exit)?;
} }
if let Some(p90) = self.p90.as_mut() { if let Some(pct90) = self.pct90.as_mut() {
p90.safe_flush(exit)?; pct90.safe_flush(exit)?;
} }
if let Some(p75) = self.p75.as_mut() { if let Some(pct75) = self.pct75.as_mut() {
p75.safe_flush(exit)?; pct75.safe_flush(exit)?;
} }
if let Some(p25) = self.p25.as_mut() { if let Some(pct25) = self.pct25.as_mut() {
p25.safe_flush(exit)?; pct25.safe_flush(exit)?;
} }
if let Some(p10) = self.p10.as_mut() { if let Some(pct10) = self.pct10.as_mut() {
p10.safe_flush(exit)?; pct10.safe_flush(exit)?;
} }
Ok(()) Ok(())
@@ -698,17 +698,17 @@ where
if let Some(cumulative) = self.cumulative.as_mut() { if let Some(cumulative) = self.cumulative.as_mut() {
cumulative.validate_computed_version_or_reset(Version::ZERO + version)?; cumulative.validate_computed_version_or_reset(Version::ZERO + version)?;
} }
if let Some(p90) = self.p90.as_mut() { if let Some(pct90) = self.pct90.as_mut() {
p90.validate_computed_version_or_reset(Version::ZERO + version)?; pct90.validate_computed_version_or_reset(Version::ZERO + version)?;
} }
if let Some(p75) = self.p75.as_mut() { if let Some(pct75) = self.pct75.as_mut() {
p75.validate_computed_version_or_reset(Version::ZERO + version)?; pct75.validate_computed_version_or_reset(Version::ZERO + version)?;
} }
if let Some(p25) = self.p25.as_mut() { if let Some(pct25) = self.pct25.as_mut() {
p25.validate_computed_version_or_reset(Version::ZERO + version)?; pct25.validate_computed_version_or_reset(Version::ZERO + version)?;
} }
if let Some(p10) = self.p10.as_mut() { if let Some(pct10) = self.pct10.as_mut() {
p10.validate_computed_version_or_reset(Version::ZERO + version)?; pct10.validate_computed_version_or_reset(Version::ZERO + version)?;
} }
Ok(()) Ok(())
@@ -720,11 +720,11 @@ pub struct VecBuilderOptions {
average: bool, average: bool,
sum: bool, sum: bool,
max: bool, max: bool,
p90: bool, pct90: bool,
p75: bool, pct75: bool,
median: bool, median: bool,
p25: bool, pct25: bool,
p10: bool, pct10: bool,
min: bool, min: bool,
first: bool, first: bool,
last: bool, last: bool,
@@ -744,24 +744,24 @@ impl VecBuilderOptions {
self.max self.max
} }
pub fn p90(&self) -> bool { pub fn pct90(&self) -> bool {
self.p90 self.pct90
} }
pub fn p75(&self) -> bool { pub fn pct75(&self) -> bool {
self.p75 self.pct75
} }
pub fn median(&self) -> bool { pub fn median(&self) -> bool {
self.median self.median
} }
pub fn p25(&self) -> bool { pub fn pct25(&self) -> bool {
self.p25 self.pct25
} }
pub fn p10(&self) -> bool { pub fn pct10(&self) -> bool {
self.p10 self.pct10
} }
pub fn min(&self) -> bool { pub fn min(&self) -> bool {
@@ -817,26 +817,26 @@ impl VecBuilderOptions {
} }
#[allow(unused)] #[allow(unused)]
pub fn add_p90(mut self) -> Self { pub fn add_pct90(mut self) -> Self {
self.p90 = true; self.pct90 = true;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn add_p75(mut self) -> Self { pub fn add_pct75(mut self) -> Self {
self.p75 = true; self.pct75 = true;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn add_p25(mut self) -> Self { pub fn add_pct25(mut self) -> Self {
self.p25 = true; self.pct25 = true;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn add_p10(mut self) -> Self { pub fn add_pct10(mut self) -> Self {
self.p10 = true; self.pct10 = true;
self self
} }
@@ -876,26 +876,26 @@ impl VecBuilderOptions {
} }
#[allow(unused)] #[allow(unused)]
pub fn rm_p90(mut self) -> Self { pub fn rm_pct90(mut self) -> Self {
self.p90 = false; self.pct90 = false;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn rm_p75(mut self) -> Self { pub fn rm_pct75(mut self) -> Self {
self.p75 = false; self.pct75 = false;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn rm_p25(mut self) -> Self { pub fn rm_pct25(mut self) -> Self {
self.p25 = false; self.pct25 = false;
self self
} }
#[allow(unused)] #[allow(unused)]
pub fn rm_p10(mut self) -> Self { pub fn rm_pct10(mut self) -> Self {
self.p10 = false; self.pct10 = false;
self self
} }
@@ -912,20 +912,20 @@ impl VecBuilderOptions {
} }
pub fn add_percentiles(mut self) -> Self { pub fn add_percentiles(mut self) -> Self {
self.p90 = true; self.pct90 = true;
self.p75 = true; self.pct75 = true;
self.median = true; self.median = true;
self.p25 = true; self.pct25 = true;
self.p10 = true; self.pct10 = true;
self self
} }
pub fn remove_percentiles(mut self) -> Self { pub fn remove_percentiles(mut self) -> Self {
self.p90 = false; self.pct90 = false;
self.p75 = false; self.pct75 = false;
self.median = false; self.median = false;
self.p25 = false; self.pct25 = false;
self.p10 = false; self.pct10 = false;
self self
} }
@@ -934,11 +934,11 @@ impl VecBuilderOptions {
self.average, self.average,
self.sum, self.sum,
self.max, self.max,
self.p90, self.pct90,
self.p75, self.pct75,
self.median, self.median,
self.p25, self.pct25,
self.p10, self.pct10,
self.min, self.min,
self.first, self.first,
self.last, self.last,
+24 -24
View File
@@ -320,24 +320,24 @@ impl ComputedVecsFromTxindex<Bitcoin> {
exit, exit,
)?; )?;
} }
if let Some(_90p) = self.height.p90.as_mut() { if let Some(pct90) = self.height.pct90.as_mut() {
_90p.forced_push_at( pct90.forced_push_at(
height, height,
Bitcoin::from( Bitcoin::from(
sats.height sats.height
.unwrap_p90() .unwrap_pct90()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
), ),
exit, exit,
)?; )?;
} }
if let Some(_75p) = self.height.p75.as_mut() { if let Some(pct75) = self.height.pct75.as_mut() {
_75p.forced_push_at( pct75.forced_push_at(
height, height,
Bitcoin::from( Bitcoin::from(
sats.height sats.height
.unwrap_p75() .unwrap_pct75()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
), ),
@@ -356,24 +356,24 @@ impl ComputedVecsFromTxindex<Bitcoin> {
exit, exit,
)?; )?;
} }
if let Some(_25p) = self.height.p25.as_mut() { if let Some(pct25) = self.height.pct25.as_mut() {
_25p.forced_push_at( pct25.forced_push_at(
height, height,
Bitcoin::from( Bitcoin::from(
sats.height sats.height
.unwrap_p25() .unwrap_pct25()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
), ),
exit, exit,
)?; )?;
} }
if let Some(_10p) = self.height.p10.as_mut() { if let Some(pct10) = self.height.pct10.as_mut() {
_10p.forced_push_at( pct10.forced_push_at(
height, height,
Bitcoin::from( Bitcoin::from(
sats.height sats.height
.unwrap_p10() .unwrap_pct10()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
), ),
@@ -503,25 +503,25 @@ impl ComputedVecsFromTxindex<Dollars> {
exit, exit,
)?; )?;
} }
if let Some(_90p) = self.height.p90.as_mut() { if let Some(pct90) = self.height.pct90.as_mut() {
_90p.forced_push_at( pct90.forced_push_at(
height, height,
price price
* bitcoin * bitcoin
.height .height
.unwrap_p90() .unwrap_pct90()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
exit, exit,
)?; )?;
} }
if let Some(_75p) = self.height.p75.as_mut() { if let Some(pct75) = self.height.pct75.as_mut() {
_75p.forced_push_at( pct75.forced_push_at(
height, height,
price price
* bitcoin * bitcoin
.height .height
.unwrap_p75() .unwrap_pct75()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
exit, exit,
@@ -539,25 +539,25 @@ impl ComputedVecsFromTxindex<Dollars> {
exit, exit,
)?; )?;
} }
if let Some(_25p) = self.height.p25.as_mut() { if let Some(pct25) = self.height.pct25.as_mut() {
_25p.forced_push_at( pct25.forced_push_at(
height, height,
price price
* bitcoin * bitcoin
.height .height
.unwrap_p25() .unwrap_pct25()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
exit, exit,
)?; )?;
} }
if let Some(_10p) = self.height.p10.as_mut() { if let Some(pct10) = self.height.pct10.as_mut() {
_10p.forced_push_at( pct10.forced_push_at(
height, height,
price price
* bitcoin * bitcoin
.height .height
.unwrap_p10() .unwrap_pct10()
.into_iter() .into_iter()
.unwrap_get_inner(height), .unwrap_get_inner(height),
exit, exit,
@@ -8,7 +8,9 @@ use vecdb::{
use crate::{ use crate::{
Indexes, Indexes,
grouped::{ComputedStandardDeviationVecsFromDateIndex, source::Source}, grouped::{
ComputedStandardDeviationVecsFromDateIndex, StandardDeviationVecsOptions, source::Source,
},
indexes, price, indexes, price,
utils::get_percentile, utils::get_percentile,
}; };
@@ -105,6 +107,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute, Source::Compute,
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
indexes, indexes,
StandardDeviationVecsOptions::default().add_all(),
) )
.unwrap() .unwrap()
}), }),
@@ -116,6 +119,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute, Source::Compute,
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
indexes, indexes,
StandardDeviationVecsOptions::default().add_all(),
) )
.unwrap() .unwrap()
}), }),
@@ -127,6 +131,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute, Source::Compute,
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
indexes, indexes,
StandardDeviationVecsOptions::default().add_all(),
) )
.unwrap() .unwrap()
}), }),
@@ -138,6 +143,7 @@ impl ComputedRatioVecsFromDateIndex {
Source::Compute, Source::Compute,
version + VERSION + Version::ZERO, version + VERSION + Version::ZERO,
indexes, indexes,
StandardDeviationVecsOptions::default().add_all(),
) )
.unwrap() .unwrap()
}), }),
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+16 -2
View File
@@ -10,6 +10,8 @@ use serde::{Deserialize, Serialize};
use vecdb::{CheckedSub, StoredCompressed}; use vecdb::{CheckedSub, StoredCompressed};
use zerocopy_derive::{FromBytes, Immutable, IntoBytes, KnownLayout}; use zerocopy_derive::{FromBytes, Immutable, IntoBytes, KnownLayout};
use crate::{Low, Open};
use super::{Bitcoin, Cents, Close, High, Sats, StoredF32, StoredF64}; use super::{Bitcoin, Cents, Close, High, Sats, StoredF32, StoredF64};
#[derive( #[derive(
@@ -80,8 +82,8 @@ impl From<Dollars> for f64 {
} }
} }
impl From<Close<Dollars>> for Dollars { impl From<Open<Dollars>> for Dollars {
fn from(value: Close<Dollars>) -> Self { fn from(value: Open<Dollars>) -> Self {
Self(value.0) Self(value.0)
} }
} }
@@ -92,6 +94,18 @@ impl From<High<Dollars>> for Dollars {
} }
} }
impl From<Low<Dollars>> for Dollars {
fn from(value: Low<Dollars>) -> Self {
Self(value.0)
}
}
impl From<Close<Dollars>> for Dollars {
fn from(value: Close<Dollars>) -> Self {
Self(value.0)
}
}
impl From<usize> for Dollars { impl From<usize> for Dollars {
fn from(value: usize) -> Self { fn from(value: usize) -> Self {
Self(value as f64) Self(value as f64)
+2
View File
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.89.0"
+2 -2
View File
@@ -367,7 +367,7 @@ export function init({
case null: case null:
case CANDLE: { case CANDLE: {
series = chart.addCandlestickSeries({ series = chart.addCandlestickSeries({
vecId: "ohlc_in_sats", vecId: "price_ohlc_in_sats",
name: "Price", name: "Price",
unit: topUnit, unit: topUnit,
inverse: true, inverse: true,
@@ -378,7 +378,7 @@ export function init({
} }
case LINE: { case LINE: {
series = chart.addLineSeries({ series = chart.addLineSeries({
vecId: "close_in_sats", vecId: "price_close_in_sats",
name: "Price", name: "Price",
unit: topUnit, unit: topUnit,
color: colors.default, color: colors.default,
+4
View File
@@ -783,11 +783,14 @@ function createUtils() {
id === "price_open" || id === "price_open" ||
id === "price_ath" || id === "price_ath" ||
id === "market_cap" || id === "market_cap" ||
id.startsWith("price_true_range") ||
id.includes("_usd") || id.includes("_usd") ||
id.includes("cointime_value") || id.includes("cointime_value") ||
id.endsWith("_ago") || id.endsWith("_ago") ||
id.endsWith("price_paid") || id.endsWith("price_paid") ||
id.endsWith("_price") || id.endsWith("_price") ||
(id.startsWith("price") &&
(id.endsWith("min") || id.endsWith("max"))) ||
(id.endsWith("_cap") && !id.includes("rel_to")) || (id.endsWith("_cap") && !id.includes("rel_to")) ||
id.endsWith("value_created") || id.endsWith("value_created") ||
id.endsWith("value_destroyed") || id.endsWith("value_destroyed") ||
@@ -835,6 +838,7 @@ function createUtils() {
id.endsWith("oscillator") || id.endsWith("oscillator") ||
id.endsWith("dominance") || id.endsWith("dominance") ||
id.endsWith("returns") || id.endsWith("returns") ||
id.endsWith("volatility") ||
id.endsWith("cagr")) id.endsWith("cagr"))
) { ) {
setUnit("percentage"); setUnit("percentage");
+115 -25
View File
@@ -163,18 +163,18 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
* @typedef {"_median"} MedianSuffix * @typedef {"_median"} MedianSuffix
* @typedef {EndsWith<MedianSuffix>} VecIdMedian * @typedef {EndsWith<MedianSuffix>} VecIdMedian
* @typedef {WithoutSuffix<VecIdMedian, MedianSuffix>} VecIdMedianBase * @typedef {WithoutSuffix<VecIdMedian, MedianSuffix>} VecIdMedianBase
* @typedef {"_p90"} _p90Suffix * @typedef {"_pct90"} _pct90Suffix
* @typedef {EndsWith<_p90Suffix>} VecIdp90 * @typedef {EndsWith<_pct90Suffix>} VecIdpct90
* @typedef {WithoutSuffix<VecIdp90, _p90Suffix>} VecIdp90Base * @typedef {WithoutSuffix<VecIdpct90, _pct90Suffix>} VecIdpct90Base
* @typedef {"_p75"} _p75Suffix * @typedef {"_pct75"} _pct75Suffix
* @typedef {EndsWith<_p75Suffix>} VecIdp75 * @typedef {EndsWith<_pct75Suffix>} VecIdpct75
* @typedef {WithoutSuffix<VecIdp75, _p75Suffix>} VecIdp75Base * @typedef {WithoutSuffix<VecIdpct75, _pct75Suffix>} VecIdpct75Base
* @typedef {"_p25"} _p25Suffix * @typedef {"_pct25"} _pct25Suffix
* @typedef {EndsWith<_p25Suffix>} VecIdp25 * @typedef {EndsWith<_pct25Suffix>} VecIdpct25
* @typedef {WithoutSuffix<VecIdp25, _p25Suffix>} VecIdp25Base * @typedef {WithoutSuffix<VecIdpct25, _pct25Suffix>} VecIdpct25Base
* @typedef {"_p10"} _p10Suffix * @typedef {"_pct10"} _pct10Suffix
* @typedef {EndsWith<_p10Suffix>} VecIdp10 * @typedef {EndsWith<_pct10Suffix>} VecIdpct10
* @typedef {WithoutSuffix<VecIdp10, _p10Suffix>} VecIdp10Base * @typedef {WithoutSuffix<VecIdpct10, _pct10Suffix>} VecIdpct10Base
* @typedef {"_max"} MaxSuffix * @typedef {"_max"} MaxSuffix
* @typedef {EndsWith<MaxSuffix>} VecIdMax * @typedef {EndsWith<MaxSuffix>} VecIdMax
* @typedef {WithoutSuffix<VecIdMax, MaxSuffix>} VecIdMaxBase * @typedef {WithoutSuffix<VecIdMax, MaxSuffix>} VecIdMaxBase
@@ -1094,7 +1094,10 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
lineStyle, lineStyle,
}) { }) {
return /** @satisfies {FetchedLineSeriesBlueprint} */ ({ return /** @satisfies {FetchedLineSeriesBlueprint} */ ({
key: `constant_${number >= 0 ? number : `minus_${Math.abs(number)}`}`, key: `constant_${number >= 0 ? number : `minus_${Math.abs(number)}`}`.replace(
".",
"_",
),
title: name ?? `${number}`, title: name ?? `${number}`,
unit, unit,
defaultActive, defaultActive,
@@ -1229,7 +1232,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
/** /**
* @param {Object} args * @param {Object} args
* @param {VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} args.concat * @param {VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} args.concat
* @param {string} [args.title] * @param {string} [args.title]
*/ */
function createMinMaxPercentilesSeries({ concat, title = "" }) { function createMinMaxPercentilesSeries({ concat, title = "" }) {
@@ -1253,26 +1256,26 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
defaultActive: false, defaultActive: false,
}, },
{ {
key: `${concat}_p75`, key: `${concat}_pct75`,
title: `p75 ${title}`, title: `pct75 ${title}`,
color: colors.red, color: colors.red,
defaultActive: false, defaultActive: false,
}, },
{ {
key: `${concat}_p25`, key: `${concat}_pct25`,
title: `p25 ${title}`, title: `pct25 ${title}`,
color: colors.yellow, color: colors.yellow,
defaultActive: false, defaultActive: false,
}, },
{ {
key: `${concat}_p90`, key: `${concat}_pct90`,
title: `p90 ${title}`, title: `pct90 ${title}`,
color: colors.rose, color: colors.rose,
defaultActive: false, defaultActive: false,
}, },
{ {
key: `${concat}_p10`, key: `${concat}_pct10`,
title: `p10 ${title}`, title: `pct10 ${title}`,
color: colors.lime, color: colors.lime,
defaultActive: false, defaultActive: false,
}, },
@@ -1280,7 +1283,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
} }
/** /**
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} key * @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} key
*/ */
function createSumCumulativeMinMaxPercentilesSeries(key) { function createSumCumulativeMinMaxPercentilesSeries(key) {
return [ return [
@@ -1290,7 +1293,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
} }
/** /**
* @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} key * @param {VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} key
*/ */
function createAverageSumCumulativeMinMaxPercentilesSeries(key) { function createAverageSumCumulativeMinMaxPercentilesSeries(key) {
return [ return [
@@ -1301,7 +1304,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
/** /**
* @param {Object} args * @param {Object} args
* @param {VecId & VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdp90Base & VecIdp75Base & VecIdMedianBase & VecIdp25Base & VecIdp10Base} args.key * @param {VecId & VecIdAverageBase & CumulativeVecIdBase & VecIdMinBase & VecIdMaxBase & VecIdpct90Base & VecIdpct75Base & VecIdMedianBase & VecIdpct25Base & VecIdpct10Base} args.key
* @param {string} args.name * @param {string} args.name
*/ */
function createBaseAverageSumCumulativeMinMaxPercentilesSeries({ function createBaseAverageSumCumulativeMinMaxPercentilesSeries({
@@ -3149,6 +3152,93 @@ function createPartialOptions({ env, colors, vecIdToIndexes, pools }) {
{ {
name: "Indicators", name: "Indicators",
tree: [ tree: [
{
name: "Volatility",
title: "Bitcoin Price Volatility Index",
bottom: [
createBaseSeries({
key: "price_1w_volatility",
name: "1w",
color: colors.red,
}),
createBaseSeries({
key: "price_1m_volatility",
name: "1m",
color: colors.orange,
}),
createBaseSeries({
key: "price_1y_volatility",
name: "1y",
color: colors.lime,
}),
],
},
{
name: "MinMax",
tree: [
{
key: "1w",
title: "1 Week",
},
{
key: "2w",
title: "2 Week",
},
{
key: "1m",
title: "1 Month",
},
{
key: "1y",
title: "1 Year",
},
].map(({ key, title }) => ({
name: key,
title: `Bitcoin Price ${title} MinMax Bands`,
top: [
createBaseSeries({
key: `price_${key}_min`,
name: "min",
color: colors.red,
}),
createBaseSeries({
key: `price_${key}_max`,
name: "max",
color: colors.green,
}),
],
})),
},
{
name: "True range",
title: "Bitcoin Price True Range",
bottom: [
createBaseSeries({
key: "price_true_range",
name: "value",
color: colors.yellow,
}),
],
},
{
name: "Choppiness",
title: "Bitcoin Price Choppiness Index",
bottom: [
createBaseSeries({
key: "price_2w_choppiness_index",
name: "2w",
color: colors.red,
}),
createPriceLine({
unit: "Index",
number: 61.8,
}),
createPriceLine({
unit: "Index",
number: 38.2,
}),
],
},
{ {
name: "Mayer multiple", name: "Mayer multiple",
title: "Mayer multiple", title: "Mayer multiple",
+3 -1
View File
@@ -520,7 +520,9 @@ function createIndexToVecIds(vecIdToIndexes) {
*/ */
function serializeValue({ value, unit }) { function serializeValue({ value, unit }) {
const t = typeof value; const t = typeof value;
if (typeof value === "string") { if (value === null) {
return "null";
} else if (typeof value === "string") {
return value; return value;
} else if (t !== "number") { } else if (t !== "number") {
return JSON.stringify(value).replaceAll('"', "").slice(1, -1); return JSON.stringify(value).replaceAll('"', "").slice(1, -1);