open-index/open-npm huggingface dataset:
npm package: @stegapng/cli
Description: A CLI for stegapng
Author: Wes Roberts
Latest version: 1.2.1

<h1 align="center">Stega PNG Command Line Utility</h1>

<p align="center">
  <a href="https://stegapng.netlify.app/">
    <img src="https://github.com/jchook/stega/blob/main/packages/web/public/stega-nobg.png?raw=true" width="300" />
  </a>
</p>

<p align="center">
  Hide arbitrary data in an image's RGB colorspace.
</p>

<p align="center">
  <a href="https://github.com/jchook/stega">Stega PNG project</a> |
  <a href="https://stegapng.netlify.app/">View Demo</a>
</p>


Install
-------

Easily install via your favorite Node.js package manager (e.g. npm):

```sh
npm install -g @stegapng/cli
```


Simple Usage Examples
---------------------

The stega CLI follows typical UNIX syntax conventions. For more usage info, run `stega help`.

```sh
# Embed data into image.png
stega embed image.png < data.txt > embedded.png

# Extract data out of an image
stega extract embedded.png
```


Real-World Usage Examples
-------------------------

You can easily combine stega with other *nix tools to achieve amazing things.


### Files

Embed entire file trees, with gzip compression.

```sh
# Embed files into an image
tar cz mydir | stega embed image.png > embedded.png

# Extract all the files
stega extract embedded.png | tar xz
```

### Encryption

Securely compress and encrypt files before embedding.

```sh
# Embed data encrypted via AES (with a password)
tar cz mydir | gpg --symmetric --cipher-algo AES256 | stega embed image.png > embedded.png

# Embed data encrypted for a specific recipient (with their public key)
tar cz mydir | gpg --encrypt --recipient some@example.email | stega embed image.png > embedded.png

# Extract and decrypt the data (from either encryption scenario)
stega extract embedded.png | gpg --decrypt | tar xz
```


Contribution
------------

Please feel free to open an issue or submit a pull request.


License
-------

MIT
npm package: @stegapng/core
Description: Hide secret data in images
Latest version: 1.1.0

<h1 align="center">Stega PNG Core Library</h1>

<p align="center">
  <a href="https://stegapng.netlify.app/">
    <img src="https://github.com/jchook/stega/blob/main/packages/web/public/stega-nobg.png?raw=true" width="300" />
  </a>
</p>

<p align="center">
  Part of the <a href="https://github.com/jchook/stega">Stega PNG project</a>.
</p>

<p align="center">
  <a href="https://stegapng.netlify.app/">Browser Demo</a> |
  <a href="https://github.com/jchook/stega/blob/main/packages/cli">CLI Utility</a>
</p>


About
-----

<p>
  <a href="#"><img src="https://img.shields.io/badge/test%20coverage-100%25-brightgreen" title="100% Test Coverage" /></a>
  <a href="#"><img src="https://img.shields.io/badge/license-MIT-brightgreen" title="MIT License" /></a>
</p>


Stega PNG allows you to hide arbitrary data into the RGBA colorspace data of images.

Read the [API documentation](./docs/README.md).


Install
-------

To use this core library in your JavaScript or TypeScript project, add it to your project's dependencies using your preferred Node package manager:

```sh
npm install @stegapng/core
```


Colorspace Encoding
-------------------

Since PNG images use lossless compression, it is possible to store invisible data in the least significant bits of the image's RGB (red, green, and blue) colorspace. Alpha (transparency) channels are ignored since using alpha LSBs would often make it trivial to detect the presence of hidden data.


Where To Embed the Bits?
------------------------

We can configure exactly where secret bits are embedded in the PNG colorspace data, using the best algorithm that fits our requirements.

