From c73c6bac6fc688a00ad05fce5d34174e37a80883 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 21 Nov 2025 21:01:50 +0300
Subject: [PATCH 01/22] feat(github): add issue and PR templates
---
.github/DISCUSSION_TEMPLATE/ideas.md | 16 ++++
.github/ISSUE_TEMPLATE/bug_report.md | 31 -------
.github/ISSUE_TEMPLATE/bug_report.yaml | 98 +++++++++++++++++++++
.github/ISSUE_TEMPLATE/config.yml | 8 ++
.github/ISSUE_TEMPLATE/documentation.yaml | 82 +++++++++++++++++
.github/ISSUE_TEMPLATE/feature_request.md | 20 -----
.github/ISSUE_TEMPLATE/feature_request.yaml | 76 ++++++++++++++++
.github/PULL_REQUEST_TEMPLATE/default.md | 14 +++
8 files changed, 294 insertions(+), 51 deletions(-)
create mode 100644 .github/DISCUSSION_TEMPLATE/ideas.md
delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yaml
create mode 100644 .github/ISSUE_TEMPLATE/config.yml
create mode 100644 .github/ISSUE_TEMPLATE/documentation.yaml
delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yaml
create mode 100644 .github/PULL_REQUEST_TEMPLATE/default.md
diff --git a/.github/DISCUSSION_TEMPLATE/ideas.md b/.github/DISCUSSION_TEMPLATE/ideas.md
new file mode 100644
index 0000000..566f827
--- /dev/null
+++ b/.github/DISCUSSION_TEMPLATE/ideas.md
@@ -0,0 +1,16 @@
+---
+title: "[Idea] "
+labels: discussion
+---
+
+## Summary
+Briefly describe your idea.
+
+## Problem
+What problem does this solve?
+
+## Proposed Solution
+Whatβs your suggested approach?
+
+## Benefits
+Why should this be considered?
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index a9d61d2..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-name: Bug report
-about: Create a bug report to help us improve
-title: "[Bug]"
-labels: ''
-assignees: ErenayDev
-
----
-
-**Describe the bug**
-A clear and concise description of what the bug is.
-
-**To Reproduce**
-Steps to reproduce the behavior:
-1. Go to '...'
-2. Click on '....'
-3. Scroll down to '....'
-4. See error
-
-**Expected behavior**
-A clear and concise description of what you expected to happen.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**OS Information (please complete the following information):**
- - OS: [MacOS, Linux (Give distro if its neccessary), Windows]
- - Version [e.g. 0.1.0]
-
-**Additional context**
-Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
new file mode 100644
index 0000000..c0e9037
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -0,0 +1,98 @@
+name: Bug Report
+description: Report a bug in the system
+title: "[Bug]: "
+labels: ["bug"]
+assignees:
+ - ErenayDev
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Please provide detailed information about the bug to help us resolve it quickly.
+
+ - type: textarea
+ id: description
+ attributes:
+ label: Bug Description
+ description: A clear and concise description of the bug.
+ placeholder: Describe what happened...
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: Steps to Reproduce
+ description: List the steps to reproduce the behavior.
+ placeholder: |
+ 1. Go to '...'
+ 2. Click on '...'
+ 3. See error
+ validations:
+ required: true
+
+ - type: textarea
+ id: expected-behavior
+ attributes:
+ label: Expected Behavior
+ description: What did you expect to happen?
+ placeholder: Explain what you expected to happen...
+ validations:
+ required: true
+
+ - type: dropdown
+ id: operating-system
+ attributes:
+ label: Operating System
+ description: What OS are you using?
+ options:
+ - Windows 10
+ - Windows 11
+ - macOS
+ - Linux (Ubuntu)
+ - Linux (Fedora)
+ - Linux (Arch)
+ - Linux (Other)
+ - Other
+ validations:
+ required: true
+
+ - type: input
+ id: version
+ attributes:
+ label: Version
+ description: What version of the software are you running?
+ placeholder: e.g., 1.1.0
+ validations:
+ required: true
+
+ - type: dropdown
+ id: browsers
+ attributes:
+ label: Browser (if applicable)
+ description: Which browser are you using?
+ multiple: true
+ options:
+ - Chrome
+ - Firefox
+ - Safari
+ - Edge
+ - Opera
+ - Other
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional Context
+ description: Add any other context, screenshots, or logs about the problem.
+ placeholder: Include screenshots, error messages, or any other relevant information...
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: Checklist
+ options:
+ - label: I have searched existing issues to avoid duplicates
+ required: true
+ - label: I have provided all required information
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..6d17197
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Security Issues
+ url: https://github.com/ErenayDev/checkpoint-ts/security/advisories/new
+ about: Report security vulnerabilities privately
+ - name: Discussions
+ url: https://github.com/ErenayDev/checkpoint-ts/discussions
+ about: Ask questions and discuss ideas
diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml
new file mode 100644
index 0000000..1544889
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation.yaml
@@ -0,0 +1,82 @@
+name: Documentation Update
+description: Suggest updates or additions to documentation
+title: "[Docs]: "
+labels: ["documentation", "improvement"]
+assignees: []
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Help us improve our documentation by suggesting updates or additions.
+
+ - type: dropdown
+ id: doc-type
+ attributes:
+ label: Documentation Type
+ description: What type of documentation needs updating?
+ options:
+ - README
+ - API Documentation
+ - Installation Guide
+ - User Guide
+ - Developer Guide
+ - Code Comments
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: current-issue
+ attributes:
+ label: Current Issue
+ description: What's wrong with the current documentation?
+ placeholder: Describe what's missing, outdated, or unclear...
+ validations:
+ required: true
+
+ - type: textarea
+ id: suggested-changes
+ attributes:
+ label: Suggested Changes
+ description: What changes would you like to see?
+ placeholder: Provide detailed description of the changes...
+ validations:
+ required: true
+
+ - type: input
+ id: affected-sections
+ attributes:
+ label: Affected Sections
+ description: Which sections or files need updating?
+ placeholder: e.g., README.md section 3, API endpoint /users
+
+ - type: dropdown
+ id: urgency
+ attributes:
+ label: Urgency
+ description: How urgent is this documentation update?
+ options:
+ - Low - Nice to have
+ - Medium - Should be updated soon
+ - High - Needs immediate attention
+ - Critical - Blocking users
+ default: 1
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-resources
+ attributes:
+ label: Additional Resources
+ description: Any related links, examples, or resources?
+ placeholder: Include any relevant links, examples, or references...
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: Checklist
+ options:
+ - label: I have checked the current documentation
+ required: true
+ - label: I have searched for existing documentation issues
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 6a1f988..0000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-title: "[Feature]"
-labels: ''
-assignees: ErenayDev
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
new file mode 100644
index 0000000..d28e6a7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yaml
@@ -0,0 +1,76 @@
+name: Feature Request
+description: Suggest a new feature or improvement
+title: "[Feature]: "
+labels: ["enhancement", "feature-request"]
+assignees:
+ - ErenayDev
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for suggesting a new feature! Please provide as much detail as possible.
+
+ - type: textarea
+ id: feature-description
+ attributes:
+ label: Feature Description
+ description: What feature would you like to see?
+ placeholder: Describe the feature you'd like to request...
+ validations:
+ required: true
+
+ - type: textarea
+ id: problem-statement
+ attributes:
+ label: Problem Statement
+ description: What problem does this feature solve?
+ placeholder: Explain the problem or need for this feature...
+ validations:
+ required: true
+
+ - type: textarea
+ id: proposed-solution
+ attributes:
+ label: Proposed Solution
+ description: How should this feature work?
+ placeholder: Describe how this feature could be implemented...
+ validations:
+ required: true
+
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: Alternative Solutions
+ description: Have you considered any alternative solutions?
+ placeholder: Describe any alternative solutions you've considered...
+
+ - type: dropdown
+ id: priority
+ attributes:
+ label: Priority
+ description: How important is this feature to you?
+ options:
+ - Low
+ - Medium
+ - High
+ - Critical
+ default: 1
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-context
+ attributes:
+ label: Additional Context
+ description: Add any other context, screenshots, mockups, or resources.
+ placeholder: Include any relevant screenshots, links, or resources...
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: Checklist
+ options:
+ - label: I have searched existing issues to avoid duplicates
+ required: true
+ - label: This feature aligns with the project's goals
+ required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE/default.md b/.github/PULL_REQUEST_TEMPLATE/default.md
new file mode 100644
index 0000000..342f38c
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/default.md
@@ -0,0 +1,14 @@
+## Description
+Explain the changes you made and why.
+
+Fixes # (issue number)
+
+## Type of Change
+- [ ] Bug fix
+- [ ] New feature
+- [ ] Documentation update
+
+## Checklist
+- [ ] Code follows project guidelines
+- [ ] Tests added/updated
+- [ ] Documentation updated
From 9854bf0e29428193a171ec5039b2517e4e10d22b Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Mon, 23 Feb 2026 23:30:28 +0300
Subject: [PATCH 02/22] refactor(workspace): migrate to multi-crate workspace
structure
- Convert root Cargo.toml to workspace configuration
- Define workspace members: core, parser, shared
- Add shared workspace dependencies (swc_core, serde, shared_memory)
- Update workspace metadata and package information
---
Cargo.lock | 2973 ++++++++++++++++++++++++++++++++++++++++++++++------
Cargo.toml | 59 +-
2 files changed, 2664 insertions(+), 368 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 0866154..7af7286 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -17,6 +17,27 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
+[[package]]
+name = "ahash"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "allocator-api2"
version = "0.2.21"
@@ -32,6 +53,15 @@ dependencies = [
"libc",
]
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
[[package]]
name = "anstream"
version = "0.6.21"
@@ -88,6 +118,41 @@ version = "1.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
+[[package]]
+name = "ar_archive_writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a"
+dependencies = [
+ "object 0.32.2",
+]
+
+[[package]]
+name = "ascii"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"
+
+[[package]]
+name = "ast_node"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb025ef00a6da925cf40870b9c8d008526b6004ece399cb0974209720f0b194"
+dependencies = [
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "atomic"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340"
+dependencies = [
+ "bytemuck",
+]
+
[[package]]
name = "autocfg"
version = "1.5.0"
@@ -104,22 +169,98 @@ dependencies = [
"cfg-if",
"libc",
"miniz_oxide",
- "object",
+ "object 0.37.3",
"rustc-demangle",
"windows-link",
]
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
+dependencies = [
+ "outref",
+ "vsimd",
+]
+
+[[package]]
+name = "better_scoped_tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cd228125315b132eed175bf47619ac79b945b26e56b848ba203ae4ea8603609"
+dependencies = [
+ "scoped-tls",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
[[package]]
name = "bitflags"
version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
[[package]]
name = "bumpalo"
-version = "3.19.0"
+version = "3.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
+dependencies = [
+ "allocator-api2",
+]
+
+[[package]]
+name = "bytemuck"
+version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
[[package]]
name = "bytes"
@@ -128,34 +269,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
[[package]]
-name = "cargo-bin"
-version = "0.1.0"
+name = "bytes-str"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c60b5ce37e0b883c37eb89f79a1e26fbe9c1081945d024eee93e8d91a7e18b3"
dependencies = [
- "cargo-run-bin",
+ "bytes",
+ "serde",
]
[[package]]
-name = "cargo-run-bin"
-version = "1.7.5"
+name = "camino"
+version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba4ea665f68a2042470ec6e27a36755783ebd3367b90bec2fb100f9d5012fd8"
+checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
+dependencies = [
+ "serde_core",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
dependencies = [
- "anyhow",
- "cfg-if",
- "clap",
- "rustversion",
"serde",
- "toml",
- "toml_edit",
- "version_check",
- "which",
]
[[package]]
-name = "cassowary"
-version = "0.3.0"
+name = "cargo_metadata"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror 1.0.69",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror 2.0.17",
+]
[[package]]
name = "castaway"
@@ -168,9 +335,9 @@ dependencies = [
[[package]]
name = "cc"
-version = "1.2.46"
+version = "1.2.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36"
+checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -182,48 +349,82 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
+[[package]]
+name = "cfg_aliases"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
+
+[[package]]
+name = "checkpoint-parser"
+version = "0.1.2"
+dependencies = [
+ "checkpoint-shared",
+ "serde",
+ "serde_json",
+ "swc_core",
+]
+
+[[package]]
+name = "checkpoint-shared"
+version = "0.1.2"
+dependencies = [
+ "serde",
+ "serde_json",
+ "shared_memory",
+]
+
[[package]]
name = "checkpoint-ts"
version = "0.1.2"
dependencies = [
+ "checkpoint-parser",
+ "checkpoint-shared",
"chrono",
+ "clap",
"color-eyre",
- "crossterm 0.29.0",
+ "crossterm",
+ "dirs",
"futures",
"ratatui",
"serde",
"serde_json",
+ "sha2",
+ "thiserror 2.0.17",
"throbber-widgets-tui",
"tokio",
+ "walkdir",
]
[[package]]
name = "chrono"
-version = "0.4.42"
+version = "0.4.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
+checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
dependencies = [
"iana-time-zone",
"js-sys",
"num-traits",
+ "serde",
"wasm-bindgen",
"windows-link",
]
[[package]]
name = "clap"
-version = "4.5.51"
+version = "4.5.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5"
+checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394"
dependencies = [
"clap_builder",
+ "clap_derive",
]
[[package]]
name = "clap_builder"
-version = "4.5.51"
+version = "4.5.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a"
+checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00"
dependencies = [
"anstream",
"anstyle",
@@ -231,11 +432,23 @@ dependencies = [
"strsim",
]
+[[package]]
+name = "clap_derive"
+version = "4.5.49"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
[[package]]
name = "clap_lex"
-version = "0.7.6"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
+checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32"
[[package]]
name = "color-eyre"
@@ -272,9 +485,22 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
[[package]]
name = "compact_str"
-version = "0.8.1"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
+dependencies = [
+ "castaway",
+ "cfg-if",
+ "itoa",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "compact_str"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32"
+checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a"
dependencies = [
"castaway",
"cfg-if",
@@ -286,9 +512,9 @@ dependencies = [
[[package]]
name = "convert_case"
-version = "0.7.1"
+version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"
+checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9"
dependencies = [
"unicode-segmentation",
]
@@ -300,19 +526,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
-name = "crossterm"
-version = "0.28.1"
+name = "cpufeatures"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6"
+checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
- "bitflags",
- "crossterm_winapi",
- "mio",
- "parking_lot",
- "rustix 0.38.44",
- "signal-hook",
- "signal-hook-mio",
- "winapi",
+ "libc",
]
[[package]]
@@ -321,14 +540,14 @@ version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b"
dependencies = [
- "bitflags",
+ "bitflags 2.10.0",
"crossterm_winapi",
"derive_more",
"document-features",
"futures-core",
"mio",
"parking_lot",
- "rustix 1.1.2",
+ "rustix",
"signal-hook",
"signal-hook-mio",
"winapi",
@@ -343,14 +562,44 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "crypto-common"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "csscolorparser"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"
+dependencies = [
+ "lab",
+ "phf",
+]
+
[[package]]
name = "darling"
version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee"
dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.20.11",
+ "darling_macro 0.20.11",
+]
+
+[[package]]
+name = "darling"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d"
+dependencies = [
+ "darling_core 0.23.0",
+ "darling_macro 0.23.0",
]
[[package]]
@@ -364,7 +613,20 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
- "syn",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0"
+dependencies = [
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.114",
]
[[package]]
@@ -373,100 +635,301 @@ version = "0.20.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
- "darling_core",
+ "darling_core 0.20.11",
"quote",
- "syn",
+ "syn 2.0.114",
]
[[package]]
-name = "derive_more"
-version = "2.0.1"
+name = "darling_macro"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
+checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d"
dependencies = [
- "derive_more-impl",
+ "darling_core 0.23.0",
+ "quote",
+ "syn 2.0.114",
]
[[package]]
-name = "derive_more-impl"
-version = "2.0.1"
+name = "data-encoding"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea"
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
dependencies = [
- "convert_case",
- "proc-macro2",
- "quote",
- "syn",
+ "serde",
+ "uuid",
]
[[package]]
-name = "document-features"
-version = "0.2.12"
+name = "deltae"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
+checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4"
+
+[[package]]
+name = "deranged"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
dependencies = [
- "litrs",
+ "powerfmt",
]
[[package]]
-name = "either"
-version = "1.15.0"
+name = "derive_builder"
+version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"
+dependencies = [
+ "derive_builder_macro",
+]
[[package]]
-name = "equivalent"
-version = "1.0.2"
+name = "derive_builder_core"
+version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"
+dependencies = [
+ "darling 0.20.11",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
[[package]]
-name = "errno"
-version = "0.3.14"
+name = "derive_builder_macro"
+version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
dependencies = [
- "libc",
- "windows-sys 0.61.2",
+ "derive_builder_core",
+ "syn 2.0.114",
]
[[package]]
-name = "eyre"
-version = "0.6.12"
+name = "derive_more"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
+checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134"
dependencies = [
- "indenter",
- "once_cell",
+ "derive_more-impl",
]
[[package]]
-name = "find-msvc-tools"
-version = "0.1.5"
+name = "derive_more-impl"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
+checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.114",
+]
[[package]]
-name = "fnv"
-version = "1.0.7"
+name = "diff"
+version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
[[package]]
-name = "foldhash"
-version = "0.1.5"
+name = "difference"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
[[package]]
-name = "futures"
-version = "0.3.31"
+name = "digest"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "document-features"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
+dependencies = [
+ "litrs",
+]
+
+[[package]]
+name = "either"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
+
+[[package]]
+name = "equivalent"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
+
+[[package]]
+name = "errno"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+dependencies = [
+ "libc",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "euclid"
+version = "0.22.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "eyre"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
+dependencies = [
+ "indenter",
+ "once_cell",
+]
+
+[[package]]
+name = "fancy-regex"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+dependencies = [
+ "bit-set",
+ "regex",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
+
+[[package]]
+name = "filedescriptor"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d"
+dependencies = [
+ "libc",
+ "thiserror 1.0.69",
+ "winapi",
+]
+
+[[package]]
+name = "find-msvc-tools"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
+
+[[package]]
+name = "finl_unicode"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foldhash"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "from_variant"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5ff35a391aef949120a0340d690269b3d9f63460a6106e99bd07b961f345ea9"
+dependencies = [
+ "swc_macros_common",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
"futures-io",
"futures-sink",
"futures-task",
@@ -514,7 +977,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.114",
]
[[package]]
@@ -547,28 +1010,71 @@ dependencies = [
"slab",
]
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "r-efi",
+ "wasip2",
+]
+
[[package]]
name = "gimli"
version = "0.32.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
+[[package]]
+name = "glob"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
+
[[package]]
name = "hashbrown"
-version = "0.15.5"
+version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
dependencies = [
+ "ahash",
"allocator-api2",
- "equivalent",
- "foldhash",
]
[[package]]
name = "hashbrown"
-version = "0.16.0"
+version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+dependencies = [
+ "allocator-api2",
+ "equivalent",
+ "foldhash",
+]
[[package]]
name = "heck"
@@ -577,12 +1083,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
-name = "home"
-version = "0.5.12"
+name = "hermit-abi"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hstr"
+version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d"
+checksum = "0c43c0a9e8fbdb3bb9dc8eee85e1e2ac81605418b4c83b6b7413cbf14d56ca5c"
dependencies = [
- "windows-sys 0.61.2",
+ "hashbrown 0.14.5",
+ "new_debug_unreachable",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "triomphe",
]
[[package]]
@@ -609,12 +1132,120 @@ dependencies = [
"cc",
]
+[[package]]
+name = "icu_collections"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
+dependencies = [
+ "displaydoc",
+ "potential_utf",
+ "yoke",
+ "zerofrom",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_locale_core"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
+dependencies = [
+ "displaydoc",
+ "litemap",
+ "tinystr",
+ "writeable",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
+dependencies = [
+ "icu_collections",
+ "icu_normalizer_data",
+ "icu_properties",
+ "icu_provider",
+ "smallvec",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_normalizer_data"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
+
+[[package]]
+name = "icu_properties"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
+dependencies = [
+ "icu_collections",
+ "icu_locale_core",
+ "icu_properties_data",
+ "icu_provider",
+ "zerotrie",
+ "zerovec",
+]
+
+[[package]]
+name = "icu_properties_data"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
+
+[[package]]
+name = "icu_provider"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
+dependencies = [
+ "displaydoc",
+ "icu_locale_core",
+ "writeable",
+ "yoke",
+ "zerofrom",
+ "zerotrie",
+ "zerovec",
+]
+
[[package]]
name = "ident_case"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+[[package]]
+name = "idna"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
+dependencies = [
+ "idna_adapter",
+ "smallvec",
+ "utf8_iter",
+]
+
+[[package]]
+name = "idna_adapter"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
+dependencies = [
+ "icu_normalizer",
+ "icu_properties",
+]
+
+[[package]]
+name = "if_chain"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd62e6b5e86ea8eeeb8db1de02880a6abc01a397b2ebb64b5d74ac255318f5cb"
+
[[package]]
name = "indenter"
version = "0.3.4"
@@ -623,12 +1254,12 @@ checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5"
[[package]]
name = "indexmap"
-version = "2.12.0"
+version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
dependencies = [
"equivalent",
- "hashbrown 0.16.0",
+ "hashbrown 0.16.1",
]
[[package]]
@@ -642,15 +1273,27 @@ dependencies = [
[[package]]
name = "instability"
-version = "0.3.9"
+version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a"
+checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d"
dependencies = [
- "darling",
+ "darling 0.23.0",
"indoc",
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "is-macro"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
]
[[package]]
@@ -668,22 +1311,48 @@ dependencies = [
"either",
]
+[[package]]
+name = "itertools"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
+dependencies = [
+ "either",
+]
+
[[package]]
name = "itoa"
-version = "1.0.15"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
[[package]]
name = "js-sys"
-version = "0.3.82"
+version = "0.3.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65"
+checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
dependencies = [
"once_cell",
"wasm-bindgen",
]
+[[package]]
+name = "kasuari"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b"
+dependencies = [
+ "hashbrown 0.16.1",
+ "portable-atomic",
+ "thiserror 2.0.17",
+]
+
+[[package]]
+name = "lab"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f"
+
[[package]]
name = "lazy_static"
version = "1.5.0"
@@ -692,15 +1361,28 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
-version = "0.2.177"
+version = "0.2.180"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976"
+checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
[[package]]
-name = "linux-raw-sys"
-version = "0.4.15"
+name = "libredox"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
+dependencies = [
+ "bitflags 2.10.0",
+ "libc",
+]
+
+[[package]]
+name = "line-clipping"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
+checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a"
+dependencies = [
+ "bitflags 2.10.0",
+]
[[package]]
name = "linux-raw-sys"
@@ -709,8 +1391,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]]
-name = "litrs"
-version = "1.0.0"
+name = "litemap"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
+
+[[package]]
+name = "litrs"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
@@ -725,17 +1413,36 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.28"
+version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "lru"
-version = "0.12.5"
+version = "0.16.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
+dependencies = [
+ "hashbrown 0.16.1",
+]
+
+[[package]]
+name = "mac_address"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303"
+dependencies = [
+ "nix 0.29.0",
+ "winapi",
+]
+
+[[package]]
+name = "matchers"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38"
+checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
dependencies = [
- "hashbrown 0.15.5",
+ "regex-automata",
]
[[package]]
@@ -744,6 +1451,60 @@ version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
+[[package]]
+name = "memmem"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "miette"
+version = "7.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7"
+dependencies = [
+ "cfg-if",
+ "miette-derive",
+ "owo-colors",
+ "textwrap",
+ "unicode-width 0.1.14",
+]
+
+[[package]]
+name = "miette-derive"
+version = "7.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
[[package]]
name = "miniz_oxide"
version = "0.8.9"
@@ -755,9 +1516,9 @@ dependencies = [
[[package]]
name = "mio"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
+checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
dependencies = [
"libc",
"log",
@@ -765,6 +1526,94 @@ dependencies = [
"windows-sys 0.61.2",
]
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+[[package]]
+name = "nix"
+version = "0.23.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
+dependencies = [
+ "bitflags 1.3.2",
+ "cc",
+ "cfg-if",
+ "libc",
+ "memoffset 0.6.5",
+]
+
+[[package]]
+name = "nix"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+dependencies = [
+ "bitflags 2.10.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+ "memoffset 0.9.1",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.50.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
+dependencies = [
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+dependencies = [
+ "num-integer",
+ "num-traits",
+ "serde",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
[[package]]
name = "num-traits"
version = "0.2.19"
@@ -774,6 +1623,34 @@ dependencies = [
"autocfg",
]
+[[package]]
+name = "num_cpus"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "object"
version = "0.37.3"
@@ -795,12 +1672,42 @@ version = "1.70.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-float"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "outref"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
+
[[package]]
name = "owo-colors"
version = "4.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52"
+[[package]]
+name = "par-core"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e96cbd21255b7fb29a5d51ef38a779b517a91abd59e2756c039583f43ef4c90f"
+dependencies = [
+ "once_cell",
+]
+
[[package]]
name = "parking_lot"
version = "0.12.5"
@@ -825,194 +1732,565 @@ dependencies = [
]
[[package]]
-name = "paste"
-version = "1.0.15"
+name = "percent-encoding"
+version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
[[package]]
-name = "pin-project-lite"
-version = "0.2.16"
+name = "pest"
+version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
+checksum = "2c9eb05c21a464ea704b53158d358a31e6425db2f63a1a7312268b05fe2b75f7"
+dependencies = [
+ "memchr",
+ "ucd-trie",
+]
[[package]]
-name = "pin-utils"
-version = "0.1.0"
+name = "pest_derive"
+version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+checksum = "68f9dbced329c441fa79d80472764b1a2c7e57123553b8519b36663a2fb234ed"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
[[package]]
-name = "proc-macro2"
-version = "1.0.103"
+name = "pest_generator"
+version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
+checksum = "3bb96d5051a78f44f43c8f712d8e810adb0ebf923fc9ed2655a7f66f63ba8ee5"
dependencies = [
- "unicode-ident",
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
]
[[package]]
-name = "quote"
-version = "1.0.42"
+name = "pest_meta"
+version = "2.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
+checksum = "602113b5b5e8621770cfd490cfd90b9f84ab29bd2b0e49ad83eb6d186cef2365"
dependencies = [
- "proc-macro2",
+ "pest",
+ "sha2",
]
[[package]]
-name = "ratatui"
-version = "0.29.0"
+name = "phf"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b"
+checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078"
dependencies = [
- "bitflags",
- "cassowary",
- "compact_str",
- "crossterm 0.28.1",
- "indoc",
- "instability",
- "itertools",
- "lru",
- "paste",
- "strum",
- "unicode-segmentation",
- "unicode-truncate",
- "unicode-width 0.2.0",
+ "phf_macros",
+ "phf_shared",
]
[[package]]
-name = "redox_syscall"
-version = "0.5.18"
+name = "phf_codegen"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a"
dependencies = [
- "bitflags",
+ "phf_generator",
+ "phf_shared",
]
[[package]]
-name = "rustc-demangle"
-version = "0.1.26"
+name = "phf_generator"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
+checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
[[package]]
-name = "rustix"
-version = "0.38.44"
+name = "phf_macros"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
+checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216"
dependencies = [
- "bitflags",
- "errno",
- "libc",
- "linux-raw-sys 0.4.15",
- "windows-sys 0.59.0",
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
]
[[package]]
-name = "rustix"
-version = "1.1.2"
+name = "phf_shared"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5"
dependencies = [
- "bitflags",
- "errno",
- "libc",
- "linux-raw-sys 0.11.0",
- "windows-sys 0.61.2",
+ "siphasher 1.0.1",
]
[[package]]
-name = "rustversion"
-version = "1.0.22"
+name = "pin-project-lite"
+version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
[[package]]
-name = "ryu"
-version = "1.0.20"
+name = "pin-utils"
+version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
-name = "scopeguard"
-version = "1.2.0"
+name = "portable-atomic"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
[[package]]
-name = "serde"
-version = "1.0.228"
+name = "potential_utf"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
dependencies = [
- "serde_core",
- "serde_derive",
+ "zerovec",
]
[[package]]
-name = "serde_core"
-version = "1.0.228"
+name = "powerfmt"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
dependencies = [
- "serde_derive",
+ "zerocopy",
]
[[package]]
-name = "serde_derive"
-version = "1.0.228"
+name = "pretty_assertions"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d"
dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "diff",
+ "yansi",
]
[[package]]
-name = "serde_json"
-version = "1.0.145"
+name = "proc-macro2"
+version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
+checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
dependencies = [
- "itoa",
- "memchr",
- "ryu",
- "serde",
- "serde_core",
+ "unicode-ident",
]
[[package]]
-name = "sharded-slab"
-version = "0.1.7"
+name = "psm"
+version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01"
dependencies = [
- "lazy_static",
+ "ar_archive_writer",
+ "cc",
]
[[package]]
-name = "shlex"
-version = "1.3.0"
+name = "quote"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
+dependencies = [
+ "proc-macro2",
+]
[[package]]
-name = "signal-hook"
-version = "0.3.18"
+name = "r-efi"
+version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "signal-hook-registry",
+ "rand_chacha",
+ "rand_core",
]
[[package]]
-name = "signal-hook-mio"
-version = "0.2.5"
+name = "rand_chacha"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.17",
+]
+
+[[package]]
+name = "ratatui"
+version = "0.30.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc"
+dependencies = [
+ "instability",
+ "ratatui-core",
+ "ratatui-crossterm",
+ "ratatui-macros",
+ "ratatui-termwiz",
+ "ratatui-widgets",
+]
+
+[[package]]
+name = "ratatui-core"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293"
+dependencies = [
+ "bitflags 2.10.0",
+ "compact_str 0.9.0",
+ "hashbrown 0.16.1",
+ "indoc",
+ "itertools 0.14.0",
+ "kasuari",
+ "lru",
+ "strum",
+ "thiserror 2.0.17",
+ "unicode-segmentation",
+ "unicode-truncate",
+ "unicode-width 0.2.2",
+]
+
+[[package]]
+name = "ratatui-crossterm"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "577c9b9f652b4c121fb25c6a391dd06406d3b092ba68827e6d2f09550edc54b3"
+dependencies = [
+ "cfg-if",
+ "crossterm",
+ "instability",
+ "ratatui-core",
+]
+
+[[package]]
+name = "ratatui-macros"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7f1342a13e83e4bb9d0b793d0ea762be633f9582048c892ae9041ef39c936f4"
+dependencies = [
+ "ratatui-core",
+ "ratatui-widgets",
+]
+
+[[package]]
+name = "ratatui-termwiz"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f76fe0bd0ed4295f0321b1676732e2454024c15a35d01904ddb315afd3d545c"
+dependencies = [
+ "ratatui-core",
+ "termwiz",
+]
+
+[[package]]
+name = "ratatui-widgets"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db"
+dependencies = [
+ "bitflags 2.10.0",
+ "hashbrown 0.16.1",
+ "indoc",
+ "instability",
+ "itertools 0.14.0",
+ "line-clipping",
+ "ratatui-core",
+ "strum",
+ "time",
+ "unicode-segmentation",
+ "unicode-width 0.2.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
+dependencies = [
+ "bitflags 2.10.0",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
+dependencies = [
+ "getrandom 0.2.17",
+ "libredox",
+ "thiserror 2.0.17",
+]
+
+[[package]]
+name = "regex"
+version = "1.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
+
+[[package]]
+name = "relative-path"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
+
+[[package]]
+name = "rustc-hash"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
+dependencies = [
+ "bitflags 2.10.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
+
+[[package]]
+name = "ryu"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
+
+[[package]]
+name = "ryu-js"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "semver"
+version = "1.0.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
+dependencies = [
+ "serde",
+ "serde_core",
+]
+
+[[package]]
+name = "seq-macro"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
+
+[[package]]
+name = "serde"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+dependencies = [
+ "serde_core",
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_core"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.149"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
+dependencies = [
+ "itoa",
+ "memchr",
+ "serde",
+ "serde_core",
+ "zmij",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shared_memory"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba8593196da75d9dc4f69349682bd4c2099f8cde114257d1ef7ef1b33d1aba54"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "nix 0.23.2",
+ "rand",
+ "win-sys",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc"
dependencies = [
"libc",
"mio",
@@ -1020,81 +2298,706 @@ dependencies = [
]
[[package]]
-name = "signal-hook-registry"
-version = "1.4.6"
+name = "signal-hook-registry"
+version = "1.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
+dependencies = [
+ "errno",
+ "libc",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "siphasher"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
+
+[[package]]
+name = "slab"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "static_assertions",
+ "version_check",
+]
+
+[[package]]
+name = "socket2"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
+dependencies = [
+ "libc",
+ "windows-sys 0.60.2",
+]
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
+
+[[package]]
+name = "stacker"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "libc",
+ "psm",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "string_enum"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae36a4951ca7bd1cfd991c241584a9824a70f6aff1e7d4f693fb3f2465e4030e"
+dependencies = [
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "strum"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "swc_allocator"
+version = "4.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d7eefd2c8b228a8c73056482b2ae4b3a1071fbe07638e3b55ceca8570cc48bb"
+dependencies = [
+ "allocator-api2",
+ "bumpalo",
+ "hashbrown 0.14.5",
+ "rustc-hash",
+]
+
+[[package]]
+name = "swc_atoms"
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4ccbe2ecad10ad7432100f878a107b1d972a8aee83ca53184d00c23a078bb8a"
+dependencies = [
+ "hstr",
+ "once_cell",
+ "serde",
+]
+
+[[package]]
+name = "swc_common"
+version = "18.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1c06698254e9b47daaf9bbb062af489a350bd8d10dfaab0cabbd32d46cec69d"
+dependencies = [
+ "anyhow",
+ "ast_node",
+ "better_scoped_tls",
+ "bytes-str",
+ "either",
+ "from_variant",
+ "num-bigint",
+ "once_cell",
+ "parking_lot",
+ "rustc-hash",
+ "serde",
+ "siphasher 0.3.11",
+ "swc_atoms",
+ "swc_eq_ignore_macros",
+ "swc_sourcemap",
+ "swc_visit",
+ "termcolor",
+ "tracing",
+ "unicode-width 0.2.2",
+ "url",
+]
+
+[[package]]
+name = "swc_config"
+version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
+checksum = "72e90b52ee734ded867104612218101722ad87ff4cf74fe30383bd244a533f97"
dependencies = [
- "libc",
+ "anyhow",
+ "bytes-str",
+ "indexmap",
+ "serde",
+ "serde_json",
+ "swc_config_macro",
]
[[package]]
-name = "slab"
-version = "0.4.11"
+name = "swc_config_macro"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
+checksum = "7b416e8ce6de17dc5ea496e10c7012b35bbc0e3fef38d2e065eed936490db0b3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "swc_macros_common",
+ "syn 2.0.114",
+]
[[package]]
-name = "smallvec"
-version = "1.15.1"
+name = "swc_core"
+version = "54.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+checksum = "0f361c932ffe029754a10512ee217f550109ee80dda1fe6ec90772440bfc0a68"
+dependencies = [
+ "swc_allocator",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_testing",
+ "swc_ecma_transforms_typescript",
+ "swc_ecma_visit",
+ "vergen",
+]
[[package]]
-name = "socket2"
-version = "0.6.1"
+name = "swc_ecma_ast"
+version = "19.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
+checksum = "724195600825cbdd2a899d5473d2ce1f24ae418bff1231f160ecf38a3bc81f46"
dependencies = [
- "libc",
- "windows-sys 0.60.2",
+ "bitflags 2.10.0",
+ "is-macro",
+ "num-bigint",
+ "once_cell",
+ "phf",
+ "rustc-hash",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "swc_visit",
+ "unicode-id-start",
]
[[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "swc_ecma_codegen"
+version = "21.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "5c77d9d21345ca986ae3b5ff1a4fa3607b15b07ed397506e6dba32e867cf40fd"
+dependencies = [
+ "ascii",
+ "compact_str 0.7.1",
+ "memchr",
+ "num-bigint",
+ "once_cell",
+ "regex",
+ "rustc-hash",
+ "ryu-js",
+ "serde",
+ "swc_allocator",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen_macros",
+ "swc_sourcemap",
+ "tracing",
+]
[[package]]
-name = "strsim"
-version = "0.11.1"
+name = "swc_ecma_codegen_macros"
+version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+checksum = "e276dc62c0a2625a560397827989c82a93fd545fcf6f7faec0935a82cc4ddbb8"
+dependencies = [
+ "proc-macro2",
+ "swc_macros_common",
+ "syn 2.0.114",
+]
[[package]]
-name = "strum"
-version = "0.26.3"
+name = "swc_ecma_parser"
+version = "32.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
+checksum = "e1d0c36843109fff178bbedc439b4190daa865d78e553134243a4df220329fdd"
dependencies = [
- "strum_macros",
+ "bitflags 2.10.0",
+ "either",
+ "num-bigint",
+ "phf",
+ "rustc-hash",
+ "seq-macro",
+ "serde",
+ "smartstring",
+ "stacker",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "tracing",
]
[[package]]
-name = "strum_macros"
-version = "0.26.4"
+name = "swc_ecma_testing"
+version = "19.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
+checksum = "177244625cdecd268a07534c3b087f7f263604dd40f3ec7c7a984ca95351b632"
+dependencies = [
+ "anyhow",
+ "hex",
+ "sha2",
+ "testing",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_base"
+version = "35.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83f9f0dee4466e6eeb7042f2a0fc6c84298dfa914baff5bcfb44beb9f24b215f"
+dependencies = [
+ "better_scoped_tls",
+ "indexmap",
+ "once_cell",
+ "par-core",
+ "phf",
+ "rustc-hash",
+ "serde",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_react"
+version = "38.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "652b77238937631359f964e53d53ca2b92f9fa29c6a28c9d3b054c44e18a17b9"
+dependencies = [
+ "base64",
+ "bytes-str",
+ "indexmap",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "sha1",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "swc_config",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_testing"
+version = "38.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0df902ecb7e522c8df33f11db02fbed22abd4809663490100e3ea66c103130dd"
+dependencies = [
+ "ansi_term",
+ "anyhow",
+ "base64",
+ "hex",
+ "serde",
+ "serde_json",
+ "sha2",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_parser",
+ "swc_ecma_testing",
+ "swc_ecma_transforms_base",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_sourcemap",
+ "tempfile",
+ "testing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_typescript"
+version = "38.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c32bbafb42b8f0f2013e94a4b4981d643a645b1a7f9c20931cbca5bf78c1538"
+dependencies = [
+ "bytes-str",
+ "rustc-hash",
+ "serde",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_react",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_utils"
+version = "25.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dd5ee449d21110a271e73d0a9f7640a8854a62cb0e2cb0c9db3445383598e21"
+dependencies = [
+ "indexmap",
+ "num_cpus",
+ "once_cell",
+ "par-core",
+ "rustc-hash",
+ "ryu-js",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_visit"
+version = "19.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a69d63f7f704a2ec937edef90a3eba1f64602eceb60c8deb260c01131f680e8b"
+dependencies = [
+ "new_debug_unreachable",
+ "num-bigint",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_eq_ignore_macros"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c16ce73424a6316e95e09065ba6a207eba7765496fed113702278b7711d4b632"
dependencies = [
- "heck",
"proc-macro2",
"quote",
- "rustversion",
- "syn",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "swc_error_reporters"
+version = "20.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbbc236f3f44337cbc13f49c7e25e92082e59279c268cbd928c3568f339d3fe0"
+dependencies = [
+ "anyhow",
+ "miette",
+ "once_cell",
+ "serde",
+ "swc_common",
+]
+
+[[package]]
+name = "swc_macros_common"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1efbaa74943dc5ad2a2fb16cbd78b77d7e4d63188f3c5b4df2b4dcd2faaae"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "swc_sourcemap"
+version = "9.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de08ef00f816acdd1a58ee8a81c0e1a59eefef2093aefe5611f256fa6b64c4d7"
+dependencies = [
+ "base64-simd",
+ "bitvec",
+ "bytes-str",
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "unicode-id-start",
+ "url",
+]
+
+[[package]]
+name = "swc_visit"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62fb71484b486c185e34d2172f0eabe7f4722742aad700f426a494bb2de232a2"
+dependencies = [
+ "either",
+ "new_debug_unreachable",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.110"
+version = "2.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea"
+checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
+[[package]]
+name = "synstructure"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "tempfile"
+version = "3.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
+dependencies = [
+ "fastrand",
+ "getrandom 0.3.4",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "terminfo"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662"
+dependencies = [
+ "fnv",
+ "nom",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "termios"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "termwiz"
+version = "0.23.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7"
+dependencies = [
+ "anyhow",
+ "base64",
+ "bitflags 2.10.0",
+ "fancy-regex",
+ "filedescriptor",
+ "finl_unicode",
+ "fixedbitset",
+ "hex",
+ "lazy_static",
+ "libc",
+ "log",
+ "memmem",
+ "nix 0.29.0",
+ "num-derive",
+ "num-traits",
+ "ordered-float",
+ "pest",
+ "pest_derive",
+ "phf",
+ "sha2",
+ "signal-hook",
+ "siphasher 1.0.1",
+ "terminfo",
+ "termios",
+ "thiserror 1.0.69",
+ "ucd-trie",
+ "unicode-segmentation",
+ "vtparse",
+ "wezterm-bidi",
+ "wezterm-blob-leases",
+ "wezterm-color-types",
+ "wezterm-dynamic",
+ "wezterm-input-types",
+ "winapi",
+]
+
+[[package]]
+name = "testing"
+version = "19.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1506c602222ebab5d96100180f8d3c015b2394eceb00a46d20c25b8b1e5100"
+dependencies = [
+ "cargo_metadata 0.18.1",
+ "difference",
+ "once_cell",
+ "pretty_assertions",
+ "regex",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "swc_common",
+ "swc_error_reporters",
+ "testing_macros",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "testing_macros"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7442bd3ca09f38d4788dc5ebafbc1967c3717726b4b074db011d470b353548b"
+dependencies = [
+ "anyhow",
+ "glob",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "relative-path",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057"
+dependencies = [
+ "unicode-linebreak",
+ "unicode-width 0.2.2",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
+dependencies = [
+ "thiserror-impl 1.0.69",
+]
+
+[[package]]
+name = "thiserror"
+version = "2.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
+dependencies = [
+ "thiserror-impl 2.0.17",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "2.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
[[package]]
name = "thread_local"
version = "1.1.9"
@@ -1105,19 +3008,50 @@ dependencies = [
]
[[package]]
-name = "throbber-widgets-tui"
-version = "0.9.0"
+name = "throbber-widgets-tui"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fb8f83731b18ea611a38a243b458adfa78239d61ca6acc545aa3b1c450ac6e7"
+dependencies = [
+ "ratatui",
+]
+
+[[package]]
+name = "time"
+version = "0.3.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd"
+dependencies = [
+ "deranged",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "powerfmt",
+ "serde_core",
+ "time-core",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca"
+
+[[package]]
+name = "tinystr"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45e58887883fb0a259717b16d68d251983e40850b4b2f45c2da410f46d4333dc"
+checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
dependencies = [
- "ratatui",
+ "displaydoc",
+ "zerovec",
]
[[package]]
name = "tokio"
-version = "1.48.0"
+version = "1.49.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
dependencies = [
"bytes",
"libc",
@@ -1138,50 +3072,36 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
dependencies = [
"proc-macro2",
"quote",
- "syn",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
+ "syn 2.0.114",
]
[[package]]
-name = "toml_datetime"
-version = "0.6.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
-
-[[package]]
-name = "toml_edit"
-version = "0.19.15"
+name = "tracing"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
dependencies = [
- "indexmap",
- "toml_datetime",
- "winnow",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
]
[[package]]
-name = "tracing"
-version = "0.1.41"
+name = "tracing-attributes"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
- "pin-project-lite",
- "tracing-core",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
]
[[package]]
name = "tracing-core"
-version = "0.1.34"
+version = "0.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
dependencies = [
"once_cell",
"valuable",
@@ -1197,23 +3117,75 @@ dependencies = [
"tracing-subscriber",
]
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
[[package]]
name = "tracing-subscriber"
-version = "0.3.20"
+version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
+checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex-automata",
"sharded-slab",
+ "smallvec",
"thread_local",
+ "tracing",
"tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "triomphe"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39"
+dependencies = [
+ "serde",
+ "stable_deref_trait",
]
+[[package]]
+name = "typenum"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971"
+
+[[package]]
+name = "unicode-id-start"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007"
+
[[package]]
name = "unicode-ident"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
[[package]]
name = "unicode-segmentation"
version = "1.12.0"
@@ -1222,13 +3194,13 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
[[package]]
name = "unicode-truncate"
-version = "1.1.0"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf"
+checksum = "8fbf03860ff438702f3910ca5f28f8dac63c1c11e7efb5012b8b175493606330"
dependencies = [
- "itertools",
+ "itertools 0.13.0",
"unicode-segmentation",
- "unicode-width 0.1.14",
+ "unicode-width 0.2.2",
]
[[package]]
@@ -1239,9 +3211,27 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "unicode-width"
-version = "0.2.0"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
+
+[[package]]
+name = "url"
+version = "2.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8_iter"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "utf8parse"
@@ -1249,29 +3239,100 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+[[package]]
+name = "uuid"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a"
+dependencies = [
+ "atomic",
+ "getrandom 0.3.4",
+ "js-sys",
+ "wasm-bindgen",
+]
+
[[package]]
name = "valuable"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
+[[package]]
+name = "vergen"
+version = "9.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777"
+dependencies = [
+ "anyhow",
+ "cargo_metadata 0.19.2",
+ "derive_builder",
+ "regex",
+ "rustversion",
+ "vergen-lib",
+]
+
+[[package]]
+name = "vergen-lib"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"
+dependencies = [
+ "anyhow",
+ "derive_builder",
+ "rustversion",
+]
+
[[package]]
name = "version_check"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+[[package]]
+name = "vsimd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
+name = "vtparse"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
[[package]]
name = "wasi"
version = "0.11.1+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
+[[package]]
+name = "wasip2"
+version = "1.0.2+wasi-0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
+dependencies = [
+ "wit-bindgen",
+]
+
[[package]]
name = "wasm-bindgen"
-version = "0.2.105"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60"
+checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
dependencies = [
"cfg-if",
"once_cell",
@@ -1282,9 +3343,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.105"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2"
+checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1292,36 +3353,105 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.105"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc"
+checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
dependencies = [
"bumpalo",
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.114",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.105"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76"
+checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
dependencies = [
"unicode-ident",
]
[[package]]
-name = "which"
-version = "4.4.2"
+name = "wezterm-bidi"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec"
dependencies = [
- "either",
- "home",
- "once_cell",
- "rustix 0.38.44",
+ "log",
+ "wezterm-dynamic",
+]
+
+[[package]]
+name = "wezterm-blob-leases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7"
+dependencies = [
+ "getrandom 0.3.4",
+ "mac_address",
+ "sha2",
+ "thiserror 1.0.69",
+ "uuid",
+]
+
+[[package]]
+name = "wezterm-color-types"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296"
+dependencies = [
+ "csscolorparser",
+ "deltae",
+ "lazy_static",
+ "wezterm-dynamic",
+]
+
+[[package]]
+name = "wezterm-dynamic"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac"
+dependencies = [
+ "log",
+ "ordered-float",
+ "strsim",
+ "thiserror 1.0.69",
+ "wezterm-dynamic-derive",
+]
+
+[[package]]
+name = "wezterm-dynamic-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "wezterm-input-types"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e"
+dependencies = [
+ "bitflags 1.3.2",
+ "euclid",
+ "lazy_static",
+ "serde",
+ "wezterm-dynamic",
+]
+
+[[package]]
+name = "win-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b7b128a98c1cfa201b09eb49ba285887deb3cbe7466a98850eb1adabb452be5"
+dependencies = [
+ "windows",
]
[[package]]
@@ -1340,12 +3470,34 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+[[package]]
+name = "winapi-util"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
+dependencies = [
+ "windows-sys 0.61.2",
+]
+
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+[[package]]
+name = "windows"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f"
+dependencies = [
+ "windows_aarch64_msvc 0.34.0",
+ "windows_i686_gnu 0.34.0",
+ "windows_i686_msvc 0.34.0",
+ "windows_x86_64_gnu 0.34.0",
+ "windows_x86_64_msvc 0.34.0",
+]
+
[[package]]
name = "windows-core"
version = "0.62.2"
@@ -1367,7 +3519,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.114",
]
[[package]]
@@ -1378,7 +3530,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
- "syn",
+ "syn 2.0.114",
]
[[package]]
@@ -1477,6 +3629,12 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
+
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
@@ -1489,6 +3647,12 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
+[[package]]
+name = "windows_i686_gnu"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
+
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
@@ -1513,6 +3677,12 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
+[[package]]
+name = "windows_i686_msvc"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
+
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
@@ -1525,6 +3695,12 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
+
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
@@ -1549,6 +3725,12 @@ version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
+
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
@@ -1562,10 +3744,131 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
[[package]]
-name = "winnow"
-version = "0.5.40"
+name = "wit-bindgen"
+version = "0.51.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
+
+[[package]]
+name = "writeable"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
dependencies = [
- "memchr",
+ "tap",
+]
+
+[[package]]
+name = "yansi"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
+
+[[package]]
+name = "yoke"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
+dependencies = [
+ "stable_deref_trait",
+ "yoke-derive",
+ "zerofrom",
+]
+
+[[package]]
+name = "yoke-derive"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+ "synstructure",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
]
+
+[[package]]
+name = "zerofrom"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
+dependencies = [
+ "zerofrom-derive",
+]
+
+[[package]]
+name = "zerofrom-derive"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+ "synstructure",
+]
+
+[[package]]
+name = "zerotrie"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
+dependencies = [
+ "displaydoc",
+ "yoke",
+ "zerofrom",
+]
+
+[[package]]
+name = "zerovec"
+version = "0.11.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
+dependencies = [
+ "yoke",
+ "zerofrom",
+ "zerovec-derive",
+]
+
+[[package]]
+name = "zerovec-derive"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.114",
+]
+
+[[package]]
+name = "zmij"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea"
diff --git a/Cargo.toml b/Cargo.toml
index 2f84676..19ca68c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,42 +1,35 @@
-[package]
-name = "checkpoint-ts"
+[workspace]
+resolver = "2"
+members = [
+ "crates/core",
+ "crates/parser",
+ "crates/shared",
+]
+
+[workspace.package]
version = "0.1.2"
-description = "Interactive checkpoint system for TypeScript/JavaScript development. Debug with TUI, inspect state, skip functions, inject values."
-authors = ["ErenayDev "]
-license = "MIT"
edition = "2024"
+license = "MIT"
repository = "https://github.com/ErenayDev/checkpoint-ts"
+description = "Interactive checkpoint system for TypeScript/JavaScript development. Debug with TUI, inspect state, skip functions, inject values."
+authors = ["ErenayDev erenaydev@proton.me"]
homepage = "https://github.com/ErenayDev/checkpoint-ts"
documentation = "https://docs.rs/checkpoint-ts"
readme = "README.md"
keywords = ["debug", "typescript", "javascript", "tui", "checkpoint"]
categories = ["development-tools::debugging", "command-line-utilities"]
-rust-version = "1.87"
-exclude = [
- "target/",
- ".git/",
- ".github/",
- "tools/",
- "*.log"
-]
-
-[[bin]]
-name = "checkpoint"
-path = "src/main.rs"
-
-[workspace]
-members = ["tools/cargo-bin"]
-
-[package.metadata.bin]
-cargo-watch = { version = "8.5.2" }
-[dependencies]
-chrono = "0.4.42"
-color-eyre = "0.6.3"
-crossterm = { version = "0.29.0", features = ["event-stream"] }
-futures = "0.3.31"
-ratatui = "0.29.0"
-serde = "1.0.228"
-serde_json = "1.0.145"
-throbber-widgets-tui = "0.9.0"
-tokio = { version = "1.40.0", features = ["full"] }
+[workspace.dependencies]
+shared_memory = "0.12"
+serde = { version = "1.0", features = ["derive"] }
+serde_json = "1.0"
+swc_core = { version = "54", features = [
+ "__common",
+ "__ecma",
+ "ecma_ast",
+ "ecma_parser",
+ "ecma_transforms_typescript",
+ "ecma_codegen",
+ "ecma_visit",
+ "__testing_transform",
+] }
From 168c9c16f22a850747678ecb9b5c21c0dd43b334 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Mon, 23 Feb 2026 23:30:29 +0300
Subject: [PATCH 03/22] refactor(core): remove old monolithic source structure
Remove legacy single-crate source files in preparation for workspace migration
---
src/analyzer/ast.rs | 1 -
src/analyzer/metadata.rs | 1 -
src/analyzer/mod.rs | 1 -
src/cli/args.rs | 1 -
src/cli/mod.rs | 1 -
src/instrumenter/injector.rs | 1 -
src/instrumenter/mod.rs | 1 -
src/main.rs | 28 ---
src/runtime/adapter.rs | 1 -
src/runtime/bun.rs | 1 -
src/runtime/deno.rs | 1 -
src/runtime/mod.rs | 1 -
src/runtime/node.rs | 1 -
src/state/checkpoint.rs | 1 -
src/state/manager.rs | 1 -
src/state/mod.rs | 1 -
src/tui/app.rs | 160 -------------
src/tui/events.rs | 30 ---
src/tui/keyboard_handler.rs | 197 ----------------
src/tui/mod.rs | 6 -
src/tui/scenes/call_stack.rs | 1 -
src/tui/scenes/dashboard.rs | 365 ------------------------------
src/tui/scenes/error_dialog.rs | 1 -
src/tui/scenes/function_skip.rs | 1 -
src/tui/scenes/history.rs | 1 -
src/tui/scenes/mod.rs | 7 -
src/tui/scenes/profiler.rs | 311 -------------------------
src/tui/scenes/variable_editor.rs | 290 ------------------------
src/utils/entry_finder.rs | 39 ----
src/utils/mod.rs | 2 -
src/utils/num_utils.rs | 14 --
31 files changed, 1468 deletions(-)
delete mode 100644 src/analyzer/ast.rs
delete mode 100644 src/analyzer/metadata.rs
delete mode 100644 src/analyzer/mod.rs
delete mode 100644 src/cli/args.rs
delete mode 100644 src/cli/mod.rs
delete mode 100644 src/instrumenter/injector.rs
delete mode 100644 src/instrumenter/mod.rs
delete mode 100644 src/main.rs
delete mode 100644 src/runtime/adapter.rs
delete mode 100644 src/runtime/bun.rs
delete mode 100644 src/runtime/deno.rs
delete mode 100644 src/runtime/mod.rs
delete mode 100644 src/runtime/node.rs
delete mode 100644 src/state/checkpoint.rs
delete mode 100644 src/state/manager.rs
delete mode 100644 src/state/mod.rs
delete mode 100644 src/tui/app.rs
delete mode 100644 src/tui/events.rs
delete mode 100644 src/tui/keyboard_handler.rs
delete mode 100644 src/tui/mod.rs
delete mode 100644 src/tui/scenes/call_stack.rs
delete mode 100644 src/tui/scenes/dashboard.rs
delete mode 100644 src/tui/scenes/error_dialog.rs
delete mode 100644 src/tui/scenes/function_skip.rs
delete mode 100644 src/tui/scenes/history.rs
delete mode 100644 src/tui/scenes/mod.rs
delete mode 100644 src/tui/scenes/profiler.rs
delete mode 100644 src/tui/scenes/variable_editor.rs
delete mode 100644 src/utils/entry_finder.rs
delete mode 100644 src/utils/mod.rs
delete mode 100644 src/utils/num_utils.rs
diff --git a/src/analyzer/ast.rs b/src/analyzer/ast.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/analyzer/ast.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/analyzer/metadata.rs b/src/analyzer/metadata.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/analyzer/metadata.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/analyzer/mod.rs b/src/analyzer/mod.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/analyzer/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/cli/args.rs b/src/cli/args.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/cli/args.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/cli/mod.rs b/src/cli/mod.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/cli/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/instrumenter/injector.rs b/src/instrumenter/injector.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/instrumenter/injector.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/instrumenter/mod.rs b/src/instrumenter/mod.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/instrumenter/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/main.rs b/src/main.rs
deleted file mode 100644
index 55b8879..0000000
--- a/src/main.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-use color_eyre::Result;
-mod analyzer;
-mod cli;
-mod instrumenter;
-mod runtime;
-mod state;
-mod tui;
-mod utils;
-use tui::TuiApp;
-use utils::entry_finder;
-
-#[tokio::main]
-async fn main() -> Result<()> {
- color_eyre::install()?;
-
- let entry_file = entry_finder::find_entry_file();
-
- if entry_file.is_none() {
- println!("No entry file found. Usage: `checkpoint `");
- std::process::exit(1);
- }
-
- let terminal = ratatui::init();
- let mut app = TuiApp::new(entry_file);
- let result = app.run(terminal).await;
- ratatui::restore();
- result
-}
diff --git a/src/runtime/adapter.rs b/src/runtime/adapter.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/runtime/adapter.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/runtime/bun.rs b/src/runtime/bun.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/runtime/bun.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/runtime/deno.rs b/src/runtime/deno.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/runtime/deno.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/runtime/mod.rs b/src/runtime/mod.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/runtime/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/runtime/node.rs b/src/runtime/node.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/runtime/node.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/state/checkpoint.rs b/src/state/checkpoint.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/state/checkpoint.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/state/manager.rs b/src/state/manager.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/state/manager.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/state/mod.rs b/src/state/mod.rs
deleted file mode 100644
index 8b13789..0000000
--- a/src/state/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/tui/app.rs b/src/tui/app.rs
deleted file mode 100644
index 834e400..0000000
--- a/src/tui/app.rs
+++ /dev/null
@@ -1,160 +0,0 @@
-use super::events::EventHandler;
-use super::scenes::dashboard::DashboardState;
-use super::scenes::profiler::PerformanceProfileState;
-use super::scenes::variable_editor::VariableEditorState;
-use color_eyre::Result;
-use crossterm::event::{Event, KeyEventKind};
-use ratatui::{DefaultTerminal, Frame};
-
-#[allow(dead_code)]
-#[derive(Debug, Clone, PartialEq)]
-pub enum Scene {
- Dashboard,
- VariableEditor,
- FunctionSkip,
- History,
- Profiler,
- CallStack,
- ErrorDialog,
-}
-
-#[derive(Debug)]
-pub struct TuiApp {
- pub current_scene: Scene,
- pub scene_stack: Vec,
- pub running: bool,
- event_handler: EventHandler,
- pub dashboard_state: DashboardState,
- pub variable_state: VariableEditorState,
- pub profile_state: PerformanceProfileState,
-}
-
-impl TuiApp {
- pub fn new(file: Option) -> Self {
- let mut dashboard_state = DashboardState::new();
- let variable_state = VariableEditorState::new();
- let profile_state = PerformanceProfileState::new();
-
- if let Some(f) = file {
- dashboard_state.set_file(f);
- }
-
- Self {
- current_scene: Scene::Dashboard,
- scene_stack: vec![],
- running: true,
- event_handler: EventHandler::new(),
- dashboard_state,
- variable_state,
- profile_state,
- }
- }
-
- pub async fn run(&mut self, mut terminal: DefaultTerminal) -> Result<()> {
- let mut interval = tokio::time::interval(tokio::time::Duration::from_millis(150));
-
- while self.running {
- tokio::select! {
- _ = interval.tick() => {
- self.dashboard_state.tick_throbber();
- }
- _ = self.handle_events() => {}
- }
- terminal.draw(|frame| self.draw(frame))?;
- }
- Ok(())
- }
-
- async fn handle_events(&mut self) -> Result<()> {
- if let Some(event) = self.event_handler.next_event().await? {
- match event {
- Event::Key(key) if key.kind == KeyEventKind::Press => {
- self.handle_key_event(key);
- }
- _ => {}
- }
- }
- Ok(())
- }
-
- pub fn navigate_to(&mut self, new_scene: Scene) {
- self.scene_stack.push(self.current_scene.clone());
- self.current_scene = new_scene;
- self.dashboard_state
- .add_log(format!("Navigated to {:?}", self.current_scene));
- }
-
- pub fn navigate_back(&mut self) {
- if let Some(previous_scene) = self.scene_stack.pop() {
- self.current_scene = previous_scene;
- self.dashboard_state
- .add_log(format!("Navigated back to {:?}", self.current_scene));
- } else {
- self.quit();
- }
- }
-
- pub fn quit(&mut self) {
- self.running = false;
- }
-
- fn draw(&mut self, frame: &mut Frame) {
- match self.current_scene {
- Scene::Dashboard => self.draw_dashboard(frame),
- Scene::VariableEditor => self.draw_variable_editor(frame),
- Scene::FunctionSkip => self.draw_function_skip(frame),
- Scene::History => self.draw_history(frame),
- Scene::Profiler => self.draw_profiler(frame),
- Scene::CallStack => self.draw_call_stack(frame),
- Scene::ErrorDialog => self.draw_error_dialog(frame),
- }
- }
-
- fn draw_dashboard(&mut self, frame: &mut Frame) {
- crate::tui::scenes::dashboard::draw(frame, frame.area(), &mut self.dashboard_state);
- }
-
- fn draw_variable_editor(&self, frame: &mut Frame) {
- crate::tui::scenes::variable_editor::draw(frame, frame.area(), &self.variable_state);
- }
-
- fn draw_function_skip(&self, frame: &mut Frame) {
- use ratatui::widgets::{Block, Borders, Paragraph};
- frame.render_widget(
- Paragraph::new("Function Skip Dialog\n\n[Enter] Skip with Selected Option [Esc] Cancel [C] Continue Normal")
- .block(Block::default().borders(Borders::ALL).title("Skip Function")),
- frame.area(),
- );
- }
-
- fn draw_history(&self, frame: &mut Frame) {
- use ratatui::widgets::{Block, Borders, Paragraph};
- frame.render_widget(
- Paragraph::new("Execution History\n\n[ββ] Navigate [Enter] Go to Checkpoint [R] Replay from Here\n[D] Show Details [S] Save History [Esc] Back")
- .block(Block::default().borders(Borders::ALL).title("Execution History")),
- frame.area(),
- );
- }
-
- fn draw_profiler(&self, frame: &mut Frame) {
- crate::tui::scenes::profiler::draw(frame, frame.area(), &self.profile_state);
- }
-
- fn draw_call_stack(&self, frame: &mut Frame) {
- use ratatui::widgets::{Block, Borders, Paragraph};
- frame.render_widget(
- Paragraph::new("Call Stack Viewer\n\n[ββ] Navigate Stack [Enter] Jump to Frame [V] View Frame Variables\n[B] Set Breakpoint [C] Continue [Esc] Back")
- .block(Block::default().borders(Borders::ALL).title("Call Stack")),
- frame.area(),
- );
- }
-
- fn draw_error_dialog(&self, frame: &mut Frame) {
- use ratatui::widgets::{Block, Borders, Paragraph};
- frame.render_widget(
- Paragraph::new("Execution Error\n\n[F] Fix variable and continue [S] Skip function with default value\n[R] Restart from last checkpoint [Q] Quit execution")
- .block(Block::default().borders(Borders::ALL).title("Execution Error")),
- frame.area(),
- );
- }
-}
diff --git a/src/tui/events.rs b/src/tui/events.rs
deleted file mode 100644
index 69e6ca4..0000000
--- a/src/tui/events.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-use color_eyre::Result;
-use crossterm::event::{Event, EventStream};
-use futures::{FutureExt, StreamExt};
-
-#[derive(Debug)]
-pub struct EventHandler {
- event_stream: EventStream,
-}
-
-impl Default for EventHandler {
- fn default() -> Self {
- Self {
- event_stream: EventStream::new(),
- }
- }
-}
-
-impl EventHandler {
- pub fn new() -> Self {
- Self::default()
- }
-
- pub async fn next_event(&mut self) -> Result
## Acknowledgments
Built with:
+
- [SWC](https://swc.rs/) for TypeScript/JavaScript parsing
- [Ratatui](https://ratatui.rs/) for terminal user interface
- [Tokio](https://tokio.rs/) for async runtime support
From e99e8bb7fa52d20a8f737f91b3ab23a8953e3b9e Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 15:50:07 +0300
Subject: [PATCH 14/22] chore: add .checkpoint to gitignore
---
examples/transform_examples/.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/examples/transform_examples/.gitignore b/examples/transform_examples/.gitignore
index a14702c..9d312f5 100644
--- a/examples/transform_examples/.gitignore
+++ b/examples/transform_examples/.gitignore
@@ -32,3 +32,6 @@ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# Finder (MacOS) folder config
.DS_Store
+
+# Checkpoint.ts releated
+.checkpoint
From d47eeb2d9c1680eaa56d8fb73dfe85d4250b6ea4 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:04:43 +0300
Subject: [PATCH 15/22] chore: add oranda output to gitignore
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitignore b/.gitignore
index c61eace..d21a424 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,6 @@ target
## Generated folder by Node
node_modules
+
+## Oranda output
+public
From 4b5e4a132289563e1417cf415359d24284fa8d48 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:04:43 +0300
Subject: [PATCH 16/22] docs: add installation and release documentation
---
doc/INSTALLATION.md | 61 +++++++++++++++++++++++++++++++++++++++++++++
doc/RELEASE.md | 13 ++++++++++
2 files changed, 74 insertions(+)
create mode 100644 doc/INSTALLATION.md
create mode 100644 doc/RELEASE.md
diff --git a/doc/INSTALLATION.md b/doc/INSTALLATION.md
new file mode 100644
index 0000000..e38f0b5
--- /dev/null
+++ b/doc/INSTALLATION.md
@@ -0,0 +1,61 @@
+# How to install?
+
+## If you wanna just downloading the pre-compiled binary (Recommended)
+
+1- Go to [Github Releases](https://github.com/ErenayDev/checkpoint-ts/releases) page and download your platforms file.
+2- If you wanna download pre-compiled binary with [cargo-binstall](https://github.com/cargo-bins/cargo-binstall):
+
+```bash
+cargo install cargo-binstall # skip if already installed
+cargo binstall checkpoint-ts # downloads the file for specific your platforms
+```
+
+## If you wanna build from source
+
+From [crates.io](https://crates.io/crates/checkpoint-ts):
+
+```bash
+cargo install checkpoint-ts
+```
+
+From [GitHub](https://github.com/ErenayDev/checkpoint-ts):
+
+```bash
+git clone https://github.com/ErenayDev/checkpoint-ts.git
+cd checkpoint-ts
+cargo build --release
+```
+
+## Platform specific downloads
+
+### Arch Linux(AUR)
+
+#### Binary
+
+```bash
+pacman -S checkpoint
+```
+
+#### From source
+
+```bash
+yay -S checkpoint
+```
+
+### NixOS
+
+Just a placeholder
+
+### RPM-Based
+
+Just a placeholder
+
+### Debian-Based
+
+Just a placeholder
+
+## Versions
+
+
+
+
diff --git a/doc/RELEASE.md b/doc/RELEASE.md
new file mode 100644
index 0000000..6afdab1
--- /dev/null
+++ b/doc/RELEASE.md
@@ -0,0 +1,13 @@
+# How to release?
+
+1. Bump the version in [Cargo.toml](Cargo.toml) according to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+2. Update [Cargo.lock](Cargo.lock) by building the project: `cargo build`
+3. Ensure [CHANGELOG.md](CHANGELOG.md) is updated according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format. [git-cliff](https://github.com/orhun/git-cliff) recommended.
+4. Commit and push the changes.
+5. Create a new tag: `git tag -s -a v[x.y.z]` ([signed](https://keyserver.ubuntu.com/pks/lookup?search=0xA89C8C7D22FFF4FB&op=vindex))
+6. Push the tag: `git push --tags`
+7. Wait for [Continuous Deployment](https://github.com/ErenayDev/checkpoint-ts/actions) workflow to finish.
+8. Publish to crates.io: `cargo publish`
+9. Update [AUR](https://aur.archlinux.org) package in [PKGBUILDs](https://github.com/ErenayDev/PKGBUILDs) repository:
+ - Run `update.sh checkpoint-ts [x.y.z]`
+ - Run `aurpublish checkpoint-ts`
From a4033e3accaa316a4fc82eb09cc698e33a5d8397 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:05:52 +0300
Subject: [PATCH 17/22] ci: add release and web workflows
---
.github/workflows/release.yml | 296 ++++++++++++++++++++++++++++++++++
.github/workflows/web.yml | 99 ++++++++++++
2 files changed, 395 insertions(+)
create mode 100644 .github/workflows/release.yml
create mode 100644 .github/workflows/web.yml
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..3dfcda0
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,296 @@
+# This file was autogenerated by dist: https://axodotdev.github.io/cargo-dist
+#
+# Copyright 2022-2024, axodotdev
+# SPDX-License-Identifier: MIT or Apache-2.0
+#
+# CI that:
+#
+# * checks for a Git Tag that looks like a release
+# * builds artifacts with dist (archives, installers, hashes)
+# * uploads those artifacts to temporary workflow zip
+# * on success, uploads the artifacts to a GitHub Release
+#
+# Note that the GitHub Release will be created with a generated
+# title/body based on your changelogs.
+
+name: Release
+permissions:
+ "contents": "write"
+
+# This task will run whenever you push a git tag that looks like a version
+# like "1.0.0", "v0.1.0-prerelease.1", "my-app/0.1.0", "releases/v1.0.0", etc.
+# Various formats will be parsed into a VERSION and an optional PACKAGE_NAME, where
+# PACKAGE_NAME must be the name of a Cargo package in your workspace, and VERSION
+# must be a Cargo-style SemVer Version (must have at least major.minor.patch).
+#
+# If PACKAGE_NAME is specified, then the announcement will be for that
+# package (erroring out if it doesn't have the given version or isn't dist-able).
+#
+# If PACKAGE_NAME isn't specified, then the announcement will be for all
+# (dist-able) packages in the workspace with that version (this mode is
+# intended for workspaces with only one dist-able package, or with all dist-able
+# packages versioned/released in lockstep).
+#
+# If you push multiple tags at once, separate instances of this workflow will
+# spin up, creating an independent announcement for each one. However, GitHub
+# will hard limit this to 3 tags per commit, as it will assume more tags is a
+# mistake.
+#
+# If there's a prerelease-style suffix to the version, then the release(s)
+# will be marked as a prerelease.
+on:
+ pull_request:
+ push:
+ tags:
+ - '**[0-9]+.[0-9]+.[0-9]+*'
+
+jobs:
+ # Run 'dist plan' (or host) to determine what tasks we need to do
+ plan:
+ runs-on: self-hosted
+ outputs:
+ val: ${{ steps.plan.outputs.manifest }}
+ tag: ${{ !github.event.pull_request && github.ref_name || '' }}
+ tag-flag: ${{ !github.event.pull_request && format('--tag={0}', github.ref_name) || '' }}
+ publishing: ${{ !github.event.pull_request }}
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ submodules: recursive
+ - name: Install dist
+ # we specify bash to get pipefail; it guards against the `curl` command
+ # failing. otherwise `sh` won't catch that `curl` returned non-0
+ shell: bash
+ run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.31.0/cargo-dist-installer.sh | sh"
+ - name: Cache dist
+ uses: actions/upload-artifact@v6
+ with:
+ name: cargo-dist-cache
+ path: ~/.cargo/bin/dist
+ # sure would be cool if github gave us proper conditionals...
+ # so here's a doubly-nested ternary-via-truthiness to try to provide the best possible
+ # functionality based on whether this is a pull_request, and whether it's from a fork.
+ # (PRs run on the *source* but secrets are usually on the *target* -- that's *good*
+ # but also really annoying to build CI around when it needs secrets to work right.)
+ - id: plan
+ run: |
+ dist ${{ (!github.event.pull_request && format('host --steps=create --tag={0}', github.ref_name)) || 'plan' }} --output-format=json > plan-dist-manifest.json
+ echo "dist ran successfully"
+ cat plan-dist-manifest.json
+ echo "manifest=$(jq -c "." plan-dist-manifest.json)" >> "$GITHUB_OUTPUT"
+ - name: "Upload dist-manifest.json"
+ uses: actions/upload-artifact@v6
+ with:
+ name: artifacts-plan-dist-manifest
+ path: plan-dist-manifest.json
+
+ # Build and packages all the platform-specific things
+ build-local-artifacts:
+ name: build-local-artifacts (${{ join(matrix.targets, ', ') }})
+ # Let the initial task tell us to not run (currently very blunt)
+ needs:
+ - plan
+ if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null && (needs.plan.outputs.publishing == 'true' || fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }}
+ strategy:
+ fail-fast: false
+ # Target platforms/runners are computed by dist in create-release.
+ # Each member of the matrix has the following arguments:
+ #
+ # - runner: the github runner
+ # - dist-args: cli flags to pass to dist
+ # - install-dist: expression to run to install dist on the runner
+ #
+ # Typically there will be:
+ # - 1 "global" task that builds universal installers
+ # - N "local" tasks that build each platform's binaries and platform-specific installers
+ matrix: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix }}
+ runs-on: ${{ matrix.runner }}
+ container: ${{ matrix.container && matrix.container.image || null }}
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BUILD_MANIFEST_NAME: target/distrib/${{ join(matrix.targets, '-') }}-dist-manifest.json
+ steps:
+ - name: enable windows longpaths
+ run: |
+ git config --global core.longpaths true
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ submodules: recursive
+ - name: Install Rust non-interactively if not already installed
+ if: ${{ matrix.container }}
+ run: |
+ if ! command -v cargo > /dev/null 2>&1; then
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
+ echo "$HOME/.cargo/bin" >> $GITHUB_PATH
+ fi
+ - name: Install dist
+ run: ${{ matrix.install_dist.run }}
+ # Get the dist-manifest
+ - name: Fetch local artifacts
+ uses: actions/download-artifact@v7
+ with:
+ pattern: artifacts-*
+ path: target/distrib/
+ merge-multiple: true
+ - name: Install dependencies
+ run: |
+ ${{ matrix.packages_install }}
+ - name: Build artifacts
+ run: |
+ # Actually do builds and make zips and whatnot
+ dist build ${{ needs.plan.outputs.tag-flag }} --print=linkage --output-format=json ${{ matrix.dist_args }} > dist-manifest.json
+ echo "dist ran successfully"
+ - id: cargo-dist
+ name: Post-build
+ # We force bash here just because github makes it really hard to get values up
+ # to "real" actions without writing to env-vars, and writing to env-vars has
+ # inconsistent syntax between shell and powershell.
+ shell: bash
+ run: |
+ # Parse out what we just built and upload it to scratch storage
+ echo "paths<> "$GITHUB_OUTPUT"
+ dist print-upload-files-from-manifest --manifest dist-manifest.json >> "$GITHUB_OUTPUT"
+ echo "EOF" >> "$GITHUB_OUTPUT"
+
+ cp dist-manifest.json "$BUILD_MANIFEST_NAME"
+ - name: "Upload artifacts"
+ uses: actions/upload-artifact@v6
+ with:
+ name: artifacts-build-local-${{ join(matrix.targets, '_') }}
+ path: |
+ ${{ steps.cargo-dist.outputs.paths }}
+ ${{ env.BUILD_MANIFEST_NAME }}
+
+ # Build and package all the platform-agnostic(ish) things
+ build-global-artifacts:
+ needs:
+ - plan
+ - build-local-artifacts
+ runs-on: self-hosted
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ submodules: recursive
+ - name: Install cached dist
+ uses: actions/download-artifact@v7
+ with:
+ name: cargo-dist-cache
+ path: ~/.cargo/bin/
+ - run: chmod +x ~/.cargo/bin/dist
+ # Get all the local artifacts for the global tasks to use (for e.g. checksums)
+ - name: Fetch local artifacts
+ uses: actions/download-artifact@v7
+ with:
+ pattern: artifacts-*
+ path: target/distrib/
+ merge-multiple: true
+ - id: cargo-dist
+ shell: bash
+ run: |
+ dist build ${{ needs.plan.outputs.tag-flag }} --output-format=json "--artifacts=global" > dist-manifest.json
+ echo "dist ran successfully"
+
+ # Parse out what we just built and upload it to scratch storage
+ echo "paths<> "$GITHUB_OUTPUT"
+ jq --raw-output ".upload_files[]" dist-manifest.json >> "$GITHUB_OUTPUT"
+ echo "EOF" >> "$GITHUB_OUTPUT"
+
+ cp dist-manifest.json "$BUILD_MANIFEST_NAME"
+ - name: "Upload artifacts"
+ uses: actions/upload-artifact@v6
+ with:
+ name: artifacts-build-global
+ path: |
+ ${{ steps.cargo-dist.outputs.paths }}
+ ${{ env.BUILD_MANIFEST_NAME }}
+ # Determines if we should publish/announce
+ host:
+ needs:
+ - plan
+ - build-local-artifacts
+ - build-global-artifacts
+ # Only run if we're "publishing", and only if plan, local and global didn't fail (skipped is fine)
+ if: ${{ always() && needs.plan.result == 'success' && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }}
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ runs-on: self-hosted
+ outputs:
+ val: ${{ steps.host.outputs.manifest }}
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ submodules: recursive
+ - name: Install cached dist
+ uses: actions/download-artifact@v7
+ with:
+ name: cargo-dist-cache
+ path: ~/.cargo/bin/
+ - run: chmod +x ~/.cargo/bin/dist
+ # Fetch artifacts from scratch-storage
+ - name: Fetch artifacts
+ uses: actions/download-artifact@v7
+ with:
+ pattern: artifacts-*
+ path: target/distrib/
+ merge-multiple: true
+ - id: host
+ shell: bash
+ run: |
+ dist host ${{ needs.plan.outputs.tag-flag }} --steps=upload --steps=release --output-format=json > dist-manifest.json
+ echo "artifacts uploaded and released successfully"
+ cat dist-manifest.json
+ echo "manifest=$(jq -c "." dist-manifest.json)" >> "$GITHUB_OUTPUT"
+ - name: "Upload dist-manifest.json"
+ uses: actions/upload-artifact@v6
+ with:
+ # Overwrite the previous copy
+ name: artifacts-dist-manifest
+ path: dist-manifest.json
+ # Create a GitHub Release while uploading all files to it
+ - name: "Download GitHub Artifacts"
+ uses: actions/download-artifact@v7
+ with:
+ pattern: artifacts-*
+ path: artifacts
+ merge-multiple: true
+ - name: Cleanup
+ run: |
+ # Remove the granular manifests
+ rm -f artifacts/*-dist-manifest.json
+ - name: Create GitHub Release
+ env:
+ PRERELEASE_FLAG: "${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease' || '' }}"
+ ANNOUNCEMENT_TITLE: "${{ fromJson(steps.host.outputs.manifest).announcement_title }}"
+ ANNOUNCEMENT_BODY: "${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}"
+ RELEASE_COMMIT: "${{ github.sha }}"
+ run: |
+ # Write and read notes from a file to avoid quoting breaking things
+ echo "$ANNOUNCEMENT_BODY" > $RUNNER_TEMP/notes.txt
+
+ gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/*
+
+ announce:
+ needs:
+ - plan
+ - host
+ # use "always() && ..." to allow us to wait for all publish jobs while
+ # still allowing individual publish jobs to skip themselves (for prereleases).
+ # "host" however must run to completion, no skipping allowed!
+ if: ${{ always() && needs.host.result == 'success' }}
+ runs-on: self-hosted
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ submodules: recursive
diff --git a/.github/workflows/web.yml b/.github/workflows/web.yml
new file mode 100644
index 0000000..1094037
--- /dev/null
+++ b/.github/workflows/web.yml
@@ -0,0 +1,99 @@
+# Workflow to build your docs with oranda (and mdbook)
+# and deploy them to Github Pages
+name: Web
+
+# We're going to push to the gh-pages branch, so we need that permission
+permissions:
+ contents: write
+
+# What situations do we want to build docs in?
+# All of these work independently and can be removed / commented out
+# if you don't want oranda/mdbook running in that situation
+on:
+ # Check that a PR didn't break docs!
+ #
+ # Note that the "Deploy to Github Pages" step won't run in this mode,
+ # so this won't have any side-effects. But it will tell you if a PR
+ # completely broke oranda/mdbook. Sadly we don't provide previews (yet)!
+ pull_request:
+
+ # Whenever something gets pushed to main, update the docs!
+ # This is great for getting docs changes live without cutting a full release.
+ #
+ # Note that if you're using cargo-dist, this will "race" the Release workflow
+ # that actually builds the Github Release that oranda tries to read (and
+ # this will almost certainly complete first). As a result you will publish
+ # docs for the latest commit but the oranda landing page won't know about
+ # the latest release. The workflow_run trigger below will properly wait for
+ # cargo-dist, and so this half-published state will only last for ~10 minutes.
+ #
+ # If you only want docs to update with releases, disable this, or change it to
+ # a "release" branch. You can, of course, also manually trigger a workflow run
+ # when you want the docs to update.
+ push:
+ branches:
+ - main
+
+ # Whenever a workflow called "Release" completes, update the docs!
+ #
+ # If you're using cargo-dist, this is recommended, as it will ensure that
+ # oranda always sees the latest release right when it's available. Note
+ # however that Github's UI is wonky when you use workflow_run, and won't
+ # show this workflow as part of any commit. You have to go to the "actions"
+ # tab for your repo to see this one running (the gh-pages deploy will also
+ # only show up there).
+ workflow_run:
+ workflows: [ "Release" ]
+ types:
+ - completed
+
+# Alright, let's do it!
+jobs:
+ web:
+ name: Build and deploy site and docs
+ runs-on: self-hosted
+ steps:
+ # Setup
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: swatinem/rust-cache@v2
+
+ # If you use any mdbook plugins, here's the place to install them!
+
+ # Install and run oranda (and mdbook)!
+ #
+ # This will write all output to ./public/ (including copying mdbook's output to there).
+ - name: Install and run oranda
+ run: |
+ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/oranda/releases/latest/download/oranda-installer.sh | sh
+ oranda build
+
+ - name: Prepare HTML for link checking
+ # untitaker/hyperlink supports no site prefixes, move entire site into
+ # a subfolder
+ run: mkdir /tmp/public/ && cp -R public /tmp/public/oranda
+
+ - name: Check HTML for broken internal links
+ uses: untitaker/hyperlink@0.1.29
+ with:
+ args: /tmp/public/
+
+ # Deploy to our gh-pages branch (creating it if it doesn't exist).
+ # The "public" dir that oranda made above will become the root dir
+ # of this branch.
+ #
+ # Note that once the gh-pages branch exists, you must
+ # go into repo's settings > pages and set "deploy from branch: gh-pages".
+ # The other defaults work fine.
+ - name: Deploy to Github Pages
+ uses: JamesIves/github-pages-deploy-action@v4.4.1
+ # ONLY if we're on main (so no PRs or feature branches allowed!)
+ if: ${{ github.ref == 'refs/heads/main' }}
+ with:
+ branch: gh-pages
+ # Gotta tell the action where to find oranda's output
+ folder: public
+ token: ${{ secrets.GITHUB_TOKEN }}
+ single-commit: true
From 4693a74fb098d8e18594250db760136709053585 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:05:53 +0300
Subject: [PATCH 18/22] docs: add crate-level READMEs
---
crates/core/README.md | 0
crates/parser/README.md | 0
crates/shared/README.md | 0
3 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 crates/core/README.md
create mode 100644 crates/parser/README.md
create mode 100644 crates/shared/README.md
diff --git a/crates/core/README.md b/crates/core/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/crates/parser/README.md b/crates/parser/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/crates/shared/README.md b/crates/shared/README.md
new file mode 100644
index 0000000..e69de29
From 89a2f6f1d52df74fb2e374b1fca44208b47c3312 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:05:53 +0300
Subject: [PATCH 19/22] chore: add project metadata and distribution config
---
.SRCINFO | 0
FUNDING.yml | 3 +++
dist-workspace.toml | 17 +++++++++++++++++
oranda.json | 41 +++++++++++++++++++++++++++++++++++++++++
4 files changed, 61 insertions(+)
create mode 100644 .SRCINFO
create mode 100644 FUNDING.yml
create mode 100644 dist-workspace.toml
create mode 100644 oranda.json
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 0000000..e69de29
diff --git a/FUNDING.yml b/FUNDING.yml
new file mode 100644
index 0000000..a4d752a
--- /dev/null
+++ b/FUNDING.yml
@@ -0,0 +1,3 @@
+github: [ErenayDev]
+liberapay: ErenayDev
+open_collective: erenay
diff --git a/dist-workspace.toml b/dist-workspace.toml
new file mode 100644
index 0000000..8409e06
--- /dev/null
+++ b/dist-workspace.toml
@@ -0,0 +1,17 @@
+[workspace]
+members = ["cargo:."]
+
+# Config for 'dist'
+[dist]
+# The preferred dist version to use in CI (Cargo.toml SemVer syntax)
+cargo-dist-version = "0.31.0"
+# CI backends to support
+ci = "github"
+# The installers to generate for each app
+installers = ["shell", "powershell"]
+# Target platforms to build apps for (Rust target-triple syntax)
+targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc"]
+# Path that installers should place binaries in
+install-path = "CARGO_HOME"
+# Whether to install an updater program
+install-updater = false
diff --git a/oranda.json b/oranda.json
new file mode 100644
index 0000000..3012cc4
--- /dev/null
+++ b/oranda.json
@@ -0,0 +1,41 @@
+{
+ "project": {
+ "name": "Checkpoint.ts",
+ "repository": "https://github.com/ErenayDev/checkpoint-ts",
+ "license": "MIT"
+ },
+ "styles": {
+ "theme": "axodark",
+ "favicon": "https://www.axo.dev/favicon.ico"
+ },
+ "marketing": {
+ "social": {
+ "image": "https://www.axo.dev/meta_small.jpeg",
+ "image_alt": "erenay",
+ "twitter_account": "@erenaydev"
+ }
+ },
+ "build": {
+ "path_prefix": "checkpoint-ts"
+ },
+ "components": {
+ "changelog": true,
+ "funding": {
+ "yml_path": "FUNDING.yml",
+ "preferred_funding": "github"
+ },
+ "artifacts": {
+ "package_managers": {
+ "preferred": {
+ "cargo": "cargo install checkpoint-ts"
+ },
+ "additional": {
+ "binstall": "cargo binstall checkpoint-ts",
+ "aur": "pacman -S checkpoint",
+ "nix-env": "nix-env -i checkpoint-ts",
+ "nix flake": "nix profile install github:ErenayDev/checkpoint-ts"
+ }
+ }
+ }
+ }
+}
From ecc723b080f11318a81261b8cc898f48dbfe1c74 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:06:21 +0300
Subject: [PATCH 20/22] chore: remove tracked .checkpoint artifacts
---
.../transform_examples/.checkpoint/cache.json | 10 --
.../.checkpoint/runtime/bun.lock | 22 ---
.../.checkpoint/runtime/checkpoint-runtime.ts | 57 --------
.../.checkpoint/runtime/index.ts | 126 ------------------
.../.checkpoint/runtime/package-lock.json | 53 --------
.../.checkpoint/runtime/package.json | 13 --
.../.checkpoint/runtime/runtime.error.log | 6 -
.../.checkpoint/runtime/runtime.log | 3 -
.../.checkpoint/runtime/shm/constants.ts | 9 --
.../.checkpoint/runtime/shm/ffi.ts | 38 ------
.../.checkpoint/runtime/shm/shared-memory.ts | 113 ----------------
.../.checkpoint/transforms/index.ts | 120 -----------------
12 files changed, 570 deletions(-)
delete mode 100644 examples/transform_examples/.checkpoint/cache.json
delete mode 100644 examples/transform_examples/.checkpoint/runtime/bun.lock
delete mode 100644 examples/transform_examples/.checkpoint/runtime/checkpoint-runtime.ts
delete mode 100644 examples/transform_examples/.checkpoint/runtime/index.ts
delete mode 100644 examples/transform_examples/.checkpoint/runtime/package-lock.json
delete mode 100644 examples/transform_examples/.checkpoint/runtime/package.json
delete mode 100644 examples/transform_examples/.checkpoint/runtime/runtime.error.log
delete mode 100644 examples/transform_examples/.checkpoint/runtime/runtime.log
delete mode 100644 examples/transform_examples/.checkpoint/runtime/shm/constants.ts
delete mode 100644 examples/transform_examples/.checkpoint/runtime/shm/ffi.ts
delete mode 100644 examples/transform_examples/.checkpoint/runtime/shm/shared-memory.ts
delete mode 100644 examples/transform_examples/.checkpoint/transforms/index.ts
diff --git a/examples/transform_examples/.checkpoint/cache.json b/examples/transform_examples/.checkpoint/cache.json
deleted file mode 100644
index d70f40f..0000000
--- a/examples/transform_examples/.checkpoint/cache.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "version": "0.1.2",
- "files": {
- "index.ts": {
- "hash": "520e29cab2709ba655d0e93929f29f66163e23b8f61f6de3f9a6070b2ea968fb",
- "last_transform": "2026-01-19T12:54:31.064317420+00:00",
- "transform_path": "examples/transform_examples/.checkpoint/transforms/index.ts"
- }
- }
-}
diff --git a/examples/transform_examples/.checkpoint/runtime/bun.lock b/examples/transform_examples/.checkpoint/runtime/bun.lock
deleted file mode 100644
index 9ab82ca..0000000
--- a/examples/transform_examples/.checkpoint/runtime/bun.lock
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "lockfileVersion": 1,
- "configVersion": 0,
- "workspaces": {
- "": {
- "name": "checkpoint-runtime",
- "devDependencies": {
- "@types/bun": "latest",
- "@types/node": "^25.0.8",
- },
- },
- },
- "packages": {
- "@types/bun": ["@types/bun@1.3.6", "", { "dependencies": { "bun-types": "1.3.6" } }, "sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA=="],
-
- "@types/node": ["@types/node@25.0.8", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg=="],
-
- "bun-types": ["bun-types@1.3.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ=="],
-
- "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
- }
-}
diff --git a/examples/transform_examples/.checkpoint/runtime/checkpoint-runtime.ts b/examples/transform_examples/.checkpoint/runtime/checkpoint-runtime.ts
deleted file mode 100644
index df93f95..0000000
--- a/examples/transform_examples/.checkpoint/runtime/checkpoint-runtime.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import { SharedMemory } from "./shm/shared-memory";
-
-const shmId = process.env.CHECKPOINT_SHM_ID;
-if (!shmId) {
- console.error("CHECKPOINT_SHM_ID not set");
- process.exit(1);
-}
-
-const shm = SharedMemory.open(shmId);
-
-interface ExecuteRequest {
- functionName: string;
- args: unknown[];
- context?: unknown;
-}
-
-interface ExecuteResponse {
- type: "continue" | "skip" | "error";
- returnValue?: unknown;
- error?: string;
-}
-
-export const __checkpoint__ = {
- execute(
- functionName: string,
- fn: (...args: unknown[]) => T,
- args: unknown[],
- context?: unknown,
- ): T {
- const request: ExecuteRequest = {
- functionName,
- args,
- context: context ? context.constructor.name : undefined,
- };
-
- shm.writeJson({
- type: "checkpoint",
- payload: request,
- });
-
- let response: ExecuteResponse | null = null;
-
- while (!response) {
- response = shm.waitAndReadJson(1000);
- }
-
- if (response.type === "error") {
- throw new Error(response.error || "Checkpoint error");
- }
-
- if (response.type === "skip") {
- return response.returnValue as T;
- }
-
- return fn.apply(context, args as never[]);
- },
-};
diff --git a/examples/transform_examples/.checkpoint/runtime/index.ts b/examples/transform_examples/.checkpoint/runtime/index.ts
deleted file mode 100644
index 5c9c777..0000000
--- a/examples/transform_examples/.checkpoint/runtime/index.ts
+++ /dev/null
@@ -1,126 +0,0 @@
-import { SharedMemory } from "./shm/shared-memory";
-
-const shmId = process.env.CHECKPOINT_SHM_ID;
-if (!shmId) {
- console.error("CHECKPOINT_SHM_ID not set");
- process.exit(1);
-}
-
-let shm: SharedMemory;
-try {
- shm = SharedMemory.open(shmId);
- console.error(`[DEBUG] SHM opened successfully`);
-} catch (error) {
- console.error(`[DEBUG] Failed to open SHM: ${error}`);
- process.exit(1);
-}
-
-interface Message {
- type: string;
- payload?: unknown;
-}
-
-interface CheckpointPayload {
- functionName: string;
- args: unknown[];
- context?: string;
-}
-
-const appPath = process.env.CHECKPOINT_APP_PATH;
-
-function handleCheckpoint(payload: CheckpointPayload): void {
- const { functionName, args, context } = payload;
- const logMessage = context
- ? `${context}.${functionName}(${JSON.stringify(args)})`
- : `${functionName}(${JSON.stringify(args)})`;
-
- shm.writeJson({
- log: logMessage,
- current_function: functionName,
- });
-
- shm.writeJson({
- type: "continue",
- });
-}
-
-async function mainLoop(): Promise {
- console.error(`[DEBUG] Entering main loop`);
-
- console.error(`[DEBUG] Sending ready message`);
- shm.writeJson({
- type: "runtime_ready",
- log: "Runtime ready, waiting for commands",
- });
-
- while (true) {
- const message = shm.waitAndReadJson(100);
-
- if (!message) continue;
-
- console.error(`[DEBUG] Received message: ${JSON.stringify(message)}`);
-
- switch (message.type) {
- case "load_app":
- console.error(`[DEBUG] Load app command received`);
-
- shm.writeJson({
- type: "version",
- value: {
- lv: Bun.version_with_sha,
- v: Bun.version,
- },
- });
-
- if (!appPath) {
- shm.writeJson({
- log: "CHECKPOINT_APP_PATH not set",
- type: "error",
- });
- break;
- }
-
- shm.writeJson({
- log: `Loading application: ${appPath}`,
- });
-
- try {
- const absolutePath =
- appPath.startsWith("/") || appPath.startsWith("file://")
- ? appPath
- : `file://${appPath}`;
-
- console.error(`[DEBUG] Importing: ${absolutePath}`);
- await import(absolutePath);
- console.error(`[DEBUG] App loaded successfully`);
-
- shm.writeJson({
- log: "Application loaded and ready",
- });
- } catch (error) {
- console.error(`[DEBUG] Import failed: ${error}`);
- shm.writeJson({
- log: `Failed to load app: ${error}`,
- type: "error",
- });
- }
- break;
-
- case "checkpoint":
- console.error(`[DEBUG] Handling checkpoint`);
- handleCheckpoint(message.payload as CheckpointPayload);
- break;
-
- case "shutdown":
- console.error(`[DEBUG] Shutdown requested`);
- shm.close();
- process.exit(0);
-
- default:
- console.error(`[DEBUG] Unknown message type: '${message.type}'`);
- shm.writeJson({ type: "error", message: "unknown message type" });
- }
- }
-}
-
-mainLoop();
diff --git a/examples/transform_examples/.checkpoint/runtime/package-lock.json b/examples/transform_examples/.checkpoint/runtime/package-lock.json
deleted file mode 100644
index 905dc5e..0000000
--- a/examples/transform_examples/.checkpoint/runtime/package-lock.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "checkpoint-runtime",
- "version": "0.1.2",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "checkpoint-runtime",
- "version": "0.1.2",
- "devDependencies": {
- "@types/bun": "latest",
- "@types/node": "^25.0.8"
- }
- },
- "node_modules/@types/bun": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.3.6.tgz",
- "integrity": "sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bun-types": "1.3.6"
- }
- },
- "node_modules/@types/node": {
- "version": "25.0.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz",
- "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "undici-types": "~7.16.0"
- }
- },
- "node_modules/bun-types": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.3.6.tgz",
- "integrity": "sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
- "dev": true,
- "license": "MIT"
- }
- }
-}
diff --git a/examples/transform_examples/.checkpoint/runtime/package.json b/examples/transform_examples/.checkpoint/runtime/package.json
deleted file mode 100644
index 2eba471..0000000
--- a/examples/transform_examples/.checkpoint/runtime/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "checkpoint-runtime",
- "version": "0.1.2",
- "type": "module",
- "main": "index.ts",
- "scripts": {
- "start": "bun run index.ts"
- },
- "devDependencies": {
- "@types/bun": "latest",
- "@types/node": "^25.0.8"
- }
-}
diff --git a/examples/transform_examples/.checkpoint/runtime/runtime.error.log b/examples/transform_examples/.checkpoint/runtime/runtime.error.log
deleted file mode 100644
index a634635..0000000
--- a/examples/transform_examples/.checkpoint/runtime/runtime.error.log
+++ /dev/null
@@ -1,6 +0,0 @@
-[DEBUG] SHM opened successfully
-[DEBUG] Entering main loop
-[DEBUG] Sending ready message
-[DEBUG] Received message: {"type":"load_app"}
-[DEBUG] Load app command received
-[DEBUG] Importing: /home/erenay/Desktop/Checkpoint-ts/examples/transform_examples/.checkpoint/transforms/index.ts
diff --git a/examples/transform_examples/.checkpoint/runtime/runtime.log b/examples/transform_examples/.checkpoint/runtime/runtime.log
deleted file mode 100644
index deaa472..0000000
--- a/examples/transform_examples/.checkpoint/runtime/runtime.log
+++ /dev/null
@@ -1,3 +0,0 @@
-[RUST] Starting runtime with SHM: /shmem_D1D37440CA655C1C
-[RUST] App path: /home/erenay/Desktop/Checkpoint-ts/examples/transform_examples/.checkpoint/transforms/index.ts
-Transformed code is executing!
diff --git a/examples/transform_examples/.checkpoint/runtime/shm/constants.ts b/examples/transform_examples/.checkpoint/runtime/shm/constants.ts
deleted file mode 100644
index 03ef9e2..0000000
--- a/examples/transform_examples/.checkpoint/runtime/shm/constants.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const HEADER_SIZE = 8;
-export const BUFFER_SIZE = 1024 * 1024;
-export const SINGLE_CHANNEL_SIZE = HEADER_SIZE + BUFFER_SIZE;
-export const TOTAL_SIZE = SINGLE_CHANNEL_SIZE * 2;
-
-export const O_RDWR = 2;
-export const PROT_READ = 0x1;
-export const PROT_WRITE = 0x2;
-export const MAP_SHARED = 0x01;
diff --git a/examples/transform_examples/.checkpoint/runtime/shm/ffi.ts b/examples/transform_examples/.checkpoint/runtime/shm/ffi.ts
deleted file mode 100644
index 5150ebf..0000000
--- a/examples/transform_examples/.checkpoint/runtime/shm/ffi.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { dlopen, FFIType } from "bun:ffi";
-
-const libcPath =
- process.platform === "linux" ? "libc.so.6" : "libSystem.B.dylib";
-
-export const libc = dlopen(libcPath, {
- shm_open: {
- args: [FFIType.ptr, FFIType.i32, FFIType.i32],
- returns: FFIType.i32,
- },
- ftruncate: {
- args: [FFIType.i32, FFIType.i64],
- returns: FFIType.i32,
- },
- mmap: {
- args: [
- FFIType.ptr,
- FFIType.u64,
- FFIType.i32,
- FFIType.i32,
- FFIType.i32,
- FFIType.i64,
- ],
- returns: FFIType.ptr,
- },
- munmap: {
- args: [FFIType.ptr, FFIType.u64],
- returns: FFIType.i32,
- },
- close: {
- args: [FFIType.i32],
- returns: FFIType.i32,
- },
- shm_unlink: {
- args: [FFIType.ptr],
- returns: FFIType.i32,
- },
-});
diff --git a/examples/transform_examples/.checkpoint/runtime/shm/shared-memory.ts b/examples/transform_examples/.checkpoint/runtime/shm/shared-memory.ts
deleted file mode 100644
index 0c825de..0000000
--- a/examples/transform_examples/.checkpoint/runtime/shm/shared-memory.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-import { ptr, toArrayBuffer } from "bun:ffi";
-import { libc } from "./ffi";
-import {
- HEADER_SIZE,
- BUFFER_SIZE,
- SINGLE_CHANNEL_SIZE,
- TOTAL_SIZE,
- O_RDWR,
- PROT_READ,
- PROT_WRITE,
- MAP_SHARED,
-} from "./constants";
-
-export class SharedMemory {
- private pointer: number;
- private buffer: Uint8Array;
- private name: string;
-
- private constructor(name: string, pointer: number) {
- this.name = name;
- this.pointer = pointer;
- this.buffer = new Uint8Array(toArrayBuffer(pointer, 0, TOTAL_SIZE));
- }
-
- static open(shmName: string): SharedMemory {
- const nameBuffer = Buffer.from(shmName + "\0");
-
- const fd = libc.symbols.shm_open(ptr(nameBuffer), O_RDWR, 0o666);
- if (fd < 0) {
- throw new Error(`shm_open failed: ${shmName}`);
- }
-
- const address = libc.symbols.mmap(
- null,
- TOTAL_SIZE,
- PROT_READ | PROT_WRITE,
- MAP_SHARED,
- fd,
- 0,
- );
-
- libc.symbols.close(fd);
-
- if (address === 0 || address === 0xffffffffffffffffn) {
- throw new Error("mmap failed");
- }
-
- return new SharedMemory(shmName, Number(address));
- }
-
- read(): Uint8Array | null {
- const view = new DataView(this.buffer.buffer, 0);
- const flagArray = new Uint32Array(this.buffer.buffer, 0, 1);
- const readyFlag = Atomics.load(flagArray, 0);
-
- if (readyFlag === 0) {
- return null;
- }
-
- const dataLen = view.getUint32(4, true);
- const data = this.buffer.slice(HEADER_SIZE, HEADER_SIZE + dataLen);
-
- Atomics.store(flagArray, 0, 0);
-
- return data;
- }
-
- write(data: Uint8Array): void {
- if (data.length > BUFFER_SIZE) {
- throw new Error("data exceeds buffer size");
- }
-
- const offset = SINGLE_CHANNEL_SIZE;
- const view = new DataView(this.buffer.buffer, offset);
- const flagArray = new Uint32Array(this.buffer.buffer, offset, 1);
-
- this.buffer.set(data, offset + HEADER_SIZE);
- view.setUint32(4, data.length, true);
- Atomics.store(flagArray, 0, 1);
- }
-
- readJson(): T | null {
- const data = this.read();
- if (!data) return null;
- return JSON.parse(new TextDecoder().decode(data));
- }
-
- writeJson(obj: unknown): void {
- const data = new TextEncoder().encode(JSON.stringify(obj));
- this.write(data);
- }
-
- waitAndRead(timeoutMs: number): Uint8Array | null {
- const start = performance.now();
-
- while (performance.now() - start < timeoutMs) {
- const data = this.read();
- if (data) return data;
- }
-
- return null;
- }
-
- waitAndReadJson(timeoutMs: number): T | null {
- const data = this.waitAndRead(timeoutMs);
- if (!data) return null;
- return JSON.parse(new TextDecoder().decode(data));
- }
-
- close(): void {
- libc.symbols.munmap(this.pointer, TOTAL_SIZE);
- }
-}
diff --git a/examples/transform_examples/.checkpoint/transforms/index.ts b/examples/transform_examples/.checkpoint/transforms/index.ts
deleted file mode 100644
index 209eab3..0000000
--- a/examples/transform_examples/.checkpoint/transforms/index.ts
+++ /dev/null
@@ -1,120 +0,0 @@
-import { __checkpoint__ } from "../runtime/checkpoint-runtime";
-class ApiClient {
- baseUrl;
- defaultHeaders;
- defaultTimeout;
- constructor(baseUrl, defaultTimeout = 1e4) {
- this.baseUrl = __checkpoint__.execute(
- "baseUrl.replace",
- baseUrl.replace,
- [/\/$/, ""],
- baseUrl,
- );
- this.defaultHeaders = { "Content-Type": "application/json" };
- this.defaultTimeout = defaultTimeout;
- }
- setHeader(key, value) {
- this.defaultHeaders[key] = value;
- }
- removeHeader(key) {
- delete this.defaultHeaders[key];
- }
- buildUrl(endpoint, params) {
- const url = new URL(`${this.baseUrl}${endpoint}`);
- if (params) {
- __checkpoint__
- .execute("Object.entries", Object.entries, [params], Object)
- .forEach(([key, value]) => {
- __checkpoint__.execute(
- "url.searchParams.append",
- url.searchParams.append,
- [key, value],
- url.searchParams,
- );
- });
- }
- return __checkpoint__.execute("url.toString", url.toString, [], url);
- }
- async request(method, endpoint, config = {}) {
- const controller = new AbortController();
- const timeoutId = __checkpoint__.execute("setTimeout", setTimeout, [
- () =>
- __checkpoint__.execute(
- "controller.abort",
- controller.abort,
- [],
- controller,
- ),
- config.timeout ?? this.defaultTimeout,
- ]);
- const response = await __checkpoint__.execute("fetch", fetch, [
- __checkpoint__.execute(
- "this.buildUrl",
- this.buildUrl,
- [endpoint, config.params],
- this,
- ),
- {
- method,
- headers: { ...this.defaultHeaders, ...config.headers },
- body: config.body
- ? __checkpoint__.execute(
- "JSON.stringify",
- JSON.stringify,
- [config.body],
- JSON,
- )
- : undefined,
- signal: controller.signal,
- },
- ]);
- __checkpoint__.execute("clearTimeout", clearTimeout, [timeoutId]);
- if (!response.ok) {
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
- }
- const data = await __checkpoint__.execute(
- "response.json",
- response.json,
- [],
- response,
- );
- return { data, status: response.status, headers: response.headers };
- }
- get(endpoint, config) {
- return __checkpoint__.execute(
- "this.request",
- this.request,
- ["GET", endpoint, config],
- this,
- );
- }
- post(endpoint, body, config) {
- return __checkpoint__.execute(
- "this.request",
- this.request,
- ["POST", endpoint, { ...config, body }],
- this,
- );
- }
- put(endpoint, body, config) {
- return __checkpoint__.execute(
- "this.request",
- this.request,
- ["PUT", endpoint, { ...config, body }],
- this,
- );
- }
- delete(endpoint, config) {
- return __checkpoint__.execute(
- "this.request",
- this.request,
- ["DELETE", endpoint, config],
- this,
- );
- }
-}
-export { ApiClient };
-console.log("Transformed code is executing!");
-
-const client = new ApiClient("https://api.example.com");
-client.get("/test", {}).then(console.log).catch(console.error);
From 710bc85e81dac0326792391082eb2457469c3166 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:25:54 +0300
Subject: [PATCH 21/22] docs: update CHANGELOG for v0.1.3
---
CHANGELOG.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 75 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 12511b0..6b41175 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,62 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [0.1.2] - 20 November 2025
+## [0.1.3] - 27 February 2026
+
+### βοΈ Miscellaneous Tasks
+
+- **tooling**: Remove cargo-bin wrapper and custom aliases
+
+- Remove root-level test artifacts
+
+- **github**: Update PR template location
+
+- **config**: Add node_modules to gitignore
+
+- **pre-commit**: Disable end-of-file-fixer hook
+
+- Add .checkpoint to gitignore
+
+- Add oranda output to gitignore
+
+- Add project metadata and distribution config
+
+- Remove tracked .checkpoint artifacts
+
+### ποΈ Build System
+
+- Bump workspace to v0.1.3, update swc_core and throbber-widgets-tui deps, add dist profile
+
+### π· CI/CD
+
+- Switch runners from ubuntu-latest to self-hosted
+
+- Add release and web workflows
+
+### π Documentation
+
+- Update CHANGELOG for v0.1.2
+
+- Rewrite README with simplified structure and sponsor section
+
+- Add installation and release documentation
+
+- Add crate-level READMEs
+
+### π Features
+
+- **github**: Add issue and PR templates
+
+- **runtime**: Add shared memory IPC runtime and examples
+
+### π Refactor
+
+- **workspace**: Migrate to multi-crate workspace structure
+
+- **core**: Remove old monolithic source structure
+
+- Replace strip_type with typescript transform using GLOBALS context
+---## [0.1.2] - 20 November 2025
### βοΈ Miscellaneous Tasks
@@ -17,8 +72,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### π· CI/CD
-- Added linux environment
-
- Configure openssl for windows
- Add path filters to optimize workflow triggers
@@ -29,12 +82,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### π Features
-- Updated dashboard layout
-
-- Added variable editor skeleton
-
-- Added keymap controls for TUI switching
-
- Added git-cliff for keeping changelogs
- **profiler**: Implement performance profiler scene
@@ -52,4 +99,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- **app**: Extract keyboard handling and improve state management
- **variable_editor**: Remove unnecessary references
+---## [0.1.1] - 17 November 2025
+
+### π· CI/CD
+
+- Added linux environment
+
+### π Features
+
+- Updated dashboard layout
+
+- Added variable editor skeleton
+
+- Added keymap controls for TUI switching
+
+### π Refactor
+
+- Cargo fmt linting fix
+
+- Cargo fmt linting fix
---
From 9afc2103df4d04c1950893cb6ca66e6ab1ef3ab9 Mon Sep 17 00:00:00 2001
From: ErenayDev
Date: Fri, 27 Feb 2026 16:32:51 +0300
Subject: [PATCH 22/22] build: allow dirty ci config for cargo-dist
---
dist-workspace.toml | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dist-workspace.toml b/dist-workspace.toml
index 8409e06..4fedcff 100644
--- a/dist-workspace.toml
+++ b/dist-workspace.toml
@@ -10,8 +10,16 @@ ci = "github"
# The installers to generate for each app
installers = ["shell", "powershell"]
# Target platforms to build apps for (Rust target-triple syntax)
-targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc"]
+targets = [
+ "aarch64-apple-darwin",
+ "aarch64-unknown-linux-gnu",
+ "x86_64-apple-darwin",
+ "x86_64-unknown-linux-gnu",
+ "x86_64-pc-windows-msvc",
+]
# Path that installers should place binaries in
install-path = "CARGO_HOME"
# Whether to install an updater program
install-updater = false
+# Allow self-hosted in workflow file
+allow-dirty = ["ci"]