open-index/open-npm huggingface dataset:
npm package: @samsystem/status-page
Description: This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.1.0.
Latest version: 1.0.1

# StatusPage

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.1.0.

## Code scaffolding

Run `ng generate component component-name --project status-page` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project status-page`.
> Note: Don't forget to add `--project status-page` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build status-page` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build status-page`, go to the dist folder `cd dist/status-page` and run `npm publish`.

## Running unit tests

Run `ng test status-page` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
npm package: @samsystem/tslint-config
Description: TSLint configuration
Author: Joe Luis Borrero Senciales
Latest version: 0.1.3

## Usage

-   `yarn add @samsystem/tslint-config`

### Node Projects

```json
{
    "extends": "@samsystem/tslint-config"
}
```

### Angular Projects

```json
{
    "extends": "@samsystem/tslint-config/angular"
}
```
npm package: @samsystems/hapi-twilio-integration
Description: A plugin to integrate twilio into HAPIJS
Author: Carlos Osiel Rojas Velázquez
Latest version: 0.0.4

# hapi-twilio-integration
A plugin to integrate twilio into HAPIJS 

Installation
------------
`npm install @samsystems/hapi-twilio-integration`

Basic Setup
-------------
To setup a plugin you need some configurations as:

    accountSid: Identify a twilio account, that can see in dashboard of twilio
    authToken: The token for authorize twilio for determinate account, that can see in twilio dashboard`
    twimlAppSid: The ID for twiml application call
    applicationSid: Require for grant access for video call
    twilioAPIKey: Require for grant access for video call, founded in twilio dashboard
    twilioAPIKeySecret: Require for grant access for video call, founded in twilio dashboard

When you register a plugin in manifest you need setup previous options like: 

    plugin:  {

        register: '@samsystems/hapi-twilio-integration',                
        options: {
            accountSid: 'valid accountSid',
            authToken: 'valid authToken',
            twimlAppSid: 'valid twimlAppSid',
            applicationSid: 'valid applicationSid',
            twilioAPIKey: 'valid twilioAPIKey',
            twilioAPIKeySecret: 'valid twilioAPIKeySecret'
        }
    }
npm package: @samtec-ash/cloudlogging
Description: Cloud remote logging service to AWS CloudWatch
Author: Adam Page
Latest version: 0.1.0


# Cloud Logging

## Overview

CloudWatch Logging is used to push logs to AWS CloudWatch.

The logging service logs to two transports Console (stdout/stderr) and CloudWatch.
There are 5 levels of logs:  

* error ( _highest_ )
* warn
* info
* debug
* silly ( _lowest_ )

By default, Console transport will be used for levels __debug__ and up with __debug__ and __error__ going to stderr.  
By default, CloudWatch transport will be used for levels __info__ and up.

## Development

### Building

```bash
yarn run prepublish
```

## Usage

### Prerequisites
```bash
# Install AWS cli
pip install awscli --upgrade --user

# Configure AWS

## Method 1: Prompt to create .aws file
aws configure

## Method 2: No Prompt to create .aws file
echo -ne '
[default]
aws_access_key_id = AWS_ACCESS_KEY_ID
aws_secret_access_key = AWS_SECRET_ACCESS_KEY
' > ~/.aws/credentials
echo -ne '
[default]
region = us-east-2
output = json
' > ~/.aws/config

## Method 3: No Prompt to set as env variables
export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
```

### Installation

```bash
# Add package to project
yarn add @samtec-ash/virtuinlogging
```

### Example

#### es2016 w/ Async/await :

```javascript
import { CloudLogger } from '@samtec-ash/CloudLogging';

const logger = new CloudLogger('groupName');
const streamName: {String} = ...;

let success;
if (await logger.open(streamName)) {
  success = await logger.log('Connected to CloudWatch Logs!', 'info');
  success = await logger.log('Some warning message', 'warn');
  const status = logger.status();
  logger.clear();
  success = await logger.close();
  console.log("Done!");
}
```

## API

The autogenerated API can be accessed in following mediums:
* [HTML](./docs/index.html)
* [API MD](./docs/api.md)

## Publishing