By default, a [linear congruential generator (LCG)](https://en.wikipedia.org/wiki/Linear_congruential_generator) allows us to very efficiently choose target pixel channels pseudorandomly on a "full cycle". This means that each pixel channel is picked at most exactly once. Thus, the available space to store data is maximized without needing to generate large arrays of shuffled indices, keep track of "used" channels, etc.


Data Encoding Scheme
====================

StegaV0
-------

Version 0 embraces the <abbr title="Keep it simple stupid">KISS</abbr> approach. The byte-length of the supplied data is encoded into the first 4 bytes, followed by the data itself.

| Segment         | Length  | Description                                |
|-----------------|---------|--------------------------------------------|
| Data Length (L) | 4 bytes | Max 4GB, further limited by the image size |
| Data            | L bytes | Arbitrary user-supplied data               |

The RGBA colorspace index selection is done via a LCG with parameters derived from the RGBA colorspace array itself.
npm package: @steggit-js/node
Description: Node bindings for image steganography
Author: james-cohen
Latest version: 0.1.1

# @steggit-js/node

Node.js native addon for image steganography, providing high-performance encoding and decoding of text messages within PNG and JPEG images. This package uses the core C implementation through Node.js native addons.

## Features

- Encode text messages into PNG images using LSB steganography
- Encode text messages into JPEG images using DCT steganography
- Decode text messages from PNG and JPEG images
- Custom header support for message identification
- Native performance through C bindings
- TypeScript support with full type definitions
- Both CommonJS and ES Module support

## Installation

```bash
npm install @steggit-js/node
# or
yarn add @steggit-js/node
```

### Prerequisites

- Node.js 20 or later
- Python 3.x (for node-gyp)
- C++ compiler (GCC or Clang)
- libjpeg-turbo
- libpng

## Usage

### Basic Usage

```javascript
import { encodeTextPng, decodeTextPng } from '@steggit-js/node';

// Encoding a message into an image
async function encodeMessage() {
  try {
    await encodeTextPng(
      'input.png',
      'output.png',
      'This is a secret message'
    );
    console.log('Message encoded successfully');
  } catch (error) {
    console.error('Error encoding message:', error);
  }
}

// Decoding a message from an image
async function decodeMessage() {
  try {
    const message = await decodeTextPng('output.png');
    console.log('Decoded message:', message);
  } catch (error) {
    console.error('Error decoding message:', error);
  }
}
```

### Advanced Usage with Custom Headers

```javascript
import { encodeTextJpeg, decodeTextJpeg } from '@steggit-js/node';

async function encodeWithHeader() {
  try {
    await encodeTextJpeg(
      'input.jpg',
      'output.jpg',
      'This is a secret message',
      'MY_APP_HEADER'
    );
    console.log('Message encoded successfully');
  } catch (error) {
    console.error('Error encoding message:', error);
  }
}

async function decodeWithHeader() {
  try {
    const message = await decodeTextJpeg(
      'output.jpg',
      'MY_APP_HEADER'
    );
    console.log('Decoded message:', message);
  } catch (error) {
    console.error('Error decoding message:', error);
  }
}
```

## Development

### Building

```bash
# Install dependencies
npm install

# Build the native addon
npm run build
```

### Testing

```bash
npm test
```

## License

This package is part of the Steggit monorepo and is licensed under the MIT License.
npm package: @steggit-js/utils
Description: Utility functions for Steggit
Author: james-cohen
Latest version: 0.3.2

# @steggit-js/utils

A utility package for Steggit that provides encryption and string manipulation tools for steganography operations.

## Features

### Encryption Utilities
- Message encryption and decryption
- Encryption key generation
- Secure message parsing and stringification

### String Utilities
- String to binary conversion
- Binary to string conversion
- String obfuscation and deobfuscation
- Invisible character manipulation
- String compression

## Installation

```bash
npm install @steggit-js/utils
# or
yarn add @steggit-js/utils
```

## Usage

### Encryption

```typescript
import { 
  generateEncryptionKey,
  encryptMessage,
  decryptMessage,
  parseEncryptedMessage,
  stringifyEncryptedMessage
} from '@steggit-js/utils';

// Generate an encryption key
const key = await generateEncryptionKey({ secret, ctx, length });

// Encrypt a message
const encrypted = await encryptMessage('secret message', key);

// Convert to string for storage/transmission
const encryptedString = stringifyEncryptedMessage(encrypted);

// Parse back to encrypted message object
const parsedEncrypted = parseEncryptedMessage(encryptedString);

// Decrypt the message
const decrypted = await decryptMessage(parsedEncrypted, key);
```

### String Manipulation

```typescript
import {
  stringToBinary,
  binaryToString,
  obfuscateString,
  deobfuscateString,
  binaryToInvisible,
  invisibleToBinary
} from '@steggit-js/utils';

// Convert string to binary
const binary = stringToBinary('hello');

// Convert binary back to string
const text = binaryToString(binary);

// Obfuscate a string
const obfuscated = obfuscateString('secret message');

// Deobfuscate the string
const original = deobfuscateString(obfuscated);

// Convert to invisible characters
const invisible = binaryToInvisible(binary);

// Convert back from invisible characters
const visible = invisibleToBinary(invisible);
```

## Development

### Building

```bash
yarn build
```

### Testing

```bash
yarn test
```

## License

This package is part of the Steggit monorepo and is licensed under the MIT License.
npm package: @steggy/automation-logic
Description: HELLO WORLD
Author: mp3three
Latest version: 23.9.18

# @steggy/automation-logic

## Description

This library is intended to interact with `@steggy/home-assistant`, but this library attempts to provide some more opinionated logic and automation related tools.
The primary functionality of this library is wrapped up in the idea of **scene rooms**.
These are these are special providers that are intended to represent their real world counterparts, containing the logic directly related to them.