From 6145879d99b8fcf0392adbe98028f8b0f5ddd61c Mon Sep 17 00:00:00 2001 From: nicholaslyang Date: Thu, 30 May 2024 13:13:22 -0400 Subject: [PATCH] Fixing up dependencies and tests --- Cargo.lock | 208 +++++++----------- Cargo.toml | 12 +- crates/turborepo-lsp/src/lib.rs | 1 - .../src/package_graph/builder.rs | 6 +- .../src/package_graph/mod.rs | 2 +- .../turborepo-repository/src/package_json.rs | 23 +- .../src/package_manager/mod.rs | 2 +- .../integration/tests/bad-turbo-json.t | 12 +- 8 files changed, 109 insertions(+), 157 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5aa2cf28342ac..35c4f0a2e3e90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,11 +14,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli 0.28.1", + "gimli 0.27.3", ] [[package]] @@ -617,9 +617,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ "addr2line", "cc", @@ -737,6 +737,8 @@ dependencies = [ [[package]] name = "biome_console" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c672a9e31e47f8df74549a570ea3245a93ce3404115c724bb16762fcbbfe17e1" dependencies = [ "biome_markup", "biome_text_size", @@ -750,6 +752,8 @@ dependencies = [ [[package]] name = "biome_deserialize" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b4443260d505148169f5fb35634c2a60d8489882f8c9c3f1db8b7cf0cb57632" dependencies = [ "biome_console", "biome_deserialize_macros", @@ -758,16 +762,19 @@ dependencies = [ "biome_json_syntax", "biome_rowan", "bitflags 2.5.0", - "indexmap 2.2.6", + "indexmap 1.9.3", "serde", "serde_json", + "tracing", ] [[package]] name = "biome_deserialize_macros" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc1244cc5f0cc267bd26b601e9ccd6851c6a4d395bba07e27c2de641dc84479" dependencies = [ - "biome_string_case", + "convert_case 0.6.0", "proc-macro-error", "proc-macro2", "quote", @@ -777,6 +784,8 @@ dependencies = [ [[package]] name = "biome_diagnostics" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe1317b6d610541c4e6a0e1f803a946f153ace3468bbc77a8f273dcb04ee526f" dependencies = [ "backtrace", "biome_console", @@ -789,8 +798,6 @@ dependencies = [ "bpaf", "oxc_resolver", "serde", - "serde_ini", - "serde_json", "termcolor", "unicode-width", ] @@ -798,6 +805,8 @@ dependencies = [ [[package]] name = "biome_diagnostics_categories" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832080d68a2ee2f198d98ff5d26fc0f5c2566907f773d105a4a049ee07664d19" dependencies = [ "quote", "serde", @@ -806,6 +815,8 @@ dependencies = [ [[package]] name = "biome_diagnostics_macros" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540fec04d2e789fb992128c63d111b650733274afffff1cb3f26c8dff5167d3b" dependencies = [ "proc-macro-error", "proc-macro2", @@ -816,6 +827,8 @@ dependencies = [ [[package]] name = "biome_json_factory" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e409eb289040f3660689dad178b00b6ac8cfa9a7fffd8225f35cb6b3d36437cf" dependencies = [ "biome_json_syntax", "biome_rowan", @@ -824,6 +837,8 @@ dependencies = [ [[package]] name = "biome_json_parser" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6d23fb9b683e6356c094b4a0cb38f8aa0acee60ce9c3ef24628d21a204de4d" dependencies = [ "biome_console", "biome_diagnostics", @@ -839,6 +854,8 @@ dependencies = [ [[package]] name = "biome_json_syntax" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2645ca57f75680d3d390b2482c35db5850b1d849e1f96151a12f15f4abdb097" dependencies = [ "biome_rowan", "serde", @@ -847,6 +864,8 @@ dependencies = [ [[package]] name = "biome_markup" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a7f11cf91599594528e97d216044ef4e410a103327212d909f215cbafe2fd9c" dependencies = [ "proc-macro-error", "proc-macro2", @@ -856,35 +875,36 @@ dependencies = [ [[package]] name = "biome_parser" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955dd999f32c086371d5c0e64b4ea1a50f50c98f1f31a3b9fe17ef47198de19b" dependencies = [ "biome_console", "biome_diagnostics", "biome_rowan", - "biome_unicode_table", "bitflags 2.5.0", "drop_bomb", - "unicode-bom", ] [[package]] name = "biome_rowan" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3c2dc25a7ba6ae89526340034abed6c89fac35b79060786771e32ed4aac77e7" dependencies = [ "biome_text_edit", "biome_text_size", "countme", "hashbrown 0.12.3", + "memoffset 0.8.0", "rustc-hash", "tracing", ] -[[package]] -name = "biome_string_case" -version = "0.5.7" - [[package]] name = "biome_text_edit" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d486fdd96d5dad6428213ce64e6b9eb5bfb2fce6387fe901e844d386283de509" dependencies = [ "biome_text_size", "serde", @@ -894,6 +914,8 @@ dependencies = [ [[package]] name = "biome_text_size" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec604d15cefdced636255400359aeacfdea5d1e79445efc7aa32a0de7f0319b" dependencies = [ "serde", ] @@ -901,6 +923,8 @@ dependencies = [ [[package]] name = "biome_unicode_table" version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e8604d34b02180a58af1dbdaac166f1805f27f5370934142a3246f83870952" [[package]] name = "bitflags" @@ -971,18 +995,18 @@ dependencies = [ [[package]] name = "bpaf" -version = "0.9.12" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3280efcf6d66bc77c2cf9b67dc8acee47a217d9be67dd590b3230dffe663724d" +checksum = "19232d7d855392d993f6dabd8dea40a457a6d24ef679fe98f5edca811bb11e21" dependencies = [ "bpaf_derive", ] [[package]] name = "bpaf_derive" -version = "0.5.10" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8d5b11f7fa1068e5bbac8ab6c8c2c6940047f69185987446b60c995d4bf89c" +checksum = "efeab2975f8102de445dcf898856a638332403c50216144653a89aec22fd79e0" dependencies = [ "proc-macro2", "quote", @@ -1214,13 +1238,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.98" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -1449,12 +1472,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" -[[package]] -name = "clean-path" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa6b4b263a5d737e9bf6b7c09b72c41a5480aec4d7219af827f6564e950b6a5" - [[package]] name = "cmake" version = "0.1.49" @@ -3083,9 +3100,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "git2" @@ -3932,9 +3949,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] @@ -4513,6 +4530,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -5107,9 +5133,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" dependencies = [ "memchr", ] @@ -5227,12 +5253,13 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" [[package]] name = "oxc_resolver" -version = "1.7.0" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab805c61c1758a7bf350c52ab8962307d1c0fe9677ffa0ac5007789c2e98858f" +checksum = "2033cc3b0e72446d3321866db0954804b9ca559ad692480205053f6aea4bfc15" dependencies = [ "dashmap", "dunce", + "indexmap 2.2.6", "json-strip-comments", "once_cell", "rustc-hash", @@ -5240,7 +5267,6 @@ dependencies = [ "serde_json", "thiserror", "tracing", - "typescript_tsconfig_json", ] [[package]] @@ -5889,9 +5915,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.83" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -6432,12 +6458,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "result" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194d8e591e405d1eecf28819740abed6d719d1a2db87fc0bcdedee9a26d55560" - [[package]] name = "rgb" version = "0.8.36" @@ -6755,28 +6775,26 @@ dependencies = [ [[package]] name = "schemars" -version = "0.8.21" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" dependencies = [ "dyn-clone", - "indexmap 2.2.6", "schemars_derive", "serde", "serde_json", - "smallvec", ] [[package]] name = "schemars_derive" -version = "0.8.21" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.58", + "syn 1.0.109", ] [[package]] @@ -6912,31 +6930,20 @@ dependencies = [ [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", -] - -[[package]] -name = "serde_ini" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb236687e2bb073a7521c021949be944641e671b8505a94069ca37b656c81139" -dependencies = [ - "result", - "serde", - "void", + "syn 1.0.109", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "indexmap 2.2.6", "itoa", @@ -9246,9 +9253,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.4.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -9404,18 +9411,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", @@ -10991,10 +10998,6 @@ name = "turbopath" version = "0.1.0" dependencies = [ "anyhow", - "biome_deserialize", - "biome_deserialize_macros", - "biome_diagnostics", - "biome_json_parser", "camino", "dunce", "fs-err", @@ -11005,7 +11008,6 @@ dependencies = [ "tempdir", "test-case", "thiserror", - "turborepo-unescape", "wax", ] @@ -11150,12 +11152,10 @@ name = "turborepo-errors" version = "0.1.0" dependencies = [ "biome_deserialize", - "biome_diagnostics", "miette 5.10.0", "serde", "serde_json", "test-case", - "thiserror", ] [[package]] @@ -11316,7 +11316,6 @@ dependencies = [ "turborepo-scm", "turborepo-telemetry", "turborepo-ui", - "turborepo-unescape", "turborepo-vercel-api", "turborepo-vercel-api-mock", "twox-hash", @@ -11385,15 +11384,9 @@ version = "0.1.0" dependencies = [ "anyhow", "async-once-cell", - "biome_deserialize", - "biome_deserialize_macros", - "biome_diagnostics", - "biome_json_parser", - "biome_json_syntax", "globwalk", "itertools 0.10.5", "lazy-regex", - "miette 5.10.0", "node-semver", "petgraph", "pretty_assertions", @@ -11409,10 +11402,8 @@ dependencies = [ "tokio-stream", "tracing", "turbopath", - "turborepo-errors", "turborepo-graph-utils", "turborepo-lockfiles", - "turborepo-unescape", "wax", "which", ] @@ -11492,16 +11483,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "turborepo-unescape" -version = "0.1.0" -dependencies = [ - "biome_deserialize", - "biome_diagnostics", - "serde", - "serde_json", -] - [[package]] name = "turborepo-vercel-api" version = "0.1.0" @@ -11568,19 +11549,6 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" -[[package]] -name = "typescript_tsconfig_json" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7cc416eaf05297012ead9d192226fe9a92e9a20f64f8780efb9085aaae9b590" -dependencies = [ - "clean-path", - "indexmap 2.2.6", - "rustc-hash", - "serde", - "serde_json", -] - [[package]] name = "ucd-trie" version = "0.1.6" @@ -11703,15 +11671,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" @@ -11938,12 +11906,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65dd7eed29412da847b0f78bcec0ac98588165988a8cfe41d4ea1d429f8ccfff" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - [[package]] name = "vte" version = "0.10.1" diff --git a/Cargo.toml b/Cargo.toml index dbe6107aa7790..58d5aea6ebbcf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -215,12 +215,12 @@ async-trait = "0.1.64" atty = "0.2.14" axum = "0.6.2" axum-server = "0.4.4" -biome_console = { path = "../biome/crates/biome_console" } -biome_deserialize = { path = "../biome/crates/biome_deserialize", features = ["serde"] } -biome_deserialize_macros = { path = "../biome/crates/biome_deserialize_macros" } -biome_diagnostics = { path = "../biome/crates/biome_diagnostics" } -biome_json_parser = { path = "../biome/crates/biome_json_parser" } -biome_json_syntax = { path = "../biome/crates/biome_json_syntax" } +biome_console = { version = "0.5.7" } +biome_deserialize = { version = "0.6.0", features = ["serde"] } +biome_deserialize_macros = { version = "0.6.0" } +biome_diagnostics = { version = "0.5.7" } +biome_json_parser = { version = "0.5.7" } +biome_json_syntax = { version = "0.5.7" } bytes = "1.1.0" camino = { version = "1.1.4", features = ["serde1"] } chrono = "0.4.23" diff --git a/crates/turborepo-lsp/src/lib.rs b/crates/turborepo-lsp/src/lib.rs index 80b8a3e3380b0..9e72ceb4bc157 100644 --- a/crates/turborepo-lsp/src/lib.rs +++ b/crates/turborepo-lsp/src/lib.rs @@ -13,7 +13,6 @@ use std::{ borrow::Cow, collections::{HashMap, HashSet}, iter, - str::FromStr, sync::{Arc, Mutex}, }; diff --git a/crates/turborepo-repository/src/package_graph/builder.rs b/crates/turborepo-repository/src/package_graph/builder.rs index 869c25247e6e9..a9238888cd5bc 100644 --- a/crates/turborepo-repository/src/package_graph/builder.rs +++ b/crates/turborepo-repository/src/package_graph/builder.rs @@ -558,7 +558,7 @@ struct Dependencies { } impl Dependencies { - pub fn new<'a, S: AsRef + 'a, I: IntoIterator>( + pub fn new<'a, I: IntoIterator>( repo_root: &AbsoluteSystemPath, workspace_json_path: &AnchoredSystemPathBuf, workspaces: &HashMap, @@ -575,12 +575,10 @@ impl Dependencies { let splitter = DependencySplitter::new(repo_root, workspace_dir, workspaces, package_manager, npmrc); for (name, version) in dependencies.into_iter() { - let name = name.as_ref(); - let version = version.as_ref(); if let Some(workspace) = splitter.is_internal(name, version) { internal.insert(workspace); } else { - external.insert(name.to_owned(), version.to_owned()); + external.insert(name.clone(), version.clone()); } } Self { internal, external } diff --git a/crates/turborepo-repository/src/package_graph/mod.rs b/crates/turborepo-repository/src/package_graph/mod.rs index 7eea3cae19a8f..65241a3890b65 100644 --- a/crates/turborepo-repository/src/package_graph/mod.rs +++ b/crates/turborepo-repository/src/package_graph/mod.rs @@ -68,7 +68,7 @@ pub struct PackageInfo { impl PackageInfo { pub fn package_name(&self) -> Option { - self.package_json.name.clone().into() + self.package_json.name.clone() } pub fn package_json_path(&self) -> &AnchoredSystemPath { diff --git a/crates/turborepo-repository/src/package_json.rs b/crates/turborepo-repository/src/package_json.rs index e8c872b725734..bc4c2ce41739d 100644 --- a/crates/turborepo-repository/src/package_json.rs +++ b/crates/turborepo-repository/src/package_json.rs @@ -1,7 +1,4 @@ -use std::{ - collections::{BTreeMap, HashMap}, - str::FromStr, -}; +use std::collections::{BTreeMap, HashMap}; use anyhow::Result; use biome_deserialize::{json::deserialize_from_json_str, Text}; @@ -38,14 +35,17 @@ pub struct PackageJson { #[serde(skip_serializing_if = "Option::is_none")] pub pnpm: Option, // Unstructured fields kept for round trip capabilities + #[serde(flatten)] pub other: BTreeMap, } #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize)] +#[serde(rename_all = "camelCase")] pub struct PnpmConfig { #[serde(skip_serializing_if = "Option::is_none")] pub patched_dependencies: Option>, // Unstructured config options kept for round trip capabilities + #[serde(flatten)] pub other: BTreeMap, } @@ -58,6 +58,7 @@ pub struct RawPackageJson { pub dev_dependencies: Option>, pub optional_dependencies: Option>, pub peer_dependencies: Option>, + #[deserializable(rename = "turbo")] pub legacy_turbo_config: Option, pub scripts: BTreeMap, pub resolutions: Option>, @@ -94,17 +95,16 @@ impl From for PackageJson { package_manager: raw.package_manager.map(|s| s.into()), dependencies: raw .dependencies - .map(|m| m.into_iter().map(|(k, v)| (k.into(), v.into())).collect()), + .map(|m| m.into_iter().map(|(k, v)| (k, v.into())).collect()), dev_dependencies: raw .dev_dependencies - .map(|m| m.into_iter().map(|(k, v)| (k.into(), v.into())).collect()), + .map(|m| m.into_iter().map(|(k, v)| (k, v.into())).collect()), optional_dependencies: raw .optional_dependencies - .map(|m| m.into_iter().map(|(k, v)| (k.into(), v.into())).collect()), + .map(|m| m.into_iter().map(|(k, v)| (k, v.into())).collect()), peer_dependencies: raw .peer_dependencies - .map(|m| m.into_iter().map(|(k, v)| (k.into(), v.into())).collect()), - legacy_turbo_config: raw.legacy_turbo_config.map(|v| v.to_string()), + .map(|m| m.into_iter().map(|(k, v)| (k, v.into())).collect()), scripts: raw .scripts .into_iter() @@ -112,7 +112,7 @@ impl From for PackageJson { .collect(), resolutions: raw .resolutions - .map(|m| m.into_iter().map(|(k, v)| (k.into(), v.into())).collect()), + .map(|m| m.into_iter().map(|(k, v)| (k, v.into())).collect()), pnpm: raw.pnpm.map(|p| p.into()), other: raw .other @@ -169,13 +169,12 @@ impl PackageJson { Ok(package_json) } - pub fn all_dependencies(&self) -> impl Iterator + '_ { + pub fn all_dependencies(&self) -> impl Iterator + '_ { self.dev_dependencies .iter() .flatten() .chain(self.optional_dependencies.iter().flatten()) .chain(self.dependencies.iter().flatten()) - .map(|(s1, s2)| (s1.as_ref(), s2.as_ref())) } /// Returns the command for script_name if it is non-empty diff --git a/crates/turborepo-repository/src/package_manager/mod.rs b/crates/turborepo-repository/src/package_manager/mod.rs index 39da33604427b..f22490083e667 100644 --- a/crates/turborepo-repository/src/package_manager/mod.rs +++ b/crates/turborepo-repository/src/package_manager/mod.rs @@ -548,7 +548,7 @@ impl PackageManager { .resolutions .iter() .flatten() - .map(|(k, v)| (k.clone().into(), v.clone().into())), + .map(|(k, v)| (k.clone(), v.clone())), )), )?), }) diff --git a/turborepo-tests/integration/tests/bad-turbo-json.t b/turborepo-tests/integration/tests/bad-turbo-json.t index 68e75ec27806d..a4fa50b02cf24 100644 --- a/turborepo-tests/integration/tests/bad-turbo-json.t +++ b/turborepo-tests/integration/tests/bad-turbo-json.t @@ -76,27 +76,21 @@ Run build with syntax errors in turbo.json x failed to parse turbo json - Error: turbo_json_parse_error - - x Expected a property but instead found ','. + Error: x Expected a property but instead found ','. ,-[1:1] 1 | { 2 | "$schema": "https://turbo.build/schema.json",, : ^ 3 | "globalDependencies": ["foo.txt"], `---- - Error: turbo_json_parse_error - - x expected `,` but instead found `42` + Error: x expected `,` but instead found `42` ,-[11:1] 11 | "my-app#build": { 12 | "outputs": ["banana.txt", "apple.json"]42, : ^^ 13 | "inputs": [".env.local" `---- - Error: turbo_json_parse_error - - x expected `,` but instead found `}` + Error: x expected `,` but instead found `}` ,-[13:1] 13 | "inputs": [".env.local" 14 | },