dart_rip_log 0.1.0 copy "dart_rip_log: ^0.1.0" to clipboard
dart_rip_log: ^0.1.0 copied to clipboard

Parses CD rip log files from EAC, XLD, and other rippers into structured, JSON-serialisable quality data (AccurateRip, CRCs, peaks, errors).

Changelog #

0.1.0 #

  • Aggregate quality on RipLog.quality — a single RipLogQuality value (allVerified, partiallyVerified, mismatches, errors, unknown) derived from the track list with a documented precedence. Also emitted under the quality key in the JSON output — useful for dashboards.
  • Lineage metadata via new LogSource class (byte size, line count, parser name, UTC parse timestamp) attached as RipLog.source when parsing through parseRipLogFile. RipLog.withSource(...) returns a copy with a different source. compareRipLogs ignores source since its wall-clock timestamp is not a rip property.
  • Track timing fields on RipLogTrack: startSector, lengthSectors, durationSeconds. Nullable, omitted from JSON when absent, tracked by compareRipLogs.
  • All new fields fully covered by equality, hash, fromJson, and golden tests. Total suite: 205 tests.

Deferred to 0.1.x parsers milestone #

Full parsers for whipper (#2), CUERipper (#3), and dBpoweramp (#4) still require real-world sample logs. Detection and stubs remain in place. Please open an issue on GitHub with a sample log to unblock these.

0.0.5 #

  • CLI: --format ndjson — streaming-friendly one-JSON-object-per-line output (useful with jq and log pipelines).
  • CLI: --filter <mode> — hide non-problem tracks in --format text / --summary output. Values: all (default), mismatch, errors, problems (mismatch or error counts).
  • CLI: --fail-on <policy> — choose which conditions trigger exit 1. Values: any (default, current behaviour), mismatch, errors, never. Useful for tuning CI pipelines.
  • CLI: -r / --recursive — walk directories for *.log files instead of requiring individual paths.
  • CLI: --color <mode>auto (default, based on stdout.hasTerminal and NO_COLOR), always, never. Colours AR status (verified → green, mismatch → red, notInDatabase → yellow, notChecked → dim) and the ERRORS label.
  • CLI tests grown to 27 (all covered by the new flags). Total suite: 190.

0.0.4 #

  • EAC: parse localised month names in the extraction date. Coverage for English, German, French, Spanish, Italian, Dutch, and Portuguese.
  • RipLog.testAndCopy — new field, derived from the presence of per-track Test CRC lines. null when no tracks were parsed, otherwise true if any track recorded a test CRC (test + copy mode) or false (copy-only mode).
  • RipLog.accurateRipDiscId and RipLog.accurateRipTotalSubmissions — new fields populated from XLD's AccurateRip Summary / DiscID: / Total submissions: lines. Serialised in the JSON output when present.
  • 178 tests (7 new covering localised dates, test+copy derivation, and the AR summary block).

0.0.3 #

  • Added fromJson constructors on RipLog, RipLogTrack, TrackErrors, and DriveInfo, completing the JSON round-trip. Unknown enum values degrade to unknown / notChecked rather than throwing, so logs serialised by a newer library version remain readable on older versions.
  • Models now implement == and hashCode (field-wise), so two parsed logs can be compared directly and used as map keys / in sets.
  • New diff utility compareRipLogs(a, b) returns a structured RipLogDiff with per-field entries (tracks[N].copyCrc, tracks[N].errors.readErrors, etc.). Tracks present on only one side are reported as trackAdded / trackRemoved. Parser-level warnings in RipLog.errors are intentionally ignored so re-parses on a newer library don't surface as diffs. Exported types: compareRipLogs, RipLogDiff, RipLogDiffEntry, RipLogDiffKind.
  • Test suite grown to 171 tests (round-trip, equality, diff).

0.0.2 #

  • Relicensed from GPL-3.0 to Apache-2.0.
  • Added GitHub Actions CI (analyze + test on Linux/macOS/Windows against stable and beta Dart SDKs, plus a dart pub publish --dry-run gate).
  • Added dartdoc generation to CI to keep the public API documented.
  • Added a release workflow that publishes prebuilt riplog binaries for Linux x64, macOS arm64, and Windows x64 on every v* tag.
  • README now carries CI, pub, and licence badges.

0.0.1 #

  • Initial release.
  • Full EAC parser: header metadata, per-track fields, AccurateRip v1 and optional v2 signature capture, full error-statistics block, summary and log-checksum footer, Range-rip (single-track whole-disc) logs.
  • Full XLD parser: header, per-track CRC32/AR v1/v2, Statistics block.
  • Format detection and scaffolded parsers for CUERipper, whipper, and dBpoweramp (tool version captured; full per-track parsing pending sample logs).
  • Convenience helpers: isFullyVerified, tracksWithErrors, tracksWithArMismatch, toJson.
  • Command-line tool riplog:
    • JSON, text, and one-line summary output.
    • --help, --version, --quiet/-q flags.
    • Accepts multiple files (emits a JSON array) and reads from stdin (- or when piped).
    • Non-zero exit code on AR mismatch or track errors, for scripting / CI use.
  • Tolerant of malformed input (truncated files, garbled lines, mixed line endings) — never throws on log content.
  • Test suite: 155 tests covering unit parsing, CLI integration, JSON-shape goldens, Unicode filenames, and a parse-throughput smoke test.
0
likes
160
points
36
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Parses CD rip log files from EAC, XLD, and other rippers into structured, JSON-serialisable quality data (AccurateRip, CRCs, peaks, errors).

Repository (GitHub)
View/report issues

Topics

#cd #audio #parser #ripping #accuraterip

License

Apache-2.0 (license)

More

Packages that depend on dart_rip_log