$ account bbc
Wraith is a Ruby CLI tool for visual regression testing. It captures screenshots of web pages at multiple viewport widths using headless browsers (PhantomJS, CasperJS, or Chrome via Selenium), compares them with ImageMagick to generate pixel-level diffs, and produces an HTML gallery of results. The tool supports two primary workflows: comparing two different domains (capture mode) and tracking changes over time on a single domain (history mode). It can also spider a site to automatically discover paths. The architecture is a monolithic Ruby gem with a Thor-based CLI, where each step (screenshot capture, cropping, comparison, thumbnail generation, gallery creation) is handled by separate classes. The codebase is functional but tightly coupled to its specific workflow and external dependencies like ImageMagick and PhantomJS. The repository is explicitly deprecated and no longer maintained, with outdated dependencies (Ruby 2.4.1, PhantomJS) and no recent activity.
This repository is a mature, well-maintained Node.js library for building SQS-based applications without boilerplate. It provides a `Consumer` class that polls an AWS SQS queue, invokes user-defined message handlers (`handleMessage` or `handleMessageBatch`), and manages the full message lifecycle: receive, process, delete on success, and visibility timeout management. The architecture is a single class extending a typed `EventEmitter`, emitting events for lifecycle hooks (started, stopped, message_received, message_processed, error, etc.). Key entry points are `Consumer.create(options)`, `consumer.start()`, and `consumer.stop()`. The library supports both single and batch message processing, configurable polling intervals, heartbeat extensions for long-running handlers, graceful shutdown with in-flight message completion, and FIFO queue warnings. External dependencies are minimal: `@aws-sdk/client-sqs` for AWS SDK v3 and `debug` for logging. The codebase is written in TypeScript, fully tested with unit and integration tests, and follows semantic versioning with automated releases via semantic-release.