New versions are published to [npmjs.com](https://www.npmjs.com).
BitBucket Pipelines is used to build, test, stage, & deploy. Refer to the [pipeline configuration](https://bitbucket.org/samteccmd/cloudlogging/src/master/bitbucket-pipelines.yml).

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://bitbucket.org/samteccmd/cloudlogging/commits/).

## Authors

* **Adam Page**
* **Nathan Page**

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @samtec-ash/fireflydefinitions
Description: FireFly definitions
Author: Adam Page
Latest version: 0.6.8


# FireFly Definitions

## Overview

Provides EEPROM definitions for a variety of FireFlys.

Supported FireFly types:

* ETUOB0410 (10 GHz x4)
* ECUOB0414 (14 GHz x4)
* ECUOB0428 (25/28 GHz x4)
* ETUOR1210 (10 GHz R12)
* ECUOR1214 (14 GHz R12)
* ECUOR1216 (16 GHz R12)
* ETUOT1210 (10 GHz T12)
* ECUOT1214 (14 GHz T12)
* ECUOT1216 (16 GHz T12)


0x01 - Read
0x02 - Write
0x04 - Reserved
0x00 - No read/write
0x01 - Read Only
0x02 - Write Only
0x03 - Read/Write
0x04 - No read/write (Reserved)
0x05 - Read Only (Reserved)
0x06 - Write Only (Reserved)
0x07 - Read/Write (Reserved)

### Product Variant Table

|  Variant  | Value|
|-----------|------|
| ECUOT1214 | 0xA0 |
| ECUOR1214 | 0xA1 |
| ECUOT1216 | 0xA2 |
| ECUOR1216 | 0xA3 |
| ETUOT1210 | 0xB0 |
| ETUOR1210 | 0xB1 |
| ETUOT1225 | 0xB2 |
| ETUOR1225 | 0xB3 |
| ETUOT1228 | 0xB4 |
| ETUOR1228 | 0xB5 |
| ECUOB0414 | 0xC0 |
| ECUOB0416 | 0xC1 |
| ECUOB0425 | 0xC2 |
| ECUOB0428 | 0xC3 |
| ETUOB0410 | 0xD0 |
| ETUOB0425 | 0xD1 |
| ETUOB0428 | 0xD2 |
npm package: @samtec-ash/resindevicesdk
Description: Enables device to communicate with Resin Supervisor
Author: Adam Page
Latest version: 1.1.1


# Resin Device SDK

## Overview

Enables device application to interact with Resin Supervisor API in Node.js.  
This is essentially a wrapper for [Resin's Device Supervisor Agent HTTP API](https://docs.resin.io/runtime/supervisor-api/).

Supports running commands both locally from the device or remote.
For remote, address will be https://api.resin.io/supervisor.

## Class ResinDeviceSDK
Available methods:  

* setSupervisorSettings
* getDeviceOnline
* getAppStatus (V1)
* getDeviceStatus (V1)
* performBlink (V1)
* performUpdate (V1)
* performReboot (V1)
* performShutdown (V1)
* performPurgeData (V1)
* performAppStart (V1)
* performAppStop (V1)
* performRestart (V1)
* performAppPurgeData (V2)
* getServiceState (V2)
* getAppState (V2)
* performRestartService (V2)
* performAppRestart (V2)
* performStopService (V2)
* performStartService (V2)

## Usage

#### Installation

```bash
# Add package to project
yarn add @samtec-ash/resindevicesdk
```

#### Example:

```javascript
import { ResinDeviceSDK } from '@samtec-ash/resindevicesdk';

async function deviceTest(device) {
  const isOnline = await device.getDeviceOnline();
  if (isOnline) {
    const deviceStatus = await device.getDeviceStatus();
    const { status } = deviceStatus;
    console.log(`App status is ${status}.`);
    await device.performBlink();
    console.log(`LED on board will blink for 15 sec.`);
  }  
}

const config = {
  address: process.env.RESIN_SUPERVISOR_ADDRESS,
  apiKey: null,
  appId: process.env.RESIN_APP_ID,
  authToken: process.env.RESIN_SUPERVISOR_AUTH_TOKEN,
  deviceUUID: process.env.RESIN_DEVICE_UUID
};
const device = new ResinDeviceSDK(config);  
deviceTest(device).then(() => {
  console.log('Success');
}).catch((err) => {
  console.log(`Received following error ${err}`);
});

```

## Development

#### Building

```bash
yarn run prepublish
```

## API

The autogenerated API can be accessed in following mediums:
* [HTML](./docs/index.html)
* [API MD](./docs/api.md)

## Publishing

New versions are published to [npmjs.com](https://www.npmjs.com).
BitBucket Pipelines is used to build, test, stage, & deploy. Refer to the [pipeline configuration](https://bitbucket.org/samteccmd/resindevicesdk/src/master/bitbucket-pipelines.yml).

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://bitbucket.org/samteccmd/resindevicesdk/commits/).

## Authors

* **Adam Page**

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @samtec-ash/virtuinlogging
Description: Virtuin remote logging service to AWS CloudWatch
Author: Adam Page
Latest version: 0.9.15


# ![Virtuin Logo](https://s3.amazonaws.com/virtuin-static-images/64x64.png) Virtuin Logging

## Overview

Virtuin Logging is used to push logs to AWS CloudWatch to monitor all aspects of active test on workstation.

The logging service logs to two transports Console (stdout/stderr) and CloudWatch.
There are 5 levels of logs:  

* error ( _highest_ )
* warn
* info
* debug
* silly ( _lowest_ )

By default, Console transport will be used for levels __debug__ and up with __debug__ and __error__ going to stderr.  
By default, CloudWatch transport will be used for levels __info__ and up.
## Development

#### Building

```bash
yarn run prepublish
```

#### Publishing
```bash
yarn publish
```


## Usage

#### Prerequisites
```bash
# Install AWS cli
pip install awscli --upgrade --user

# Configure AWS
## Method 1: Prompt
aws configure
## Method 2: No Prompt
echo -ne '
[default]
aws_access_key_id = AWS_ACCESS_KEY_ID
aws_secret_access_key = AWS_SECRET_ACCESS_KEY
' > ~/.aws/credentials
echo -ne '
[default]
region = us-east-2
output = json
' > ~/.aws/config
```

#### Installation

```bash
# Add package to project
yarn add @samtec-ash/virtuinlogging
```

#### Example

##### es2016 w/ Async/await :

```javascript
import { VirtuinLogger } from '@samtec-ash/VirtuinLogging';

const logger = new VirtuinLogger();
const config = {
  test: {
    testUUID: '123456789'  // Required
  },
  station: {
    name: 'StationDebug', // Required
    debug: true            // Optional
  },
  dut: {
    partNumber: 'P12345',  // Optional
    serialNumber: 'S12345' // Optional
  }
};

let success;
if (await logger.open(config)) {
  success = await logger.log('Connected to CloudWatch Logs!', 'info');
  success = await logger.log('Some warning message', 'warn');
  const status = logger.status();
  logger.clear();
  success = await logger.close();
  console.log("Done!");
}
```

##### es2015:
```javascript
"use strict";

var _VirtuinLogging = require("@samtec-ash/VirtuinLogging");

var logger = new _VirtuinLogging.VirtuinLogger();

var config = {
  test: {
    testUUID: "123456789" // Required
  },
  station: {
    name: "debug_station", // Required
    debug: true // Optional
  },
  dut: {
    partNumber: "P12345", // Optional
    serialNumber: "S12345" // Optional
  }
};

Promise.resolve()
  .then(function() {
    return logger.open(config);
  })
  .then(function(rst) {
    return logger.log("Connected to CloudWatch Logs!");
  })
  .then(function(rst) {
    return logger.log("Some warning message", "warn");
  })
  .then(function(rst) {
    const status = logger.status();
    logger.clear();
    return logger.close();
  })
  .finally(function(rst) {
    console.log("Done!");
  });
```



## API

The autogenerated API can be accessed in following mediums:
* [HTML](./docs/index.html)
* [API MD](./docs/api.md)
npm package: @samtec-ash/virtuintestdispatcher
Description: Virtuin Test Dispatcher is used to dispatch tests.
Author: Adam Page
Latest version: 0.1.1


# ![Virtuin Logo](https://s3.amazonaws.com/virtuin-static-images/icon_white_64x64.png) Virtuin Test Dispatcher  

## Overview

Virtuin Test Dispatcher is used to **start**, **stop**, and **monitor** collection of tests running
inside a Docker Compose environment.

## Build

```bash
yarn run prepublish
```

## Installation

For local install:
```bash
yarn add @samtec-ash/virtuintestdispatcher
```
For global install:
```bash
yarn global add @samtec-ash/virtuintestdispatcher --prefix /usr/local
```

## Usage

### Events

* **collection-log** - General log info of collection *(string)*
* **collection-stdout** - Std out from collection processes *(string)*
* **collection-stderr** - Std error from collection processes *(string)*
* **test-status** - Status object *(Error, TestStatus)*
* **test-log** - General log info of active test *(string)*
* **test-stdout** - Std out from collection process *(string)*
* **test-stderr** - Std error from test process *(string)*
* **error** - General runtime errors *(Error)*

### As CLI

Based on the supplied collection definitions, the following will spin up the docker compose environment and run all tests defined in the sequence.
```bash
virtuintestdispatcher --verbose=0 /path/to/collection.json
```

### As Package

```javascript
import {
  VirtuinTestDispatcher
} from '@samtec-hub/virtuintestdispatcher';

const collection = {
	collectionName: 'collectionName',
	collectionTag: '10.0.0'
};
const testConfig = {
	dut: {},
	station: {},
	test: {}
};

const dispatcherStatusUpdate = (err, status) => {
	if (err) {
		console.log(`Status error ${err.message}`);
	} else if (status) {
		console.log(status);
	}
}

dispatcher = new VirtuinTestDispatcher(
  'DebugStation',
  'localhost',
  verbosity=2
);

dispatcher.on('collection-log', (msg) => {
	console.log(`collection-log: ${msg}`);
});
dispatcher.on('test-log', (msg) => {
	console.log(`test-log: ${msg}`);
});
dispatcher.on('test-status', dispatcherStatusUpdate);

await dispatcher.autologin('docker-user', 'docker-pass');
const response = await dispatcher.up(collection);
if (response.success) {
	await dispatcher.startTest(testConfig);
}
```

## API

The autogenerated API can be accessed in following mediums:
* [HTML](./docs/index.html)
* [API MD](./docs/api.md)

## Publishing

New versions are published to [npmjs.com](https://www.npmjs.com).
BitBucket Pipelines is used to build, test, stage, & deploy. Refer to the [pipeline configuration](https://bitbucket.org/samteccmd/virtuintestdispatcher/src/master/bitbucket-pipelines.yml).

## Contributing

Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://bitbucket.org/samteccmd/virtuintestdispatcher/commits/).

## Authors

* **Adam Page**


## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @samtec-ash/virtuintestserver
Description: Virtuin Test Server is used to spawn tests.
Author: Adam Page
Latest version: 0.9.14


# ![Virtuin Logo](https://s3.amazonaws.com/virtuin-static-images/64x64.png) Virtuin Test Server  

## Overview

Virtuin Test Server is used to **start**, **stop**, and **monitor** collection of tests running
inside a Docker container. The server listens for requests issued over RabbitMQ. The server requires being passed the station configuration and the test configuration discussed below.


### Build

```bash
yarn run prepublish
```

### Installation

For local install:
```bash
yarn add @samtec-ash/virtuintestserver
```
For global install:
```bash
yarn global add @samtec-ash/virtuintestserver --prefix /usr/local
```

### Run

```bash
virttestserver --verbose=0 /path/to/tests_config.json
```

### Test Configuration JSON File

The test configuration is a JSON file containing a root level array of test configuration objects. Each object contains the following:

* ___testName___ : (string) - Name of corresponding test **Required**
* ___command___ : (string) - Command to be spawned on start request **Required**
* ___args___ : ([string]) - List of command line args to be passed **Required**
* ___cwd___ : ([string]) - Directory in which to execute command **Optional (Default: "./")**
* ___shell___ : ([bool]) - To launch command in shell process **Optional (Default: false)**
* ___env___ : ({}) - Dictionary of environmental key/value pairs **Optional (Default: null)**

Example Test config file:

```json
[
  {
    "testName": "EXAMPLE_TEST",
    "command": "python",
    "args": ["EXAMPLE_TEST.py", "--arg", "AN_ARG"],
    "cwd": "/path/to/working/directory/",
    "shell": false,
    "env": null
  },
  {
    "testName": "ANOTHER_TEST",
    "command": "sh",
    "args": ["ANOTHER_TEST.sh"],
    "cwd": "/path/to/working/directory/",
    "shell": false,
    "env": {
      "DEBUG": 1,
      "VERBOSE": 2
    }
  }
]
```

### RabbitMQ Test Packets

#### Client Request Packet:

```javascript
{
	command: "START|STOP|STATUS|CLEAR",
	testUUID: "TEST instance identifier",
	test: "Test config object (required for START operation)"
	logs: "true|false (optional for CLEAR operation to get logs back)"
}
```

#### Server Response Packet

```json
{
  "command": "START | STOP | STATUS | CLEAR",
  "success": "true | false",
  "error": "null | request error message",
  "status": {
    "testName": "null | TEST_NAME",
    "testUUID": "null | TEST instance identifier",
    "state": "IDLE | START_REQUEST | RUNNING | STOP_REQUEST | KILLED | FINISHED",
    "error": "null | test error message"
  }
}
```

## API

The autogenerated API can be accessed in following mediums:
* [HTML](./docs/index.html)
* [API MD](./docs/api.md)
npm package: @samtgarson/eslint-config
Description: Eslint config
Author: samtgarson@gmail.com
Latest version: 3.2.13

**eslint-config** 

## Usage

Extend your Eslint config
```js
// .eslintrc.js
module.exports = {
  extends: [
    "@samtgarson/eslint-config",
    "@samtgarson/eslint-config/typescript",
    "@samtgarson/eslint-config/react"
  ]
}
```
npm package: @samtgarson/pat
Description: Postman on the command line
Latest version: 0.2.1

<p align="center">
📮

<p align="center"><strong>pat</strong><em>—postman on the command line</em></p>

<p align="center">Pat is an interactive Postman CLI built with <a href="https://github.com/vadimdemedes/ink">ink</a>.</p>

<p align="center"><a href="https://actions-badge.atrox.dev/samtgarson/pat/goto"><img alt="Build Status" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fsamtgarson%2Fpat%2Fbadge&style=flat" /></a></p>
</p>


## Why?

I was bummed out to find one of the only things I couldn't use after moving to an iPad as my daily development machine was Postman, so I'm trying to build a command line replacement. _Currently Pat only supports collections available on the Postman Pro API. PR's welcome to improve this._

### Progress

- [x] Fetch collections from the API
- [x] Edit the environment
- [x] Make basic requests
- [x] Authentication
- [ ] More authentication
- [ ] Request history
- [ ] Add other collection formats
  - [ ] Postman JSON files
  - [ ] Insomnia

## Install and Use

```bash
npm install --global pat-cli

pat # follow the instructions from here
```

## Contribute

Bug reports and pull requests are welcome on GitHub at https://github.com/samtgarson/pat. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.

### Develop

```sh
npm i        # Install dependencies
npm run test # Run tests
npm run dev  # Run the typescript compiler in watch mode

./bin/pat    # Run the CLI locally
```

### License

The module is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
npm package: @samthegeek/frigidaire
Description: Frigidaire Appliance Node.js Module
Author: Karl Grindley
Latest version: 3.0.0

# Frigidaire Cloud Node.js Module


This is a quick and dirty client to talk to the Frigidaire cloud services for C&C of Frigidiare Wifi enabled devices.  Ultimate goal is to integreate with HomeKit for Siri and better UI/UX expereince!  (the Frigidare App is terrible)

## Update 2023-06-26

Frigidaire once again updated their API (to V3) in June 2023, meaning the module had to be largely rewritten. The new V3 API uses a standard OAuth flow for authentication, and appears to be much simpler in architecture.

Another benefit of the V3 API is the auto-discovery process for geography. All you need is a working username/password, and it will automatically determine the correct endpoint (US/EU/LATAM/etc) to use.

While the only device I had available to test with is an AC unit, the V3 API gives me confidence that additional device types can be easily implemented.

This module has been updated so that it fully utilizes the V3 API, leaving no dependency on the old V2 API.

So as to maintain backwards compatibility, the old V2 API code has <b>not been removed</b>, and remains fully usable. To specify the use of the V2 API, when instantiating a new `Frigidaire` object, specify `false` as the second parameter, ie:
```
var ac = new Frigidaire({
  username: 'john@example.com',
  password: 'frigidaire1492915@!',
}, false);
```
That second parameter is set to default to `true` (see line 42 in `lib/frigidaire.js`), so the plugin will default to using the new V3 API. This means that any downstream modules (ie <i>homebridge-frigidaire</i>) can test against the new API with a minimum of code refactoring.

### New configuration option: refresh token caching
Because the V3 API uses standard OAuth for authentication, it uses refresh tokens as a 'shortcut' to obtain an access token. This refresh token can be cached on disk, enabling the module to start faster, as well as be a better API citizen.

To enable this functionality, provide a writable directory path with the `cacheDir` option when instantiating a Frigidaire object. The refresh token will be saved in this directory, with filename `.frigidaireRefreshToken_<applianceSN>`.

The <i>homebridge-frigidaire</i> plugin has been updated to take advantage of this new functionality; see the respective documentation for information on how to enable.
npm package: @samthegeek/homebridge-frigidaire
Description: homebridge plugin for Frigidaire connected appliances
Author: Karl Grindley
Latest version: 3.0.5

# homebridge-frigidaire
homebridge Platform plugin for Frigidaire connected appliances.  This is a platform plugin for Homebridge and will auto discover each of your AC appliances.

Note that right now only AC units are supported.

## Update 2023-06-26 (V3 API)
Code has been once again been updated to handle Frigidaire's new app, now on the V3 API. This new app was released in June 2023.

All that is needed to get started is a username, password, and a serial number. Ensure your devices show up in the new app before attempting to use this updated plugin.

## Example config.json:
	"platforms": [
		{
			"platform": "Frigidaire",
			"applianceSerial": "94126327",
			"username": "joe@gmail.com",
			"password": "Password1"
    }		
	]
## New feature: refresh token caching
There is a new optional feature available in the backend <i>frigidaire</i> module that caches the refresh token, resulting in a slightly faster startup. It also helps reduce network traffic (by an albeit tiny amount).

To enable this option, add `"cacheRefreshToken": true` to the config.json, ie
```
{
	"platform": "Frigidaire",
	"applianceSerial": "94126327",
	"username": "joe@gmail.com",
	"password": "Password1",
	"cacheRefreshToken": true
}
```
The <b>homebridge config directory</b> will be used as the cache path, so ensure it is writable by the process that's running homebridge.

## How to install

 ```sudo npm install -g homebridge-frigidaire```

## Debug
If you're having problems, please enable debug and paste all output to the ticket.  To enable debug, run homebridge with the ```DEBUG``` set.
```export DEBUG=frigidaire:*; homebridge```
npm package: @samthomson/rubix-loader
Description: Animated 3D Rubix cube loader for React.
Author: samthomson
Latest version: 0.2.0

# @samthomson/rubix-loader

Animated 3D Rubix cube loader React component rendered on canvas.

## Install

```bash
npm i @samthomson/rubix-loader
```

## Usage

```tsx
import { RubixLoader, RubixLoaderColor } from '@samthomson/rubix-loader';

export function Example() {
  return (
    <RubixLoader
      size={220}
      speed={1}
      paused={false}
      colors={[
        RubixLoaderColor.RelayKit,
        RubixLoaderColor.Strfry,
        RubixLoaderColor.NostrRs,
        RubixLoaderColor.Blossom,
      ]}
    />
  );
}
```

## Props

- `size?: number` - canvas size in pixels (default `400`)
- `speed?: number` - animation speed multiplier (default `1`)
- `paused?: boolean` - pause motion without unmounting
- `colors?: string[]` - one color for static look, multiple for cycling
- `className?: string` - wrapper class name

## Exported Color Enum

- `RubixLoaderColor.RelayKit` - default lavender tone
- `RubixLoaderColor.Strfry` - yellow
- `RubixLoaderColor.NostrRs` - red
- `RubixLoaderColor.Blossom` - pink
- `RubixLoaderColor.Nsite` - black