oxc/Cargo.toml
github-actions[bot] 1b3cd6c24d
Release crates v0.15.0 (#3743)
## [0.15.0] - 2024-06-18

- 0537d29 cfg: [**BREAKING**] Move control flow to its own crate.
(#3728) (rzvxa)

- 5c38a0f codegen: [**BREAKING**] New code gen API (#3740) (Boshen)

- 4bce59d semantic/cfg: [**BREAKING**] Re-export `petgraph` as
`control_flow::graph`. (#3722) (rzvxa)

- 534242a codegen: [**BREAKING**] Remove
`CodegenOptions::enable_typescript` (#3674) (Boshen)

- 0578ece ast: [**BREAKING**] Remove
`ExportDefaultDeclarationKind::TSEnumDeclaration` (#3666) (Dunqing)

### Features

- 5a99d30 codegen: Improve codegen formatting (#3735) (Boshen)
- bf9b38a codegen: Improve codegen formatting (#3731) (Boshen)
- 4a004e2 codegen: Print TSImport remaining fields (#3695) (Dunqing)
- a56cb1b codegen: Print accessibility for MethodDefinition (#3690)
(Dunqing)
- 38a75e5 coverage: Improve codegen (#3729) (Boshen)
- 750a534 coverage: Transformer idempotency test (#3691) (Boshen)
- ee627c3 isolated-declarations: Create unique name for `_default`
(#3730) (Dunqing)
- 81e9526 isolated-declarations: Inferring set accessor parameter type
from get accessor return type (#3725) (Dunqing)
- 77d5533 isolated-declarations: Report errors that are consistent with
typescript. (#3720) (Dunqing)
- 8f5655d linter: Add eslint/no-useless-constructor (#3594) (Don Isaac)
- 046ff3f linter/eslint: Add `no_unreachable` rule. (#3238) (rzvxa)
- 0b8098a napi: Isolated-declaration (#3718) (Boshen)
- 527bfc8 npm/oxc-transform: Setup npm/oxc-transform and publish
(Boshen)
- d65c652 parser: Display jsx mismatch error, e.g. `<Foo></Bar>` (#3696)
(Boshen)
- 9c31ed9 semantic/cfg: Propagate unreachable edges through subgraphs.
(#3648) (rzvxa)
- d9c5b33 semantic/cfg: Add `Condition` instruction. (#3567) (Ali
Rezvani)
- f2dfd66 semantic/cfg: Add iteration instructions. (#3566) (rzvxa)
- 910193e transformer-dts: Report error for super class (#3711)
(Dunqing)
- 413d7be transformer-dts: Transform enum support (#3710) (Dunqing)
- 35c382e transformer-dts: Remove type annotation from private field
(#3689) (Dunqing)
- 0e6d3ce transformer-dts: Report error for async function and generator
(#3688) (Dunqing)
- b22b59a transformer-dts: Transform namespace support (#3683) (Dunqing)
- 4f2db46 transformer-dts: `--isolatedDeclarations` dts transform
(#3664) (Dunqing)

### Bug Fixes

- 2158268 ast: Incorrect visit order in function (#3681) (Dunqing)
- da1e2d0 codegen: Improve typescript codegen (#3708) (Boshen)
- f1b793f isolated-declarations: Function overloads reaching unreachable
(#3739) (Dunqing)
- 0fbecdc isolated-declarations: Should be added to references, not
bindings (#3726) (Dunqing)
- 8f64d99 minifier: Respect `join_vars: false` option (#3724)
(mysteryven)
- 70fc69b semantic: Add Eq to CtxFlags (#3651) (Yuji Sugiura)
- 7a58fec semantic/cfg: Issue in unlabeled `Ctx`s. (#3678) (rzvxa)
- abd6ac8 semantic/cfg: Discrete finalization path after `NewFunction`s.
(#3671) (rzvxa)
- e148a32 semantic/cfg: Correct unreachability propagation in
try-finally. (#3667) (Ali Rezvani)
- 59666e0 transformer: Do not rename accessible identifier references
(#3623) (Dunqing)
- 90743e2 traverse: Change visit order for `Function` (#3685)
(overlookmotel)

### Performance

- 2717a1a semantic/cfg: Lower the visits in
`neighbors_filtered_by_edge_weight`. (#3676) (rzvxa)

### Refactor

- fa7a6ba codegen: Add `gen` method to ast nodes (#3687) (Boshen)
- 09b92b6 codegen: Move `gen_ts` into `gen` to make searching things
easier (#3680) (Boshen)
- 3c59735 isolated-declarations: Remove `TransformDtsCtx` (#3719)
(Boshen)
- 815260e isolated-declarations: Decouple codegen (#3715) (Boshen)
- 7ec44f8 semantic: Rename `cfg` macro to `control_flow`. (#3742)
(rzvxa)
- d8ad321 semantic: Make control flow generation optional. (#3737)
(rzvxa)
- a94a72d semantic: Expose 1 checker function instead of 2 (#3694)
(Boshen)
- bd8d115 semantic/cfg: Remove unused types. (#3677) (rzvxa)
- f702fb9 semantic/cfg: Cleanup control flow and it's builder. (#3650)
(rzvxa)
- 4f16664 transformer_dts: Create a `Program` for codegen (#3679)
(Boshen)

Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-19 01:15:55 +08:00

204 lines
8.1 KiB
TOML

[workspace]
resolver = "2"
members = ["apps/*", "crates/*", "napi/*", "tasks/*", "wasm/*"]
exclude = ["tasks/lint_rules"]
[workspace.package]
authors = ["Boshen <boshenc@gmail.com>", "Oxc contributors"]
categories = ["compilers", "development-tools", "web-programming"]
description = "A collection of JavaScript tools written in Rust."
edition = "2021"
homepage = "https://oxc.rs"
keywords = ["JavaScript", "TypeScript", "linter", "minifier", "parser"]
license = "MIT"
repository = "https://github.com/oxc-project/oxc"
rust-version = "1.74"
# <https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html>
[workspace.lints.rust]
unsafe_code = "warn"
absolute_paths_not_starting_with_crate = "warn"
non_ascii_idents = "warn"
unit-bindings = "warn"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
empty_docs = { level = "allow", priority = 1 } # from `Tsify`
# restriction
dbg_macro = "warn"
todo = "warn"
unimplemented = "warn"
print_stdout = "warn" # must be opt-in
print_stderr = "warn" # must be opt-in
# I like the explicitness of this rule as it removes confusion around `clone`.
# This increases readability, avoids `clone` mindlessly and heap allocating on accident.
clone_on_ref_ptr = "warn"
# These two are mutually exclusive, I like `mod.rs` files for better fuzzy searches on module entries.
self_named_module_files = "warn" # "-Wclippy::mod_module_files"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
filetype_is_file = "warn"
get_unwrap = "warn"
impl_trait_in_params = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
unnecessary_safety_comment = "warn"
undocumented_unsafe_blocks = "warn"
infinite_loop = "warn"
# I want to write the best Rust code so pedantic is enabled.
# We should only disable rules globally if they are either false positives, chaotic, or does not make sense.
pedantic = { level = "warn", priority = -1 }
# Allowed rules
# pedantic
# This rule is too pedantic, I don't want to force this because naming things are hard.
module_name_repetitions = "allow"
# All triggers are mostly ignored in our codebase, so this is ignored globally.
struct_excessive_bools = "allow"
too_many_lines = "allow"
# #[must_use] is creating too much noise for this codebase, it does not add much value except nagging
# the programmer to add a #[must_use] after clippy has been run.
# Having #[must_use] every where also hinders readability.
must_use_candidate = "allow"
# used_underscore_binding= "allow"
doc_markdown = "allow"
# nursery
# `const` functions do not make sense for our project because this is not a `const` library.
# This rule also confuses new comers and forces them to add `const` blindlessly without any reason.
missing_const_for_fn = "allow"
# cargo
cargo = { level = "warn", priority = -1 }
multiple_crate_versions = "allow"
cargo_common_metadata = "allow" # TODO: fix this
[workspace.dependencies]
# publish = true
oxc = { version = "0.15.0", path = "crates/oxc" }
oxc_allocator = { version = "0.15.0", path = "crates/oxc_allocator" }
oxc_ast = { version = "0.15.0", path = "crates/oxc_ast" }
oxc_codegen = { version = "0.15.0", path = "crates/oxc_codegen" }
oxc_diagnostics = { version = "0.15.0", path = "crates/oxc_diagnostics" }
oxc_index = { version = "0.15.0", path = "crates/oxc_index" }
oxc_minifier = { version = "0.15.0", path = "crates/oxc_minifier" }
oxc_parser = { version = "0.15.0", path = "crates/oxc_parser" }
oxc_semantic = { version = "0.15.0", path = "crates/oxc_semantic" }
oxc_span = { version = "0.15.0", path = "crates/oxc_span" }
oxc_syntax = { version = "0.15.0", path = "crates/oxc_syntax" }
oxc_transformer = { version = "0.15.0", path = "crates/oxc_transformer" }
oxc_sourcemap = { version = "0.15.0", path = "crates/oxc_sourcemap" }
oxc_ast_macros = { version = "0.15.0", path = "crates/oxc_ast_macros" }
oxc_traverse = { version = "0.15.0", path = "crates/oxc_traverse" }
oxc_module_lexer = { version = "0.15.0", path = "crates/oxc_module_lexer" }
oxc_cfg = { version = "0.15.0", path = "crates/oxc_cfg" }
oxc_isolated_declarations = { version = "0.15.0", path = "crates/oxc_isolated_declarations" }
# publish = false
oxc_macros = { path = "crates/oxc_macros" }
oxc_linter = { path = "crates/oxc_linter" }
oxc_prettier = { path = "crates/oxc_prettier" }
oxc_tasks_common = { path = "tasks/common" }
napi = "2.16.6"
napi-derive = "2.16.5"
napi-build = "2.1.3"
assert-unchecked = "0.1.2"
allocator-api2 = "0.2.18"
bpaf = "0.9.12"
bitflags = "2.5.0"
bumpalo = "3.16.0"
convert_case = "0.6.0"
dashmap = "5.5.3"
flate2 = "1.0.30"
futures = "0.3.30"
glob = "0.3.1"
ignore = "0.4.22"
itertools = "0.13.0"
jemallocator = "0.5.4"
lazy_static = "1.4.0"
memoffset = "0.9.1"
miette = { version = "7.2.0", features = ["fancy-no-syscall"] }
mimalloc = "0.1.42"
num-bigint = "0.4.5"
num-traits = "0.2.19"
phf = "0.11.2"
pico-args = "0.5.0"
proc-macro2 = "1.0.85"
project-root = "0.2.2"
quote = "1.0.36"
rayon = "1.10.0"
regex = "1.10.5"
rustc-hash = "1.*"
ryu-js = "1.0.1"
ropey = "1.6.1"
seq-macro = "0.3.5"
serde = "1.0.203"
serde_json = "1.0.117"
syn = { version = "2.0.58", default-features = false }
tempfile = "3.10.1"
tokio = "1.38.0"
tower-lsp = "0.20.0"
trybuild = "1.0.96"
unicode-id-start = "1.*" # Relaxed version so the user can decide which unicode version to use.
ureq = { version = "2.9.6", default-features = false }
url = "=2.5.0"
walkdir = "2.5.0"
indexmap = "2.2.6"
static_assertions = "1.1.0"
tracing-subscriber = "0.3.18"
insta = "1.39.0"
mime_guess = "2.0.4"
language-tags = "0.3.2"
tsify = "0.4.5"
wasm-bindgen = "0.2.92"
serde-wasm-bindgen = "0.6.5"
handlebars = "5.1.2"
base64 = "0.22.1"
compact_str = "0.7.1"
console = "0.15.8"
encoding_rs = "0.8.34"
encoding_rs_io = "0.1.7"
env_logger = { version = "0.11.3", default-features = false }
globset = "0.4.14"
humansize = "2.1.3"
json-strip-comments = "1.0.2"
log = "0.4.21"
memchr = "2.7.2"
once_cell = "1.19.0"
ouroboros = "0.18.4"
owo-colors = "4.0.0"
oxc_resolver = "1.8.1"
petgraph = "0.6.5"
rust-lapper = "1.1.0"
similar = "2.5.0"
textwrap = "0.16.1"
unicode-width = "0.1.13"
saphyr = "0.0.1"
base64-simd = "0.8"
cfg-if = "1.0.0"
schemars = "0.8.21"
oxc-browserslist = "0.17.0"
criterion2 = { version = "0.11.0", default-features = false }
daachorse = { version = "1.0.0" }
[workspace.metadata.cargo-shear]
ignored = ["napi", "oxc_traverse"]
[profile.dev]
# Disabling debug info speeds up local and CI builds,
# and we don't rely on it for debugging that much.
debug = false
[profile.release.package.oxc_wasm]
opt-level = 'z'
[profile.release]
# Configurations explicitly listed here for clarity.
# Using the best options for performance.
opt-level = 3
lto = "fat"
codegen-units = 1
strip = "symbols" # set to `false` for debug information
debug = false # set to `true` for debug information
panic = "abort" # Let it crash and force ourselves to write safe Rust.