diff --git a/.cargo/config.template.toml b/.cargo/config.template.toml
new file mode 100644
index 00000000..922e9636
--- /dev/null
+++ b/.cargo/config.template.toml
@@ -0,0 +1,15 @@
+[build]
+rustflags = ["--cfg=web_sys_unstable_apis"]
+
+[alias]
+test-debug = "test --features debug"
+clippy-debug = "clippy --fix --features debug --target wasm32-unknown-unknown"
+
+[patch."https://github.com/unyt-org/datex-core"]
+datex-core = { path = "../datex-core", default-features = false, features = [
+ "std",
+ "serde",
+ "wasm_logger",
+ "wasm_runtime",
+ "wasm_webrtc",
+] }
diff --git a/.cargo/config.toml b/.cargo/config.toml
deleted file mode 100644
index 9cd25198..00000000
--- a/.cargo/config.toml
+++ /dev/null
@@ -1,6 +0,0 @@
-[build]
-rustflags = ["--cfg=web_sys_unstable_apis"]
-
-[alias]
-test-debug = "test --features debug"
-clippy-debug = "clippy --fix --features debug --target wasm32-unknown-unknown"
\ No newline at end of file
diff --git a/.github/workflows/deploy-beta.yml b/.github/workflows/deploy-beta.yml
index ee6fc067..d4f04aa0 100644
--- a/.github/workflows/deploy-beta.yml
+++ b/.github/workflows/deploy-beta.yml
@@ -34,13 +34,13 @@ jobs:
- name: Generate datex.js bundle for pages (without inline WASM)
run: |
- deno task build-bundle
+ deno task build-bundle
- name: Set up GitHub Pages directory with datex.js and WASM
run: |
- mkdir -p ./pages
- cp ./datex.js ./pages/datex.js
- cp ./src/datex-core/datex_core_js.wasm ./pages/datex_core_js.wasm
+ mkdir -p ./pages
+ cp ./datex.js ./pages/datex.js
+ cp ./src/datex-core/datex_core_js.wasm ./pages/datex_core_js.wasm
- name: Generate datex.js bundle for release artifact (with inline WASM)
run: |
@@ -57,13 +57,18 @@ jobs:
- name: Create Draft Release
uses: softprops/action-gh-release@v2
with:
- draft: true
+ prerelease: true
+ make_latest: false
tag_name: "beta"
files: ./datex.js
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Store commit-hash in pages directory
+ run: |
+ echo "$(git rev-parse HEAD)" > ./pages/commit-hash.txt
+
- name: Upload build artifacts
uses: actions/upload-pages-artifact@v3
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 13dacf5e..fca1ce6b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -34,13 +34,13 @@ jobs:
- name: Generate datex.js bundle for pages (without inline WASM)
run: |
- deno task build-bundle
+ deno task build-bundle
- name: Set up GitHub Pages directory with datex.js and WASM
run: |
- mkdir -p ./pages
- cp ./datex.js ./pages/datex.js
- cp ./src/datex-core/datex_core_js.wasm ./pages/datex_core_js.wasm
+ mkdir -p ./pages
+ cp ./datex.js ./pages/datex.js
+ cp ./src/datex-core/datex_core_js.wasm ./pages/datex_core_js.wasm
- name: Generate datex.js bundle for release artifact (with inline WASM)
run: |
diff --git a/.gitignore b/.gitignore
index 5f03a4ec..6bd67c77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,5 @@ npm
src/datex-core/datex_core_js.wasm
src/datex-core/datex_core_js.internal.js
rustc-ice*.txt
-/datex.js
\ No newline at end of file
+/datex.js
+.cargo/config.toml
diff --git a/Cargo.lock b/Cargo.lock
index 649fa6bc..78e82d29 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,12 @@
# It is not intended for manual editing.
version = 4
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
[[package]]
name = "adler2"
version = "2.0.1"
@@ -23,12 +29,6 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
-[[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
[[package]]
name = "android_system_properties"
version = "0.1.5"
@@ -73,18 +73,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "async-trait"
-version = "0.1.88"
+version = "0.1.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -158,29 +158,23 @@ dependencies = [
"owo-colors",
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "bit-set"
-version = "0.5.3"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
dependencies = [
"bit-vec",
]
[[package]]
name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
[[package]]
name = "bumpalo"
@@ -190,9 +184,9 @@ checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
[[package]]
name = "bytemuck"
-version = "1.23.1"
+version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422"
+checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
[[package]]
name = "byteorder"
@@ -208,26 +202,26 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
[[package]]
name = "cc"
-version = "1.2.31"
+version = "1.2.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2"
+checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7"
dependencies = [
+ "find-msvc-tools",
"shlex",
]
[[package]]
name = "cfg-if"
-version = "1.0.1"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
+checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
[[package]]
name = "chrono"
-version = "0.4.41"
+version = "0.4.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d"
+checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
dependencies = [
- "android-tzdata",
"iana-time-zone",
"num-traits",
"serde",
@@ -240,7 +234,7 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14377e276b2c8300513dff55ba4cc4142b44e5d6de6d00eb5b2307d650bb4ec1"
dependencies = [
- "hashbrown 0.15.4",
+ "hashbrown 0.15.5",
"regex-automata 0.3.9",
"serde",
"unicode-ident",
@@ -290,9 +284,9 @@ checksum = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda"
[[package]]
name = "darling"
-version = "0.20.11"
+version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
+checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
dependencies = [
"darling_core",
"darling_macro",
@@ -300,33 +294,34 @@ dependencies = [
[[package]]
name = "darling_core"
-version = "0.20.11"
+version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e"
+checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "darling_macro"
-version = "0.20.11"
+version = "0.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
+checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "datex-core"
-version = "0.0.5"
-source = "git+https://github.com/unyt-org/datex-core?branch=feat%2Fref#57e570b3352a6a432958fbd7f438150434c16cc0"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43b45f844946d7722ef155e91be17f357c1384e2b001cb5820c8c63354da43dd"
dependencies = [
"ariadne",
"async-stream",
@@ -348,8 +343,9 @@ dependencies = [
"futures-util",
"gloo-timers 0.3.0",
"hex",
- "indexmap 2.10.0",
- "itertools",
+ "indexmap 2.11.4",
+ "internment",
+ "itertools 0.14.0",
"lazy_static",
"log",
"logos",
@@ -365,19 +361,22 @@ dependencies = [
"pad",
"ringmap",
"serde",
+ "serde-big-array",
"serde_json",
"serde_with",
"strum",
"strum_macros",
"syntect",
- "thiserror 2.0.12",
+ "thiserror 2.0.17",
+ "tsify",
"url",
+ "wasm-bindgen",
"wasm-bindgen-futures",
]
[[package]]
name = "datex-core-js"
-version = "0.0.6"
+version = "0.0.7"
dependencies = [
"async-trait",
"datex-core",
@@ -389,6 +388,9 @@ dependencies = [
"log",
"serde",
"serde-wasm-bindgen",
+ "specta 1.0.5",
+ "specta-typescript",
+ "tsify",
"url",
"uuid",
"wasm-bindgen",
@@ -399,12 +401,13 @@ dependencies = [
[[package]]
name = "datex_macros"
-version = "0.1.0"
-source = "git+https://github.com/unyt-org/datex-core?branch=feat%2Fref#57e570b3352a6a432958fbd7f438150434c16cc0"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1922189d0e176d0b815a911357b3c20fc878512496928dc13b72c281aa6ecee"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -420,12 +423,12 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.4.0"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
+checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071"
dependencies = [
"powerfmt",
- "serde",
+ "serde_core",
]
[[package]]
@@ -436,7 +439,16 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
+]
+
+[[package]]
+name = "document-features"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
+dependencies = [
+ "litrs",
]
[[package]]
@@ -459,19 +471,26 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
[[package]]
name = "fancy-regex"
-version = "0.11.0"
+version = "0.16.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f"
dependencies = [
"bit-set",
- "regex",
+ "regex-automata 0.4.13",
+ "regex-syntax 0.8.8",
]
+[[package]]
+name = "find-msvc-tools"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127"
+
[[package]]
name = "flate2"
-version = "1.1.2"
+version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
+checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -491,9 +510,9 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
[[package]]
name = "form_urlencoded"
-version = "1.2.1"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
dependencies = [
"percent-encoding",
]
@@ -554,7 +573,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -621,6 +640,19 @@ dependencies = [
"wasm-bindgen",
]
+[[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 = "hashbrown"
version = "0.12.3"
@@ -629,15 +661,21 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
[[package]]
name = "hashbrown"
-version = "0.15.4"
+version = "0.15.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
dependencies = [
"allocator-api2",
"equivalent",
"foldhash",
]
+[[package]]
+name = "hashbrown"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
+
[[package]]
name = "heck"
version = "0.5.0"
@@ -652,9 +690,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "iana-time-zone"
-version = "0.1.63"
+version = "0.1.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8"
+checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
dependencies = [
"android_system_properties",
"core-foundation-sys",
@@ -768,9 +806,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
-version = "1.0.3"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
dependencies = [
"idna_adapter",
"smallvec",
@@ -800,13 +838,38 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.10.0"
+version = "2.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661"
+checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
dependencies = [
"equivalent",
- "hashbrown 0.15.4",
+ "hashbrown 0.16.0",
"serde",
+ "serde_core",
+]
+
+[[package]]
+name = "indoc"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+
+[[package]]
+name = "internment"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "636d4b0f6a39fd684effe2a73f5310df16a3fa7954c26d36833e98f44d1977a2"
+dependencies = [
+ "hashbrown 0.15.5",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
]
[[package]]
@@ -826,9 +889,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "js-sys"
-version = "0.3.77"
+version = "0.3.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
+checksum = "6247da8b8658ad4e73a186e747fcc5fc2a29f979d6fe6269127fdb5fd08298d0"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -842,9 +905,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.174"
+version = "0.2.177"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
+checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
[[package]]
name = "libm"
@@ -864,54 +927,60 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
+[[package]]
+name = "litrs"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed"
+
[[package]]
name = "log"
-version = "0.4.27"
+version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
+checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
dependencies = [
"serde",
]
[[package]]
name = "logos"
-version = "0.15.0"
+version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab6f536c1af4c7cc81edf73da1f8029896e7e1e16a219ef09b184e76a296f3db"
+checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-codegen"
-version = "0.15.0"
+version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "189bbfd0b61330abea797e5e9276408f2edbe4f822d7ad08685d67419aafb34e"
+checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c"
dependencies = [
"beef",
"fnv",
"lazy_static",
"proc-macro2",
"quote",
- "regex-syntax 0.8.5",
+ "regex-syntax 0.8.8",
"rustc_version",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "logos-derive"
-version = "0.15.0"
+version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebfe8e1a19049ddbfccbd14ac834b215e11b85b90bab0c2dba7c7b92fb5d5cba"
+checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470"
dependencies = [
"logos-codegen",
]
[[package]]
name = "memchr"
-version = "2.7.5"
+version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
+checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
[[package]]
name = "minicov"
@@ -930,6 +999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [
"adler2",
+ "simd-adler32",
]
[[package]]
@@ -950,7 +1020,7 @@ checksum = "f8eec4327f127d4d18c54c8bfbf7b05d74cc9a1befdcc6283a241238ffbc84c6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -1069,7 +1139,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -1080,18 +1150,18 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]]
name = "ordered-float"
-version = "5.0.0"
+version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01"
+checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d"
dependencies = [
"num-traits",
]
[[package]]
name = "owo-colors"
-version = "4.2.2"
+version = "4.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
+checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52"
[[package]]
name = "pad"
@@ -1102,11 +1172,17 @@ dependencies = [
"unicode-width",
]
+[[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"
+version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
name = "pin-project-lite"
@@ -1122,12 +1198,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "plist"
-version = "1.7.4"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1"
+checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07"
dependencies = [
"base64",
- "indexmap 2.10.0",
+ "indexmap 2.11.4",
"quick-xml",
"serde",
"time",
@@ -1135,9 +1211,9 @@ dependencies = [
[[package]]
name = "potential_utf"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
+checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a"
dependencies = [
"zerovec",
]
@@ -1150,70 +1226,58 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "proc-macro-crate"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
+checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
dependencies = [
"toml_edit",
]
[[package]]
name = "proc-macro2"
-version = "1.0.95"
+version = "1.0.101"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
+checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quick-xml"
-version = "0.38.1"
+version = "0.38.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9845d9dccf565065824e69f9f235fafba1587031eda353c1f1561cd6a6be78f4"
+checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
dependencies = [
"memchr",
]
[[package]]
name = "quote"
-version = "1.0.40"
+version = "1.0.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ref-cast"
-version = "1.0.24"
+version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf"
+checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.24"
+version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
+checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
-]
-
-[[package]]
-name = "regex"
-version = "1.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.4.9",
- "regex-syntax 0.8.5",
+ "syn 2.0.106",
]
[[package]]
@@ -1229,13 +1293,13 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.9"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax 0.8.5",
+ "regex-syntax 0.8.8",
]
[[package]]
@@ -1246,18 +1310,18 @@ checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
[[package]]
name = "regex-syntax"
-version = "0.8.5"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
[[package]]
name = "ringmap"
-version = "0.1.4"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e281d65739bbe3b6effa840c6317a7e032127303f62d13b3e18e51482da936e7"
+checksum = "b5009b8c75e4c1c7ff5842d2305eba7f3b76958169493f7a97ba3bd9bcac532d"
dependencies = [
"equivalent",
- "hashbrown 0.15.4",
+ "hashbrown 0.16.0",
]
[[package]]
@@ -1271,9 +1335,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.21"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d"
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
[[package]]
name = "ryu"
@@ -1316,9 +1380,9 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.26"
+version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
[[package]]
name = "send_wrapper"
@@ -1328,13 +1392,23 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"
[[package]]
name = "serde"
-version = "1.0.219"
+version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
+ "serde_core",
"serde_derive",
]
+[[package]]
+name = "serde-big-array"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "serde-wasm-bindgen"
version = "0.6.5"
@@ -1346,44 +1420,64 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "serde_core"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+dependencies = [
+ "serde_derive",
+]
+
[[package]]
name = "serde_derive"
-version = "1.0.219"
+version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.29.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.106",
]
[[package]]
name = "serde_json"
-version = "1.0.142"
+version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7"
+checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
+ "serde_core",
]
[[package]]
name = "serde_with"
-version = "3.14.0"
+version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5"
+checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5"
dependencies = [
"base64",
"chrono",
"hex",
"indexmap 1.9.3",
- "indexmap 2.10.0",
+ "indexmap 2.11.4",
"schemars 0.9.0",
"schemars 1.0.4",
- "serde",
- "serde_derive",
+ "serde_core",
"serde_json",
"serde_with_macros",
"time",
@@ -1391,14 +1485,14 @@ dependencies = [
[[package]]
name = "serde_with_macros"
-version = "3.14.0"
+version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f"
+checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27"
dependencies = [
"darling",
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -1407,11 +1501,17 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
[[package]]
name = "slab"
-version = "0.4.10"
+version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d"
+checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
[[package]]
name = "smallvec"
@@ -1419,11 +1519,71 @@ version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+[[package]]
+name = "specta"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2240c3aa020aa61d2c569087d213baafbb212f4ceb9de9dd162376ea6aa0fe3"
+dependencies = [
+ "document-features",
+ "indoc",
+ "once_cell",
+ "paste",
+ "serde",
+ "serde_json",
+ "specta-macros",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "specta"
+version = "2.0.0-rc.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab7f01e9310a820edd31c80fde3cae445295adde21a3f9416517d7d65015b971"
+dependencies = [
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "specta-macros"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4605306321c356e03873b8ee71d7592a5e7c508add325c3ed0677c16fdf1bcfb"
+dependencies = [
+ "Inflector",
+ "itertools 0.10.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "termcolor",
+]
+
+[[package]]
+name = "specta-serde"
+version = "0.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77216504061374659e7245eac53d30c7b3e5fe64b88da97c753e7184b0781e63"
+dependencies = [
+ "specta 2.0.0-rc.22",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "specta-typescript"
+version = "0.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3220a0c365e51e248ac98eab5a6a32f544ff6f961906f09d3ee10903a4f52b2d"
+dependencies = [
+ "specta 2.0.0-rc.22",
+ "specta-serde",
+ "thiserror 1.0.69",
+]
+
[[package]]
name = "stable_deref_trait"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]]
name = "static_assertions"
@@ -1455,7 +1615,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
@@ -1471,9 +1631,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.104"
+version = "2.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
+checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
dependencies = [
"proc-macro2",
"quote",
@@ -1488,31 +1648,39 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "syntect"
-version = "5.2.0"
+version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
+checksum = "656b45c05d95a5704399aeef6bd0ddec7b2b3531b7c9e900abbf7c4d2190c925"
dependencies = [
"bincode",
- "bitflags",
"fancy-regex",
"flate2",
"fnv",
"once_cell",
"plist",
- "regex-syntax 0.8.5",
+ "regex-syntax 0.8.8",
"serde",
"serde_derive",
"serde_json",
- "thiserror 1.0.69",
+ "thiserror 2.0.17",
"walkdir",
"yaml-rust",
]
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
[[package]]
name = "thiserror"
version = "1.0.69"
@@ -1524,11 +1692,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "2.0.12"
+version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
+checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
dependencies = [
- "thiserror-impl 2.0.12",
+ "thiserror-impl 2.0.17",
]
[[package]]
@@ -1539,25 +1707,25 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "thiserror-impl"
-version = "2.0.12"
+version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
+checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "time"
-version = "0.3.41"
+version = "0.3.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
+checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
dependencies = [
"deranged",
"itoa",
@@ -1570,15 +1738,15 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.4"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
+checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
[[package]]
name = "time-macros"
-version = "0.2.22"
+version = "0.2.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
+checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
dependencies = [
"num-conv",
"time-core",
@@ -1596,26 +1764,64 @@ dependencies = [
[[package]]
name = "toml_datetime"
-version = "0.6.11"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
+checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
+dependencies = [
+ "serde_core",
+]
[[package]]
name = "toml_edit"
-version = "0.22.27"
+version = "0.23.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
+checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
dependencies = [
- "indexmap 2.10.0",
+ "indexmap 2.11.4",
"toml_datetime",
+ "toml_parser",
"winnow",
]
+[[package]]
+name = "toml_parser"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
+dependencies = [
+ "winnow",
+]
+
+[[package]]
+name = "tsify"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ec91b85e6c6592ed28636cb1dd1fac377ecbbeb170ff1d79f97aac5e38926d"
+dependencies = [
+ "gloo-utils",
+ "serde",
+ "serde_json",
+ "tsify-macros",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "tsify-macros"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a324606929ad11628a19206d7853807481dcaecd6c08be70a235930b8241955"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn 2.0.106",
+]
+
[[package]]
name = "unicode-ident"
-version = "1.0.18"
+version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
+checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
[[package]]
name = "unicode-segmentation"
@@ -1631,13 +1837,14 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "url"
-version = "2.5.4"
+version = "2.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
+checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
dependencies = [
"form_urlencoded",
"idna",
"percent-encoding",
+ "serde",
]
[[package]]
@@ -1648,9 +1855,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "uuid"
-version = "1.17.0"
+version = "1.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d"
+checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -1668,35 +1875,36 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
-version = "0.2.100"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
+checksum = "4ad224d2776649cfb4f4471124f8176e54c1cca67a88108e30a0cd98b90e7ad3"
dependencies = [
"cfg-if",
"once_cell",
"rustversion",
"wasm-bindgen-macro",
+ "wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.100"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
+checksum = "3a1364104bdcd3c03f22b16a3b1c9620891469f5e9f09bc38b2db121e593e732"
dependencies = [
"bumpalo",
"log",
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.50"
+version = "0.4.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
+checksum = "9c0a08ecf5d99d5604a6666a70b3cde6ab7cc6142f5e641a8ef48fc744ce8854"
dependencies = [
"cfg-if",
"js-sys",
@@ -1707,9 +1915,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.100"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
+checksum = "0d7ab4ca3e367bb1ed84ddbd83cc6e41e115f8337ed047239578210214e36c76"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1717,31 +1925,31 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.100"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
+checksum = "4a518014843a19e2dbbd0ed5dfb6b99b23fb886b14e6192a00803a3e14c552b0"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.100"
+version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
+checksum = "255eb0aa4cc2eea3662a00c2bbd66e93911b7361d5e0fcd62385acfd7e15dcee"
dependencies = [
"unicode-ident",
]
[[package]]
name = "wasm-bindgen-test"
-version = "0.3.50"
+version = "0.3.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66c8d5e33ca3b6d9fa3b4676d774c5778031d27a578c2b007f905acf816152c3"
+checksum = "6cd223a62fa31b44130386e885e096aac33c13abbe67ea8c993f5279b233bca8"
dependencies = [
"js-sys",
"minicov",
@@ -1752,20 +1960,20 @@ dependencies = [
[[package]]
name = "wasm-bindgen-test-macro"
-version = "0.3.50"
+version = "0.3.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b"
+checksum = "e78b9abad0f2a54d17769c8c0d56f2495f54e465903d6f680c97d612440eabe9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "web-sys"
-version = "0.3.77"
+version = "0.3.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
+checksum = "50462a022f46851b81d5441d1a6f5bac0b21a1d72d64bd4906fbdd4bf7230ec7"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -1773,18 +1981,18 @@ dependencies = [
[[package]]
name = "winapi-util"
-version = "0.1.9"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys",
]
[[package]]
name = "windows-core"
-version = "0.61.2"
+version = "0.62.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
+checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
dependencies = [
"windows-implement",
"windows-interface",
@@ -1795,128 +2003,64 @@ dependencies = [
[[package]]
name = "windows-implement"
-version = "0.60.0"
+version = "0.60.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
+checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "windows-interface"
-version = "0.59.1"
+version = "0.59.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
+checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
[[package]]
name = "windows-link"
-version = "0.1.3"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-result"
-version = "0.3.4"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6"
+checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-strings"
-version = "0.4.2"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57"
+checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
dependencies = [
"windows-link",
]
[[package]]
name = "windows-sys"
-version = "0.59.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.52.6"
+version = "0.61.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_gnullvm",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows-link",
]
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
-
-[[package]]
-name = "windows_i686_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.52.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
-
[[package]]
name = "winnow"
-version = "0.7.12"
+version = "0.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
+checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
dependencies = [
"memchr",
]
@@ -1962,7 +2106,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
"synstructure",
]
@@ -1983,7 +2127,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
"synstructure",
]
@@ -2000,9 +2144,9 @@ dependencies = [
[[package]]
name = "zerovec"
-version = "0.11.3"
+version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdbb9122ea75b11bf96e7492afb723e8a7fbe12c67417aa95e7e3d18144d37cd"
+checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
dependencies = [
"yoke",
"zerofrom",
@@ -2017,5 +2161,5 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.104",
+ "syn 2.0.106",
]
diff --git a/DEVELOP.md b/DEVELOP.md
index bfe5da9a..a70cb99a 100644
--- a/DEVELOP.md
+++ b/DEVELOP.md
@@ -1,36 +1,64 @@
# Development Guide
-## Building the rust library
+## Building the library
-The rust adapter code can be found in the `rs-lib` directory, the generated WASM
-and JS glue code in the `src/datex-core` directory.
+The rust adapter code can be found in the [`rs-lib`](./rs-lib/) directory, the
+generated WASM and JS glue code in the [`src/datex-core`](./src/datex-core/)
+directory.
-The `rs-lib` directory contains the `datex-core` submodule, which contains the
-complete [DATEX Core](https://github.com/unyt-org/datex-core.git) library.
+This project has a strong dependency on
+[DATEX Core](https://github.com/unyt-org/datex-core.git) (see
+[Cargo.toml](./rs-lib/Cargo.toml)).
-To generate new WASM and JS glue code for the rust library located in `rs-lib`,
-run `deno task build`.
+To generate a WASM binary and JS glue code, run the following command:
-Rust nightly is required for coroutines:
+```sh
+deno task release
+```
+
+To generate a debug build, run:
```sh
-rustup install nightly
-rustup default nightly
+deno task build
+```
+
+Note that the project is built with **Rust Nightly**
+([`rustc 1.91.0-nightly`](https://releases.rs/docs/1.91.0/))
+
+---
+
+If you want to build the library with a local version of the
+[`datex-core`](https://github.com/unyt-org/datex-core) crate, you can override
+the dependency in a `.cargo/config.toml` file in the project root like this:
+
+```toml
+[patch."https://github.com/unyt-org/datex-core"]
+datex-core = {
+ path = "../datex-core", # the path to your local datex-core clone
+ default-features = false,
+ features = [
+ "std",
+ "serde",
+ "wasm_logger",
+ "wasm_runtime",
+ "wasm_webrtc",
+ ]
+}
```
-## Testing
+## Running tests
-The JS runtime can be tested by running `deno task test`. This compiles the rust
-library, generates the WASM and JS glue code, and runs all tests in the `test`
-directory. If you only want to run the tests without rebuilding the rust
-library, you can run `deno task test-no-build`.
+The JS build can be tested by running `deno task test`. This compiles the
+library, generates the WASM binary and JS glue code, and runs all tests in the
+[`test`](./test/) directory. If you only want to run the tests without
+rebuilding the rust library, you can run `deno task test-no-build`.
-## Running in the browser
+## Browser testing
-You can test the library in the browser by running `deno task serve`. Now, you
-can open `http://localhost:8042/test/browser.html` in your browser. A new Datex
-runtime instance is automatically created and can be accessed in the developer
-console via the global `Datex` variable.
+You can test the library in the browser by running `deno task serve`. This will
+spin up a web server at `http://localhost:8042/test/browser.html` in your
+browser. A new runtime instance is automatically created and can be accessed in
+the developer console via the global `Datex` variable.
## Creating a new release
diff --git a/README.md b/README.md
index a97e1e03..31289284 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# DATEX Core JS
+> Check out our specification at [datex.unyt.org](https://datex.unyt.org).
+
[![Twitter badge][]][Twitter link] [![Discord badge][]][Discord link]
@@ -10,11 +12,11 @@ high-level API for working with DATEX in JavaScript and TypeScript. DATEX is
developed and maintained by the [unyt.org](https://unyt.org) organization and
community.
-You can find the legacy version of the DATEX Core library (implemented in
-TypeScript) at
+You can find the legacy version of the DATEX Core library _(implemented in
+TypeScript)_ at
[unyt-org/datex-core-js-legacy](https://github.com/unyt-org/datex-core-js-legacy).
-The legacy version is still actively maintained and supported until this library
-reaches feature parity.
+The legacy version is still maintained and supported until this library reaches
+feature parity.
## Contributing
diff --git a/deno.json b/deno.json
index 1a53b961..c48767fe 100644
--- a/deno.json
+++ b/deno.json
@@ -1,6 +1,6 @@
{
"name": "@unyt/datex",
- "version": "0.0.6",
+ "version": "0.0.7",
"license": "MIT",
"exports": "./src/mod.ts",
"compilerOptions": {
@@ -24,7 +24,14 @@
"exclude": ["./npm"]
},
"imports": {
- "@deno/dnt": "jsr:@deno/dnt@^0.42.1"
+ "@david/path": "jsr:@david/path@^0.2.0",
+ "@deno/dnt": "jsr:@deno/dnt@^0.42.1",
+ "@deno/wasmbuild": "https://jsr.io/@deno/wasmbuild/0.19.3/lib/commands/build_command.ts",
+ "@qnighy/dedent": "jsr:@qnighy/dedent@^0.1.2",
+ "@std/assert": "jsr:@std/assert@^1.0.15",
+ "@std/cli": "jsr:@std/cli@^1.0.23",
+ "@std/fmt": "jsr:@std/fmt@^1.0.8",
+ "@std/uuid": "jsr:@std/uuid@^1.0.9"
},
"test": {
"exclude": ["./npm"]
diff --git a/deno.lock b/deno.lock
index 04c97f7e..be50dfd8 100644
--- a/deno.lock
+++ b/deno.lock
@@ -1,38 +1,38 @@
{
"version": "5",
"specifiers": {
- "jsr:@david/code-block-writer@^13.0.2": "13.0.3",
+ "jsr:@david/code-block-writer@^13.0.3": "13.0.3",
"jsr:@david/path@0.2": "0.2.0",
"jsr:@david/temp@~0.1.1": "0.1.1",
- "jsr:@deno/cache-dir@0.20": "0.20.1",
- "jsr:@deno/dnt@~0.42.1": "0.42.1",
- "jsr:@deno/graph@0.86": "0.86.9",
+ "jsr:@deno/dnt@~0.42.1": "0.42.3",
"jsr:@qnighy/dedent@*": "0.1.2",
+ "jsr:@qnighy/dedent@~0.1.2": "0.1.2",
"jsr:@std/assert@*": "1.0.13",
- "jsr:@std/bytes@^1.0.5": "1.0.6",
+ "jsr:@std/assert@^1.0.15": "1.0.15",
"jsr:@std/bytes@^1.0.6": "1.0.6",
"jsr:@std/cli@*": "1.0.20",
+ "jsr:@std/cli@^1.0.11": "1.0.23",
+ "jsr:@std/cli@^1.0.23": "1.0.23",
"jsr:@std/crypto@^1.0.5": "1.0.5",
- "jsr:@std/encoding@*": "1.0.10",
"jsr:@std/encoding@^1.0.6": "1.0.10",
"jsr:@std/fmt@1": "1.0.8",
- "jsr:@std/fmt@^1.0.3": "1.0.8",
"jsr:@std/fmt@^1.0.4": "1.0.8",
+ "jsr:@std/fmt@^1.0.8": "1.0.8",
"jsr:@std/fs@1": "1.0.19",
"jsr:@std/fs@^1.0.10": "1.0.19",
- "jsr:@std/fs@^1.0.6": "1.0.19",
+ "jsr:@std/internal@^1.0.10": "1.0.12",
+ "jsr:@std/internal@^1.0.12": "1.0.12",
"jsr:@std/internal@^1.0.6": "1.0.9",
- "jsr:@std/internal@^1.0.9": "1.0.9",
- "jsr:@std/io@0.225": "0.225.2",
- "jsr:@std/path@1": "1.1.1",
- "jsr:@std/path@^1.0.8": "1.1.1",
- "jsr:@std/path@^1.1.1": "1.1.1",
- "jsr:@std/streams@^1.0.9": "1.0.10",
+ "jsr:@std/internal@^1.0.9": "1.0.12",
+ "jsr:@std/path@1": "1.1.2",
+ "jsr:@std/path@^1.1.1": "1.1.2",
+ "jsr:@std/streams@^1.0.9": "1.0.12",
"jsr:@std/tar@~0.1.4": "0.1.6",
- "jsr:@std/uuid@*": "1.0.9",
- "jsr:@ts-morph/bootstrap@0.25": "0.25.0",
- "jsr:@ts-morph/common@0.25": "0.25.0",
- "npm:@unyt/datex@0.0.6": "0.0.6"
+ "jsr:@std/uuid@^1.0.9": "1.0.9",
+ "jsr:@ts-morph/bootstrap@0.27": "0.27.0",
+ "jsr:@ts-morph/common@0.27": "0.27.0",
+ "npm:@unyt/datex@0.0.6": "0.0.6",
+ "npm:typescript@5.8.3": "5.8.3"
},
"jsr": {
"@david/code-block-writer@13.0.3": {
@@ -51,36 +51,23 @@
"jsr:@david/path"
]
},
- "@deno/cache-dir@0.20.1": {
- "integrity": "dc4f3add14307f3ff3b712441ea4acabcbfc9a13f67c5adc78c3aac16ac5e2a0",
- "dependencies": [
- "jsr:@deno/graph",
- "jsr:@std/fmt@^1.0.3",
- "jsr:@std/fs@^1.0.6",
- "jsr:@std/io",
- "jsr:@std/path@^1.0.8"
- ]
- },
- "@deno/dnt@0.42.1": {
- "integrity": "85322b38eb40d4e8c5216d62536152c35b1bda9dc47c8c60860610397b960223",
+ "@deno/dnt@0.42.3": {
+ "integrity": "62a917a0492f3c8af002dce90605bb0d41f7d29debc06aca40dba72ab65d8ae3",
"dependencies": [
"jsr:@david/code-block-writer",
- "jsr:@deno/cache-dir",
"jsr:@std/fmt@1",
"jsr:@std/fs@1",
"jsr:@std/path@1",
"jsr:@ts-morph/bootstrap"
]
},
- "@deno/graph@0.86.9": {
- "integrity": "c4f353a695bcc5246c099602977dabc6534eacea9999a35a8cb24e807192e6a1"
- },
- "@deno/wasmbuild@0.19.2": {
- "integrity": "f4a92beae788e2fd68189aefb6a6d8c3be79519c3ef8429a10519296379c33d1",
+ "@deno/wasmbuild@0.19.3": {
+ "integrity": "71c641f2c8edeb9344fa2dd783bfdf9944e2ee7227ed6195237044c2e0db3f2a",
"dependencies": [
"jsr:@david/path",
"jsr:@david/temp",
- "jsr:@std/encoding@^1.0.6",
+ "jsr:@std/cli@^1.0.11",
+ "jsr:@std/encoding",
"jsr:@std/fmt@^1.0.4",
"jsr:@std/fs@^1.0.10",
"jsr:@std/tar"
@@ -95,12 +82,24 @@
"jsr:@std/internal@^1.0.6"
]
},
+ "@std/assert@1.0.15": {
+ "integrity": "d64018e951dbdfab9777335ecdb000c0b4e3df036984083be219ce5941e4703b",
+ "dependencies": [
+ "jsr:@std/internal@^1.0.12"
+ ]
+ },
"@std/bytes@1.0.6": {
"integrity": "f6ac6adbd8ccd99314045f5703e23af0a68d7f7e58364b47d2c7f408aeb5820a"
},
"@std/cli@1.0.20": {
"integrity": "a8c384a2c98cec6ec6a2055c273a916e2772485eb784af0db004c5ab8ba52333"
},
+ "@std/cli@1.0.23": {
+ "integrity": "bf95b7a9425ba2af1ae5a6359daf58c508f2decf711a76ed2993cd352498ccca",
+ "dependencies": [
+ "jsr:@std/internal@^1.0.12"
+ ]
+ },
"@std/crypto@1.0.5": {
"integrity": "0dcfbb319fe0bba1bd3af904ceb4f948cde1b92979ec1614528380ed308a3b40"
},
@@ -120,20 +119,17 @@
"@std/internal@1.0.9": {
"integrity": "bdfb97f83e4db7a13e8faab26fb1958d1b80cc64366501af78a0aee151696eb8"
},
- "@std/io@0.225.2": {
- "integrity": "3c740cd4ee4c082e6cfc86458f47e2ab7cb353dc6234d5e9b1f91a2de5f4d6c7",
- "dependencies": [
- "jsr:@std/bytes@^1.0.5"
- ]
+ "@std/internal@1.0.12": {
+ "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027"
},
- "@std/path@1.1.1": {
- "integrity": "fe00026bd3a7e6a27f73709b83c607798be40e20c81dde655ce34052fd82ec76",
+ "@std/path@1.1.2": {
+ "integrity": "c0b13b97dfe06546d5e16bf3966b1cadf92e1cc83e56ba5476ad8b498d9e3038",
"dependencies": [
- "jsr:@std/internal@^1.0.9"
+ "jsr:@std/internal@^1.0.10"
]
},
- "@std/streams@1.0.10": {
- "integrity": "75c0b1431873cd0d8b3d679015220204d36d3c7420d93b60acfc379eb0dc30af"
+ "@std/streams@1.0.12": {
+ "integrity": "ae925fa1dc459b1abf5cbaa28cc5c7b0485853af3b2a384b0dc22d86e59dfbf4"
},
"@std/tar@0.1.6": {
"integrity": "7f06a5359518262207e1c28ea965fd552dff3ba2047d2e9225339af287b1f3a4",
@@ -144,18 +140,18 @@
"@std/uuid@1.0.9": {
"integrity": "44b627bf2d372fe1bd099e2ad41b2be41a777fc94e62a3151006895a037f1642",
"dependencies": [
- "jsr:@std/bytes@^1.0.6",
+ "jsr:@std/bytes",
"jsr:@std/crypto"
]
},
- "@ts-morph/bootstrap@0.25.0": {
- "integrity": "3cd33ee80ac0aab8e5d2660c639a02187f0c8abfe454636ce86c00eb7e8407db",
+ "@ts-morph/bootstrap@0.27.0": {
+ "integrity": "b8d7bc8f7942ce853dde4161b28f9aa96769cef3d8eebafb379a81800b9e2448",
"dependencies": [
"jsr:@ts-morph/common"
]
},
- "@ts-morph/common@0.25.0": {
- "integrity": "e3ed1771e2fb61fbc3d2cb39ebbc4f89cd686d6d9bc6d91a71372be055ac1967",
+ "@ts-morph/common@0.27.0": {
+ "integrity": "c7b73592d78ce8479b356fd4f3d6ec3c460d77753a8680ff196effea7a939052",
"dependencies": [
"jsr:@std/fs@1",
"jsr:@std/path@1"
@@ -200,6 +196,10 @@
"isexe@3.1.1": {
"integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="
},
+ "typescript@5.8.3": {
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "bin": true
+ },
"undici@6.21.3": {
"integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw=="
},
@@ -211,11 +211,7 @@
"bin": true
},
"ws@8.18.3": {
- "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
- "optionalPeers": [
- "bufferutil@^4.0.1",
- "utf-8-validate@>=5.0.2"
- ]
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg=="
}
},
"redirects": {
@@ -275,7 +271,13 @@
},
"workspace": {
"dependencies": [
- "jsr:@deno/dnt@~0.42.1"
+ "jsr:@david/path@0.2",
+ "jsr:@deno/dnt@~0.42.1",
+ "jsr:@qnighy/dedent@~0.1.2",
+ "jsr:@std/assert@^1.0.15",
+ "jsr:@std/cli@^1.0.23",
+ "jsr:@std/fmt@^1.0.8",
+ "jsr:@std/uuid@^1.0.9"
]
}
}
diff --git a/rs-lib/Cargo.toml b/rs-lib/Cargo.toml
index 1266447d..b89a6573 100644
--- a/rs-lib/Cargo.toml
+++ b/rs-lib/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "datex-core-js"
-version = "0.0.6"
+version = "0.0.7"
authors = [
"Benedikt Strehle ",
"Jonas Strehle ",
@@ -20,37 +20,44 @@ panic = "abort"
[dependencies]
log = { version = "0.4", features = ["std", "serde"] }
-datex-core = { version = "0.0.5", git = "https://github.com/unyt-org/datex-core", branch = "feat/ref", default-features = false, features = [
+datex-core = { version = "0.0.6", default-features = false, features = [
"std",
+ "serde",
"wasm_logger",
"wasm_runtime",
"wasm_webrtc",
] }
-datex_macros = { version = "0.1.0", git = "https://github.com/unyt-org/datex-core", branch = "feat/ref", package = "datex_macros" }
+datex_macros = { version = "0.1.1", package = "datex_macros" }
async-trait = "0.1.87"
url = "2.5.4"
-wasm-bindgen = { version = "=0.2.100", features = [] }
+wasm-bindgen = { version = "=0.2.102", features = [] }
# FIXME make serde-wasm-bindgen optional
serde-wasm-bindgen = "0.6"
serde = { version = "1.0", features = ["derive"] }
# serde-wasm-bindgen = "0.6"
wasm-bindgen-futures = "0.4.50"
-js-sys = "=0.3.77"
+js-sys = "=0.3.79"
+
# webrtc
futures = { version = "0.3", default-features = false } # = "0.11",
futures-timer = { version = "3", features = ["wasm-bindgen"] }
uuid = { version = "1.15.1", features = ["js"], optional = true }
futures-channel = "0.3.31"
+specta-typescript = "0.0.9"
+specta = "1.0.5"
+tsify = "0.5.5"
# webrtc
# tokio = { version = "1.43.0", default-features = false, features = [] }
[dependencies.web-sys]
-version = "0.3.77"
+version = "0.3.79"
features = [
"Window",
+ "AesCtrParams",
+ "AesGcmParams",
"BinaryType",
"Blob",
"ErrorEvent",
@@ -86,6 +93,7 @@ features = [
"RtcDataChannelEvent",
"RtcConfiguration",
"RtcIceServer",
+ "MediaStream",
]
[dev-dependencies]
@@ -98,7 +106,7 @@ default = [
"wasm_serial",
"wasm_webrtc",
]
-debug = ["datex-core/debug"]
+debug = ["datex-core/debug", "datex-core/wasm_runtime"]
wasm_websocket_server = [] # only required for a backend js runtime
wasm_websocket_client = [] # full support
wasm_serial = [] # only required for frontend js runtime
diff --git a/rs-lib/src/crypto/crypto_js.rs b/rs-lib/src/crypto/crypto_js.rs
index 7cdb8a7c..92350cae 100644
--- a/rs-lib/src/crypto/crypto_js.rs
+++ b/rs-lib/src/crypto/crypto_js.rs
@@ -4,11 +4,11 @@ use datex_core::crypto::crypto::{CryptoError, CryptoTrait};
use wasm_bindgen::{JsCast, JsValue};
use wasm_bindgen_futures::JsFuture;
use web_sys::{
- js_sys::{ArrayBuffer, Object, Uint8Array},
- CryptoKey, CryptoKeyPair,
+ AesCtrParams, AesGcmParams, CryptoKey, CryptoKeyPair,
+ js_sys::{Array, ArrayBuffer, Object, Reflect, Uint8Array},
};
-use crate::js_utils::{js_array, js_object, AsByteSlice, TryAsByteSlice};
+use crate::js_utils::{AsByteSlice, TryAsByteSlice, js_array, js_object};
mod sealed {
use super::*;
@@ -95,139 +95,75 @@ impl CryptoJS {
})?;
Ok(key_or_pair)
}
-
- async fn new_encryption_key_pair() -> Result {
- let algorithm = js_object(vec![
- ("name", JsValue::from_str("RSA-OAEP")),
- ("modulusLength", JsValue::from_f64(4096.0)),
- (
- "publicExponent",
- JsValue::from(Uint8Array::from(&[1, 0, 1][..])),
- ),
- ("hash", JsValue::from_str("SHA-256")),
- ]);
- Self::generate_crypto_key(&algorithm, true, &["encrypt", "decrypt"])
- .await
- }
- async fn new_sign_key_pair() -> Result {
- let algorithm = js_object(vec![
- ("name", JsValue::from_str("ECDSA")),
- ("namedCurve", JsValue::from_str("P-384")),
- ]);
- Self::generate_crypto_key(&algorithm, true, &["sign", "verify"]).await
- }
}
impl CryptoTrait for CryptoJS {
- fn encrypt_rsa(
- &self,
- data: Vec, // FIXME how to handle lifetime and let data pass as slice
- public_key: Vec,
- ) -> Pin, CryptoError>> + 'static>>
- {
- Box::pin(async move {
- let key = Self::import_crypto_key(
- &public_key,
- "spki",
- &js_object(vec![
- ("name", JsValue::from_str("RSA-OAEP")),
- ("hash", JsValue::from_str("SHA-256")),
- ]),
- &["encrypt"],
- )
- .await?;
-
- let encryption_promise = Self::crypto_subtle()
- .encrypt_with_str_and_u8_array("RSA-OAEP", &key, &data)
- .map_err(|_| CryptoError::EncryptionError)?;
-
- let result: ArrayBuffer = JsFuture::from(encryption_promise)
- .await
- .map_err(|_| CryptoError::EncryptionError)?
- .try_into()
- .map_err(|_: std::convert::Infallible| {
- CryptoError::EncryptionError
- })?;
-
- let message: Vec = result.as_u8_slice();
+ fn create_uuid(&self) -> String {
+ Self::crypto().random_uuid()
+ }
- Ok(message)
- })
+ fn random_bytes(&self, length: usize) -> Vec {
+ let buffer = &mut vec![0u8; length];
+ Self::crypto()
+ .get_random_values_with_u8_array(buffer)
+ .unwrap();
+ buffer.to_vec()
}
- fn decrypt_rsa(
+ // Signature and Verification
+ fn gen_ed25519(
&self,
- data: Vec,
- private_key: Vec,
- ) -> Pin, CryptoError>> + 'static>>
- {
+ ) -> Pin<
+ Box<
+ dyn Future