diff --git a/.gitignore b/.gitignore
index ef7344d3..a70bef23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
/dist
/target
/packages/cadmium/target
-/packages/cadmium/bench-*-report
**/.svelte-kit
/package
*.env*
@@ -14,4 +13,3 @@ vite.config.ts.timestamp-*
/.pnpm-store/
**/*.obj
**/*.step
-.vscode
diff --git a/.vscode/launch.json b/.vscode/launch.json
index e633e907..173c5e2a 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -13,6 +13,7 @@
"pattern": "Local: +http://127.0.0.1:([0-9]+)/",
"uriFormat": "http://127.0.0.1:%s",
"webRoot": "${workspaceFolder}/applications/web/src",
+ "killOnServerStop": true
}
},
],
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 0c05d521..d6c6b6fe 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -3,13 +3,5 @@
"vite.autoStart": false,
"vite.buildCommand": "pnpm run build",
"vite.devCommand": "pnpm run dev",
- "vite.showTerminal": true,
- "cSpell.words": [
- "bindgen",
- "isketch",
- "Threlte",
- "tsify",
- "wireframe"
- ],
- "editor.formatOnSave": true
+ "vite.showTerminal": true
}
diff --git a/Cargo.lock b/Cargo.lock
index c2969489..a7732f9e 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -14,9 +14,9 @@ dependencies = [
[[package]]
name = "addr2line"
-version = "0.22.0"
+version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
dependencies = [
"gimli",
]
@@ -41,9 +41,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "1.1.3"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
dependencies = [
"memchr 2.7.2",
]
@@ -102,15 +102,6 @@ dependencies = [
"num-traits",
]
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
-
[[package]]
name = "array-macro"
version = "2.1.8"
@@ -140,17 +131,26 @@ dependencies = [
"system-deps",
]
+[[package]]
+name = "atomic-polyfill"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28"
+dependencies = [
+ "critical-section",
+]
+
[[package]]
name = "autocfg"
-version = "1.3.0"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "backtrace"
-version = "0.3.72"
+version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
dependencies = [
"addr2line",
"cc",
@@ -169,9 +169,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
-version = "0.21.7"
+version = "0.21.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
[[package]]
name = "base64"
@@ -247,9 +247,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.16.0"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
[[package]]
name = "bytemuck"
@@ -262,9 +262,9 @@ dependencies = [
[[package]]
name = "bytemuck_derive"
-version = "1.7.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
dependencies = [
"proc-macro2",
"quote",
@@ -273,9 +273,9 @@ dependencies = [
[[package]]
name = "byteorder"
-version = "1.5.0"
+version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
@@ -291,17 +291,11 @@ name = "cadmium"
version = "0.1.0"
dependencies = [
"anyhow",
- "cadmium-macros",
"console_error_panic_hook",
- "convert_case 0.6.0",
"crc32fast",
"geo",
- "indexmap 2.2.6",
- "isotope",
- "itertools 0.13.0",
- "js-sys",
- "log",
- "paste",
+ "indexmap 2.1.0",
+ "itertools 0.12.1",
"serde",
"serde_json",
"serde_with",
@@ -315,20 +309,7 @@ dependencies = [
"truck-stepio",
"truck-topology",
"tsify",
- "tsify-next",
"wasm-bindgen",
- "wasm-logger",
- "xxhash-rust",
-]
-
-[[package]]
-name = "cadmium-macros"
-version = "0.1.0"
-dependencies = [
- "convert_case 0.6.0",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
]
[[package]]
@@ -410,9 +391,12 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.0.99"
+version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
[[package]]
name = "cesu8"
@@ -459,7 +443,7 @@ version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a98d30140e3296250832bbaaff83b27dcd6fa3cc70fb6f1f3e5c9c0023b5317"
dependencies = [
- "approx 0.4.0",
+ "approx",
"num-traits",
"serde",
]
@@ -535,15 +519,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-[[package]]
-name = "convert_case"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
-dependencies = [
- "unicode-segmentation",
-]
-
[[package]]
name = "core-foundation"
version = "0.9.4"
@@ -595,13 +570,19 @@ dependencies = [
[[package]]
name = "crc32fast"
-version = "1.4.2"
+version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
"cfg-if",
]
+[[package]]
+name = "critical-section"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
+
[[package]]
name = "crossbeam-channel"
version = "0.5.13"
@@ -613,21 +594,26 @@ dependencies = [
[[package]]
name = "crossbeam-deque"
-version = "0.8.5"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
dependencies = [
+ "cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
-version = "0.9.18"
+version = "0.9.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
dependencies = [
+ "autocfg",
+ "cfg-if",
"crossbeam-utils",
+ "memoffset",
+ "scopeguard",
]
[[package]]
@@ -685,9 +671,9 @@ dependencies = [
[[package]]
name = "darling"
-version = "0.20.9"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
dependencies = [
"darling_core",
"darling_macro",
@@ -695,9 +681,9 @@ dependencies = [
[[package]]
name = "darling_core"
-version = "0.20.9"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
dependencies = [
"fnv",
"ident_case",
@@ -709,9 +695,9 @@ dependencies = [
[[package]]
name = "darling_macro"
-version = "0.20.9"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
dependencies = [
"darling_core",
"quote",
@@ -720,9 +706,9 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.3.11"
+version = "0.3.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
dependencies = [
"powerfmt",
"serde",
@@ -745,7 +731,7 @@ version = "0.99.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
- "convert_case 0.4.0",
+ "convert_case",
"proc-macro2",
"quote",
"rustc_version",
@@ -810,17 +796,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-[[package]]
-name = "displaydoc"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
[[package]]
name = "dlib"
version = "0.5.2"
@@ -870,9 +845,9 @@ checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
[[package]]
name = "dtoa-short"
-version = "0.3.5"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87"
+checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
dependencies = [
"dtoa",
]
@@ -891,19 +866,19 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
[[package]]
name = "earcutr"
-version = "0.4.3"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01"
+checksum = "0812b44697951d35fde8fcb0da81c9de7e809e825a66bbf1ecb79d9829d4ca3d"
dependencies = [
- "itertools 0.11.0",
+ "itertools 0.10.5",
"num-traits",
]
[[package]]
name = "either"
-version = "1.12.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
[[package]]
name = "embed-resource"
@@ -1223,9 +1198,9 @@ dependencies = [
[[package]]
name = "geo"
-version = "0.28.0"
+version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f811f663912a69249fa620dcd2a005db7254529da2d8a0b23942e81f47084501"
+checksum = "1645cf1d7fea7dac1a66f7357f3df2677ada708b8d9db8e9b043878930095a96"
dependencies = [
"earcutr",
"float_next_after",
@@ -1235,17 +1210,15 @@ dependencies = [
"num-traits",
"robust",
"rstar",
- "serde",
- "spade",
]
[[package]]
name = "geo-types"
-version = "0.7.13"
+version = "0.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ff16065e5720f376fbced200a5ae0f47ace85fd70b7e54269790281353b6d61"
+checksum = "9705398c5c7b26132e74513f4ee7c1d7dafd786004991b375c172be2be0eecaa"
dependencies = [
- "approx 0.5.1",
+ "approx",
"num-traits",
"rstar",
"serde",
@@ -1253,11 +1226,11 @@ dependencies = [
[[package]]
name = "geographiclib-rs"
-version = "0.2.4"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e5ed84f8089c70234b0a8e0aedb6dc733671612ddc0d37c6066052f9781960"
+checksum = "8ea804e7bd3c6a4ca6a01edfa35231557a8a81d4d3f3e1e2b650d028c42592be"
dependencies = [
- "libm",
+ "lazy_static",
]
[[package]]
@@ -1286,9 +1259,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.29.0"
+version = "0.28.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
[[package]]
name = "gio"
@@ -1388,19 +1361,6 @@ dependencies = [
"web-sys",
]
-[[package]]
-name = "gloo-utils"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa"
-dependencies = [
- "js-sys",
- "serde",
- "serde_json",
- "wasm-bindgen",
- "web-sys",
-]
-
[[package]]
name = "gobject-sys"
version = "0.18.0"
@@ -1466,9 +1426,9 @@ dependencies = [
[[package]]
name = "hash32"
-version = "0.3.1"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
+checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
dependencies = [
"byteorder",
]
@@ -1481,9 +1441,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
-version = "0.14.5"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156"
dependencies = [
"ahash",
"allocator-api2",
@@ -1491,11 +1451,14 @@ dependencies = [
[[package]]
name = "heapless"
-version = "0.8.0"
+version = "0.7.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
+checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743"
dependencies = [
+ "atomic-polyfill",
"hash32",
+ "rustc_version",
+ "spin",
"stable_deref_trait",
]
@@ -1545,7 +1508,7 @@ checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
dependencies = [
"bytes",
"fnv",
- "itoa 1.0.11",
+ "itoa 1.0.9",
]
[[package]]
@@ -1560,12 +1523,12 @@ dependencies = [
[[package]]
name = "http-body-util"
-version = "0.1.2"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
dependencies = [
"bytes",
- "futures-util",
+ "futures-core",
"http",
"http-body",
"pin-project-lite",
@@ -1573,9 +1536,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.9.2"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
[[package]]
name = "hyper"
@@ -1589,7 +1552,7 @@ dependencies = [
"http",
"http-body",
"httparse",
- "itoa 1.0.11",
+ "itoa 1.0.9",
"pin-project-lite",
"smallvec",
"tokio",
@@ -1618,16 +1581,16 @@ dependencies = [
[[package]]
name = "iana-time-zone"
-version = "0.1.60"
+version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "windows-core 0.52.0",
+ "windows-core 0.51.1",
]
[[package]]
@@ -1649,124 +1612,6 @@ dependencies = [
"png",
]
-[[package]]
-name = "icu_collections"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"
-dependencies = [
- "displaydoc",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"
-dependencies = [
- "displaydoc",
- "litemap",
- "tinystr",
- "writeable",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid_transform"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_locid_transform_data",
- "icu_provider",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_locid_transform_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
-
-[[package]]
-name = "icu_normalizer"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_normalizer_data",
- "icu_properties",
- "icu_provider",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "write16",
- "zerovec",
-]
-
-[[package]]
-name = "icu_normalizer_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
-
-[[package]]
-name = "icu_properties"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locid_transform",
- "icu_properties_data",
- "icu_provider",
- "tinystr",
- "zerovec",
-]
-
-[[package]]
-name = "icu_properties_data"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
-
-[[package]]
-name = "icu_provider"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_provider_macros",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec",
-]
-
-[[package]]
-name = "icu_provider_macros"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
[[package]]
name = "ident_case"
version = "1.0.1"
@@ -1775,14 +1620,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
-version = "1.0.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
dependencies = [
- "icu_normalizer",
- "icu_properties",
- "smallvec",
- "utf8_iter",
+ "unicode-bidi",
+ "unicode-normalization",
]
[[package]]
@@ -1798,12 +1641,12 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.2.6"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
dependencies = [
"equivalent",
- "hashbrown 0.14.5",
+ "hashbrown 0.14.2",
"serde",
]
@@ -1831,19 +1674,6 @@ version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
-[[package]]
-name = "isotope"
-version = "0.1.0"
-source = "git+https://github.com/CADmium-Co/ISOtope.git#f2f4590e552e3407ae19d811e56cd4c1c83039db"
-dependencies = [
- "geo",
- "nalgebra",
- "serde",
- "thiserror",
- "tsify",
- "wasm-bindgen",
-]
-
[[package]]
name = "itertools"
version = "0.10.5"
@@ -1853,15 +1683,6 @@ dependencies = [
"either",
]
-[[package]]
-name = "itertools"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
-
[[package]]
name = "itertools"
version = "0.12.1"
@@ -1871,15 +1692,6 @@ dependencies = [
"either",
]
-[[package]]
-name = "itertools"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
-dependencies = [
- "either",
-]
-
[[package]]
name = "itoa"
version = "0.4.8"
@@ -1888,9 +1700,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.11"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
[[package]]
name = "javascriptcore-rs"
@@ -1939,9 +1751,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "js-sys"
-version = "0.3.69"
+version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
dependencies = [
"wasm-bindgen",
]
@@ -2050,9 +1862,9 @@ dependencies = [
[[package]]
name = "libm"
-version = "0.2.8"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
[[package]]
name = "libredox"
@@ -2070,17 +1882,11 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e"
-[[package]]
-name = "litemap"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704"
-
[[package]]
name = "lock_api"
-version = "0.4.12"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
dependencies = [
"autocfg",
"scopeguard",
@@ -2179,16 +1985,6 @@ dependencies = [
"num-complex",
]
-[[package]]
-name = "matrixmultiply"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
-dependencies = [
- "autocfg",
- "rawpointer",
-]
-
[[package]]
name = "memchr"
version = "1.0.2"
@@ -2206,9 +2002,9 @@ checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
[[package]]
name = "memoffset"
-version = "0.9.1"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
dependencies = [
"autocfg",
]
@@ -2227,9 +2023,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniz_oxide"
-version = "0.7.3"
+version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
dependencies = [
"adler",
"simd-adler32",
@@ -2265,34 +2061,6 @@ dependencies = [
"windows-sys 0.52.0",
]
-[[package]]
-name = "nalgebra"
-version = "0.32.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef"
-dependencies = [
- "approx 0.5.1",
- "matrixmultiply",
- "nalgebra-macros",
- "num-complex",
- "num-rational",
- "num-traits",
- "serde",
- "simba",
- "typenum",
-]
-
-[[package]]
-name = "nalgebra-macros"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
[[package]]
name = "ndk"
version = "0.7.0"
@@ -2365,20 +2133,13 @@ dependencies = [
[[package]]
name = "num-complex"
-version = "0.4.6"
+version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
dependencies = [
"num-traits",
- "serde",
]
-[[package]]
-name = "num-conv"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
-
[[package]]
name = "num-derive"
version = "0.3.3"
@@ -2390,30 +2151,11 @@ dependencies = [
"syn 1.0.109",
]
-[[package]]
-name = "num-integer"
-version = "0.1.46"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
-dependencies = [
- "num-integer",
- "num-traits",
-]
-
[[package]]
name = "num-traits"
-version = "0.2.19"
+version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
dependencies = [
"autocfg",
"libm",
@@ -2579,18 +2321,18 @@ dependencies = [
[[package]]
name = "object"
-version = "0.35.0"
+version = "0.32.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
dependencies = [
"memchr 2.7.2",
]
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "option-ext"
@@ -2652,12 +2394,6 @@ dependencies = [
"windows-targets 0.52.5",
]
-[[package]]
-name = "paste"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
-
[[package]]
name = "percent-encoding"
version = "2.3.1"
@@ -2842,8 +2578,8 @@ version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9"
dependencies = [
- "base64 0.21.7",
- "indexmap 2.2.6",
+ "base64 0.21.5",
+ "indexmap 2.1.0",
"line-wrap",
"quick-xml 0.31.0",
"serde",
@@ -2933,9 +2669,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.85"
+version = "1.0.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
+checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6"
dependencies = [
"unicode-ident",
]
@@ -3061,12 +2797,6 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
-[[package]]
-name = "rawpointer"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
-
[[package]]
name = "rayon"
version = "1.10.0"
@@ -3118,14 +2848,14 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.10.5"
+version = "1.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
dependencies = [
"aho-corasick",
"memchr 2.7.2",
- "regex-automata 0.4.7",
- "regex-syntax 0.8.4",
+ "regex-automata 0.4.3",
+ "regex-syntax 0.8.2",
]
[[package]]
@@ -3139,13 +2869,13 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.7"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
dependencies = [
"aho-corasick",
"memchr 2.7.2",
- "regex-syntax 0.8.4",
+ "regex-syntax 0.8.2",
]
[[package]]
@@ -3156,9 +2886,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
[[package]]
name = "regex-syntax"
-version = "0.8.4"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
[[package]]
name = "reqwest"
@@ -3205,9 +2935,9 @@ checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30"
[[package]]
name = "rstar"
-version = "0.12.0"
+version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "133315eb94c7b1e8d0cb097e5a710d850263372fd028fff18969de708afc7008"
+checksum = "73111312eb7a2287d229f06c00ff35b51ddee180f017ab6dec1f69d62ac098d6"
dependencies = [
"heapless",
"num-traits",
@@ -3216,9 +2946,9 @@ dependencies = [
[[package]]
name = "rustc-demangle"
-version = "0.1.24"
+version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
[[package]]
name = "rustc-hash"
@@ -3271,18 +3001,9 @@ checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "ryu"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
-
-[[package]]
-name = "safe_arch"
-version = "0.7.1"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
-dependencies = [
- "bytemuck",
-]
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
[[package]]
name = "same-file"
@@ -3315,7 +3036,7 @@ checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
dependencies = [
"proc-macro2",
"quote",
- "serde_derive_internals 0.29.1",
+ "serde_derive_internals",
"syn 2.0.66",
]
@@ -3353,9 +3074,9 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.23"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
dependencies = [
"serde",
]
@@ -3369,17 +3090,6 @@ dependencies = [
"serde_derive",
]
-[[package]]
-name = "serde-wasm-bindgen"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e"
-dependencies = [
- "js-sys",
- "serde",
- "wasm-bindgen",
-]
-
[[package]]
name = "serde_derive"
version = "1.0.203"
@@ -3393,20 +3103,9 @@ dependencies = [
[[package]]
name = "serde_derive_internals"
-version = "0.28.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "serde_derive_internals"
-version = "0.29.1"
+version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
dependencies = [
"proc-macro2",
"quote",
@@ -3419,7 +3118,7 @@ version = "1.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
dependencies = [
- "itoa 1.0.11",
+ "itoa 1.0.9",
"ryu",
"serde",
]
@@ -3451,24 +3150,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
- "itoa 1.0.11",
+ "itoa 1.0.9",
"ryu",
"serde",
]
[[package]]
name = "serde_with"
-version = "3.8.1"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
+checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
dependencies = [
- "base64 0.22.1",
+ "base64 0.21.5",
"chrono",
"hex",
"indexmap 1.9.3",
- "indexmap 2.2.6",
+ "indexmap 2.1.0",
"serde",
- "serde_derive",
"serde_json",
"serde_with_macros",
"time",
@@ -3476,9 +3174,9 @@ dependencies = [
[[package]]
name = "serde_with_macros"
-version = "3.8.1"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
+checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
dependencies = [
"darling",
"proc-macro2",
@@ -3538,19 +3236,6 @@ dependencies = [
"lazy_static",
]
-[[package]]
-name = "simba"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae"
-dependencies = [
- "approx 0.5.1",
- "num-complex",
- "num-traits",
- "paste",
- "wide",
-]
-
[[package]]
name = "simd-adler32"
version = "0.3.7"
@@ -3644,12 +3329,21 @@ version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b20a809169ae442497e41a997fc5f14e2eea04e6ac590816a910d5d8068c8c0"
dependencies = [
- "hashbrown 0.14.5",
+ "hashbrown 0.14.2",
"num-traits",
"robust",
"smallvec",
]
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
@@ -3693,9 +3387,9 @@ dependencies = [
[[package]]
name = "strsim"
-version = "0.11.1"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "strum"
@@ -3708,11 +3402,11 @@ dependencies = [
[[package]]
name = "strum_macros"
-version = "0.26.4"
+version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
dependencies = [
- "heck 0.5.0",
+ "heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
@@ -3721,9 +3415,9 @@ dependencies = [
[[package]]
name = "svg"
-version = "0.17.0"
+version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "700efb40f3f559c23c18b446e8ed62b08b56b2bb3197b36d57e0470b4102779e"
+checksum = "02d815ad337e8449d2374d4248448645edfe74e699343dd5719139d93fa87112"
[[package]]
name = "swift-rs"
@@ -3731,7 +3425,7 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
dependencies = [
- "base64 0.21.7",
+ "base64 0.21.5",
"serde",
"serde_json",
]
@@ -3764,17 +3458,6 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
-[[package]]
-name = "synstructure"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
-
[[package]]
name = "system-deps"
version = "6.2.2"
@@ -4092,13 +3775,12 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.36"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
dependencies = [
"deranged",
- "itoa 1.0.11",
- "num-conv",
+ "itoa 1.0.9",
"powerfmt",
"serde",
"time-core",
@@ -4113,24 +3795,28 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.18"
+version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
dependencies = [
- "num-conv",
"time-core",
]
[[package]]
-name = "tinystr"
-version = "0.7.6"
+name = "tinyvec"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
dependencies = [
- "displaydoc",
- "zerovec",
+ "tinyvec_macros",
]
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
[[package]]
name = "tokio"
version = "1.38.0"
@@ -4199,7 +3885,7 @@ version = "0.19.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
- "indexmap 2.2.6",
+ "indexmap 2.1.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -4212,7 +3898,7 @@ version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
dependencies = [
- "indexmap 2.2.6",
+ "indexmap 2.1.0",
"serde",
"serde_spanned",
"toml_datetime",
@@ -4309,9 +3995,9 @@ dependencies = [
[[package]]
name = "tray-icon"
-version = "0.14.3"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ad8319cca93189ea9ab1b290de0595960529750b6b8b501a399ed1ec3775d60"
+checksum = "0b27516dfcfa22a9faaf192283a122bfbede38c1e59ef194e3c4db6549b419c0"
dependencies = [
"cocoa",
"core-graphics",
@@ -4478,12 +4164,10 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "tsify"
version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6b26cf145f2f3b9ff84e182c448eaf05468e247f148cf3d2a7d67d78ff023a0"
+source = "git+https://github.com/siefkenj/tsify#8a5a550d2ab41612cef88a3a3de2a94639b0d3fc"
dependencies = [
- "gloo-utils 0.1.7",
+ "gloo-utils",
"serde",
- "serde-wasm-bindgen",
"serde_json",
"tsify-macros",
"wasm-bindgen",
@@ -4492,37 +4176,11 @@ dependencies = [
[[package]]
name = "tsify-macros"
version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a94b0f0954b3e59bfc2c246b4c8574390d94a4ad4ad246aaf2fb07d7dfd3b47"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde_derive_internals 0.28.0",
- "syn 2.0.66",
-]
-
-[[package]]
-name = "tsify-next"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0407c98efe14c83fd025675246bf855f0ed750b6b57fa6ab839ade598ceb5374"
-dependencies = [
- "gloo-utils 0.2.0",
- "serde",
- "serde_json",
- "tsify-next-macros",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "tsify-next-macros"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "615b1b80acc6720d554777d55ed4ed35a5ceb0e0df7ff7cf9d3946ecbf74953e"
+source = "git+https://github.com/siefkenj/tsify#8a5a550d2ab41612cef88a3a3de2a94639b0d3fc"
dependencies = [
"proc-macro2",
"quote",
- "serde_derive_internals 0.29.1",
+ "serde_derive_internals",
"syn 2.0.66",
]
@@ -4573,11 +4231,26 @@ dependencies = [
"unic-common",
]
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
[[package]]
name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
[[package]]
name = "unicode-segmentation"
@@ -4587,9 +4260,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
[[package]]
name = "url"
-version = "2.5.1"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
dependencies = [
"form_urlencoded",
"idna",
@@ -4616,18 +4289,6 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
-[[package]]
-name = "utf16_iter"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"
-
-[[package]]
-name = "utf8_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
-
[[package]]
name = "uuid"
version = "1.8.0"
@@ -4727,9 +4388,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -4737,9 +4398,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
dependencies = [
"bumpalo",
"log",
@@ -4752,9 +4413,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.42"
+version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
dependencies = [
"cfg-if",
"js-sys",
@@ -4764,9 +4425,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -4774,9 +4435,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
@@ -4787,20 +4448,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.92"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
-
-[[package]]
-name = "wasm-logger"
-version = "0.2.0"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "074649a66bb306c8f2068c9016395fa65d8e08d2affcbf95acf3c24c3ab19718"
-dependencies = [
- "log",
- "wasm-bindgen",
- "web-sys",
-]
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wasm-streams"
@@ -4828,9 +4478,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.69"
+version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -4916,16 +4566,6 @@ dependencies = [
"windows-core 0.56.0",
]
-[[package]]
-name = "wide"
-version = "0.7.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a040b111774ab63a19ef46bbc149398ab372b4ccdcfd719e9814dbd7dfd76c8"
-dependencies = [
- "bytemuck",
- "safe_arch",
-]
-
[[package]]
name = "winapi"
version = "0.3.9"
@@ -4991,11 +4631,11 @@ dependencies = [
[[package]]
name = "windows-core"
-version = "0.52.0"
+version = "0.51.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.48.5",
]
[[package]]
@@ -5034,9 +4674,9 @@ dependencies = [
[[package]]
name = "windows-result"
-version = "0.1.2"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
dependencies = [
"windows-targets 0.52.5",
]
@@ -5257,9 +4897,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "winnow"
-version = "0.5.40"
+version = "0.5.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+checksum = "a3b801d0e0a6726477cc207f60162da452f3a95adb368399bef20a946e06f65c"
dependencies = [
"memchr 2.7.2",
]
@@ -5274,18 +4914,6 @@ dependencies = [
"windows-sys 0.48.0",
]
-[[package]]
-name = "write16"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
-
-[[package]]
-name = "writeable"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
-
[[package]]
name = "wry"
version = "0.40.1"
@@ -5349,12 +4977,6 @@ dependencies = [
"pkg-config",
]
-[[package]]
-name = "xxhash-rust"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
-
[[package]]
name = "xz2"
version = "0.1.7"
@@ -5364,30 +4986,6 @@ dependencies = [
"lzma-sys",
]
-[[package]]
-name = "yoke"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5"
-dependencies = [
- "serde",
- "stable_deref_trait",
- "yoke-derive",
- "zerofrom",
-]
-
-[[package]]
-name = "yoke-derive"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
- "synstructure",
-]
-
[[package]]
name = "zerocopy"
version = "0.7.34"
@@ -5407,46 +5005,3 @@ dependencies = [
"quote",
"syn 2.0.66",
]
-
-[[package]]
-name = "zerofrom"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55"
-dependencies = [
- "zerofrom-derive",
-]
-
-[[package]]
-name = "zerofrom-derive"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
- "synstructure",
-]
-
-[[package]]
-name = "zerovec"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c"
-dependencies = [
- "yoke",
- "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.66",
-]
diff --git a/Cargo.toml b/Cargo.toml
index ee66054c..278b014c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,3 +1,6 @@
[workspace]
-members = [ "packages/cadmium", "packages/cadmium-macros", "applications/tauri" ]
+members = ["packages/cadmium", "applications/tauri"]
resolver = "2"
+
+[patch.crates-io]
+tsify = { git = "https://github.com/siefkenj/tsify" }
diff --git a/README.md b/README.md
index 0e27cdad..d81060c0 100644
--- a/README.md
+++ b/README.md
@@ -108,13 +108,8 @@ yay -S aur/enchant1.6 aur/icu66 aur/libwebp052
Watch vitest unit tests only:
```shell
-pnpm test:unit -- -w
-```
-
-Run playwright e2e tests only:
-
-```shell
-pnpm test:unit -- -w
+cd applications/web
+pnpm test:unit -w
```
### rust
@@ -130,8 +125,7 @@ cargo test
Simple exaples using the rust code can be found in `packages/cadmium/examples`
Run simple rust example with:
-
-```shell
+```
cargo run --example project_simple_extrusion
```
diff --git a/applications/web/package.json b/applications/web/package.json
index 43cb0e4a..a31d606e 100644
--- a/applications/web/package.json
+++ b/applications/web/package.json
@@ -6,11 +6,11 @@
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
- "test": "pnpm test:e2e && pnpm test:unit",
+ "test": "pnpm test:integration && pnpm test:unit",
"lint": "prettier --check . && eslint \"src/**/*.ts\"",
"format": "prettier . --write .",
"check": "svelte-check --tsconfig ./tsconfig.json",
- "test:e2e": "playwright test",
+ "test:integration": "playwright test",
"test:unit": "vitest",
"types:guard": "ts-auto-guard --export-all src/types.d.ts"
},
diff --git a/applications/web/src/App.svelte b/applications/web/src/App.svelte
index aa95dfb0..2f01772c 100644
--- a/applications/web/src/App.svelte
+++ b/applications/web/src/App.svelte
@@ -37,7 +37,7 @@
// log('featureIndex changed to', val)
// refresh workbench when featureIndex mutates
- featureIndex.subscribe(_ => $wasmProject["get_workbench"] && workbenchIsStale.set(true))
+ featureIndex.subscribe(val => $wasmProject["get_workbench"] && workbenchIsStale.set(true))
diff --git a/applications/web/src/components/AppBar.svelte b/applications/web/src/components/AppBar.svelte
index 62231b41..c04fd408 100644
--- a/applications/web/src/components/AppBar.svelte
+++ b/applications/web/src/components/AppBar.svelte
@@ -10,10 +10,10 @@
import Moon from "phosphor-svelte/lib/Moon"
import Sun from "phosphor-svelte/lib/Sun"
import type {WithTarget} from "shared/types"
+ import {isProject} from "shared/typeGuards"
import {base} from "../base"
import {renameProject} from "shared/projectUtils"
- // @ts-ignore
const log = (function () { const context = "[AppBar.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
export let project: Project
diff --git a/applications/web/src/components/Arc.svelte b/applications/web/src/components/Arc.svelte
index 92caafbd..9f63c020 100644
--- a/applications/web/src/components/Arc.svelte
+++ b/applications/web/src/components/Arc.svelte
@@ -5,16 +5,14 @@
import {T} from "@threlte/core"
import {flatten, arcToPoints, promoteTo3} from "shared/projectUtils"
import {currentlySelected, currentlyMousedOver, sketchTool} from "shared/stores"
- import type {EntityType} from "shared/types"
+ import type {EntityType, SketchPoint} from "shared/types"
import {isEntity} from "shared/typeGuards"
- import type { Point2 } from "cadmium"
- // @ts-ignore
const log = (function () { const context = "[Arc.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
const type: EntityType = "arc"
- export let id: string, center: Point2, start: Point2, end: Point2
+ export let id: string, center: SketchPoint, start: SketchPoint, end: SketchPoint
export let dashedLineMaterial: LineMaterial,
dashedHoveredMaterial: LineMaterial,
@@ -27,9 +25,9 @@
$: selected = $currentlySelected.some(e => isEntity(e) && e.id === id && e.type === type) ? true : false
- const center2 = new Vector2(center.x, center.y)
- const start2 = new Vector2(start.x, start.y)
- const end2 = new Vector2(end.x, end.y)
+ const center2 = new Vector2(center.twoD.x, center.twoD.y)
+ const start2 = new Vector2(start.twoD.x, start.twoD.y)
+ const end2 = new Vector2(end.twoD.x, end.twoD.y)
const points = flatten(promoteTo3(arcToPoints(center2, start2, end2 /** implicit false */))) // defaulted false in function todo ask Matt
diff --git a/applications/web/src/components/Circle.svelte b/applications/web/src/components/Circle.svelte
index 00cfcdde..57413622 100644
--- a/applications/web/src/components/Circle.svelte
+++ b/applications/web/src/components/Circle.svelte
@@ -4,15 +4,13 @@
import {T} from "@threlte/core"
import {flatten, circleToPoints, promoteTo3} from "shared/projectUtils"
import {currentlySelected, currentlyMousedOver, sketchTool} from "shared/stores"
- import type {EntityType} from "shared/types"
- import type { Point2 } from "cadmium"
+ import type {CircleTuple, EntityType} from "shared/types"
- // @ts-ignore
const log = (function () { const context = "[Circle.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
const type: EntityType = "circle"
- export let id: string, center: Point2, radius: number
+ export let id: string, center: CircleTuple["center"], radius: number
// log("[props]", "id:", id, "center:", center, "radius:", radius)
@@ -27,7 +25,7 @@
$: selected = $currentlySelected.some(e => e.id === id && e.type === type) ? true : false
// array of x,y,z points
- const points = flatten(promoteTo3(circleToPoints(center, radius)))
+ const points = flatten(promoteTo3(circleToPoints(center.twoD, radius)))
const lineGeometry = new LineGeometry()
lineGeometry.setPositions(points)
diff --git a/applications/web/src/components/Face.svelte b/applications/web/src/components/Face.svelte
index 0d165f30..b23c5368 100644
--- a/applications/web/src/components/Face.svelte
+++ b/applications/web/src/components/Face.svelte
@@ -3,9 +3,9 @@
import {Path, Vector2, Shape, MeshStandardMaterial, DoubleSide, ShapeGeometry} from "three"
import {circleToPoints, arcToPoints} from "shared/projectUtils"
import {currentlySelected, currentlyMousedOver, selectingFor} from "shared/stores"
- import type {EntityType, IDictionary, Point2WithID} from "shared/types"
+ import type {EntityType, IDictionary, SketchPoint} from "shared/types"
+ // import Sketch from './Sketch.svelte'
- // @ts-ignore
const log = (function () { const context = "[Face.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
// todo see docs below
@@ -13,7 +13,8 @@
// exterior: wire
// holes: wires[]
// }
- export let face: any, id: string, pointsById: IDictionary
+ export let face: any, id: string, pointsById: IDictionary
+ // log("[props]", "face:", face, "id:", id, "pointsById:", pointsById)
const type: EntityType = "face"
@@ -35,33 +36,31 @@
function writeWireToShape(wire: {Circle: any; Segments: any}, shape: Path) {
if (wire.Circle) {
let circle = wire.Circle
- let center = circle.center.data
- let radius = circle.data
- let points = circleToPoints(new Vector2(center[0], center[1]), radius)
+ let center = pointsById[circle.center]
+ let radius = circle.radius
+ let points = circleToPoints(new Vector2(center.twoD.x, center.twoD.y), radius)
shape.setFromPoints(points)
} else if (wire.Segments) {
let points = []
for (let segment of wire.Segments) {
- console.log("segment", segment)
- if ("Line" in segment) {
- let start = segment.Line.start
- let end = segment.Line.end
+ if (segment.type === "Line") {
+ let start = pointsById[segment.start]
+ let end = pointsById[segment.end]
if (points.length === 0) {
- points.push(new Vector2(start.data[0], start.data[1]))
+ points.push(new Vector2(start.twoD.x, start.twoD.y))
}
- points.push(new Vector2(end.data[0], end.data[1]))
- } else if ("Arc" in segment) {
- // TODO: We use a center + angles, not 3 points
- let center = segment.Arc.center
- let start = pointsById[segment.Arc.start]
- let end = pointsById[segment.Arc.end]
+ points.push(new Vector2(end.twoD.x, end.twoD.y))
+ } else if (segment.type === "Arc") {
+ let center = pointsById[segment.center]
+ let start = pointsById[segment.start]
+ let end = pointsById[segment.end]
let arcPoints = arcToPoints(
- new Vector2(center.x, center.y),
- new Vector2(start.x, start.y),
- new Vector2(end.x, end.y),
- segment.Arc.clockwise,
+ new Vector2(center.twoD.x, center.twoD.y),
+ new Vector2(start.twoD.x, start.twoD.y),
+ new Vector2(end.twoD.x, end.twoD.y),
+ segment.clockwise,
)
if (points.length !== 0) {
diff --git a/applications/web/src/components/FeatureHistory.svelte b/applications/web/src/components/FeatureHistory.svelte
index 7ab57b8c..bf608cf1 100644
--- a/applications/web/src/components/FeatureHistory.svelte
+++ b/applications/web/src/components/FeatureHistory.svelte
@@ -1,14 +1,13 @@
@@ -121,17 +169,17 @@
on:click={e => {
if (editing) {
if ($sketchTool === "line") {
- newLineTool.click(e, projectToPlane(e.point))
+ newLineTool.click(e, {twoD: projectToPlane(e.point), threeD: e.point})
} else if ($sketchTool === "circle") {
- newCircleTool.click(e, projectToPlane(e.point))
+ newCircleTool.click(e, {twoD: projectToPlane(e.point), threeD: e.point})
} else if ($sketchTool === "rectangle") {
- newRectangleTool.click(e, projectToPlane(e.point))
+ newRectangleTool.click(e, {twoD: projectToPlane(e.point), threeD: e.point})
} else if ($sketchTool === "select") {
selectTool.click(e, projectToPlane(e.point))
}
}
}}
- on:pointermove={debounce((e: any) => {
+ on:pointermove={debounce(e => {
if (editing) {
if ($sketchTool === "line") {
newLineTool.mouseMove(e, projectToPlane(e.point))
@@ -146,10 +194,10 @@
-
-
-
-
+
+
+
+
- {#each history as step}
- {#if isSketchPointStep(step)}
-
- {:else if isSketchCircleStep(step)}
-
- {:else if isSketchArcStep(step)}
-
-
- {:else if isSketchLineStep(step)}
-
- {/if}
+ {#each circleTuples as circle (circle.id)}
+
+ {/each}
- {#if isSketchActionStep(step)}
- {#each step.result.faces as face, faceId}
-
- {/each}
- {/if}
+ {#each arcTuples as arc (arc.id)}
+
+ {/each}
+
+ {#each lineTuples as line (line.id)}
+
{/each}
{#each $previewGeometry as geom (geom.uuid)}
{#if isGeomType(geom, "line")}
{:else if isGeomType(geom, "circle")}
{:else if isGeomType(geom, "point")}
-
+
{/if}
{/each}
+
+ {#each pointTuples as { id, twoD, threeD } (id)}
+
+ {/each}
+
+ {#each faceTuples as face (`${faceTuples.length}-${face.id}`)}
+
+ {/each}
{/if}
diff --git a/applications/web/src/components/Plane.svelte b/applications/web/src/components/Plane.svelte
index bcc1ee92..c31f8ad5 100644
--- a/applications/web/src/components/Plane.svelte
+++ b/applications/web/src/components/Plane.svelte
@@ -10,11 +10,12 @@
import {currentlySelected, currentlyMousedOver, selectingFor, selectionMin, selectionMax} from "shared/stores"
import type {EntityType} from "shared/types"
- // @ts-ignore
const log = (function () { const context = "[Plane.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
export let name: string, id: string, width: number, height: number, origin: Vector3Like, primary: Vector3Like, secondary: Vector3Like, tertiary: Vector3Like
+ // log("[props]","name:",name,"id:",id,"width:",width,"height:",height,"origin:",origin,"primary:",primary,"secondary:",secondary,"tertiary:",tertiary)
+
extend({Line2})
const {size, dpr} = useThrelte()
@@ -139,9 +140,9 @@
// number of selected entities, boot the oldest one
if ($currentlySelected.length + 1 > $selectionMax) $currentlySelected.shift()
- /** cadmium wants a string for id whereas for most ids it wants number, u64 iirc
+ /** cadmium wants a string for id whereas for most ids it wants number, u64 iirc
we should use number for all entity ids? seems cleaner to use one type. otherwise we could do:
-
+
interface Entity {
id: number | string
type: EntityType
diff --git a/applications/web/src/components/Point2D.svelte b/applications/web/src/components/Point2D.svelte
index 9542d470..d2b43da5 100644
--- a/applications/web/src/components/Point2D.svelte
+++ b/applications/web/src/components/Point2D.svelte
@@ -9,7 +9,7 @@
import type {EntityType} from "shared/types"
import {base} from "../base"
- export let x: number, y: number, hidden: boolean, id: string
+ export let x, y, hidden: boolean, id: string
export let isPreview = false
export let collisionLineMaterial: LineMaterial
diff --git a/applications/web/src/components/Point3D.svelte b/applications/web/src/components/Point3D.svelte
index 15560e1b..81552a5f 100644
--- a/applications/web/src/components/Point3D.svelte
+++ b/applications/web/src/components/Point3D.svelte
@@ -11,7 +11,6 @@
export let x: number, y: number, z: number, hidden: boolean, id: string
export let isPreview = false
- console.log("Point3D.svelte", {x, y, z, hidden, id})
export let collisionLineMaterial: LineMaterial
diff --git a/applications/web/src/components/Scene.svelte b/applications/web/src/components/Scene.svelte
index f6df0db9..a713ebbc 100644
--- a/applications/web/src/components/Scene.svelte
+++ b/applications/web/src/components/Scene.svelte
@@ -4,7 +4,7 @@
import {Vector2, Vector3, type Vector3Like} from "three"
import {interactivity} from "@threlte/extras"
import {LineMaterial} from "three/addons/lines/LineMaterial.js"
- import {workbench, sketchBeingEdited} from "shared/stores"
+ import {realization, workbench, sketchBeingEdited} from "shared/stores"
import Point3D from "./Point3D.svelte"
import Plane from "./Plane.svelte"
import Solid from "./Solid.svelte"
@@ -12,16 +12,29 @@
import CubeGizmo from "./controls/CubeGizmo/CubeGizmo.svelte"
import {base} from "../base"
import CadControls from "./controls/CadControls/CadControls.svelte"
- import {isPlaneStep, isPointStep, isSketchStep, isSolidStep} from "shared/stepTypeGuards"
- // @ts-ignore
const log = (function () { const context = "[Scene.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
interactivity()
const {size, dpr, camera} = useThrelte()
- $: history = $workbench.history ?? []
+ $: points = $realization.points ? Object.entries($realization.points) : []
+ $: planes = $realization.planes ? Object.entries($realization.planes) : []
+ $: planesById = planes ? Object.fromEntries(planes) : {}
+ $: solids = $realization.solids ? Object.entries($realization.solids) : []
+ $: sketches = $realization.sketches ? Object.entries($realization.sketches) : []
+
+ // $: $workbench, log("[$workbench]", $workbench)
+ // $: points, log("[realization.points]", points)
+ // $: planes, log("[realization.planes]", planes)
+ // $: planesById, log("[planesById]", planesById)
+ // $: solids, log("[realization.solids]", solids)
+ // $: sketches, log("[realization.sketches]", sketches)
+
+ // put it on window for debugging. todo remove
+ if (!(globalThis as any).realization) (globalThis as any).realization = []
+ $: $realization, (() => ((globalThis as any).realization = [...(globalThis as any).realization, $realization]))()
export function setCameraFocus(goTo: Vector3Like, lookAt: Vector3Like, up: Vector3Like): void {
// TODO: make this tween nicely
@@ -109,7 +122,7 @@
-
+ {}} mouseButtons={{LEFT: 2, MIDDLE: 50, RIGHT: 1}} />
-{#each history as step}
- {#if isPointStep(step)}
-
- {:else if isPlaneStep(step)}
-
- {:else if isSketchStep(step)}
-
- {:else if isSolidStep(step)}
- {#each step.result.solids as solid}
-
- {/each}
- {/if}
+
+{#each points as [pointName, point] (`${$workbench.name}-${pointName}`)}
+
+{/each}
+
+{#each planes as [planeName, plane] (`${$workbench.name}-${planeName}`)}
+
+{/each}
+
+{#each sketches as [sketchId, sketchTuple] (`${$workbench.name}-${sketchId}`)}
+
+{/each}
+
+{#each solids as [solidName, solid] (`${$workbench.name}-${solidName}-${solid.crc32}`)}
+
{/each}
diff --git a/applications/web/src/components/SelectableSurface.svelte b/applications/web/src/components/SelectableSurface.svelte
index bf5c50d6..dddca715 100644
--- a/applications/web/src/components/SelectableSurface.svelte
+++ b/applications/web/src/components/SelectableSurface.svelte
@@ -8,7 +8,6 @@
import type {EntityType, TruckEdge, TruckFace, TruckFaceBoundary} from "shared/types"
import nurbs from "nurbs"
- // @ts-ignore
const log = (function () { const context = "[SelectableSurface.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
export let truck_face: TruckFace, truck_edges: TruckEdge[], id: string
diff --git a/applications/web/src/components/Sketch.svelte b/applications/web/src/components/Sketch.svelte
index 54027f5f..3ddc86f0 100644
--- a/applications/web/src/components/Sketch.svelte
+++ b/applications/web/src/components/Sketch.svelte
@@ -1,15 +1,14 @@
-
+{#if editing}
+
+{:else}
+
+{/if}
diff --git a/applications/web/src/components/Solid.svelte b/applications/web/src/components/Solid.svelte
index 0b5904c5..f68c7c03 100644
--- a/applications/web/src/components/Solid.svelte
+++ b/applications/web/src/components/Solid.svelte
@@ -6,7 +6,6 @@
import type {TruckBoundary, TruckEdge, TruckFace, TruckSolid} from "shared/types"
import type {Vector3Like} from "three"
- // @ts-ignore
const log = (function () { const context = "[Solid.svelte]"; const color="gray"; return Function.prototype.bind.call(console.log, console, `%c${context}`, `font-weight:bold;color:${color};`)})() // prettier-ignore
export let name: string, indices, vertices, normals, truckSolid: TruckSolid
diff --git a/applications/web/src/components/ToolBar.svelte b/applications/web/src/components/ToolBar.svelte
index 993a8213..0d195ff3 100644
--- a/applications/web/src/components/ToolBar.svelte
+++ b/applications/web/src/components/ToolBar.svelte
@@ -7,6 +7,7 @@
let solving = false
// todo ask Matt why is this a no-op?
+ const solveSketch = () => {}
const createNewExtrusion = () => {
newExtrusion()
// set that as the current feature being edited
@@ -17,6 +18,7 @@
newSketchOnPlane()
$featureIndex = $workbench.history.length - 1
}
+ const stepSketch = () => {}
const debugging = false
const actions = [
@@ -31,6 +33,8 @@
]
const sketchActions = [
+ {alt: "solve", src: `${base}/actions/solve_min.svg`, text: "Solve", handler: solveSketch},
+ {alt: "step", src: `${base}/actions/step_min.svg`, text: "Step", handler: stepSketch},
{alt: "line", src: `${base}/actions/line.svg`, handler: () => ($sketchTool = "line")},
{alt: "circle", src: `${base}/actions/circle.svg`, handler: () => ($sketchTool = "circle")},
{alt: "rectangle", src: `${base}/actions/rectangle.svg`, handler: () => ($sketchTool = "rectangle")},
@@ -38,7 +42,7 @@
- {#if $sketchBeingEdited !== null}
+ {#if $sketchBeingEdited !== ""}
{#each sketchActions as action}