Skip to content

Releases: aipartnerup/apdev

Release 0.2.0

14 Mar 13:29

Choose a tag to compare

Release version 0.2.0

Release 0.1.0

13 Mar 06:50

Choose a tag to compare

Added

  • check-chars: Character validation for source files
    • ASCII + emoji + technical symbols (arrows, box-drawing, math operators)
    • Dangerous invisible/bidi character detection (Trojan Source - CVE-2021-42574)
    • Comment-aware checking for .rs, .py, .js, .ts, .tsx, .jsx files
    • Built-in charset presets: chinese, japanese, korean
    • Custom charset JSON file support
    • APDEV_EXTRA_CHARS environment variable fallback
    • Automatic directory walking with configurable skip lists
    • Default project paths: src/, tests/, examples/, and config files
  • release: Interactive release automation for crates.io
    • Auto-detect project name from Cargo.toml and GitHub repo from git remote
    • Step-by-step menu: version verify, test, build, tag, GitHub release, publish
    • Silent mode (--yes) for CI/CD
  • Pre-commit hook integration via language: system

Removed

  • check-imports command (Python-specific, not applicable to Rust projects)
  • config.rs / pyproject.toml config loader (no longer needed)
  • toml dependency

Release 0.2.2

10 Mar 10:35

Choose a tag to compare

Release version 0.2.2

Release 0.2.1

09 Mar 14:08

Choose a tag to compare

Release version 0.2.1

Release 0.2.3

09 Mar 13:53

Choose a tag to compare

Release version 0.2.3

See CHANGELOG.md for details.

Release 0.2.2

09 Mar 13:30

Choose a tag to compare

Release version 0.2.2

See CHANGELOG.md for details.

Release 0.2.1

06 Mar 10:37

Choose a tag to compare

Fixed

  • Release script version check now supports dynamic versions via importlib.metadata (not just static __version__ = "x.x.x")
  • Added hint message suggesting pip install -e . when version mismatch is detected

Release 0.2.0

25 Feb 08:36

Choose a tag to compare

Added

  • Custom charset support via shared JSON definition files (shared/charsets/)
  • loadCharset(nameOrPath) — load a bundled preset (e.g. chinese) or custom JSON file
  • resolveCharsets(charsetNames, charsetFiles) — merge base + extra charsets with deduplication
  • Bundled charset presets: base, chinese, japanese, korean
  • CLI --charset flag (repeatable) to enable preset charsets
  • CLI --charset-file flag (repeatable) to load custom charset JSON files
  • APDEV_EXTRA_CHARS environment variable — comma-separated charset names or file paths, used as fallback when no CLI args provided
  • check-chars: Block Elements (U+2580-U+259F) and Braille Patterns (U+2800-U+28FF) to default allowed ranges
  • Exported isDangerousChar from public API (index.ts)
  • Exported RangeEntry, DangerousEntry, CharsetData interfaces

Changed

  • Character ranges and dangerous codepoints now loaded from charsets/base.json instead of hardcoded constants
  • checkFile() and checkPaths() accept optional extraRanges and dangerousMap params for custom charset support
  • isAllowedChar() now excludes dangerous codepoints (Trojan Source vectors) even though they fall within the General Punctuation allowed range
  • typescript moved from dependencies to optional peerDependencies — build output reduced from 9.50 MB to 17.88 KB
  • Commander.js --yes option syntax fixed to -y, --yes

Fixed

  • isAllowedChar() previously returned true for dangerous codepoints (U+200B, U+202E, etc.) because they fall within the General Punctuation range (U+2000-U+206F)
  • checkFile() now uses lazy-loaded cache instead of re-parsing base.json on every call
  • Error details now included in file read failure messages

Release 0.2.0

25 Feb 08:38

Choose a tag to compare

Added

  • Custom charset support via shared JSON definition files (shared/charsets/)
  • load_charset(name_or_path) — load a bundled preset (e.g. chinese) or custom JSON file
  • resolve_charsets(charset_names, charset_files) — merge base + extra charsets with deduplication
  • Bundled charset presets: base, chinese, japanese, korean
  • CLI --charset flag (repeatable) to enable preset charsets
  • CLI --charset-file flag (repeatable) to load custom charset JSON files
  • APDEV_EXTRA_CHARS environment variable — comma-separated charset names or file paths, used as fallback when no CLI args provided
  • check-chars: Block Elements (U+2580-U+259F) and Braille Patterns (U+2800-U+28FF) to default allowed ranges

Changed

  • Character ranges and dangerous codepoints now loaded from charsets/base.json instead of hardcoded constants
  • check_file() and check_paths() accept optional extra_ranges and dangerous kwargs for custom charset support
  • is_allowed_char() now excludes dangerous codepoints (Trojan Source vectors) even though they fall within the General Punctuation allowed range

Fixed

  • is_allowed_char() previously returned True for dangerous codepoints (U+200B, U+202E, etc.) because they fall within the General Punctuation range (U+2000-U+206F)
  • load_charset() now catches all exceptions from importlib.resources (not just FileNotFoundError)
  • check_file() now uses lazy-loaded cache instead of re-parsing base.json on every call

Release 0.1.6

16 Feb 07:50

Choose a tag to compare

Added

  • check-chars: Dangerous character blacklist (bidi controls + zero-width chars, CVE-2021-42574) with comment-aware detection — flags in code, allows in comments
  • check-chars: is_dangerous_char() public function and DANGEROUS_CODEPOINTS constant
  • check-chars: Comment region detection state machine for Python (#) and JS/TS (//, /* */) with string literal tracking
  • check-imports: Relative import support — from .foo import x and from . import foo now resolve correctly for cycle detection

Fixed

  • check-imports: ImportAnalyzer now handles node.level > 0 (relative imports) by resolving against current_module with correct package vs module distinction