diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 00000000000000..18705aeafa0fdd
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,45 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/rust
+{
+ "name": "Rust",
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+ "image": "mcr.microsoft.com/devcontainers/rust:latest",
+ "features": {
+ // add `just` for running scripts
+ "ghcr.io/guiyomh/features/just:0": {
+ "version": "latest"
+ },
+ // add `cargo-binstall` for installing other tools.
+ "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall:0": {
+ "version": "latest"
+ }
+ },
+ // Configure tool-specific properties.
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "rust-lang.rust-analyzer"
+ ]
+ }
+ },
+
+ // Use 'mounts' to make the cargo cache persistent in a Docker Volume.
+ // "mounts": [
+ // {
+ // "source": "devcontainer-cargo-cache-${devcontainerId}",
+ // "target": "/usr/local/cargo",
+ // "type": "volume"
+ // }
+ // ]
+
+ // Features to add to the dev container. More info: https://containers.dev/features.
+ // "features": {},
+
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
+
+ // Use 'postCreateCommand' to run commands after the container is created.
+ "postCreateCommand": "just init"
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+ // "remoteUser": "root"
+}
diff --git a/.github/.generated_ast_watch_list.yml b/.github/.generated_ast_watch_list.yml
index 818c9ee29d83cd..b801c6d9f9d894 100644
--- a/.github/.generated_ast_watch_list.yml
+++ b/.github/.generated_ast_watch_list.yml
@@ -6,6 +6,7 @@ src:
- 'crates/oxc_ast/src/ast/js.rs'
- 'crates/oxc_ast/src/ast/ts.rs'
- 'crates/oxc_ast/src/ast/jsx.rs'
+ - 'crates/oxc_ast/src/ast/comment.rs'
- 'crates/oxc_syntax/src/number.rs'
- 'crates/oxc_syntax/src/operator.rs'
- 'crates/oxc_span/src/span/types.rs'
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index e43f208a798b02..eeb7b54a4d9afc 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -4,3 +4,9 @@ about: Create a report to help us improve.
title: ''
labels: C-bug
---
+
+
diff --git a/.github/ISSUE_TEMPLATE/linter_bug_report.yaml b/.github/ISSUE_TEMPLATE/linter_bug_report.yaml
new file mode 100644
index 00000000000000..bbf4d8820e1e8c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/linter_bug_report.yaml
@@ -0,0 +1,37 @@
+name: Linter bug report
+description: Report a bug in Oxlint
+title: "linter: "
+labels: ["C-bug", "A-linter"]
+assignees:
+ - DonIsaac
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for helping us improve Oxlint! Please fill out the sections below to help us understand and reproduce the issue you're experiencing.
+
+ - type: input
+ id: version
+ attributes:
+ label: What version of Oxlint are you using?
+ description: You can find the version by running `oxlint -V`. If you ran Oxlint using `npx`, use 'latest'. If you're not sure, please say 'not sure'.
+ placeholder: 0.9.8
+
+ - type: input
+ id: command
+ attributes:
+ label: What command did you run?
+ description: Please include the full command with all arguments. If you're not certain (e.g. you're using the VSCode extension), please provide as much detail as possible.
+
+ - type: textarea
+ id: config
+ attributes:
+ label: What does your `.oxlint.json` config file look like?
+ description: If you're not using a config file, please say so. Otherwise paste please paste its contents here.
+
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: Please describe the issue you're experiencing.
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 7d3d7490356c29..c0b932cafa2b83 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -14,6 +14,10 @@ A-cli:
- changed-files:
- any-glob-to-any-file: ["apps/oxlint/**"]
+A-editor:
+ - changed-files:
+ - any-glob-to-any-file: ["crates/oxc_language_server/**", "editors/**"]
+
A-prettier:
- changed-files:
- any-glob-to-any-file: ["crates/oxc_prettier/**", "tasks/prettier_conformance/**"]
diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml
index 57b26b32b3ca01..e0a0fdc6e686be 100644
--- a/.github/workflows/autofix.yml
+++ b/.github/workflows/autofix.yml
@@ -21,7 +21,19 @@ jobs:
restore-cache: false
tools: just,cargo-shear@1,dprint
components: rustfmt
+ - name: Restore dprint plugin cache
+ id: cache-restore
+ uses: actions/cache/restore@v4
+ with:
+ key: dprint-autofix-ci-${{ runner.os }}-${{ hashFiles('dprint.json') }}
+ path: ~/.cache/dprint
- run: just fmt
- uses: autofix-ci/action@v1.3.1
with:
fail-fast: false
+ - name: Save dprint plugin cache
+ id: cache-save
+ uses: actions/cache/save@v4
+ with:
+ key: ${{ steps.cache-restore.outputs.cache-primary-key }}
+ path: ~/.cache/dprint
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index 0f22817fafbd0a..a90be724cc8c51 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -19,6 +19,11 @@ on:
types: [opened, synchronize]
paths:
- "**/*.rs"
+ - "!apps/**"
+ - "!tasks/website/**"
+ - "!tasks/ast_tools/**"
+ - "!tasks/coverage/**"
+ - "!crates/oxc_language_server/**"
- "napi/parser/**/*.js"
- "napi/parser/**/*.mjs"
- "Cargo.lock"
@@ -30,6 +35,11 @@ on:
- main
paths:
- "**/*.rs"
+ - "!apps/**"
+ - "!tasks/website/**"
+ - "!tasks/ast_tools/**"
+ - "!tasks/coverage/**"
+ - "!crates/oxc_language_server/**"
- "napi/parser/**/*.js"
- "napi/parser/**/*.mjs"
- "Cargo.lock"
@@ -123,9 +133,6 @@ jobs:
cache-key: benchmark-linter
save-cache: ${{ github.ref_name == 'main' }}
- - uses: mozilla-actions/sccache-action@v0.0.5
- if: ${{ vars.USE_SCCACHE == 'true' }}
-
- name: Build benchmark
env:
RUSTFLAGS: "-C debuginfo=1 -C strip=none -g --cfg codspeed"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d8c716495f4bbc..05688973ca72cf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -47,6 +47,7 @@ jobs:
- run: git diff --exit-code # Must commit everything
test-windows:
+ if: false
name: Test (windows-latest)
runs-on: windows-latest
steps:
@@ -142,7 +143,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: taiki-e/checkout-action@v1
- - uses: crate-ci/typos@v1.24.5
+ - uses: crate-ci/typos@v1.26.0
with:
files: .
@@ -177,7 +178,16 @@ jobs:
with:
cache-key: warm
components: clippy
+ tools: ast-grep
- run: cargo lint -- -D warnings
+ - name: Check Char and Byte Offset
+ run: |
+ output=$(sg -p '$A.chars().enumerate()' -r '$A.char_indices()' -l rs)
+ echo "Output: $output"
+ if [ -n "$output" ]; then
+ echo "Error: Unexpected output detected"
+ exit 1
+ fi
doc:
name: Doc
@@ -201,9 +211,18 @@ jobs:
with:
filters: |
src:
+ - '!.github/**'
+ - '!.vscode/**'
+ - '!apps/**'
+ - '!editors/**'
+ - '!napi/**'
+ - '!npm/**'
+ - '!wasm/**'
- '!crates/oxc_linter/**'
- '!crates/oxc_wasm/**'
- '!crates/oxc_language_server/**'
+ - '!tasks/**'
+ - 'tasks/conformance/**'
- uses: ./.github/actions/clone-submodules
if: steps.filter.outputs.src == 'true'
@@ -273,13 +292,7 @@ jobs:
cache-key: warm
- uses: ./.github/actions/pnpm
if: steps.filter.outputs.src == 'true'
- - name: Test napi/parser
- run: pnpm build && pnpm test
- if: steps.filter.outputs.src == 'true'
- working-directory: napi/parser
- - name: Test napi/transform
+ - run: pnpm run build
if: steps.filter.outputs.src == 'true'
- working-directory: napi/transform
- run: pnpm build && pnpm test
- - run: git diff --exit-code
+ - run: pnpm run test
if: steps.filter.outputs.src == 'true'
diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml
index 4ac40046df9bfa..ad4fb2d08c6c2c 100644
--- a/.github/workflows/miri.yml
+++ b/.github/workflows/miri.yml
@@ -5,15 +5,19 @@ on:
pull_request:
types: [opened, synchronize]
paths:
- - "crates/oxc_parser/**"
- "crates/oxc_allocator/**"
+ - "crates/oxc_data_structures/**"
+ - "crates/oxc_parser/**"
+ - "crates/oxc_traverse/**"
- ".github/workflows/miri.yml"
push:
branches:
- main
paths:
- - "crates/oxc_parser/**"
- "crates/oxc_allocator/**"
+ - "crates/oxc_data_structures/**"
+ - "crates/oxc_parser/**"
+ - "crates/oxc_traverse/**"
- ".github/workflows/miri.yml"
concurrency:
@@ -40,4 +44,6 @@ jobs:
cargo miri setup
- name: Test with Miri
- run: cargo miri test -p oxc_parser
+ run: |
+ cargo miri test -p oxc_parser
+ cargo miri test -p oxc_transformer
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index fb0bc9f61433e8..6b909aef0bf55d 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -21,6 +21,7 @@ jobs:
- uses: actions/labeler@v5
- name: Validate PR title
+ id: pr-title
uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -45,3 +46,39 @@ jobs:
revert
style
test
+
+ - name: Get category label from PR title
+ id: get-category
+ env:
+ PR_TYPE: ${{ steps.pr-title.outputs.type }}
+ run: |
+ case "$PR_TYPE" in
+ "feat")
+ CATEGORY="C-enhancement"
+ ;;
+ "fix")
+ CATEGORY="C-bug"
+ ;;
+ "test")
+ CATEGORY="C-test"
+ ;;
+ "refactor" | "chore" | "style")
+ CATEGORY="C-cleanup"
+ ;;
+ "docs")
+ CATEGORY="C-docs"
+ ;;
+ "perf")
+ CATEGORY="C-performance"
+ ;;
+ *)
+ CATEGORY=""
+ ;;
+ esac
+ echo "CATEGORY=$CATEGORY" >> $GITHUB_OUTPUT
+
+ - name: Add category label
+ uses: actions-ecosystem/action-add-labels@v1
+ if: ${{ steps.get-category.outputs.CATEGORY != '' }}
+ with:
+ labels: ${{ steps.get-category.outputs.CATEGORY }}
diff --git a/.github/workflows/prepare_release_crates.yml b/.github/workflows/prepare_release_crates.yml
index 66fb0857e98766..44ba9d487dea5d 100644
--- a/.github/workflows/prepare_release_crates.yml
+++ b/.github/workflows/prepare_release_crates.yml
@@ -28,3 +28,25 @@ jobs:
name: crates
secrets:
OXC_BOT_PAT: ${{ secrets.OXC_BOT_PAT }}
+
+ ecosystem-ci:
+ needs: prepare
+ name: Trigger Monitor Oxc
+ runs-on: ubuntu-latest
+ steps:
+ - uses: taiki-e/checkout-action@v1
+
+ - uses: peter-evans/create-or-update-comment@v4
+ id: comment
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ issue-number: ${{ needs.prepare.outputs.pull-request-number }}
+ body: Triggering Monitor Oxc https://github.com/oxc-project/monitor-oxc/actions/workflows/ci.yml
+
+ - uses: benc-uk/workflow-dispatch@v1
+ with:
+ repo: oxc-project/monitor-oxc
+ workflow: ci.yml
+ token: ${{ secrets.OXC_BOT_PAT }}
+ ref: main
+ inputs: '{ "issue-number": "${{ needs.prepare.outputs.pull-request-number }}", "comment-id": "${{ steps.comment.outputs.comment-id }}" }'
diff --git a/.github/workflows/release_napi_parser.yml b/.github/workflows/release_napi_parser.yml
index fe119aeca7b0ed..5a9cb9e357c27c 100644
--- a/.github/workflows/release_napi_parser.yml
+++ b/.github/workflows/release_napi_parser.yml
@@ -130,12 +130,13 @@ jobs:
mv target/${{ matrix.target }}/release/*.@(so|dll|dylib) napi/parser/parser.${{ matrix.code-target }}.node
ls napi/parser
+ - uses: ./.github/actions/pnpm
+ if: ${{ contains(matrix.target, 'x86') && !contains(matrix.target, 'musl') }} # Need docker for aarch64
+
- name: Test
working-directory: napi/parser
if: ${{ contains(matrix.target, 'x86') && !contains(matrix.target, 'musl') }} # Need docker for aarch64
- run: |
- ls
- node test.mjs
+ run: pnpm run test
# The binary is zipped to fix permission loss https://github.com/actions/upload-artifact#permission-loss
- name: Archive Binary
diff --git a/.github/workflows/release_napi_transform.yml b/.github/workflows/release_napi_transform.yml
index 82dbc3f4039241..232f5db0ba3c34 100644
--- a/.github/workflows/release_napi_transform.yml
+++ b/.github/workflows/release_napi_transform.yml
@@ -130,12 +130,13 @@ jobs:
mv target/${{ matrix.target }}/release/*.@(so|dll|dylib) napi/transform/transform.${{ matrix.code-target }}.node
ls napi/transform
+ - uses: ./.github/actions/pnpm
+ if: ${{ contains(matrix.target, 'x86') && !contains(matrix.target, 'musl') }} # Need docker for aarch64
+
- name: Test
working-directory: napi/transform
if: ${{ contains(matrix.target, 'x86') && !contains(matrix.target, 'musl') }} # Need docker for aarch64
- run: |
- ls
- node test.mjs
+ run: pnpm run test
# The binary is zipped to fix permission loss https://github.com/actions/upload-artifact#permission-loss
- name: Archive Binary
diff --git a/.typos.toml b/.typos.toml
index c83946cc636f48..c4002ac8390705 100644
--- a/.typos.toml
+++ b/.typos.toml
@@ -19,7 +19,11 @@ extend-exclude = [
"tasks/coverage/babel",
"tasks/coverage/test262",
"tasks/coverage/typescript",
+ "tasks/coverage/snapshots",
"tasks/prettier_conformance/prettier",
+ "tasks/prettier_conformance/snapshots",
+ "tasks/transform_conformance/tests/**/output.js",
+ "tasks/transform_conformance/snapshots",
]
[default]
diff --git a/Cargo.lock b/Cargo.lock
index 54a9b1394f5358..8214921227c8e2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,19 +4,13 @@ version = 3
[[package]]
name = "addr2line"
-version = "0.22.0"
+version = "0.24.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
dependencies = [
"gimli",
]
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
[[package]]
name = "adler2"
version = "2.0.0"
@@ -71,9 +65,9 @@ checksum = "7330592adf847ee2e3513587b4db2db410a0d751378654e7e993d9adcbe5c795"
[[package]]
name = "async-trait"
-version = "0.1.81"
+version = "0.1.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [
"proc-macro2",
"quote",
@@ -93,23 +87,23 @@ dependencies = [
[[package]]
name = "autocfg"
-version = "1.3.0"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]]
name = "backtrace"
-version = "0.3.73"
+version = "0.3.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
dependencies = [
"addr2line",
- "cc",
"cfg-if",
"libc",
- "miniz_oxide 0.7.4",
+ "miniz_oxide",
"object",
"rustc-demangle",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -154,9 +148,9 @@ dependencies = [
[[package]]
name = "bpaf"
-version = "0.9.12"
+version = "0.9.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3280efcf6d66bc77c2cf9b67dc8acee47a217d9be67dd590b3230dffe663724d"
+checksum = "50fd5174866dc2fa2ddc96e8fb800852d37f064f32a45c7b7c2f8fa2c64c77fa"
dependencies = [
"bpaf_derive",
"owo-colors",
@@ -165,9 +159,9 @@ dependencies = [
[[package]]
name = "bpaf_derive"
-version = "0.5.10"
+version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8d5b11f7fa1068e5bbac8ab6c8c2c6940047f69185987446b60c995d4bf89c"
+checksum = "cf95d9c7e6aba67f8fc07761091e93254677f4db9e27197adecebc7039a58722"
dependencies = [
"proc-macro2",
"quote",
@@ -201,9 +195,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.7.1"
+version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
+checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
[[package]]
name = "cast"
@@ -222,9 +216,12 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.1.10"
+version = "1.1.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292"
+checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945"
+dependencies = [
+ "shlex",
+]
[[package]]
name = "cfg-if"
@@ -261,9 +258,9 @@ dependencies = [
[[package]]
name = "codspeed"
-version = "2.6.0"
+version = "2.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a104ac948e0188b921eb3fcbdd55dcf62e542df4c7ab7e660623f6288302089"
+checksum = "450a0e9df9df1c154156f4344f99d8f6f6e69d0fc4de96ef6e2e68b2ec3bce97"
dependencies = [
"colored",
"libc",
@@ -304,7 +301,7 @@ dependencies = [
"encode_unicode",
"lazy_static",
"libc",
- "unicode-width",
+ "unicode-width 0.1.14",
"windows-sys 0.52.0",
]
@@ -335,9 +332,9 @@ checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79"
[[package]]
name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
dependencies = [
"libc",
]
@@ -353,9 +350,9 @@ dependencies = [
[[package]]
name = "criterion2"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28d8111cea0da58d7bf5c6192202ff6b44bf6d712e45a376755708db425029f"
+checksum = "d6c2be2af5816b76f45745ccfb9959a9efd1322ae4c88fc3c9b2d6bcdabe5554"
dependencies = [
"anes",
"bpaf",
@@ -457,7 +454,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [
"cfg-if",
- "hashbrown",
+ "hashbrown 0.14.5",
"lock_api",
"once_cell",
"parking_lot_core",
@@ -465,13 +462,13 @@ dependencies = [
[[package]]
name = "dashmap"
-version = "6.0.1"
+version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "804c8821570c3f8b70230c2ba75ffa5c0f9a4189b9a432b6656c536712acae28"
+checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
dependencies = [
"cfg-if",
"crossbeam-utils",
- "hashbrown",
+ "hashbrown 0.14.5",
"lock_api",
"once_cell",
"parking_lot_core",
@@ -536,9 +533,9 @@ checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
[[package]]
name = "ego-tree"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591"
+checksum = "12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642"
[[package]]
name = "either"
@@ -608,9 +605,9 @@ dependencies = [
[[package]]
name = "fastrand"
-version = "2.1.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "fixedbitset"
@@ -620,12 +617,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
[[package]]
name = "flate2"
-version = "1.0.33"
+version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253"
+checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
dependencies = [
"crc32fast",
- "miniz_oxide 0.8.0",
+ "miniz_oxide",
]
[[package]]
@@ -649,9 +646,9 @@ dependencies = [
[[package]]
name = "futures"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
dependencies = [
"futures-channel",
"futures-core",
@@ -664,9 +661,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
dependencies = [
"futures-core",
"futures-sink",
@@ -674,15 +671,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
[[package]]
name = "futures-executor"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
dependencies = [
"futures-core",
"futures-task",
@@ -691,15 +688,15 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
[[package]]
name = "futures-macro"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
@@ -708,21 +705,21 @@ dependencies = [
[[package]]
name = "futures-sink"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
[[package]]
name = "futures-task"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-util"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
dependencies = [
"futures-channel",
"futures-core",
@@ -761,7 +758,7 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
dependencies = [
- "unicode-width",
+ "unicode-width 0.1.14",
]
[[package]]
@@ -777,9 +774,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.29.0"
+version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "glob"
@@ -789,9 +786,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "globset"
-version = "0.4.14"
+version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19"
dependencies = [
"aho-corasick",
"bstr",
@@ -825,9 +822,9 @@ dependencies = [
[[package]]
name = "handlebars"
-version = "6.0.0"
+version = "6.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5226a0e122dc74917f3a701484482bed3ee86d016c7356836abbaa033133a157"
+checksum = "ce25b617d1375ef96eeb920ae717e3da34a02fc979fe632c75128350f9e1f74a"
dependencies = [
"log",
"pest",
@@ -847,13 +844,19 @@ dependencies = [
"allocator-api2",
]
+[[package]]
+name = "hashbrown"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb"
+
[[package]]
name = "hashlink"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
dependencies = [
- "hashbrown",
+ "hashbrown 0.14.5",
]
[[package]]
@@ -878,9 +881,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.9.4"
+version = "1.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
+checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
[[package]]
name = "humansize"
@@ -909,9 +912,9 @@ dependencies = [
[[package]]
name = "ignore"
-version = "0.4.22"
+version = "0.4.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b"
dependencies = [
"crossbeam-deque",
"globset",
@@ -925,20 +928,20 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "2.4.0"
+version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
+checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
dependencies = [
"equivalent",
- "hashbrown",
+ "hashbrown 0.15.0",
"serde",
]
[[package]]
name = "insta"
-version = "1.39.0"
+version = "1.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5"
+checksum = "6593a41c7a73841868772495db7dc1e8ecab43bb5c0b6da2059246c4b506ab60"
dependencies = [
"console",
"globset",
@@ -1002,9 +1005,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.69"
+version = "0.3.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9"
dependencies = [
"wasm-bindgen",
]
@@ -1032,9 +1035,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "libloading"
@@ -1111,9 +1114,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
[[package]]
name = "markdown"
-version = "1.0.0-alpha.20"
+version = "1.0.0-alpha.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "911a8325e6fb87b89890cd4529a2ab34c2669c026279e61c26b7140a3d821ccb"
+checksum = "a6491e6c702bf7e3b24e769d800746d5f2c06a6c6a2db7992612e0f429029e81"
dependencies = [
"unicode-id",
]
@@ -1158,7 +1161,7 @@ dependencies = [
"owo-colors",
"textwrap",
"thiserror",
- "unicode-width",
+ "unicode-width 0.1.14",
]
[[package]]
@@ -1203,15 +1206,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-[[package]]
-name = "miniz_oxide"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
-dependencies = [
- "adler",
-]
-
[[package]]
name = "miniz_oxide"
version = "0.8.0"
@@ -1223,9 +1217,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
dependencies = [
"hermit-abi",
"libc",
@@ -1235,15 +1229,14 @@ dependencies = [
[[package]]
name = "napi"
-version = "3.0.0-alpha.8"
+version = "3.0.0-alpha.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "743b5a7769f54c95e20a26d9e66d1b43d5622b7dc8ec8f97b51ed8c58633841f"
+checksum = "4b27505341e98aa6126eb9f56a6ea5d8608959f19f124b9d1f1a694633641e5a"
dependencies = [
"bitflags 2.6.0",
"ctor",
"napi-build",
"napi-sys",
- "once_cell",
"tokio",
]
@@ -1255,11 +1248,10 @@ checksum = "e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a"
[[package]]
name = "napi-derive"
-version = "3.0.0-alpha.7"
+version = "3.0.0-alpha.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7619cfcc3985e1ed73d147d6950caabaedabcf5c98133502f9d18c3d0061320"
+checksum = "2c98bc3e1aef12e58d9ec48325790838a736f8428ae562716c4df1893b65be22"
dependencies = [
- "cfg-if",
"convert_case",
"napi-derive-backend",
"proc-macro2",
@@ -1269,12 +1261,11 @@ dependencies = [
[[package]]
name = "napi-derive-backend"
-version = "2.0.0-alpha.7"
+version = "2.0.0-alpha.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "584f6a91c05e8c6bf80622fcc2675c7d27934754d4f1141cfd422d531a3f51fb"
+checksum = "e2e7fbd5478c5ac30408e4599af0b532726477e347e45fc8b20d95ab1b589057"
dependencies = [
"convert_case",
- "once_cell",
"proc-macro2",
"quote",
"regex",
@@ -1359,18 +1350,18 @@ dependencies = [
[[package]]
name = "object"
-version = "0.36.3"
+version = "0.36.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
dependencies = [
"memchr",
]
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "oorandom"
@@ -1392,14 +1383,16 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
[[package]]
name = "owo-colors"
-version = "4.0.0"
+version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
+checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56"
[[package]]
name = "oxc"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
+ "napi",
+ "napi-derive",
"oxc_allocator",
"oxc_ast",
"oxc_cfg",
@@ -1416,6 +1409,7 @@ dependencies = [
"oxc_span",
"oxc_syntax",
"oxc_transformer",
+ "rustc-hash",
]
[[package]]
@@ -1437,7 +1431,7 @@ dependencies = [
[[package]]
name = "oxc_allocator"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"allocator-api2",
"bumpalo",
@@ -1447,7 +1441,7 @@ dependencies = [
[[package]]
name = "oxc_ast"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"bitflags 2.6.0",
"num-bigint",
@@ -1464,7 +1458,7 @@ dependencies = [
[[package]]
name = "oxc_ast_macros"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"proc-macro2",
"quote",
@@ -1512,10 +1506,12 @@ dependencies = [
[[package]]
name = "oxc_cfg"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"bitflags 2.6.0",
"itertools",
+ "nonmax",
+ "oxc_index",
"oxc_syntax",
"petgraph",
"rustc-hash",
@@ -1523,8 +1519,9 @@ dependencies = [
[[package]]
name = "oxc_codegen"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
+ "assert-unchecked",
"base64",
"bitflags 2.6.0",
"cow-utils",
@@ -1556,6 +1553,7 @@ dependencies = [
"oxc",
"oxc_prettier",
"oxc_tasks_common",
+ "oxc_tasks_transform_checker",
"phf 0.11.2",
"pico-args",
"rayon",
@@ -1569,20 +1567,38 @@ dependencies = [
"walkdir",
]
+[[package]]
+name = "oxc_data_structures"
+version = "0.31.0"
+dependencies = [
+ "assert-unchecked",
+]
+
[[package]]
name = "oxc_diagnostics"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"miette",
"owo-colors",
"rustc-hash",
"textwrap",
- "unicode-width",
+ "unicode-width 0.2.0",
+]
+
+[[package]]
+name = "oxc_ecmascript"
+version = "0.31.0"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "oxc_ast",
+ "oxc_span",
+ "oxc_syntax",
]
[[package]]
name = "oxc_index"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"rayon",
"serde",
@@ -1590,7 +1606,7 @@ dependencies = [
[[package]]
name = "oxc_isolated_declarations"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"bitflags 2.6.0",
"insta",
@@ -1598,6 +1614,7 @@ dependencies = [
"oxc_ast",
"oxc_codegen",
"oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_parser",
"oxc_span",
"oxc_syntax",
@@ -1608,7 +1625,7 @@ dependencies = [
name = "oxc_language_server"
version = "0.0.1"
dependencies = [
- "dashmap 6.0.1",
+ "dashmap 6.1.0",
"env_logger",
"futures",
"globset",
@@ -1621,6 +1638,7 @@ dependencies = [
"oxc_semantic",
"oxc_span",
"ropey",
+ "rustc-hash",
"serde",
"serde_json",
"tokio",
@@ -1629,13 +1647,13 @@ dependencies = [
[[package]]
name = "oxc_linter"
-version = "0.9.8"
+version = "0.9.10"
dependencies = [
"aho-corasick",
"bitflags 2.6.0",
"convert_case",
"cow-utils",
- "dashmap 6.0.1",
+ "dashmap 6.1.0",
"globset",
"insta",
"itertools",
@@ -1651,6 +1669,7 @@ dependencies = [
"oxc_cfg",
"oxc_codegen",
"oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_index",
"oxc_macros",
"oxc_parser",
@@ -1685,7 +1704,7 @@ dependencies = [
[[package]]
name = "oxc_mangler"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"itertools",
"oxc_ast",
@@ -1696,7 +1715,7 @@ dependencies = [
[[package]]
name = "oxc_minifier"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"cow-utils",
"insta",
@@ -1705,7 +1724,7 @@ dependencies = [
"oxc_allocator",
"oxc_ast",
"oxc_codegen",
- "oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_mangler",
"oxc_parser",
"oxc_semantic",
@@ -1715,6 +1734,20 @@ dependencies = [
"pico-args",
]
+[[package]]
+name = "oxc_minify_napi"
+version = "0.30.3"
+dependencies = [
+ "napi",
+ "napi-build",
+ "napi-derive",
+ "oxc_allocator",
+ "oxc_codegen",
+ "oxc_minifier",
+ "oxc_parser",
+ "oxc_span",
+]
+
[[package]]
name = "oxc_minsize"
version = "0.0.0"
@@ -1732,17 +1765,18 @@ dependencies = [
[[package]]
name = "oxc_module_lexer"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"oxc_allocator",
"oxc_ast",
+ "oxc_ecmascript",
"oxc_parser",
"oxc_span",
]
[[package]]
name = "oxc_parser"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"assert-unchecked",
"bitflags 2.6.0",
@@ -1753,6 +1787,7 @@ dependencies = [
"oxc_allocator",
"oxc_ast",
"oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_regular_expression",
"oxc_span",
"oxc_syntax",
@@ -1769,12 +1804,8 @@ dependencies = [
"napi",
"napi-build",
"napi-derive",
- "oxc_allocator",
- "oxc_ast",
- "oxc_diagnostics",
+ "oxc",
"oxc_module_lexer",
- "oxc_parser",
- "oxc_span",
"serde_json",
]
@@ -1821,7 +1852,7 @@ dependencies = [
[[package]]
name = "oxc_regular_expression"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"oxc_allocator",
"oxc_ast_macros",
@@ -1837,11 +1868,12 @@ dependencies = [
[[package]]
name = "oxc_resolver"
-version = "1.10.2"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5f862ee8e1ba728378ac7e007de195ae00fbb21337ef152380c052cc07e2ee2"
+checksum = "6c20bb345f290c46058ba650fef7ca2b579612cf2786b927ebad7b8bec0845a7"
dependencies = [
- "dashmap 6.0.1",
+ "cfg-if",
+ "dashmap 6.1.0",
"dunce",
"indexmap",
"json-strip-comments",
@@ -1849,13 +1881,14 @@ dependencies = [
"rustc-hash",
"serde",
"serde_json",
+ "simdutf8",
"thiserror",
"tracing",
]
[[package]]
name = "oxc_semantic"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"assert-unchecked",
"indexmap",
@@ -1865,6 +1898,7 @@ dependencies = [
"oxc_ast",
"oxc_cfg",
"oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_index",
"oxc_parser",
"oxc_span",
@@ -1879,7 +1913,7 @@ dependencies = [
[[package]]
name = "oxc_sourcemap"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"base64-simd",
"cfg-if",
@@ -1892,7 +1926,7 @@ dependencies = [
[[package]]
name = "oxc_span"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"compact_str",
"miette",
@@ -1906,11 +1940,11 @@ dependencies = [
[[package]]
name = "oxc_syntax"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"assert-unchecked",
"bitflags 2.6.0",
- "dashmap 6.0.1",
+ "dashmap 6.1.0",
"nonmax",
"oxc_allocator",
"oxc_ast_macros",
@@ -1936,6 +1970,20 @@ dependencies = [
"url",
]
+[[package]]
+name = "oxc_tasks_transform_checker"
+version = "0.0.0"
+dependencies = [
+ "indexmap",
+ "oxc_allocator",
+ "oxc_ast",
+ "oxc_diagnostics",
+ "oxc_semantic",
+ "oxc_span",
+ "oxc_syntax",
+ "rustc-hash",
+]
+
[[package]]
name = "oxc_transform_conformance"
version = "0.0.0"
@@ -1944,41 +1992,36 @@ dependencies = [
"indexmap",
"oxc",
"oxc_tasks_common",
+ "oxc_tasks_transform_checker",
"pico-args",
"walkdir",
]
[[package]]
name = "oxc_transform_napi"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"napi",
"napi-build",
"napi-derive",
- "oxc_allocator",
- "oxc_ast",
- "oxc_codegen",
- "oxc_diagnostics",
- "oxc_isolated_declarations",
- "oxc_parser",
- "oxc_semantic",
- "oxc_sourcemap",
- "oxc_span",
- "oxc_transformer",
+ "oxc",
]
[[package]]
name = "oxc_transformer"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"base64",
- "dashmap 6.0.1",
+ "cow-utils",
+ "dashmap 6.1.0",
"indexmap",
"oxc-browserslist",
"oxc_allocator",
"oxc_ast",
"oxc_codegen",
+ "oxc_data_structures",
"oxc_diagnostics",
+ "oxc_ecmascript",
"oxc_parser",
"oxc_regular_expression",
"oxc_semantic",
@@ -1995,13 +2038,15 @@ dependencies = [
[[package]]
name = "oxc_traverse"
-version = "0.30.1"
+version = "0.31.0"
dependencies = [
"compact_str",
"itoa",
"memoffset",
"oxc_allocator",
"oxc_ast",
+ "oxc_data_structures",
+ "oxc_ecmascript",
"oxc_semantic",
"oxc_span",
"oxc_syntax",
@@ -2025,7 +2070,7 @@ dependencies = [
[[package]]
name = "oxlint"
-version = "0.9.8"
+version = "0.9.10"
dependencies = [
"bpaf",
"glob",
@@ -2072,9 +2117,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pest"
-version = "2.7.11"
+version = "2.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95"
+checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9"
dependencies = [
"memchr",
"thiserror",
@@ -2083,9 +2128,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.7.11"
+version = "2.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a"
+checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0"
dependencies = [
"pest",
"pest_generator",
@@ -2093,9 +2138,9 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.7.11"
+version = "2.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183"
+checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e"
dependencies = [
"pest",
"pest_meta",
@@ -2106,9 +2151,9 @@ dependencies = [
[[package]]
name = "pest_meta"
-version = "2.7.11"
+version = "2.7.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f"
+checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f"
dependencies = [
"once_cell",
"pest",
@@ -2223,18 +2268,18 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
[[package]]
name = "pin-project"
-version = "1.1.5"
+version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
-version = "1.1.5"
+version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8"
dependencies = [
"proc-macro2",
"quote",
@@ -2286,9 +2331,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.86"
+version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
dependencies = [
"unicode-ident",
]
@@ -2360,18 +2405,18 @@ dependencies = [
[[package]]
name = "redox_syscall"
-version = "0.5.3"
+version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
+checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
dependencies = [
"bitflags 2.6.0",
]
[[package]]
name = "regex"
-version = "1.10.6"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
+checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
"aho-corasick",
"memchr",
@@ -2381,9 +2426,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
@@ -2392,9 +2437,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.8.4"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "ring"
@@ -2462,9 +2507,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
[[package]]
name = "rustix"
-version = "0.38.34"
+version = "0.38.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
dependencies = [
"bitflags 2.6.0",
"errno",
@@ -2475,9 +2520,9 @@ dependencies = [
[[package]]
name = "rustls"
-version = "0.23.12"
+version = "0.23.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
+checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8"
dependencies = [
"log",
"once_cell",
@@ -2490,15 +2535,15 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
+checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55"
[[package]]
name = "rustls-webpki"
-version = "0.102.6"
+version = "0.102.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
dependencies = [
"ring",
"rustls-pki-types",
@@ -2634,9 +2679,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
[[package]]
name = "serde"
-version = "1.0.209"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
@@ -2654,9 +2699,9 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.209"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
@@ -2687,9 +2732,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.127"
+version = "1.0.128"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
dependencies = [
"indexmap",
"itoa",
@@ -2749,6 +2794,12 @@ dependencies = [
"lazy_static",
]
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
[[package]]
name = "signal-hook-registry"
version = "1.4.2"
@@ -2760,9 +2811,9 @@ dependencies = [
[[package]]
name = "simdutf8"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
[[package]]
name = "similar"
@@ -2865,18 +2916,18 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "supports-color"
-version = "3.0.0"
+version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
+checksum = "8775305acf21c96926c900ad056abeef436701108518cf890020387236ac5a77"
dependencies = [
"is_ci",
]
[[package]]
name = "syn"
-version = "2.0.76"
+version = "2.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
dependencies = [
"proc-macro2",
"quote",
@@ -2885,9 +2936,9 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.12.0"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
dependencies = [
"cfg-if",
"fastrand",
@@ -2915,23 +2966,23 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
dependencies = [
"smawk",
"unicode-linebreak",
- "unicode-width",
+ "unicode-width 0.1.14",
]
[[package]]
name = "thiserror"
-version = "1.0.63"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.63"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
dependencies = [
"proc-macro2",
"quote",
@@ -2985,9 +3036,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.39.3"
+version = "1.40.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
dependencies = [
"backtrace",
"bytes",
@@ -3014,9 +3065,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.11"
+version = "0.7.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
dependencies = [
"bytes",
"futures-core",
@@ -3041,9 +3092,9 @@ dependencies = [
[[package]]
name = "tower-layer"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
[[package]]
name = "tower-lsp"
@@ -3081,9 +3132,9 @@ dependencies = [
[[package]]
name = "tower-service"
-version = "0.3.2"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
@@ -3175,9 +3226,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "ucd-trie"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
[[package]]
name = "unicase"
@@ -3190,27 +3241,27 @@ dependencies = [
[[package]]
name = "unicode-bidi"
-version = "0.3.15"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893"
[[package]]
name = "unicode-id"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
+checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561"
[[package]]
name = "unicode-id-start"
-version = "1.2.0"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc3882f69607a2ac8cc4de3ee7993d8f68bb06f2974271195065b3bd07f2edea"
+checksum = "97e2a3c5fc9de285c0e805d98eba666adb4b2d9e1049ce44821ff7707cc34e91"
[[package]]
name = "unicode-ident"
-version = "1.0.12"
+version = "1.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
[[package]]
name = "unicode-linebreak"
@@ -3220,24 +3271,30 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
[[package]]
name = "unicode-normalization"
-version = "0.1.23"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
dependencies = [
"tinyvec",
]
[[package]]
name = "unicode-segmentation"
-version = "1.11.0"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unicode-width"
-version = "0.1.13"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
+checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
[[package]]
name = "untrusted"
@@ -3316,9 +3373,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e"
dependencies = [
"cfg-if",
"once_cell",
@@ -3327,9 +3384,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358"
dependencies = [
"bumpalo",
"log",
@@ -3342,9 +3399,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -3352,9 +3409,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68"
dependencies = [
"proc-macro2",
"quote",
@@ -3365,15 +3422,15 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.93"
+version = "0.2.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
+checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
[[package]]
name = "web-sys"
-version = "0.3.69"
+version = "0.3.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -3381,9 +3438,9 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "0.26.3"
+version = "0.26.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd"
+checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958"
dependencies = [
"rustls-pki-types",
]
diff --git a/Cargo.toml b/Cargo.toml
index af159408d083d8..27c34a29cce6ee 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -76,66 +76,77 @@ doc_lazy_continuation = "allow" # FIXME
[workspace.dependencies]
# publish = true
-oxc = { version = "0.30.1", path = "crates/oxc" }
-oxc_allocator = { version = "0.30.1", path = "crates/oxc_allocator" }
-oxc_ast = { version = "0.30.1", path = "crates/oxc_ast" }
-oxc_ast_macros = { version = "0.30.1", path = "crates/oxc_ast_macros" }
-oxc_cfg = { version = "0.30.1", path = "crates/oxc_cfg" }
-oxc_codegen = { version = "0.30.1", path = "crates/oxc_codegen" }
-oxc_diagnostics = { version = "0.30.1", path = "crates/oxc_diagnostics" }
-oxc_index = { version = "0.30.1", path = "crates/oxc_index" }
-oxc_isolated_declarations = { version = "0.30.1", path = "crates/oxc_isolated_declarations" }
-oxc_mangler = { version = "0.30.1", path = "crates/oxc_mangler" }
-oxc_minifier = { version = "0.30.1", path = "crates/oxc_minifier" }
-oxc_module_lexer = { version = "0.30.1", path = "crates/oxc_module_lexer" }
-oxc_parser = { version = "0.30.1", path = "crates/oxc_parser" }
-oxc_regular_expression = { version = "0.30.1", path = "crates/oxc_regular_expression" }
-oxc_semantic = { version = "0.30.1", path = "crates/oxc_semantic" }
-oxc_sourcemap = { version = "0.30.1", path = "crates/oxc_sourcemap" }
-oxc_span = { version = "0.30.1", path = "crates/oxc_span" }
-oxc_syntax = { version = "0.30.1", path = "crates/oxc_syntax" }
-oxc_transform_napi = { version = "0.30.1", path = "napi/transform" }
-oxc_transformer = { version = "0.30.1", path = "crates/oxc_transformer" }
-oxc_traverse = { version = "0.30.1", path = "crates/oxc_traverse" }
+oxc = { version = "0.31.0", path = "crates/oxc" }
+oxc_allocator = { version = "0.31.0", path = "crates/oxc_allocator" }
+oxc_ast = { version = "0.31.0", path = "crates/oxc_ast" }
+oxc_ast_macros = { version = "0.31.0", path = "crates/oxc_ast_macros" }
+oxc_cfg = { version = "0.31.0", path = "crates/oxc_cfg" }
+oxc_codegen = { version = "0.31.0", path = "crates/oxc_codegen" }
+oxc_data_structures = { version = "0.31.0", path = "crates/oxc_data_structures" }
+oxc_diagnostics = { version = "0.31.0", path = "crates/oxc_diagnostics" }
+oxc_ecmascript = { version = "0.31.0", path = "crates/oxc_ecmascript" }
+oxc_index = { version = "0.31.0", path = "crates/oxc_index" }
+oxc_isolated_declarations = { version = "0.31.0", path = "crates/oxc_isolated_declarations" }
+oxc_mangler = { version = "0.31.0", path = "crates/oxc_mangler" }
+oxc_minifier = { version = "0.31.0", path = "crates/oxc_minifier" }
+oxc_module_lexer = { version = "0.31.0", path = "crates/oxc_module_lexer" }
+oxc_parser = { version = "0.31.0", path = "crates/oxc_parser" }
+oxc_regular_expression = { version = "0.31.0", path = "crates/oxc_regular_expression" }
+oxc_semantic = { version = "0.31.0", path = "crates/oxc_semantic" }
+oxc_sourcemap = { version = "0.31.0", path = "crates/oxc_sourcemap" }
+oxc_span = { version = "0.31.0", path = "crates/oxc_span" }
+oxc_syntax = { version = "0.31.0", path = "crates/oxc_syntax" }
+oxc_transform_napi = { version = "0.31.0", path = "napi/transform" }
+oxc_transformer = { version = "0.31.0", path = "crates/oxc_transformer" }
+oxc_traverse = { version = "0.31.0", path = "crates/oxc_traverse" }
# publish = false
oxc_linter = { path = "crates/oxc_linter" }
oxc_macros = { path = "crates/oxc_macros" }
oxc_prettier = { path = "crates/oxc_prettier" }
oxc_tasks_common = { path = "tasks/common" }
+oxc_tasks_transform_checker = { path = "tasks/transform_checker" }
+# Relaxed version so the user can decide which version to use.
napi = "3.0.0-alpha"
napi-build = "2.1.3"
napi-derive = "3.0.0-alpha"
+# Relaxed version so the user can decide which version to use.
+proc-macro2 = "1"
+quote = "1"
+syn = { version = "2", default-features = false }
+unicode-id-start = "1"
+
aho-corasick = "1.1.3"
allocator-api2 = "0.2.18"
assert-unchecked = "0.1.2"
base64 = "0.22.1"
base64-simd = "0.8"
bitflags = "2.6.0"
-bpaf = "0.9.12"
+bpaf = "0.9.15"
bumpalo = "3.16.0"
cfg-if = "1.0.0"
compact_str = "0.8.0"
console = "0.15.8"
+console_error_panic_hook = "0.1.7"
convert_case = "0.6.0"
cow-utils = "0.1.3"
-criterion2 = { version = "1.1.0", default-features = false }
+criterion2 = { version = "1.1.1", default-features = false }
daachorse = { version = "1.0.0" }
-dashmap = "6.0.1"
+dashmap = "6.1.0"
encoding_rs = "0.8.34"
encoding_rs_io = "0.1.7"
env_logger = { version = "0.11.5", default-features = false }
-flate2 = "1.0.31"
-futures = "0.3.30"
+flate2 = "1.0.34"
+futures = "0.3.31"
glob = "0.3.1"
-globset = "0.4.14"
-handlebars = "6.0.0"
+globset = "0.4.15"
+handlebars = "6.1.0"
humansize = "2.1.3"
-ignore = "0.4.22"
-indexmap = "2.3.0"
-insta = "1.39.0"
+ignore = "0.4.23"
+indexmap = "2.6.0"
+insta = "1.40.0"
itertools = "0.13.0"
itoa = "1.0.11"
jemallocator = "0.5.4"
@@ -143,6 +154,7 @@ json-strip-comments = "1.0.4"
language-tags = "0.3.2"
lazy_static = "1.5.0"
log = "0.4.22"
+markdown = "1.0.0-alpha.21"
memchr = "2.7.4"
memoffset = "0.9.1"
miette = { version = "7.2.0", features = ["fancy-no-syscall"] }
@@ -151,44 +163,42 @@ mime_guess = "2.0.5"
nonmax = "0.5.5"
num-bigint = "0.4.6"
num-traits = "0.2.19"
-once_cell = "1.19.0"
-owo-colors = "4.0.0"
+once_cell = "1.20.2"
+owo-colors = "4.1.0"
oxc-browserslist = "1.0.3"
-oxc_resolver = "1.10.2"
+oxc_resolver = "1.12.0"
petgraph = "0.6.5"
phf = "0.11.2"
pico-args = "0.5.0"
-prettyplease = "0.2.20"
-proc-macro2 = "1.0.86"
+prettyplease = "0.2.22"
project-root = "0.2.2"
-quote = "1.0.36"
rayon = "1.10.0"
-regex = "1.10.6"
+regex = "1.11.0"
ropey = "1.6.1"
rust-lapper = "1.1.0"
rustc-hash = "2.*"
ryu-js = "1.0.1"
saphyr = "0.0.1"
schemars = "0.8.21"
+scraper = "0.20.0"
seq-macro = "0.3.5"
-serde = "1.0.206"
+serde = "1.0.210"
serde-wasm-bindgen = "0.6.5"
-serde_json = "1.0.124"
-simdutf8 = { version = "0.1.4", features = ["aarch64_neon"] }
+serde_json = "1.0.128"
+sha1 = "0.10.6"
+simdutf8 = { version = "0.1.5", features = ["aarch64_neon"] }
similar = "2.6.0"
-syn = { version = "2.0.74", default-features = false }
-tempfile = "3.12.0"
+tempfile = "3.13.0"
textwrap = "0.16.1"
-tokio = "1.39.2"
+tokio = "1.40.0"
tower-lsp = "0.20.0"
tracing-subscriber = "0.3.18"
tsify = "0.4.5"
-unicode-id-start = "1" # Relaxed version so the user can decide which unicode version to use.
-unicode-width = "0.1.13"
+unicode-width = "0.2.0"
ureq = { version = "2.10.1", default-features = false }
url = "2.5.2"
walkdir = "2.5.0"
-wasm-bindgen = "0.2.92"
+wasm-bindgen = "0.2.95"
[workspace.metadata.cargo-shear]
ignored = ["napi", "oxc_transform_napi", "prettyplease"]
@@ -220,6 +230,13 @@ 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
+# Profile used for release mode, but with debugging information for profiling
+# and debugging. Use `cargo build --profile=release-with-debug` to build with this profile.
+[profile.release-with-debug]
+inherits = "release"
+strip = false # Keep debug information in binary
+debug = true # Include maximum amount of debug information
+
# Profile for `cargo coverage`
[profile.coverage]
inherits = "release"
diff --git a/LICENSE b/LICENSE
index e8308cad6bca62..444bffc00e5190 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,7 @@
MIT License
-Copyright (c) 2023-present Boshen
+Copyright (c) 2024-present VoidZero Inc. & Contributors
+Copyright (c) 2023 Boshen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 96a41d9d02fe38..14ea36ca48ce3d 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,12 @@ Oxc is building a parser, linter, formatter, transformer, minifier, resolver ...
See more at [oxc.rs](https://oxc.rs)!
+## VoidZero Inc.
+
+Oxc is a project of [VoidZero](https://voidzero.dev/), see our announcement [Announcing VoidZero - Next Generation Toolchain for JavaScript](https://voidzero.dev/blog).
+
+If you have requirements for JavaScript tools at scale, please [get in touch](https://forms.gle/WQgjyzYJpwurpxWKA)!
+
## 🙋Who's using Oxc?
- [Rolldown] uses the [oxc][docs-oxc-url] crate for parsing and transformation.
@@ -34,7 +40,7 @@ See more at [oxc.rs](https://oxc.rs)!
## ⚡️ Linter Quick Start
-The linter is ready to catch mistakes for you. It comes with 93 rules turned on by default (out of 400+ in total) and no configuration is required.
+The linter is ready to catch mistakes for you. It comes with 93 rules turned on by default (out of 430+ in total) and no configuration is required.
To get started, run [oxlint][npm-oxlint] or via `npx`:
@@ -79,7 +85,7 @@ where warm runs complete in 3 minutes.
### Node.js
-- via napi: [oxc-parser][npm-napi], [oxc-transform][npm-napi-transform]
+- via napi: [oxc-parser][npm-napi-parser], [oxc-transform][npm-napi-transform]
### Wasm
diff --git a/apps/oxlint/CHANGELOG.md b/apps/oxlint/CHANGELOG.md
index a4f471a7898a0e..ca7dca7ed32dca 100644
--- a/apps/oxlint/CHANGELOG.md
+++ b/apps/oxlint/CHANGELOG.md
@@ -4,6 +4,16 @@ All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project does not adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) until v1.0.0.
+## [0.9.10] - 2024-10-07
+
+### Bug Fixes
+
+- 9e9808b linter: Fix regression when parsing ts in vue files (#6336) (Boshen)
+
+### Refactor
+
+- ea908f7 linter: Consolidate file loading logic (#6130) (DonIsaac)
+
## [0.9.7] - 2024-09-23
### Features
diff --git a/apps/oxlint/Cargo.toml b/apps/oxlint/Cargo.toml
index 3ddc59cc441d45..51e39c05c56127 100644
--- a/apps/oxlint/Cargo.toml
+++ b/apps/oxlint/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "oxlint"
-version = "0.9.8"
+version = "0.9.10"
authors.workspace = true
categories.workspace = true
edition.workspace = true
diff --git a/apps/oxlint/fixtures/import/.oxlintrc.json b/apps/oxlint/fixtures/import/.oxlintrc.json
new file mode 100644
index 00000000000000..fc645f90991beb
--- /dev/null
+++ b/apps/oxlint/fixtures/import/.oxlintrc.json
@@ -0,0 +1,7 @@
+{
+ "plugins": ["import"],
+ "rules": {
+ "import/no-default-export": "error",
+ "import/namespace": "allow"
+ }
+}
diff --git a/apps/oxlint/fixtures/import/test.js b/apps/oxlint/fixtures/import/test.js
new file mode 100644
index 00000000000000..68f0e20a25e7e8
--- /dev/null
+++ b/apps/oxlint/fixtures/import/test.js
@@ -0,0 +1,9 @@
+import * as foo from './foo';
+// ^ import/namespace
+
+console.log(foo);
+
+// import/no-default-export
+export default function foo() {}
+
+
diff --git a/apps/oxlint/fixtures/typescript_eslint/eslintrc.json b/apps/oxlint/fixtures/typescript_eslint/eslintrc.json
index c7773313f7cd09..2920935a9110ce 100644
--- a/apps/oxlint/fixtures/typescript_eslint/eslintrc.json
+++ b/apps/oxlint/fixtures/typescript_eslint/eslintrc.json
@@ -1,4 +1,6 @@
{
+ // NOTE: enabled by default
+ "plugins": ["@typescript-eslint"],
"rules": {
"no-loss-of-precision": "off",
"@typescript-eslint/no-loss-of-precision": "error",
diff --git a/apps/oxlint/fixtures/vue/debugger.vue b/apps/oxlint/fixtures/vue/debugger.vue
index 637ac2bb7ef52e..35f2446ed0f7dd 100644
--- a/apps/oxlint/fixtures/vue/debugger.vue
+++ b/apps/oxlint/fixtures/vue/debugger.vue
@@ -7,5 +7,6 @@
diff --git a/apps/oxlint/src/command/lint.rs b/apps/oxlint/src/command/lint.rs
index b4e7bfcf4981bb..f4047144285058 100644
--- a/apps/oxlint/src/command/lint.rs
+++ b/apps/oxlint/src/command/lint.rs
@@ -1,7 +1,7 @@
use std::{path::PathBuf, str::FromStr};
use bpaf::Bpaf;
-use oxc_linter::{AllowWarnDeny, FixKind};
+use oxc_linter::{AllowWarnDeny, FixKind, LintPlugins};
use super::{
expand_glob,
@@ -211,64 +211,203 @@ impl FromStr for OutputFormat {
/// Enable Plugins
#[allow(clippy::struct_field_names)]
-#[derive(Debug, Clone, Bpaf)]
+#[derive(Debug, Default, Clone, Bpaf)]
pub struct EnablePlugins {
/// Disable react plugin, which is turned on by default
- #[bpaf(long("disable-react-plugin"), flag(false, true), hide_usage)]
- pub react_plugin: bool,
+ #[bpaf(
+ long("disable-react-plugin"),
+ flag(OverrideToggle::Disable, OverrideToggle::NotSet),
+ hide_usage
+ )]
+ pub react_plugin: OverrideToggle,
/// Disable unicorn plugin, which is turned on by default
- #[bpaf(long("disable-unicorn-plugin"), flag(false, true), hide_usage)]
- pub unicorn_plugin: bool,
+ #[bpaf(
+ long("disable-unicorn-plugin"),
+ flag(OverrideToggle::Disable, OverrideToggle::NotSet),
+ hide_usage
+ )]
+ pub unicorn_plugin: OverrideToggle,
/// Disable oxc unique rules, which is turned on by default
- #[bpaf(long("disable-oxc-plugin"), flag(false, true), hide_usage)]
- pub oxc_plugin: bool,
+ #[bpaf(
+ long("disable-oxc-plugin"),
+ flag(OverrideToggle::Disable, OverrideToggle::NotSet),
+ hide_usage
+ )]
+ pub oxc_plugin: OverrideToggle,
/// Disable TypeScript plugin, which is turned on by default
- #[bpaf(long("disable-typescript-plugin"), flag(false, true), hide_usage)]
- pub typescript_plugin: bool,
+ #[bpaf(
+ long("disable-typescript-plugin"),
+ flag(OverrideToggle::Disable, OverrideToggle::NotSet),
+ hide_usage
+ )]
+ pub typescript_plugin: OverrideToggle,
/// Enable the experimental import plugin and detect ESM problems.
/// It is recommended to use along side with the `--tsconfig` option.
- #[bpaf(switch, hide_usage)]
- pub import_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub import_plugin: OverrideToggle,
/// Enable the experimental jsdoc plugin and detect JSDoc problems
- #[bpaf(switch, hide_usage)]
- pub jsdoc_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub jsdoc_plugin: OverrideToggle,
/// Enable the Jest plugin and detect test problems
- #[bpaf(switch, hide_usage)]
- pub jest_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub jest_plugin: OverrideToggle,
/// Enable the Vitest plugin and detect test problems
- #[bpaf(switch, hide_usage)]
- pub vitest_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub vitest_plugin: OverrideToggle,
/// Enable the JSX-a11y plugin and detect accessibility problems
- #[bpaf(switch, hide_usage)]
- pub jsx_a11y_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub jsx_a11y_plugin: OverrideToggle,
/// Enable the Next.js plugin and detect Next.js problems
- #[bpaf(switch, hide_usage)]
- pub nextjs_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub nextjs_plugin: OverrideToggle,
/// Enable the React performance plugin and detect rendering performance problems
- #[bpaf(switch, hide_usage)]
- pub react_perf_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub react_perf_plugin: OverrideToggle,
/// Enable the promise plugin and detect promise usage problems
- #[bpaf(switch, hide_usage)]
- pub promise_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub promise_plugin: OverrideToggle,
/// Enable the node plugin and detect node usage problems
- #[bpaf(switch, hide_usage)]
- pub node_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub node_plugin: OverrideToggle,
/// Enable the security plugin and detect security problems
- #[bpaf(switch, hide_usage)]
- pub security_plugin: bool,
+ #[bpaf(flag(OverrideToggle::Enable, OverrideToggle::NotSet), hide_usage)]
+ pub security_plugin: OverrideToggle,
+}
+
+/// Enables or disables a boolean option, or leaves it unset.
+///
+/// We want CLI flags to modify whatever's set in the user's config file, but we don't want them
+/// changing default behavior if they're not explicitly passed by the user. This scheme is a bit
+/// convoluted, but needed due to architectural constraints imposed by `bpaf`.
+#[derive(Default, Debug, Clone, Copy, PartialEq, Eq)]
+#[allow(clippy::enum_variant_names)]
+pub enum OverrideToggle {
+ /// Override the option to enabled
+ Enable,
+ /// Override the option to disabled
+ Disable,
+ /// Do not override.
+ #[default]
+ NotSet,
+}
+
+impl From