From 5b6ba8284d96713a1518152cf32e098fb88ce405 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Mon, 30 Sep 2024 15:01:37 -0700 Subject: [PATCH] WIP moving TS compilation to docs.rs --- Cargo.lock | 1472 ++++++++++++++++- libraries/bezier-rs/.cargo/config.toml | 2 + libraries/bezier-rs/Cargo.toml | 15 + libraries/bezier-rs/build.rs | 80 + libraries/bezier-rs/header.html | 5 + .../bezier-rs-demos/src/features-subpath.ts | 54 +- website/other/bezier-rs-demos/src/main.ts | 5 +- website/other/bezier-rs-demos/src/types.ts | 18 + 8 files changed, 1600 insertions(+), 51 deletions(-) create mode 100644 libraries/bezier-rs/.cargo/config.toml create mode 100644 libraries/bezier-rs/build.rs create mode 100644 libraries/bezier-rs/header.html diff --git a/Cargo.lock b/Cargo.lock index 3324752957..25afe64e0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,6 +7,10 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] [[package]] name = "ab_glyph" @@ -54,6 +58,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.15", "once_cell", + "serde", "version_check", "zerocopy", ] @@ -237,6 +242,18 @@ dependencies = [ "libloading", ] +[[package]] +name = "ast_node" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4d23a6d1d5f18bdbc06d9aa908880e5f49205156ba804751af731c51f5cf81a" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.77", +] + [[package]] name = "async-broadcast" version = "0.7.1" @@ -420,6 +437,17 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "autocfg" version = "1.3.0" @@ -514,15 +542,40 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64-simd" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" +dependencies = [ + "simd-abstraction", +] + +[[package]] +name = "better_scoped_tls" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" +dependencies = [ + "scoped-tls", +] + [[package]] name = "bezier-rs" version = "0.4.0" dependencies = [ + "anyhow", "dyn-any", "glam", "kurbo", "log", "serde", + "swc", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_typescript", + "swc_ecma_visit", ] [[package]] @@ -587,6 +640,18 @@ version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b81e1519b0d82120d2fd469d5bfb2919a9361c48b02d82d04befc1cdd2002452" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "block" version = "0.1.6" @@ -664,6 +729,24 @@ dependencies = [ "alloc-stdlib", ] +[[package]] +name = "browserslist-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdf0ca73de70c3da94e4194e4a01fe732378f55d47cf4c0588caab22a0dbfa14" +dependencies = [ + "ahash", + "chrono", + "either", + "indexmap 2.5.0", + "itertools 0.13.0", + "nom", + "once_cell", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "bstr" version = "1.10.0" @@ -689,6 +772,9 @@ name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +dependencies = [ + "allocator-api2", +] [[package]] name = "bytemuck" @@ -1352,12 +1438,41 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + [[package]] name = "data-url" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "serde", + "uuid", +] + [[package]] name = "deranged" version = "0.3.11" @@ -1399,7 +1514,7 @@ dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version", + "rustc_version 0.4.1", "syn 2.0.77", ] @@ -1519,7 +1634,7 @@ checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602" dependencies = [ "cc", "memchr", - "rustc_version", + "rustc_version 0.4.1", "toml 0.8.19", "vswhom", "winreg 0.52.0", @@ -1705,7 +1820,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset 0.9.1", - "rustc_version", + "rustc_version 0.4.1", ] [[package]] @@ -1849,6 +1964,23 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "from_variant" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8d8947525c49c73130b5a7187b55b027b6b78fe60268d9f4c283ed690698cb1" +dependencies = [ + "proc-macro2", + "swc_macros_common", + "syn 2.0.77", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futf" version = "0.1.5" @@ -2710,6 +2842,15 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -2789,6 +2930,20 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "hstr" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae404c0c5d4e95d4858876ab02eecd6a196bb8caa42050dfa809938833fc412" +dependencies = [ + "hashbrown 0.14.5", + "new_debug_unreachable", + "once_cell", + "phf 0.11.2", + "rustc-hash 1.1.0", + "triomphe", +] + [[package]] name = "html5ever" version = "0.26.0" @@ -3089,6 +3244,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + [[package]] name = "ignore" version = "0.4.23" @@ -3230,6 +3391,18 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +[[package]] +name = "is-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2069faacbe981460232f880d26bf3c7634e322d49053aa48c27e3ae642f728f1" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "is-terminal" version = "0.4.13" @@ -3265,6 +3438,15 @@ 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" @@ -3375,6 +3557,15 @@ dependencies = [ "thiserror", ] +[[package]] +name = "jsonc-parser" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b56a20e76235284255a09fcd1f45cf55d3c524ea657ebd3854735925c57743d" +dependencies = [ + "serde_json", +] + [[package]] name = "jsonptr" version = "0.4.7" @@ -3545,6 +3736,15 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "mac" version = "0.1.1" @@ -3675,6 +3875,31 @@ dependencies = [ "nom", ] +[[package]] +name = "miette" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" +dependencies = [ + "cfg-if", + "miette-derive", + "owo-colors", + "textwrap", + "thiserror", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "mime" version = "0.3.17" @@ -3897,6 +4122,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "normpath" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a9da8c9922c35a1033d76f7272dfc2e7ee20392083d75aeea6ced23c6266578" +dependencies = [ + "winapi", +] + [[package]] name = "notify-rust" version = "4.11.3" @@ -3920,6 +4154,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "serde", +] + [[package]] name = "num-complex" version = "0.4.6" @@ -3965,6 +4210,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + [[package]] name = "num_enum" version = "0.5.11" @@ -4285,6 +4540,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "outref" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" + [[package]] name = "overload" version = "0.1.1" @@ -4300,6 +4561,12 @@ dependencies = [ "ttf-parser 0.24.1", ] +[[package]] +name = "owo-colors" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" + [[package]] name = "pango" version = "0.15.10" @@ -4374,6 +4641,18 @@ dependencies = [ "svg", ] +[[package]] +name = "path-clean" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" + +[[package]] +name = "path-clean" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" + [[package]] name = "pathdiff" version = "0.2.1" @@ -4700,6 +4979,24 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "preset_env_base" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aaeaf4147a07c6615d43fce02d8139e1f835e6ee53e69db2a4810823c138c26" +dependencies = [ + "ahash", + "anyhow", + "browserslist-rs", + "dashmap", + "from_variant", + "once_cell", + "semver 1.0.23", + "serde", + "st-map", + "tracing", +] + [[package]] name = "presser" version = "0.3.1" @@ -4770,6 +5067,35 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +[[package]] +name = "psm" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +dependencies = [ + "cc", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "qoi" version = "0.4.1" @@ -4863,6 +5189,18 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "radix_fmt" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" + [[package]] name = "rand" version = "0.7.3" @@ -5292,13 +5630,22 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver", + "semver 1.0.23", ] [[package]] @@ -5409,6 +5756,12 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "ryu-js" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" + [[package]] name = "same-file" version = "1.0.6" @@ -5495,6 +5848,15 @@ dependencies = [ "thin-slice", ] +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + [[package]] name = "semver" version = "1.0.23" @@ -5504,6 +5866,12 @@ dependencies = [ "serde", ] +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "serde" version = "1.0.210" @@ -5708,6 +6076,15 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref", +] + [[package]] name = "simd-adler32" version = "0.3.7" @@ -5772,6 +6149,23 @@ dependencies = [ "serde", ] +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "smithay-client-toolkit" version = "0.18.1" @@ -5844,6 +6238,25 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "sourcemap" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dab08a862c70980b8e23698b507e272317ae52a608a164a844111f5372374f1f" +dependencies = [ + "base64-simd", + "bitvec", + "data-encoding", + "debugid", + "if_chain", + "rustc-hash 1.1.0", + "rustc_version 0.2.3", + "serde", + "serde_json", + "unicode-id-start", + "url", +] + [[package]] name = "specta" version = "2.0.0-rc.20" @@ -5911,12 +6324,35 @@ name = "spirv-std-types" version = "0.9.0" source = "git+https://github.com/GraphiteEditor/rust-gpu.git#7f60fbbdddc0d6effa1c3c86e3e11f9896c970e8" +[[package]] +name = "st-map" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8257dd592de7614be71a2342d36ba2d527ddad3f9a0c8d09d6ceed4c371531e4" +dependencies = [ + "arrayvec", + "static-map-macro", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "stacker" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "windows-sys 0.59.0", +] + [[package]] name = "state" version = "0.5.3" @@ -5926,6 +6362,17 @@ dependencies = [ "loom", ] +[[package]] +name = "static-map-macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710e9696ef338691287aeb937ee6ffe60022f579d3c8d2fd9d58973a9a10a466" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -5967,6 +6414,18 @@ dependencies = [ "quote", ] +[[package]] +name = "string_enum" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e383308aebc257e7d7920224fa055c632478d92744eca77f99be8fa1545b90" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.77", +] + [[package]] name = "strsim" version = "0.11.1" @@ -6001,6 +6460,943 @@ dependencies = [ "siphasher 1.0.1", ] +[[package]] +name = "swc" +version = "0.289.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65d51f69ac919b22a08e8654f63def43578a174132bda87309dea8fddd41a5d9" +dependencies = [ + "anyhow", + "base64 0.21.7", + "dashmap", + "either", + "indexmap 2.5.0", + "jsonc-parser", + "lru", + "once_cell", + "parking_lot", + "pathdiff", + "regex", + "rustc-hash 1.1.0", + "serde", + "serde_json", + "sourcemap", + "swc_atoms", + "swc_cached", + "swc_common", + "swc_compiler_base", + "swc_config", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_ext_transforms", + "swc_ecma_lints", + "swc_ecma_loader", + "swc_ecma_minifier", + "swc_ecma_parser", + "swc_ecma_preset_env", + "swc_ecma_transforms", + "swc_ecma_transforms_base", + "swc_ecma_transforms_compat", + "swc_ecma_transforms_optimization", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_error_reporters", + "swc_node_comments", + "swc_timer", + "swc_transform_common", + "swc_typescript", + "swc_visit", + "tracing", + "url", +] + +[[package]] +name = "swc_allocator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7016ee7a5186d6a80e381aa1926e0f3c7b06eaf444745ff7af3632e978eb8dc5" +dependencies = [ + "bumpalo", + "hashbrown 0.14.5", + "ptr_meta", + "rustc-hash 1.1.0", + "triomphe", +] + +[[package]] +name = "swc_atoms" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26cbf6019321add3a50377aaa4e06767a97a115084895289e10be000db207faf" +dependencies = [ + "hstr", + "once_cell", + "rustc-hash 1.1.0", + "serde", +] + +[[package]] +name = "swc_cached" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83406221c501860fce9c27444f44125eafe9e598b8b81be7563d7036784cd05c" +dependencies = [ + "ahash", + "anyhow", + "dashmap", + "once_cell", + "regex", + "serde", +] + +[[package]] +name = "swc_common" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f355465eaed1104244ce918b7ffb77ceb109aabeb74b04b98acae85683b0215b" +dependencies = [ + "ahash", + "ast_node", + "better_scoped_tls", + "cfg-if", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "parking_lot", + "rustc-hash 1.1.0", + "serde", + "siphasher 0.3.11", + "sourcemap", + "swc_allocator", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url", +] + +[[package]] +name = "swc_compiler_base" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b82e7c3cc5954a5b2e9c545920232a1d37a70215719f5021f090eda9fcf88a" +dependencies = [ + "anyhow", + "base64 0.21.7", + "once_cell", + "pathdiff", + "rustc-hash 1.1.0", + "serde", + "serde_json", + "sourcemap", + "swc_allocator", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_minifier", + "swc_ecma_parser", + "swc_ecma_visit", + "swc_timer", +] + +[[package]] +name = "swc_config" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4740e53eaf68b101203c1df0937d5161a29f3c13bceed0836ddfe245b72dd000" +dependencies = [ + "anyhow", + "indexmap 2.5.0", + "serde", + "serde_json", + "sourcemap", + "swc_cached", + "swc_config_macro", +] + +[[package]] +name = "swc_config_macro" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c5f56139042c1a95b54f5ca48baa0e0172d369bcc9d3d473dad1de36bae8399" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.77", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.121.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7e1b73c85ff968404867505646b3c6f26e4661e4fc831593b9e182fa59ddd4" +dependencies = [ + "bitflags 2.6.0", + "is-macro", + "num-bigint", + "phf 0.11.2", + "scoped-tls", + "serde", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id-start", +] + +[[package]] +name = "swc_ecma_codegen" +version = "0.158.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1953878c2f44d796ff4ee8bde727890d24fe3bed9a86a23be4c4ef9ad79b6a6c" +dependencies = [ + "memchr", + "num-bigint", + "once_cell", + "regex", + "serde", + "sourcemap", + "swc_allocator", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_codegen_macros", + "tracing", +] + +[[package]] +name = "swc_ecma_codegen_macros" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859fabde36db38634f3fad548dd5e3410c1aebba1b67a3c63e67018fa57a0bca" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.77", +] + +[[package]] +name = "swc_ecma_compat_bugfixes" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff0f4ede38d4110f8c639a4c07c8d2b677d3eac968ab33da312bbaf6ad5adf0" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_compat_es2015", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_common" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a479b2061a3b2c939a9abd34cfd3e9a6983a8bf12f7d3da89ac7ad6a64d9a4" +dependencies = [ + "swc_common", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", +] + +[[package]] +name = "swc_ecma_compat_es2015" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "129fa363e3ea01f9e2d2dbd06675bfd515689b261c28b30296d89c91b549916a" +dependencies = [ + "arrayvec", + "indexmap 2.5.0", + "is-macro", + "rustc-hash 1.1.0", + "serde", + "serde_derive", + "smallvec", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_compat_common", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2016" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0f1dd466100cd41e85be398d1f4d973f8d5760ec52376294918def88e620ad" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2017" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33a3fcc3ae30628fc752d04b44c885ea6202ecfb187311d8827cc851ba7d906d" +dependencies = [ + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2018" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31160d66339dda14faefd3a2816a0436f0a1e4f33a2057d8f3663a1a567eaf2e" +dependencies = [ + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_compat_common", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2019" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f0164ad462c81c421de2af75f408ca3a96324a3c5e81d999a90a58e6e40dbef" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2020" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da49ae2565352c179657b47e87b4879b8c1128b5447e8fbfaaa020702f740636" +dependencies = [ + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_compat_es2022", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2021" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9fed665a9f5b2b3c55fc04f36b12c8d2148fd25fb216a4d9ae9fac331a5374" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es2022" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241bf311a26447690bbfc36ec76886dac04343f82e3fe638fc0e0cdbaeae534b" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_compat_common", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_compat_es3" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0c7867bba0129c8844cf274c9a0e3f1926d7225d6dce36343a4b1626399992" +dependencies = [ + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_ext_transforms" +version = "0.123.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ea0bdb96b8d24305cf23614db4c734425c44329bd6e1734e6ebd068a88b536" +dependencies = [ + "phf 0.11.2", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_lints" +version = "0.104.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afb24beda205684867ba555f59e4a470afbe67d9deaacc29b1a5e3a4a1fd58d" +dependencies = [ + "auto_impl", + "dashmap", + "parking_lot", + "rayon", + "regex", + "serde", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_loader" +version = "0.52.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f521eea3476abc7ae7adcbfa3479881087e5ae8fe358d46376d761e83fdb3120" +dependencies = [ + "anyhow", + "dashmap", + "lru", + "normpath", + "once_cell", + "parking_lot", + "path-clean 0.1.0", + "pathdiff", + "serde", + "serde_json", + "swc_atoms", + "swc_cached", + "swc_common", + "tracing", +] + +[[package]] +name = "swc_ecma_minifier" +version = "0.208.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67d0fec4e2a4a00c1605f6baa2845cc05b4059c1bf9a6e45377c8ae67f04207d" +dependencies = [ + "arrayvec", + "indexmap 2.5.0", + "num-bigint", + "num_cpus", + "once_cell", + "parking_lot", + "phf 0.11.2", + "radix_fmt", + "regex", + "rustc-hash 1.1.0", + "ryu-js", + "serde", + "serde_json", + "swc_allocator", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_codegen", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_optimization", + "swc_ecma_usage_analyzer", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_timer", + "tracing", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.152.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4cfd7930abe18c6829d4adedb5249e1b9fa68e8e786c6636250637992ba0466" +dependencies = [ + "either", + "new_debug_unreachable", + "num-bigint", + "num-traits", + "phf 0.11.2", + "serde", + "smallvec", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_preset_env" +version = "0.221.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b6b5a7222fe85be1732faa7a2c9812fc516d934ba320662c90c066264cd9eec" +dependencies = [ + "anyhow", + "dashmap", + "indexmap 2.5.0", + "once_cell", + "preset_env_base", + "rustc-hash 1.1.0", + "semver 1.0.23", + "serde", + "serde_json", + "st-map", + "string_enum", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms" +version = "0.243.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b22f584075dfbd349c107def9c52de654979f0a1e8cdc4255dd4e7ec5b39800" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_compat", + "swc_ecma_transforms_module", + "swc_ecma_transforms_optimization", + "swc_ecma_transforms_proposal", + "swc_ecma_transforms_react", + "swc_ecma_transforms_typescript", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.149.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2194d20416a03ae02058934f8387691809f86466a2f2e7a65c56dcb001bd46b" +dependencies = [ + "better_scoped_tls", + "bitflags 2.6.0", + "indexmap 2.5.0", + "once_cell", + "phf 0.11.2", + "rustc-hash 1.1.0", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_classes" +version = "0.138.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e93ef88e45587864ef645e29c33f04f75360e47194c084f931855af3aac246" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_compat" +version = "0.175.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35dd174f6c954a4fe1bff88a64de777ef65041411f96b60daf4a78864ad47789" +dependencies = [ + "arrayvec", + "indexmap 2.5.0", + "is-macro", + "num-bigint", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_compat_bugfixes", + "swc_ecma_compat_common", + "swc_ecma_compat_es2015", + "swc_ecma_compat_es2016", + "swc_ecma_compat_es2017", + "swc_ecma_compat_es2018", + "swc_ecma_compat_es2019", + "swc_ecma_compat_es2020", + "swc_ecma_compat_es2021", + "swc_ecma_compat_es2022", + "swc_ecma_compat_es3", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_trace_macro", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_macros" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500a1dadad1e0e41e417d633b3d6d5de677c9e0d3159b94ba3348436cdb15aab" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.77", +] + +[[package]] +name = "swc_ecma_transforms_module" +version = "0.194.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4317b5ce1f5fc00b7d72b712c822e1aa66cdb9dc155799ee2278e00b2172f918" +dependencies = [ + "Inflector", + "anyhow", + "bitflags 2.6.0", + "indexmap 2.5.0", + "is-macro", + "path-clean 1.0.1", + "pathdiff", + "regex", + "serde", + "swc_atoms", + "swc_cached", + "swc_common", + "swc_ecma_ast", + "swc_ecma_loader", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_optimization" +version = "0.212.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b2722095aef7b6de79b170c8c4e3c885576c5394e7a20328fdc51e880d6257b" +dependencies = [ + "dashmap", + "indexmap 2.5.0", + "once_cell", + "petgraph", + "rustc-hash 1.1.0", + "serde_json", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_fast_graph", + "tracing", +] + +[[package]] +name = "swc_ecma_transforms_proposal" +version = "0.183.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718f1e24dd96cfb0b7ba8f8a4e61c98338cdac7a3f5f9f4a83951d776ac398bf" +dependencies = [ + "either", + "rustc-hash 1.1.0", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_classes", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_react" +version = "0.195.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ddcb8943976319a4f8b899862f094f6984511490e4bfa9b4c8fbd334539b62" +dependencies = [ + "base64 0.21.7", + "dashmap", + "indexmap 2.5.0", + "once_cell", + "serde", + "sha1", + "string_enum", + "swc_allocator", + "swc_atoms", + "swc_common", + "swc_config", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "swc_ecma_transforms_macros", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_transforms_typescript" +version = "0.202.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31acb773a2d82e5524d021aa77a38ae8bc708171b0005fd420b43356d8dfba25" +dependencies = [ + "ryu-js", + "serde", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_transforms_base", + "swc_ecma_transforms_react", + "swc_ecma_utils", + "swc_ecma_visit", +] + +[[package]] +name = "swc_ecma_usage_analyzer" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a1d8b627b6adc706ccd2a4a30a5413e9df91a9cff6569cb9d3b9f41c1bc8de" +dependencies = [ + "indexmap 2.5.0", + "rustc-hash 1.1.0", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_utils", + "swc_ecma_visit", + "swc_timer", + "tracing", +] + +[[package]] +name = "swc_ecma_utils" +version = "0.137.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "939f21c75eff61ad3e485fc54d38988f2f9744ceda24a3feb8228dd072171d94" +dependencies = [ + "indexmap 2.5.0", + "num_cpus", + "once_cell", + "rustc-hash 1.1.0", + "ryu-js", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", +] + +[[package]] +name = "swc_ecma_visit" +version = "0.107.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15bd17e03251272ee04d1155036be5288055ab43d40ab2d9fd63ff815d326dad" +dependencies = [ + "new_debug_unreachable", + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] + +[[package]] +name = "swc_eq_ignore_macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63db0adcff29d220c3d151c5b25c0eabe7e32dd936212b84cdaa1392e3130497" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "swc_error_reporters" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83f9286183c9be40aafcbbe8c397403fb32af812a3dffe93eee9067aee4fbedb" +dependencies = [ + "anyhow", + "miette", + "once_cell", + "parking_lot", + "swc_common", +] + +[[package]] +name = "swc_fast_graph" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3daff8d4379be2a99ab4b146e4dd631ef2415965dc4f1d33e988a737c5ccc39a" +dependencies = [ + "indexmap 2.5.0", + "petgraph", + "rustc-hash 1.1.0", + "swc_common", +] + +[[package]] +name = "swc_macros_common" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f486687bfb7b5c560868f69ed2d458b880cebc9babebcb67e49f31b55c5bf847" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "swc_node_comments" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c325461f5e78e7749241f917945164adccfadcc2138a9a2e5ac9d186e1c459" +dependencies = [ + "dashmap", + "swc_atoms", + "swc_common", +] + +[[package]] +name = "swc_timer" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f53899e4ab3f9ce3db83b4c845f8a27f37bf700b233febbc9a6da749651c2fbb" +dependencies = [ + "tracing", +] + +[[package]] +name = "swc_trace_macro" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69aa25f667e4d74ab10a17a266edeb8b354273817b20b91e60471f1c860a221b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "swc_transform_common" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda3e80e1ad638d3575bc07745a914af13dcb02215098659f864731078271f2c" +dependencies = [ + "better_scoped_tls", + "once_cell", + "rustc-hash 1.1.0", + "serde", + "serde_json", +] + +[[package]] +name = "swc_typescript" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b61f86dce2eeabd85d934a89cd481709918c751c44dfe433b5e4f1f40075fb5a" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "thiserror", +] + +[[package]] +name = "swc_visit" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ceb044142ba2719ef9eb3b6b454fce61ab849eb696c34d190f04651955c613d" +dependencies = [ + "either", + "new_debug_unreachable", +] + [[package]] name = "syn" version = "1.0.109" @@ -6181,6 +7577,12 @@ dependencies = [ "syn 2.0.77", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" version = "0.4.41" @@ -6234,7 +7636,7 @@ dependencies = [ "regex", "reqwest 0.11.27", "rfd", - "semver", + "semver 1.0.23", "serde", "serde_json", "serde_repr", @@ -6268,7 +7670,7 @@ dependencies = [ "dirs-next", "heck 0.5.0", "json-patch", - "semver", + "semver 1.0.23", "serde", "serde_json", "tauri-utils", @@ -6291,7 +7693,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "semver", + "semver 1.0.23", "serde", "serde_json", "sha2", @@ -6378,7 +7780,7 @@ dependencies = [ "phf 0.11.2", "proc-macro2", "quote", - "semver", + "semver 1.0.23", "serde", "serde_json", "serde_with", @@ -6442,6 +7844,17 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + [[package]] name = "thin-slice" version = "0.1.1" @@ -6822,6 +8235,16 @@ dependencies = [ "petgraph", ] +[[package]] +name = "triomphe" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369" +dependencies = [ + "serde", + "stable_deref_trait", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -6843,6 +8266,12 @@ dependencies = [ "core_maths", ] +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + [[package]] name = "typenum" version = "1.17.0" @@ -6890,12 +8319,30 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "260bc6647b3893a9a90668360803a15f96b85a5257b1c3a0c3daf6ae2496de42" +[[package]] +name = "unicode-id" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561" + +[[package]] +name = "unicode-id-start" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97e2a3c5fc9de285c0e805d98eba666adb4b2d9e1049ce44821ff7707cc34e91" + [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.23" @@ -8220,6 +9667,15 @@ dependencies = [ "windows-implement 0.39.0", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" version = "2.21.0" diff --git a/libraries/bezier-rs/.cargo/config.toml b/libraries/bezier-rs/.cargo/config.toml new file mode 100644 index 0000000000..bbcecb8fc6 --- /dev/null +++ b/libraries/bezier-rs/.cargo/config.toml @@ -0,0 +1,2 @@ +[build] +rustdocflags = ["--html-in-header", "./libraries/bezier-rs/header.html"] diff --git a/libraries/bezier-rs/Cargo.toml b/libraries/bezier-rs/Cargo.toml index aedebf4943..650200ca40 100644 --- a/libraries/bezier-rs/Cargo.toml +++ b/libraries/bezier-rs/Cargo.toml @@ -24,3 +24,18 @@ dyn-any = { version = "0.3.0", path = "../dyn-any", optional = true } kurbo = { workspace = true, optional = true } serde = { workspace = true, optional = true } log = { workspace = true, optional = true } + +[build-dependencies] +# SWC dependencies for compiling TypeScript to JavaScript +swc = "0.289.0" +swc_common = "0.40.0" +swc_ecma_ast = "0.121.0" +swc_ecma_parser = { version = "0.152.0", features = ["verify", "typescript"] } +swc_ecma_transforms_typescript = "0.202.0" +swc_ecma_visit = "0.107.0" + +# Additional dependencies +anyhow = "1.0" # For error handling in build.rs + +# [package.metadata.docs.rs] +# rustdoc-args = ["--html-in-header", "./header.html"] diff --git a/libraries/bezier-rs/build.rs b/libraries/bezier-rs/build.rs new file mode 100644 index 0000000000..beb3840112 --- /dev/null +++ b/libraries/bezier-rs/build.rs @@ -0,0 +1,80 @@ +use anyhow::Result; +use std::env; +use std::fs; +use std::io; +use std::path::PathBuf; +use swc::{config::IsModule, Compiler, PrintArgs}; +use swc_common::{errors::Handler, source_map::SourceMap, sync::Lrc, Mark, GLOBALS}; +use swc_ecma_ast::EsVersion; +use swc_ecma_parser::Syntax; +use swc_ecma_transforms_typescript::strip; +use swc_ecma_visit::FoldWith; + +fn main() -> Result<()> { + if std::env::var("DOCS_RS").is_ok() { + let js = ts_to_js( + "hello.ts", + r#" + interface Args { + name: string; + } + + function hello(param: Args) { + // comment + console.log(`Hello ${param.name}!`); + } + "#, + ); + + println!("RUNNING THIS CODE, okay?"); + + // Wrap JS code in a ", js); + + // Write the HTML snippet to a file in OUT_DIR + let out_dir = PathBuf::from(env::var("OUT_DIR")?); + let html_path = out_dir.join("header.html"); + fs::write(&html_path, html_snippet)?; + } + + Ok(()) +} + +/// Transforms typescript to javascript. Returns tuple (js string, source map) +pub(crate) fn ts_to_js(filename: &str, ts_code: &str) -> String { + let cm = Lrc::new(SourceMap::new(swc_common::FilePathMapping::empty())); + + let compiler = Compiler::new(cm.clone()); + + let source = cm.new_source_file(Lrc::new(swc_common::FileName::Custom(filename.into())), ts_code.to_string()); + + let handler = Handler::with_emitter_writer(Box::new(io::stderr()), Some(compiler.cm.clone())); + + return GLOBALS.set(&Default::default(), || { + let program = compiler + .parse_js( + source, + &handler, + EsVersion::Es5, + Syntax::Typescript(Default::default()), + IsModule::Bool(false), + Some(compiler.comments()), + ) + .expect("parse_js failed"); + + // Add TypeScript type stripping transform + let top_level_mark = Mark::new(); + let unresolved_mark = Mark::new(); + let program = program.fold_with(&mut strip(unresolved_mark, top_level_mark)); + + // https://rustdoc.swc.rs/swc/struct.Compiler.html#method.print + let ret = compiler + .print( + &program, // ast to print + PrintArgs::default(), + ) + .expect("print failed"); + + ret.code + }); +} diff --git a/libraries/bezier-rs/header.html b/libraries/bezier-rs/header.html new file mode 100644 index 0000000000..05fd92e0bc --- /dev/null +++ b/libraries/bezier-rs/header.html @@ -0,0 +1,5 @@ + diff --git a/website/other/bezier-rs-demos/src/features-subpath.ts b/website/other/bezier-rs-demos/src/features-subpath.ts index 7c5371f727..3384592469 100644 --- a/website/other/bezier-rs-demos/src/features-subpath.ts +++ b/website/other/bezier-rs-demos/src/features-subpath.ts @@ -1,5 +1,16 @@ import type { SubpathCallback, SubpathInputOption, WasmSubpathInstance } from "@/types"; -import { capOptions, joinOptions, tSliderOptions, subpathTValueVariantOptions, intersectionErrorOptions, minimumSeparationOptions, separationDiskDiameter, SUBPATH_T_VALUE_VARIANTS } from "@/types"; +import { + capOptions, + joinOptions, + tSliderOptions, + subpathTValueVariantOptions, + intersectionErrorOptions, + minimumSeparationOptions, + separationDiskDiameter, + SUBPATH_T_VALUE_VARIANTS, + miterLimitOptions, + distanceOptions, +} from "@/types"; const subpathFeatures = { constructor: { @@ -160,49 +171,12 @@ const subpathFeatures = { offset: { name: "Offset", callback: (subpath: WasmSubpathInstance, options: Record): string => subpath.offset(options.distance, options.join, options.miter_limit), - inputOptions: [ - { - variable: "distance", - inputType: "slider", - min: -25, - max: 25, - step: 1, - default: 10, - }, - joinOptions, - { - variable: "join: Miter - limit", - inputType: "slider", - min: 1, - max: 10, - step: 0.25, - default: 4, - }, - ], + inputOptions: [distanceOptions, miterLimitOptions], }, outline: { name: "Outline", callback: (subpath: WasmSubpathInstance, options: Record): string => subpath.outline(options.distance, options.join, options.cap, options.miter_limit), - inputOptions: [ - { - variable: "distance", - inputType: "slider", - min: 0, - max: 25, - step: 1, - default: 10, - }, - joinOptions, - { - variable: "join: Miter - limit", - inputType: "slider", - min: 1, - max: 10, - step: 0.25, - default: 4, - }, - { ...capOptions, isDisabledForClosed: true }, - ], + inputOptions: [{ ...distanceOptions, min: 0 }, joinOptions, miterLimitOptions, { ...capOptions, isDisabledForClosed: true }], }, rotate: { name: "Rotate", diff --git a/website/other/bezier-rs-demos/src/main.ts b/website/other/bezier-rs-demos/src/main.ts index d01826a0f4..8af8a175d5 100644 --- a/website/other/bezier-rs-demos/src/main.ts +++ b/website/other/bezier-rs-demos/src/main.ts @@ -84,9 +84,8 @@ function bezierDemoGroup(key: BezierFeatureKey, options: BezierFeatureOptions): points: demoOptions[curveType]?.customPoints || getBezierDemoPointDefaults()[curveType], inputOptions: demoOptions[curveType]?.inputOptions || demoOptions.Quadratic?.inputOptions || [], })); - return renderDemoGroup(`bezier/${key}`, bezierFeatures[key].name, demos, (demo: BezierDemoArgs) => - demoBezier(demo.title, demo.points, key, demo.inputOptions, options.triggerOnMouseMove || false), - ); + const buildDemo = (demo: BezierDemoArgs) => demoBezier(demo.title, demo.points, key, demo.inputOptions, options.triggerOnMouseMove || false); + return renderDemoGroup(`bezier/${key}`, bezierFeatures[key].name, demos, buildDemo); } function subpathDemoGroup(key: SubpathFeatureKey, options: SubpathFeatureOptions): HTMLDivElement { diff --git a/website/other/bezier-rs-demos/src/types.ts b/website/other/bezier-rs-demos/src/types.ts index dc96de89dc..53f959ac7c 100644 --- a/website/other/bezier-rs-demos/src/types.ts +++ b/website/other/bezier-rs-demos/src/types.ts @@ -226,6 +226,24 @@ export const subpathTValueVariantOptions = { options: SUBPATH_T_VALUE_VARIANTS, }; +export const distanceOptions = { + variable: "distance", + inputType: "slider", + min: -25, + max: 25, + step: 1, + default: 10, +}; + +export const miterLimitOptions = { + variable: "join: Miter - limit", + inputType: "slider", + min: 1, + max: 10, + step: 0.25, + default: 4, +}; + export const joinOptions = { variable: "join", inputType: "dropdown",