open-index/open-npm huggingface dataset:
npm package: @percy-io/percy-webdriverio
Description: percy.io integration for webdriver.io
Author: Miklós Fazekas
Latest version: 0.2.0
Deprecated: new package located at @percy/percy-webdriverio. Please update your package.json files accordingly

# percy-webdriverio
[![Package Status](https://img.shields.io/npm/v/@percy-io/percy-webdriverio.svg)](https://www.npmjs.com/package/@percy-io/percy-webdriverio)
[![Build Status](https://travis-ci.org/percy/percy-webdriverio.svg?branch=master)](https://travis-ci.org/percy/percy-webdriverio)

**@percy-io/percy-webdriverio** adds [Percy](https://percy.io) visual testing and review to your [**WebdriverIO**](http://webdriver.io/) tests.

#### Docs here: [https://percy.io/docs/clients/javascript/webdriverio](https://percy.io/docs/clients/javascript/webdriverio)



# Notes for Developers
If you want to submit a PR for percy-webdriverio you'll want to run it's tests first:
```sh
yarn test
```

The tests make use of [nock](https://github.com/node-nock/nock) to mock requests made to Percy's API. You can re-record HTTP calls in nock like this:
```sh
REC_PERCY_TOKEN=<your-token> REC_PERCY_PROJECT=<your project> NOCK_REC=1 yarn test
```
npm package: @percy/appium-wd
Description: Webdriver & Appium client library for visual regression testing with Percy
Latest version: 0.3.0

# @percy/appium-wd

[![Package Status](https://img.shields.io/npm/v/@percy/appium-wd.svg)](https://www.npmjs.com/package/@percy/appium-wd)

[Percy](https://percy.io) visual testing for [Appium](https://appium.io)
and [Webdriver.](https://www.seleniumhq.org/projects/webdriver/)
npm package: @percy/cli-app
Description: Percy CLI commands for running Percy with native apps.
Latest version: 1.31.11

# @percy/cli-app

Percy CLI commands for running Percy with native apps.

## Commands
<!-- commands -->
* [`percy app:exec`](#percy-appexec)

### `percy app:exec`

Start and stop Percy around a supplied command for native apps

```
Usage:
  $ percy app:exec [options] -- <command>

Subcommands:
  app:exec:start [options]  Starts a locally running Percy process for native apps
  app:exec:stop [options]   Stops a locally running Percy process
  app:exec:ping [options]   Pings a locally running Percy process
  help [command]            Display command help

Options:
  --parallel                Marks the build as one of many parallel builds
  --partial                 Marks the build as a partial build

Percy options:
  -c, --config <file>       Config file path
  -d, --dry-run             Print snapshot names only
  -P, --port [number]       Local CLI server port (default: 5338)

Global options:
  -v, --verbose             Log everything
  -q, --quiet               Log errors only
  -s, --silent              Log nothing
  -l, --labels <string>     Associates labels to the build (ex: --labels=dev,prod )
  -h, --help                Display command help
```
<!-- commandsstop -->
npm package: @percy/cli-config
Description: Uses [`@percy/config`](/packages/config) to add CLI commands for creating, validating, and updating Percy configuration files.
Latest version: 1.31.11

# @percy/cli-config

Uses [`@percy/config`](/packages/config) to add CLI commands for creating, validating, and updating
Percy configuration files.

## Commands
<!-- commands -->
* [`percy config:create`](#percy-configcreate)
* [`percy config:validate`](#percy-configvalidate)
* [`percy config:migrate`](#percy-configmigrate)

### `percy config:create`

Create a Percy config file

```
Usage:
  $ percy config:create [options] [filepath]

Arguments:
  filepath               Optional config filepath

Options:
  --rc                   Create a .percyrc file
  --yaml                 Create a .percy.yaml file
  --yml                  Create a .percy.yml file
  --json                 Create a .percy.json file
  --js                   Create a .percy.js file

Global options:
  -v, --verbose          Log everything
  -q, --quiet            Log errors only
  -s, --silent           Log nothing
  -l, --labels <string>  Associates labels to the build (ex: --labels=dev,prod )
  -h, --help             Display command help

Examples:
  $ percy config:create
  $ percy config:create --yaml
  $ percy config:create --json
  $ percy config:create --js
  $ percy config:create --rc
  $ percy config:create ./config/percy.yml
```

### `percy config:validate`

Validate a Percy config file

```
Usage:
  $ percy config:validate [options] [filepath]

Arguments:
  filepath               Config filepath, detected by default

Global options:
  -v, --verbose          Log everything
  -q, --quiet            Log errors only
  -s, --silent           Log nothing
  -l, --labels <string>  Associates labels to the build (ex: --labels=dev,prod )
  -h, --help             Display command help

Examples:
  $ percy config:validate
  $ percy config:validate ./config/percy.yml
```

### `percy config:migrate`

Migrate a Percy config file to the latest version

```
Usage:
  $ percy config:migrate [options] [filepath] [output]

Arguments:
  filepath               Current config filepath, detected by default
  output                 New config filepath to write to, defaults to 'filepath'

Options:
  -d, --dry-run          Print the new config without writing it

Global options:
  -v, --verbose          Log everything
  -q, --quiet            Log errors only
  -s, --silent           Log nothing
  -l, --labels <string>  Associates labels to the build (ex: --labels=dev,prod )
  -h, --help             Display command help

Examples:
  $ percy config:migrate
  $ percy config:migrate --dry-run
  $ percy config:migrate ./config/percy.yml
  $ percy config:migrate .percy.yml .percy.js
```
<!-- commandsstop -->
npm package: @percy/cli-upload
Description: Percy CLI command to upload a directory of static images to Percy for diffing.
Latest version: 1.31.11

# @percy/cli-upload

Percy CLI command to upload a directory of static images to Percy for diffing.

## Commands
<!-- commands -->
* [`percy upload`](#percy-upload)

### `percy upload`

Upload a directory of images to Percy

```
Usage:
  $ percy upload [options] <dirname>

Arguments:
  dirname                 Directory of images to upload

Options:
  -f, --files [pattern]   One or more globs matching image file paths to upload (default:
                          "**/*.{png,jpg,jpeg}")
  -i, --ignore <pattern>  One or more globs matching image file paths to ignore
  -e, --strip-extensions  Strips file extensions from snapshot names

Percy options:
  -c, --config <file>     Config file path
  -d, --dry-run           Print snapshot names only

Global options:
  -v, --verbose           Log everything
  -q, --quiet             Log errors only
  -s, --silent            Log nothing
  -l, --labels <string>   Associates labels to the build (ex: --labels=dev,prod )
  -h, --help              Display command help

Examples:
  $ percy upload ./images
```
<!-- commandsstop -->

## Percy Configuration

This CLI plugin adds the following Percy configuration options (defaults shown).

```yaml
# defaults
version: 2
upload:
  strip-extensions: false
  files: '**/*.{png,jpg,jpeg}'
  ignore: ''
```

- **strip-extensions** - Strips file extensions from snapshot names
- **files** - A glob or array of globs matching file paths to upload
- **ignore** - A glob or array of globs matching file paths to ignore
npm package: @percy/config
Description: Handles loading and adding options to Percy configuration files. Uses [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) to load configuration files and [JSON schema](https://json-schema.org/) with [AJV](https://github.com/epoberezkin/ajv) to val
Latest version: 1.31.11

# @percy/config

Handles loading and adding options to Percy configuration files. Uses
[cosmiconfig](https://github.com/davidtheclark/cosmiconfig) to load configuration files and [JSON
schema](https://json-schema.org/) with [AJV](https://github.com/epoberezkin/ajv) to validate those
configuration files.

- [Loading config files](#loading-config-files)
- [Extending config options](#extending-config-options)

## Loading config files

The `.load()` method will load and validate a configuration file, optionally merging it with any
provided `overrides`. If no `path` is provided, will search for the first supported config found
from the current directory up to the home directory. Configuration files are cached and reused unless
`reload` is `true`.

```js
import PercyConfig from '@percy/config'

// loading is done synchronously
const config = PercyConfig.load(options)
```

#### Options

- `path` — Config file path or directory containing a config file
- `overrides` — Config option overrides
- `reload` — Do not use cached config (**default** `false`)
- `bail` — Return undefined when failing validation (**default** `false`)
- `print` — Print info and error logs (**default** `false`)

#### Supported files

- `"percy"` entry in `package.json`
- `.percyrc` YAML or JSON file
- `.percy.json` JSON file
- `.percy.yaml` or `.percy.yml` YAML file
- `.percy.js` or `percy.config.js` file that exports an object

## Extending config options

The `.addSchema()` function will add a sub-schema to the Percy configuration file which will be
parsed and validated when `PercyConfig.load()` is called. See [JSON
schema](https://json-schema.org/) for possible schema options.

```js
import PercyConfig from '@percy/config'

PercyConfig.addSchema({
  propertyName: JSONSchema
})
```
npm package: @percy/env
Description: This package provides various CI/CD support for Percy by coalescing different environment variables into a common interface for consumption by `@percy/client`.
Latest version: 1.31.11

# @percy/env

This package provides various CI/CD support for Percy by coalescing different environment variables
into a common interface for consumption by `@percy/client`.

## Supported Environments

- [AppVeyor](https://www.browserstack.com/docs/percy/ci-cd/appveyor)
- [Azure Pipelines](https://www.browserstack.com/docs/percy/ci-cd/azure-pipelines)
- [Bitbucket Pipelines](https://www.browserstack.com/docs/percy/ci-cd/bitbucket-pipeline)
- [Buildkite](https://www.browserstack.com/docs/percy/ci-cd/buildkite)
- [CircleCI](https://www.browserstack.com/docs/percy/ci-cd/circleci)
- [Codeship](https://www.browserstack.com/docs/percy/ci-cd/codeship)
- [Drone CI](https://docs.percy.io/docs/drone)
- [GitHub Actions](https://www.browserstack.com/docs/percy/ci-cd/github-actions)
- [GitLab CI](https://www.browserstack.com/docs/percy/ci-cd/gitlab)
- [Heroku CI](#supported-environments) (needs doc)
- [Jenkins](https://www.browserstack.com/docs/percy/ci-cd/jenkins)
- [Jenkins PRB](https://www.browserstack.com/docs/percy/ci-cd/jenkins)
- [Netlify](https://www.browserstack.com/docs/percy/ci-cd/netlify)
- [Probo.CI](#supported-environments) (needs doc)
- [Semaphore](https://www.browserstack.com/docs/percy/ci-cd/semaphore)
- [Travis CI](https://www.browserstack.com/docs/percy/ci-cd/travis-ci)

## Percy Environment Variables

The following variables may be defined to override the respective derived CI environment variables.

```bash
PERCY_COMMIT          # build commit sha
PERCY_BRANCH          # build branch name
PERCY_PULL_REQUEST    # associated PR number
PERCY_PARALLEL_NONCE  # parallel nonce unique for this CI workflow
PERCY_PARALLEL_TOTAL  # total number of parallel shards
```

Additional Percy specific environment variable may be set to control aspects of your Percy build.

```bash
PERCY_TARGET_COMMIT   # percy target commit sha
PERCY_TARGET_BRANCH   # percy target branch name
PERCY_PARTIAL_BUILD   # if this build was marked as partial
```

## Adding Environment Support

1. Add CI detection to [`environment.js`](./src/environment.js)
2. Add respective environment variables
3. Add a dedicated CI test suite
4. Open a Pull Request!
npm package: @percy/logger
Description: Common logger used throughout the Percy CLI and SDKs.
Latest version: 1.31.11

# @percy/logger

Common logger used throughout the Percy CLI and SDKs.

- [Usage](#usage)
  - [`logger()`](#loggerdebug)
  - [`logger.loglevel()`](#loggerloglevel)
  - [`logger.format()`](#loggerformat)
  - [`logger.query()`](#loggerquery)

## Usage

``` js
import logger from '@percy/logger'

const log = logger('foobar')

log.info('info message')
log.error('error message')
log.warn('warning message')
log.debug('debug message')
log.deprecated('deprecation message')
```

### `logger([debug])`

Creates a group of logging functions that will be associated with the provided `debug` label. When
debug logging is enabled, this label is printed with the `[percy:*]` label and can be filtered via
the `PERCY_DEBUG` environment variable.

``` js
PERCY_DEBUG="one:*,*:a,-*:b"

logger.loglevel('debug')

logger('one').debug('test')
logger('one:a').debug('test')
logger('one:b').debug('test')
logger('one:c').debug('test')
logger('two').debug('test')
logger('two:a').debug('test')

// only logs from the matching debug string are printed
//=> [percy:one] test
//=> [percy:one:a] test
//=> [percy:one:c] test
//=> [percy:two:a] test
```

### `logger.loglevel([level][, flags])`

Sets or retrieves the log level of the shared logger. If the second argument is provided, `level` is
treated as a fallback when all logging flags are `false`. When no arguments are provided, the method
will return the current log level of the shared logger.

``` js
logger.loglevel('info', { verbose: true })
logger.loglevel() === 'debug'

logger.loglevel('info', { quiet: true })
logger.loglevel() === 'warn'

logger.loglevel('info', { silent: true })
logget.loglevel() === 'silent'

logger.loglevel('info')
logger.loglevel() === 'info'
```

### `logger.format(message, debug[, level])`

Returns a formatted `message` depending on the provided level and logger's own log level. When
debugging, the `debug` label is added to the prepended `[percy:*]` label.

``` js
logger.format('foobar', 'test')
//=> [percy] foobar

logger.loglevel('debug')
logger.format('foobar', 'test', warn')
//=> [percy:test] foobar (yellow for warnings)
```

### `logger.query(filter)`

Returns an array of logs matching the provided filter function.

``` js
let logs = logger.query(log => {
  return log.level === 'debug' &&
    log.message.match(/foobar/)
})
```
npm package: @percy/migrate
Description: Easily upgrade and migrate your Percy SDK to the latest version
Latest version: 1.0.0

# @percy/migrate

![Test](https://github.com/percy/percy-migrate-sdk/workflows/Test/badge.svg)

`@percy/migrate` is used to upgrade and migrate your Percy SDK to the latest version.

## What does it do?

This automates the following steps necessary to migrate your SDK to the latest version. In fact,
each step can be performed manually without this tool to achieve the same outcome.

1. Attempts to detect your SDK by examining your project's dependencies.
2. Installs `@percy/cli` to your project (and uninstalls `@percy/agent` if present).
3. Migrates any Percy config file to the latest version.
4. Updates your SDK to the latest version.
5. Maybe prompts to run code mods on specific files.

[See the migration docs for more info](https://docs.percy.io/docs/migrating-to-percy-cli)

## Usage
<!-- usage -->
``` sh-session
$ npx @percy/migrate --help
Upgrade and migrate your Percy SDK to the latest version

USAGE
  $ npx @percy/migrate [SDK_NAME]

ARGUMENTS
  SDK_NAME  name of the Percy SDK to migrate (detected by default)

OPTIONS
  -h, --help     show CLI help
  -q, --quiet    log errors only
  -v, --verbose  log everything
  -v, --version  show CLI version
  --only-cli     only run @percy/cli installation
  --silent       log nothing
  --skip-cli     skip @percy/cli installation

EXAMPLES
  $ npx @percy/migrate
  $ npx @percy/migrate @percy/puppeteer
  $ npx @percy/migrate --only-cli
```
<!-- usagestop -->
npm package: @percy/nightmare
Description: Nightmare client library for visual testing with Percy
Author: Perceptual Inc.
Latest version: 2.0.1

# @percy/nightmare

[![Version](https://img.shields.io/npm/v/@percy/nightmare.svg)](https://www.npmjs.com/package/@percy/nightmare)
![Test](https://github.com/percy/percy-nightmare/workflows/Test/badge.svg)

[Percy](https://percy.io) visual testing for [Nightmare](https://www.nightmarejs.org).

## Installation

```sh-session
$ npm install --save-dev @percy/cli @percy/nightmare
```

## Usage

This is an example using the `percySnapshot` function.

```javascript
const Nightmare = require('nightmare');
const percySnapshot = require('@percy/nightmare);

Nightmare()
  .goto('http://example.com')
  //... other actions ...
  .use(percySnapshot('Example Snapshot'))
  //... more actions ...
  .end()
  .then(() => {
    // ...
  })
```

Running the code above directly will result in the following logs:

```sh-session
$ node script.js
[percy] Percy is not running, disabling snapshots
```

When running with [`percy
exec`](https://github.com/percy/cli/tree/master/packages/cli-exec#percy-exec), and your project's
`PERCY_TOKEN`, a new Percy build will be created and snapshots will be uploaded to your project.

```sh-session
$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- node script.js
[percy] Percy has started!
[percy] Created build #1: https://percy.io/[your-project]
[percy] Running "node script.js"
[percy] Snapshot taken "Example Snapshot"
[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!
```

## Configuration

`percySnapshot(name[, options])`

- `name` (**required**) - The snapshot name; must be unique to each snapshot
- `options` - [See per-snapshot configuration options](https://docs.percy.io/docs/cli-configuration#per-snapshot-configuration)

## Upgrading

### Automatically with `@percy/migrate`

We built a tool to help automate migrating to the new CLI toolchain! Migrating
can be done by running the following commands and following the prompts:

``` shell
$ npx @percy/migrate
? Are you currently using @percy/nightmare? Yes
? Install @percy/cli (required to run percy)? Yes
? Migrate Percy config file? Yes
? Upgrade SDK to @percy/nightmare@2.0.0? Yes
```

This will automatically run the changes described below for you.

### Manually

#### Installing `@percy/cli`

If you're coming from a pre-2.0 version of this package, make sure to install `@percy/cli` after
upgrading to retain any existing scripts that reference the Percy CLI command.

```sh-session
$ npm install --save-dev @percy/cli
```

#### Import change

If you're coming from a pre-2.0 version of this package, the `percySnapshot` function is now the default
export.

```javascript
// before
const { percySnapshot } = require('@percy/nightmare');

// after
const percySnapshot = require('@percy/nightmare');
```

#### Migrating Config

If you have a previous Percy configuration file, migrate it to the newest version with the
[`config:migrate`](https://github.com/percy/cli/tree/master/packages/cli-config#percy-configmigrate-filepath-output) command:

```sh-session
$ percy config:migrate
```
npm package: @percy/percy-webdriverio
Description: percy.io integration for webdriver.io
Author: Perceptual Inc.
Latest version: 1.0.0
Deprecated: Package name changed. New name is @percy/webdriverio

# percy-webdriverio
[![Package Status](https://img.shields.io/npm/v/@percy/percy-webdriverio.svg)](https://www.npmjs.com/package/@percy/percy-webdriverio)
[![Build Status](https://travis-ci.org/percy/percy-webdriverio.svg?branch=master)](https://travis-ci.org/percy/percy-webdriverio)

**@percy/percy-webdriverio** adds [Percy](https://percy.io) visual testing and review to your [**WebdriverIO**](http://webdriver.io/) tests.

#### Docs here: [https://percy.io/docs/clients/javascript/webdriverio](https://percy.io/docs/clients/javascript/webdriverio)

# Acknowledgements

Thanks to [Miklós Fazekas](https://github.com/mfazekas) for creating the initial implementation of this package.
npm package: @percy/poller
Description: Poll Percy for a build's status
Author: Perceptual Inc
Latest version: 0.1.0
Deprecated: @percy/poller is deprecated. Please use @percy/cli's build:wait command instead.

# percy-poller

[![Package Status](https://img.shields.io/npm/v/@percy/poller.svg)](https://www.npmjs.com/package/@percy/poller)

Utility to poll for a build's status on [Percy](https://percy.io).  

## Use

**NOTE:** Using percy-poller requires a special token. The normal token provided on a project's settings page will not work.

```bash
npm i -g @percy/poller
export PERCY_FULL_TOKEN=<your_token>  # Handle this token securely - it must be kept secret
export PERCY_PROJECT=<your_project>  # From your project settings

# Option 1 - Poll by build_id:
percy-poller --build_id <your_build_id>

# Option 2 - Poll by git commit sha:
percy-poller --sha <your_commit_sha>
```

* If the build is still processing, it will poll until the build is finished. It retries once a second, with a max of 1000 retries.
* It will log the status of the build requested in JSON format.  
* If an error is encountered, it will log the error to stderr, and exit with a code of 1.

### Sample Build Status

The status is JSON formatted, and has several main fields of interest:
- state: You probably want to confirm this is 'finished' and not 'failed' or another error condition.  
- web-url: This is to Percy's web UI for viewing and approving the build.
- review-state: unreviewed or approved. Builds will be automatically approved if there are no visual changes since last approval.
- total-snapshots: The total number of snapshots in the build.
- total-snapshots-unreviewed: The total number of snapshots with changes that are unreviewed.

Sample of a full status:

```
{
  "branch": "master",
  "build-number": 632,
  "web-url": "https://percy.io/test/test/builds/430290",
  "state": "finished",
  "review-state": "approved",
  "review-state-reason": "no_diffs",
  "is-pull-request": false,
  "pull-request-number": null,
  "pull-request-title": null,
  "user-agent": "Percy/v1 percy-storybook/1.2.6 percy-js/2.4.2 (storybook/^3.2.12 react/^15.6.1; node/v8.4.0)",
  "total-snapshots": 18,
  "total-snapshots-unreviewed": 18,
  "total-comparisons": 36,
  "total-comparisons-finished": 36,
  "total-comparisons-diff": 36,
  "failure-reason": null,
  "parallel-nonce": null,
  "parallel-total-shards": null,
  "finished-at": "2017-12-05T18:57:28.000Z",
  "approved-at": null,
  "created-at": "2017-12-05T18:57:07.000Z",
  "updated-at": "2017-12-05T18:57:28.000Z"
}
```

## Development

After making code changes, you'll need to rebuild before they'll take effect.
```
yarn build
export PERCY_FULL_TOKEN=<your_token>  # Handle this token securely - it must be kept secret
./bin/percy-poller.js  --build_id <your_build_id>
```

## Testing

Use `yarn test` to run the tests # TODO
npm package: @percy/report
Description: Package to generate a build report and project summary report for Percy, BrowserStack's visual testing platform
Author: BrowserStack Pvt Ltd
Latest version: 1.0.6

# Percy Report Generator <img src="https://files.readme.io/369dd84-logo-dark-icon-32.svg" >


## Installation

```sh

npm install @percy/report

```

<h3> Export Percy Token </h3>
Get percy Read Only or Full Access token from your percy project settings & export it

```
export PERCY_TOKEN=<read-only | full-access>
```


## Usage

<h3>Generate Report - Per Build</h3>

```sh
npx percy-report generate <buildId> [options]
```
Note: Build ID can be found in the URL of the Percy Dashboard as well as the REST API data.
Example Build URL: `https://percy.io/<projectId>/PercyReporting/builds/<buildId>`

<h3>Options for percy-report generate :</h3>

```sh
  --percy-token <percyToken>      Percy ReadOnly or FullAccess Token (default: PERCY_TOKEN Environment Variable)
  --download-path <downloadPath>  Directory path where to generate the report (default: "./Reports")
  --download-images               If True Images will be downloaded (default: false)
  --diff-threshold                Threshold for percentage change in snapshots (default : 1)
  -h, --help                      display help for command
```

<h3>Generate Report along with Percy Runs</h3>

Step 1 : Run the Percy Build<br>
Step 2 : Extract the Percy Build ID from the Percy run<br>
Step 3 : Execute the Percy Report Generation Step<br>

[Example](/example/percy.sh):
```sh
export PERCY_TOKEN=<your-percy-token>
BUILD_ID=$(npx percy exec -- {Test Command} | grep https:\/\/percy.io\/.*\/builds | awk -F "/" '{print $NF}')
npx percy-report generate $BUILD_ID
```

<h3>Generate Project Summary</h3>

```sh
npx percy-report summary <project-slug> [options]
```

Note: Project Slug is equal to Project Name on your percy dashboard

<h3>Options for summary functionlity</h3>

```sh
  --percy-token <percyToken>  Percy ReadOnly or FullAccess Token
  --start-date <start-date>   Consider builds created on greater than equal to start date(mm/dd/yyyy) (Default: Today)
  --end-date <end-date>       Consider builds created on less than equal to end date(mm/dd/yyyy) (Default: Today)
  -h, --help                  display help for command
```

*Note: Interval between start date and end date should not exceed 30 days.*

# Examples

## Web Percy

#### Build Report
![percy_web_build_report](example/screenshots/percy_build_report_web.png)
#### Summary Report
![percy_web_summary_report](example/screenshots/percy_summary_report_web.png)

## App Percy

#### Build Report
![percy_app_build_report](example/screenshots/percy_build_report_app.png)

#### Summary Report
![percy_app_summary_report](example/screenshots/percy_summary_report_app.png)
npm package: @percy/script
Description: PercyScript is the easiest way to get started with visual testing and Percy.
Author: Perceptual Inc.
Latest version: 1.1.0
Deprecated: PercyScript has been deprecated in favor of Percy CLI's snapshot command: https://docs.percy.io/docs/percy-snapshot Please upgrade to use the CLI rather than this package, as it's no longer actively supported.

# @percy/script
[![Package Status](https://img.shields.io/npm/v/@percy/script.svg)](https://www.npmjs.com/package/@percy/script)
[![CircleCI](https://circleci.com/gh/percy/percy-script/tree/master.svg?style=svg)](https://circleci.com/gh/percy/percy-script/tree/master)
[![Build status](https://ci.appveyor.com/api/projects/status/h3pgs7unevaqos7o/branch/master?svg=true)](https://ci.appveyor.com/project/percy/percy-script/branch/master)
[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/percy/percy-script)

PercyScript is the easiest way to get started with visual testing and [Percy](https://percy.io).

## Resources

* [Setup and integration docs](https://docs.percy.io/docs/percyscript)
* [Tutorial](https://docs.percy.io/docs/percyscript-tutorial)
* [Example integration](https://github.com/percy/example-percyscript)
npm package: @percy/seleniumjs
Description: Selenium.js client library for visual regression testing with Percy
Author: Perceptual Inc.
Latest version: 0.1.2

# @percy/seleniumjs
[![Version](https://img.shields.io/npm/v/@percy/seleniumjs.svg)](https://npmjs.org/package/@percy/seleniumjs)
[![CircleCI](https://circleci.com/gh/percy/percy-seleniumjs.svg?style=svg)](https://circleci.com/gh/percy/percy-seleniumjs)
[![Build status](https://ci.appveyor.com/api/projects/status/68v7g6ahfmak0iha/branch/master?svg=true)](https://ci.appveyor.com/project/percy/percy-seleniumjs/branch/master)
[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/percy/percy-seleniumjs)


[Percy](https://percy.io) visual testing for [Selenium.js](https://www.npmjs.com/package/selenium-webdriver).
npm package: @percy/testcafe
Description: TestCafe client library for visual testing with Percy
Author: Perceptual Inc.
Latest version: 1.0.4

# @percy/testcafe
[![Version](https://img.shields.io/npm/v/@percy/testcafe.svg)](https://www.npmjs.com/package/@percy/testcafe)
![Test](https://github.com/percy/percy-testcafe/workflows/Test/badge.svg)

[Percy](https://percy.io) visual testing for
[TestCafe](https://www.devexpress.com/products/testcafestudio/).

## Installation

```sh-session
$ npm install --save-dev @percy/cli @percy/testcafe
```

## Usage

This is an example test using the `percySnapshot` function.

```javascript
import percySnapshot from '@percy/testcafe';

fixture('MyFixture')
  .page('http://devexpress.github.io/testcafe/example');

test('Test1', async t => {
  await t.typeText('#developer-name', 'John Doe');
  await percySnapshot(t, 'TestCafe Example');
});
```

Running the test above normally will result in the following log:

```sh-session
[percy] Percy is not running, disabling snapshots
```

When running with [`percy
exec`](https://github.com/percy/cli/tree/master/packages/cli-exec#percy-exec), and your project's
`PERCY_TOKEN`, a new Percy build will be created and snapshots will be uploaded to your project.

```sh-session
$ export PERCY_TOKEN=[your-project-token]
$ percy exec -- testcafe chrome:headless tests
[percy] Percy has started!
[percy] Created build #1: https://percy.io/[your-project]
[percy] Running "testcafe chrome:headless tests"

 Running tests in:
 - Chrome ...

 MyFixture
[percy] Snapshot taken "TestCafe Example"
 ✓ Test1

 1 passed (1s)

[percy] Stopping percy...
[percy] Finalized build #1: https://percy.io/[your-project]
[percy] Done!
```

## Configuration

`percySnapshot(t, name[, options])`

- `t`(**required**) - The test controller instance passed from `test`
- `name` (**required**) - The snapshot name; must be unique to each snapshot
- `options` - [See per-snapshot configuration options](https://docs.percy.io/docs/cli-configuration#per-snapshot-configuration)

## Upgrading

### Automatically with `@percy/migrate`

We built a tool to help automate migrating to the new CLI toolchain! Migrating
can be done by running the following commands and following the prompts:

``` shell
$ npx @percy/migrate
? Are you currently using @percy/testcafe? Yes
? Install @percy/cli (required to run percy)? Yes
? Migrate Percy config file? Yes
? Upgrade SDK to @percy/testcafe@1.0.0? Yes
```

This will automatically run the changes described below for you.

### Manually

#### Installing `@percy/cli`

If you're coming from a pre-2.0 version of this package, make sure to install `@percy/cli` after
upgrading to retain any existing scripts that reference the Percy CLI command.

```sh-session
$ npm install --save-dev @percy/cli
```

#### Migrating Config

If you have a previous Percy configuration file, migrate it to the newest version with the
[`config:migrate`](https://github.com/percy/cli/tree/master/packages/cli-config#percy-configmigrate-filepath-output) command:

```sh-session
$ percy config:migrate
```
npm package: @perdieminc/models
Description: A simple crud model provider with caching support and extendable design
Author: Per Diem INC
Latest version: 3.3.6

# PerDiem Models

> A simple model extension for Knex with Redis caching and read replica support

## Exports

```typescript
import { Model, Cache, Connector } from 'perdiem-models'
```

## Connector

Manages primary/replica database connections with round-robin read distribution.

```typescript
new Connector(primaryDatabase: Pool<Client>, replicas: Pool<Client>[])
```

## Model

Provides CRUD operations on a Knex-backed table with optional caching and read replica routing.

```typescript
new Model<T>(knex: Knex, config: ModelConfig)
```

```typescript
type ModelConfig = {
  table: string
  columns?: string[]
  cacheOptions?: CacheOptions
  connector: Connector
}
```

### Methods

```typescript
getTransaction(): Promise<Knex.Transaction>

create(record: IncommingRecord<T>, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T[]>

update(conditions: ModelConditions<T>, record: IncommingRecord<T>, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T[]>

del(conditions: ModelConditions<T>, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T[]>

get(conditions: ModelConditions<T>, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T | null>

getAll(conditions?: ModelConditions<T>, options?: ModelOptions, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T[]>

getMany(conditions: ModelConditions<T>, hooks?: ModelHooks<T>, connectionConfig?: ModalConnectionConfig): Promise<T[]>

count(conditions?: ModelConditions<T>, columns?: string[], connectionConfig?: ModalConnectionConfig): Promise<number>

customRead(queryBuilder: (q: Knex.QueryBuilder) => Knex.QueryBuilder, connectionConfig?: ModalConnectionConfig): Promise<T[]>

customWrite(queryBuilder: (q: Knex.QueryBuilder) => Knex.QueryBuilder, connectionConfig?: ModalConnectionConfig): Promise<T[]>
```

## Cache

Standalone Redis cache with key-based lookups, pipelined reads/writes, and configurable TTL.

```typescript
new Cache<T>(config: CacheOptions)
```

```typescript
type CacheOptions = {
  provider: Redis
  prefix: string
  keys: string[]
  expiryMode?: string // default: 'EX'
  expireTime?: number // default: 48 hours
  disabled?: boolean
}
```

### Methods

```typescript
get(keySet: KeySet<T>): Promise<T | null>

getMultiple(keySets: KeySet<T>[]): Promise<FetchedRecord<T>[] | null>

set(record: FetchedRecord<T>): Promise<void>

setMultiple(records: FetchedRecord<T>[]): Promise<void>

del(keySet: KeySet<T>): Promise<void>

delMultiple(keySets: KeySet<T>[]): Promise<void>
```
npm package: @perdition/architect-core
Description: <p align="center">   <img src="https://img.shields.io/npm/v/@perdition/architect-core" /> </p>
Author: Alex XZ Cypher Zero
Latest version: 1.0.7

# Core module

<p align="center">
  <img src="https://img.shields.io/npm/v/@perdition/architect-core" />
</p>

This is the core module for Architect. It contains generic supporting code for modules built on top of it.