Skip to content

Releases: aipartnerup/apdev

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

Release 0.1.5

16 Feb 06:07

Choose a tag to compare

Changed

  • Use language-prefixed git tags (python/v0.1.5) to support monorepo with independent package versions
  • URL-encode tag in GitHub API calls to handle / in tag names

Release 0.1.4

15 Feb 13:06

Choose a tag to compare

Fixed

  • Fix release script version check to use PACKAGE_NAME when reading init.py

Release 0.1.3

15 Feb 12:35

Choose a tag to compare

Fixed

  • Fix release script version check to use Python package import name derived from project name (hyphen to underscore)

Release 0.1.2

14 Feb 08:50

Choose a tag to compare

Fixed

  • Fix PyPI version check false positives: use exact match instead of grep -w to prevent partial version matching (e.g. 0.2.0 matching 0.2.0.1)
  • Fix sed RE error on macOS when detecting GitHub repo from git remote (BSD sed doesn't support non-greedy .+?)