idx-cli/Cargo.toml
0xrsydn 04eaa75882 fix: handle missing scrip column in April 2026 KSEI PDF
The April 2026 IDX ownership PDF omits the zero-valued scrip column for
some holders, causing the parser to leave holdings_scripless/scrip as
empty strings. This broke normalize_ksei_row which called parse_id_number
on empty input.

Two-layer fix:
- Parser: pop_numeric_tail handles 2-column (missing scrip) rows by
  defaulting scrip to "0"
- Normalizer: parse_id_number_or_zero backstop treats empty component
  share fields as 0 while still requiring total_shares

Also includes AGENTS.md refresh, formatting cleanup (rustfmt), and
version bump to 0.2.2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:15:19 +07:00

50 lines
1.3 KiB
TOML

[package]
name = "idx-cli"
version = "0.2.2"
edition = "2024"
rust-version = "1.85"
description = "CLI tool for Indonesian stock market (IDX) analysis"
license = "MIT"
repository = "https://github.com/0xrsydn/idx-cli"
homepage = "https://github.com/0xrsydn/idx-cli"
keywords = ["idx", "stocks", "indonesia", "cli", "finance"]
categories = ["command-line-utilities", "finance"]
include = [
"/Cargo.toml",
"/Cargo.lock",
"/LICENSE",
"/README.md",
"/src/**",
"/tests/cli.rs",
"/tests/fixtures/**",
]
[[bin]]
name = "idx"
path = "src/main.rs"
[features]
default = ["ownership"]
ownership = ["dep:rusqlite", "dep:quick-xml", "dep:sha2", "dep:zip"]
[dependencies]
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
ureq = { version = "3", features = ["json", "cookies"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
comfy-table = "7"
owo-colors = "4"
toml = "0.8"
directories = "5"
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2"
fastrand = "2"
rusqlite = { version = "0.32", features = ["bundled-full"], optional = true }
quick-xml = { version = "0.37", optional = true }
sha2 = { version = "0.10", optional = true }
zip = { version = "2", default-features = false, features = ["deflate"], optional = true }
[dev-dependencies]
assert_cmd = "2"
predicates = "3"