open-index/open-npm huggingface dataset:
npm package: @fireflysemantics/validatorts
Description: Data Validation and Sanitization
Latest version: 13.0.90

# @fireflysemantics/validatorts

A typescript library of [validators and sanitizers](https://fireflysemantics.github.io/validatorts/modules.html) based on [validator.js](https://www.npmjs.com/package/validator).


[![Build Status](https://travis-ci.org/fireflysemantics/validatorts.svg?branch=master)](https://travis-ci.org/fireflysemantics/validatorts)

## Typedoc

The [Typedoc](https://fireflysemantics.github.io/validatorts/) contains documentation for all the `validators` and `sanitizers`.

## Install

```
npm i -S @fireflysemantics/validatorts tslib
```

## Use

```
import { isPort } from '@fireflysemantics/validatorts';
console.log(isPort('4200').value) //Logs true
console.log(isPort('70000').value); //Logs false
console.log(isPort('4200').error); //Logs undefined
```

[Stackblitz Playground](https://stackblitz.com/edit/typescript-ezqnqa?file=index.ts)

## Error Handling

In the event of an error the `Result.value` property will be `undefined` and both the `message` and `error` properties will be set, thus we can handle and error like this:

```
if (isPort(4200).error) {
  console.log(isPort(4200).value); //Logs undefined
  console.log(isPort(4200).message);  //The target argument 4200 is not a string.
}
```

To see what types of errors can occur see the [Typedoc](https://fireflysemantics.github.io/validatorts/) for the API being used.

For more details on the error handling design and approach see [Typescript Exception Free Function Error Handling](https://developer.fireflysemantics.com/tasks/tasks--typescript--typescript-exception-free-error-handling).


### Result API

Each `validator` and `sanitizer` returns a `Result` instance with this interface:

```
/**
 * The result of validation and sanitation calls.
 */
export class Result<E> {
    public message?:string
    constructor(
        public value: E | undefined,
        public error?: MessageFunctionType,
        public parameters?: string[]
    ) { 
        if (error) {
            this.message = this.error!(parameters)
        }
    }
}
```

## Build ValidatorTS
From the project root run `npm run b`

## Running unit tests

Run the Jest Tests for ValidatorTS

`npm t`

## ValidatorTS Workspace    

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

## Generate Typedoc 

`npm run doc`

Typedoc will be contained in the `doc` folder of the root directory.


## Supported Package Formats

The library is built with the Angular Package Format.  It therefore supports all these package formats (As can be seen in the provided `package.json`) and has integrated typescript definitions:

- "main": "bundles/fireflysemantics-validatorts.umd.js",
-  "module": "fesm5/fireflysemantics-validatorts.js",
-  "es2015": "fesm2015/fireflysemantics-validatorts.js",
-  "esm5": "esm5/fireflysemantics-validatorts.js",
-  "esm2015": "esm2015/fireflysemantics-validatorts.js",
-  "fesm5": "fesm5/fireflysemantics-validatorts.js",
-  "fesm2015": "fesm2015/fireflysemantics-validatorts.js",
-  "typings": "fireflysemantics-validatorts.d.ts",
npm package: @fireflytest/sdk-core
Description: ⚒️ An SDK for building applications on top of Uniswap V3
Latest version: 4.0.10

# Uniswap SDK Core

[![Unit Tests](https://github.com/Uniswap/uniswap-sdk-core/workflows/Unit%20Tests/badge.svg)](https://github.com/Uniswap/uniswap-sdk-core/actions?query=workflow%3A%22Unit+Tests%22)
[![Lint](https://github.com/Uniswap/uniswap-sdk-core/workflows/Lint/badge.svg)](https://github.com/Uniswap/uniswap-sdk-core/actions?query=workflow%3ALint)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk-core/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk-core/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk-core/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk-core@latest)

This code is shared across Uniswap TypeScript SDKs.
npm package: @firefox-devtools/react-contextmenu
Description: Context Menu implemented in React
Author: Vivek Kumar Bansal
Latest version: 5.2.3

# React Contextmenu

ContextMenu in React with accessibility support. Live Examples can be found [here](//vkbansal.github.io/react-contextmenu/)

This is a fork from [the original project](https://github.com/vkbansal/react-contextmenu) for use with the [firefox profiler](https://github.com/firefox-devtools/profiler/). We
don't intend to add new features but will fix issues with the existing code, and
sometimes change it for our usage. We hope it can be useful for more projects.

Thanks [Vivek Kumar Bansal](https://github.com/vkbansal) for all the good work
put in this project.

## Table of contents

 - [Installation](#installation)
 - [Browser Support](#browser-support)
 - [Usage](#usage)
 - [API](#api)
 - [FAQs](#faqs)
 - [Contributors](#contributors)
 - [Changelog](#changelog)
 - [License](#license)

## Installation

Using npm

```
npm install --save @firefox-devtools/react-contextmenu
```

Using yarn

```
yarn add @firefox-devtools/react-contextmenu
```

## Browser Support
- Edge >= 94
- FireFox >= 91 and 78
- Chrome >= 92
- Opera >= 79
- Safari >= 13.1

## Usage

Simple example

```jsx
import React from "react";
import ReactDOM from "react-dom";
import { ContextMenu, MenuItem, ContextMenuTrigger } from "@firefox-devtools/react-contextmenu";

function handleClick(e, data) {
  console.log(data.foo);
}

function MyApp() {
  return (
    <div>
      {/* NOTICE: id must be unique between EVERY <ContextMenuTrigger> and <ContextMenu> pair */}
      {/* NOTICE: inside the pair, <ContextMenuTrigger> and <ContextMenu> must have the same id */}

      <ContextMenuTrigger id="same_unique_identifier">
        <div className="well">Right click to see the menu</div>
      </ContextMenuTrigger>

      <ContextMenu id="same_unique_identifier">
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 1
        </MenuItem>
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 2
        </MenuItem>
        <MenuItem divider />
        <MenuItem data={{foo: 'bar'}} onClick={this.handleClick}>
          ContextMenu Item 3
        </MenuItem>
      </ContextMenu>

    </div>
  );
}

ReactDOM.render(<MyApp myProp={12}/>, document.getElementById("main"));
```

see [usage docs](./docs/usage.md) / [examples](./examples) for more details.

## API

[API docs](./docs/api.md)

## FAQs

[ALL FAQs](./docs/faq.md)

## Who's using react-contextmenu?
- [react-data-grid](https://github.com/adazzle/react-data-grid)
- [teamup.com](https://teamup.com)
- [Spotify Web Player](https://open.spotify.com)

## Contributors

[All Contributors](https://github.com/firefox-devtools/react-contextmenu/graphs/contributors)

## Changelog

For Changelog, see [releases](https://github.com/firefox-devtools/react-contextmenu/releases)
For the changelog from before the fork, see [releases](https://github.com/vkbansal/react-contextmenu/releases)

## License

[MIT](./LICENSE.md). Copyright(c) [Vivek Kumar Bansal](http://vkbansal.me/)
npm package: @firefoxic/eslint-config
Description: Shared config for eslint by firefoxic.
Author: Sergey Artemov
Latest version: 8.0.1

# @firefoxic/eslint-config

[![License: MIT][license-image]][license-url]
[![Changelog][changelog-image]][changelog-url]
[![NPM version][npm-image]][npm-url]
[![Test Status][test-image]][test-url]

Shared config for eslint by [firefoxic](https://firefoxic.dev).

To see the rules that this config uses, please read the [config itself](./lib/index.js).

## Installation

```shell
pnpm add -D eslint @firefoxic/eslint-config
```

## Usage

Set your `eslint.config.js` to:

```js
import { default as firefoxicEslintConfig, globals } from "@firefoxic/eslint-config"

export default [
	{
		languageOptions: {
			globals: {
				...globals.browser, // If you're working on a frontend project
				...globals.nodeBuiltin, // If you're working on a Node.js project
			},
		},
	},
	...firefoxicEslintConfig,
	{
		rules: {
			// Your overrides or additions to rules
		}
	}
]
```

[license-url]: https://github.com/firefoxic/eslint-config/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/License-MIT-limegreen.svg

[changelog-url]: https://github.com/firefoxic/eslint-config/blob/main/CHANGELOG.md
[changelog-image]: https://img.shields.io/badge/CHANGELOG-md-limegreen

[npm-url]: https://www.npmjs.com/package/@firefoxic/eslint-config
[npm-image]: https://badge.fury.io/js/@firefoxic%2Feslint-config.svg

[test-url]: https://github.com/firefoxic/eslint-config/actions
[test-image]: https://github.com/firefoxic/eslint-config/actions/workflows/test.yaml/badge.svg?branch=main
npm package: @firefoxic/oxlint-config
Description: Shared config for oxlint by firefoxic.
Author: Sergey Artemov
Latest version: 0.3.1

# @firefoxic/oxlint-config

[![License: MIT][license-image]][license-url]
[![Changelog][changelog-image]][changelog-url]
[![NPM version][npm-image]][npm-url]
[![Test Status][test-image]][test-url]

Shared config for oxlint by [firefoxic](https://github.com/firefoxic).

The configuration consists of two parts:

- [syntactic](./lib/syntactic.jsonc) rules,
- [stylistic](./lib/stylistic.jsonc) rules.

## Installation

```sh
pnpm add -D oxlint @firefoxic/oxlint-config
```

## Usage

Set your `.oxlintrc.json` to:

```json
{
	"$schema": "./node_modules/oxlint/configuration_schema.json",
	"extends": [
		"./node_modules/@firefoxic/oxlint-config/lib/syntactic.jsonc",
		"./node_modules/@firefoxic/oxlint-config/lib/stylistic.jsonc"
	],
	"categories": {
		"style": "warn"
	},
	"env": {
		"node": true
	},
	"rules": {
		// Your rules
	},
	"overrides": [
		// Your overrides
		{
			"files": [
				"**/*.test.{js,ts}"
			],
			"rules": {
				"no-undefined": "off"
			}
		}
	]
}
```

[license-url]: https://github.com/firefoxic/oxlint-config/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/License-MIT-limegreen.svg

[changelog-url]: https://github.com/firefoxic/oxlint-config/blob/main/CHANGELOG.md
[changelog-image]: https://img.shields.io/badge/CHANGELOG-md-limegreen

[npm-url]: https://www.npmjs.com/package/@firefoxic/oxlint-config
[npm-image]: https://badge.fury.io/js/@firefoxic%2Foxlint-config.svg

[test-url]: https://github.com/firefoxic/oxlint-config/actions
[test-image]: https://github.com/firefoxic/oxlint-config/actions/workflows/test.yaml/badge.svg?branch=main
npm package: @firefoxic/stylelint-config
Description: Shared config for stylelint by firefoxic.
Author: Sergey Artemov
Latest version: 6.0.2

# @firefoxic/stylelint-config

[![License: MIT][license-image]][license-url]
[![Changelog][changelog-image]][changelog-url]
[![NPM version][npm-image]][npm-url]
[![Test Status][test-image]][test-url]

Shared config for stylelint by [firefoxic](https://firefoxic.dev).

To see the rules that this config uses, please read the [config itself](./stylelint.config.js).

## Installation

```shell
pnpm add -D stylelint @firefoxic/stylelint-config
```

## Usage

Set your `stylelint.config.js` to:

```js
export default {
	customSyntax: "postcss-scss", // If your styles syntax is different from CSS (don't forget to install the package)
	extends: "@firefoxic/stylelint-config",
	rules: {
		// Your overrides or additions to rules
	}
}
```

[license-url]: https://github.com/firefoxic/stylelint-config/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/License-MIT-limegreen.svg

[changelog-url]: https://github.com/firefoxic/stylelint-config/blob/main/CHANGELOG.md
[changelog-image]: https://img.shields.io/badge/CHANGELOG-md-limegreen

[npm-url]: https://npmjs.org/package/@firefoxic/stylelint-config
[npm-image]: https://badge.fury.io/js/@firefoxic%2Fstylelint-config.svg

[test-url]: https://github.com/firefoxic/stylelint-config/actions
[test-image]: https://github.com/firefoxic/stylelint-config/actions/workflows/test.yaml/badge.svg?branch=main
npm package: @firefoxic/update-changelog
Description: CLI utility for automatic update of CHANGELOG.md
Author: Sergey Artemov
Latest version: 2.0.2
Deprecated: Instead, use `@firefoxic/release-it`

# @firefoxic/update-changelog

[![License: MIT][license-image]][license-url]
[![Changelog][changelog-image]][changelog-url]
[![NPM version][npm-image]][npm-url]
[![Test Status][test-image]][test-url]

CLI utility for automatic update of `CHANGELOG.md`.

## Purpose

Increasing the version of a package usually requires creating a commit (extra for history) with a message something like `Prepare release`. This commit should manually add a header to `CHANGELOG.md` with the new version and the release date, and change the links to the comparison at the bottom of the file.

The `update-changelog` utility gets rid of this chore, random typos, and an unnecessary commit.

## Installation

```shell
pnpm add -D @firefoxic/update-changelog
```

## Usage

When creating a new version, simply do not create the `Prepare release` commit. Just run `update-changelog` directly after the `pnpm version <release_type>` command.

You can use it in your CI pipeline. See the [`release.yaml`](https://github.com/firefoxic/update-changelog/blob/main/.github/workflows/release.yaml) file for an example.

## Some restrictions

The `update-changelog` expects the following:

- The name of the changelog file is `CHANGELOG.md`.
- The format of the changelog is consistent with [Keep a changelog](https://keepachangelog.com).
- Descriptions of all user-important changes are already in the changelog under the heading `[Unreleased]`. Ideally, you should commit them along with the changes themselves.
- If this is the first release of a package, there should be only one reference for [Unreleased] at the end of the changelog in the following format for correct reference updating:

	```md
	[Unreleased]: https://github.com/<user-name>/<project-name>/compare/v0.0.1...HEAD
	```

	**Example:** [the state of this project's changelog](https://github.com/firefoxic/update-changelog/commit/37b9102f8673fedae2cdeaf9e44f027360617cea#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR7-R14) before the first release.

[license-url]: https://github.com/firefoxic/update-changelog/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/License-MIT-limegreen.svg

[changelog-url]: https://github.com/firefoxic/update-changelog/blob/main/CHANGELOG.md
[changelog-image]: https://img.shields.io/badge/CHANGELOG-md-limegreen

[npm-url]: https://npmjs.com/package/@firefoxic/update-changelog
[npm-image]: https://badge.fury.io/js/@firefoxic%2Fupdate-changelog.svg

[test-url]: https://github.com/firefoxic/update-changelog/actions
[test-image]: https://github.com/firefoxic/update-changelog/actions/workflows/test.yml/badge.svg?branch=main
npm package: @firefoxic/utils
Description: Collection of useful utilities for JavaScript and Node.js.
Author: Sergey Artemov
Latest version: 2.1.1

# @firefoxic/utils

[![License: MIT][license-image]][license-url]
[![Changelog][changelog-image]][changelog-url]
[![NPM version][npm-image]][npm-url]
[![Test Status][test-image]][test-url]

Collection of useful utilities for JavaScript and Node.js.

## Installation

```shell
pnpm add -D @firefoxic/utils
```

## Usage

### `getProjectRoot`

Your action should set the `REPO_NAME` environment variable to the step you want. If your action works with pull requests, you should also add two lines (which are marked below with a special comment) to use the `PR_NUMBER` variable. For example:

```yaml
jobs:
  job_name:
    runs-on: ubuntu-latest
    steps:

      # Any steps before building a project

      - name: Build project
        run: pnpm build
        env:
          REPO_NAME: ${{ github.event.repository.name }}
          PR_NUMBER: ${{ github.event.pull_request.number }}     # For PR action

      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          folder: ./dist
          branch: gh-pages
          target-folder: ${{ github.event.pull_request.number }} # For PR action
```

Than you can get the path to the project root when deploying to GitHub Pages, for example in `vite.config.js`:

```js
import { defineConfig } from "vite"
import { getProjectRoot } from "@firefoxic/utils"

export default defineConfig({
	base: `${getProjectRoot()}/`,
})
```

### `setGitHubEnvVar`

Your action must accept the environment variable you pass into it from the JS. For example, you can pass the path to the distribution directory from the `vite.config.js`:

```js
import { defineConfig } from "vite"

import { setGitHubEnvVar } from "@firefoxic/utils"

const PATH_TO_SRC = `./a_very_strange_path_to_source`
const PATH_TO_DIST = `./a_very_strange_path_to_dist`

setGitHubEnvVar(`PATH_TO_DIST`, PATH_TO_DIST)

export default defineConfig({
	root: PATH_TO_SRC,
	build: {
		outDir: `.${PATH_TO_DIST}`,
	},
})
```

Then you can use this variable in the deploy step of your action:

```yaml
jobs:
  job_name:
    runs-on: ubuntu-latest
    steps:

      # Any steps before deploying a project

      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@v4
        with:
          folder: ${{ env.PATH_TO_DIST }}
          branch: gh-pages
```

[license-url]: https://github.com/firefoxic/utils/blob/main/LICENSE.md
[license-image]: https://img.shields.io/badge/License-MIT-limegreen.svg

[changelog-url]: https://github.com/firefoxic/utils/blob/main/CHANGELOG.md
[changelog-image]: https://img.shields.io/badge/CHANGELOG-md-limegreen

[npm-url]: https://www.npmjs.com/package/@firefoxic/utils
[npm-image]: https://badge.fury.io/js/@firefoxic%2Futils.svg

[test-url]: https://github.com/firefoxic/utils/actions
[test-image]: https://github.com/firefoxic/utils/actions/workflows/test.yaml/badge.svg?branch=main
npm package: @firefoxnx/mongodb-memory-server
Description: MongoDB Server for testing (auto-download latest version). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.
Latest version: 10.1.6

# mongodb-memory-server

[![Node.js CI](https://github.com/typegoose/mongodb-memory-server/workflows/Node.js%20CI/badge.svg)](https://github.com/typegoose/mongodb-memory-server/actions/workflows/tests.yml?query=workflow%3A%22Node.js+CI%22)
[![NPM version](https://img.shields.io/npm/v/mongodb-memory-server.svg)](https://www.npmjs.com/package/mongodb-memory-server)
[![Downloads stat](https://img.shields.io/npm/dt/mongodb-memory-server.svg)](http://www.npmtrends.com/mongodb-memory-server)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![TypeScript compatible](https://img.shields.io/badge/typescript-compatible-brightgreen.svg)](https://www.typescriptlang.org)
[![codecov.io](https://codecov.io/github/typegoose/mongodb-memory-server/coverage.svg?branch=master)](https://codecov.io/github/typegoose/mongodb-memory-server?branch=master)
[![Backers on Open Collective](https://opencollective.com/mongodb-memory-server/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/mongodb-memory-server/sponsors/badge.svg)](#sponsors)
[![mongodb-memory-server](https://snyk.io/advisor/npm-package/mongodb-memory-server/badge.svg)](https://snyk.io/advisor/npm-package/mongodb-memory-server)

Main default package which downloads mongod binary to `./node_modules/.cache` directory on package install.

[Full README with avaliable options and examples](https://github.com/typegoose/mongodb-memory-server)
npm package: @firefoxnx/mongodb-memory-server-core
Description: MongoDB Server for testing (core package, without autodownload). The server will allow you to connect your favourite ODM or client library to the MongoDB Server and run parallel integration tests isolated from each other.
Latest version: 10.1.4

# mongodb-memory-server-core

[![Node.js CI](https://github.com/typegoose/mongodb-memory-server/workflows/Node.js%20CI/badge.svg)](https://github.com/typegoose/mongodb-memory-server/actions/workflows/tests.yml?query=workflow%3A%22Node.js+CI%22)
[![NPM version](https://img.shields.io/npm/v/mongodb-memory-server-core.svg)](https://www.npmjs.com/package/mongodb-memory-server-core)
[![Downloads stat](https://img.shields.io/npm/dt/mongodb-memory-server-core.svg)](http://www.npmtrends.com/mongodb-memory-server-core)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![TypeScript compatible](https://img.shields.io/badge/typescript-compatible-brightgreen.svg)](https://www.typescriptlang.org)
[![codecov.io](https://codecov.io/github/typegoose/mongodb-memory-server/coverage.svg?branch=master)](https://codecov.io/github/typegoose/mongodb-memory-server?branch=master)
[![Backers on Open Collective](https://opencollective.com/mongodb-memory-server/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/mongodb-memory-server/sponsors/badge.svg)](#sponsors)
[![mongodb-memory-server-core](https://snyk.io/advisor/npm-package/mongodb-memory-server-core/badge.svg)](https://snyk.io/advisor/npm-package/mongodb-memory-server-core)

Core package which contains main code. Used in all other packages.

[Full README with available options and examples](https://github.com/typegoose/mongodb-memory-server)
npm package: @firefueled/--react-scripts-ts
Description: Configuration and scripts for Create React App.
Latest version: 0.1.0

# react-scripts

This package includes scripts and configuration used by [Create React App](https://github.com/facebookincubator/create-react-app).<br>
Please refer to its documentation:

* [Getting Started](https://github.com/facebookincubator/create-react-app/blob/master/README.md#getting-started) – How to create a new app.
* [User Guide](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md) – How to develop apps bootstrapped with Create React App.
npm package: @fireguard/vue-snotify
Description: A Vue.js toast notifications
Author: artemsky
Latest version: 3.2.4

# vue-snotify

[![Build Status](https://travis-ci.org/artemsky/vue-snotify.svg?branch=master)](https://travis-ci.org/artemsky/vue-snotify)
[![NPM Version](https://img.shields.io/npm/v/vue-snotify.svg)](https://www.npmjs.com/package/vue-snotify)
[![NPM Downloads](https://img.shields.io/npm/dt/vue-snotify.svg)](https://www.npmjs.com/package/vue-snotify)
[![Dev dependencies status list](https://david-dm.org/artemsky/vue-snotify/dev-status.svg)](https://david-dm.org/artemsky/vue-snotify?type=dev)

## Example
https://artemsky.github.io/vue-snotify/

## Features

- 9 types of toast notifications (async, confirm, prompt, html and more...)
- Many config options (icons, backdrop, timeout, position and much more...)
- Repository includes 3 different styles. So you can use on of them, or create your own.
- Callbacks
- 5KB minified and gzipped
- Typescript definitions
- ESM, CommonJS, UMD versions

###### Looking for an Angular version? [Here](https://github.com/artemsky/ng-snotify/)

![Snotify Gif](https://artemsky.github.io/vue-snotify/static/vue-snotify-demo.gif)

## Installation

###### NPM 5
`npm install vue-snotify`

###### yarn
`yarn add vue-snotify`

[see detailed instruction](https://artemsky.github.io/vue-snotify/documentation/installation.html)

## Documentation and Examples

Documentation - [here](https://artemsky.github.io/vue-snotify/documentation/index.html)  
Example application source - [here](https://github.com/artemsky/vue-snotify/tree/master/example/src)   
Change Log - [here](https://github.com/artemsky/vue-snotify/blob/master/CHANGELOG.md)

#### CDN
  - JS
    - [unpkg.com](https://unpkg.com/vue-snotify@latest/vue-snotify.min.js) | [jsDelivr.com](https://cdn.jsdelivr.net/npm/vue-snotify@latest/vue-snotify.min.js)
  - CSS
    - material [unpkg.com](https://unpkg.com/vue-snotify@latest/styles/material.css) | [jsDelivr.com](https://cdn.jsdelivr.net/npm/vue-snotify@latest/styles/material.css)
    - simple [unpkg.com](https://unpkg.com/vue-snotify@latest/styles/simple.css) | [jsDelivr.com](https://cdn.jsdelivr.net/npm/vue-snotify@latest/styles/simple.css)
    - dark [unpkg.com](https://unpkg.com/vue-snotify@latest/styles/dark.css) | [jsDelivr.com](https://cdn.jsdelivr.net/npm/vue-snotify@latest/styles/dark.css)

## License

MIT © [artemsky](mailto:mr.artemsky@gmail.com)
npm package: @firehammer/sonargpt
Description: Command line tool to fix SonarCloud issues using ChatGPT.
Author: Aaron Stephens
Latest version: 0.2.0

# SonarGPT

Tool for fixing SonarCloud issues using OpenAI GPT model completions.

## Install

Global install is preferable, but it can be installed in a specific repository if desired. Only a handful of dependencies are required.

```
npm install --global @firehammer/sonargpt
```

## Usage

Change into a checkout of your repository and run the tool.

```
sonargpt --sonarcloud-org <org> --sonarcloud-token <token> --openai-api-key <key>
```
npm package: @fireheet/entities
Description: This package was created for a personal project, you can use it any way you like.
Author: Carly Silva
Latest version: 0.0.7

# Fireheet Entities <a><img src="https://img.shields.io/badge/0.0.7-red"/></a>

<a href="https://typeorm.io/#/"><img src="https://img.shields.io/badge/typeorm-v0.2.37-green"/></a>
<a href="https://typeorm.io/#/"><img src="https://img.shields.io/badge/typescript-v4.3.2-green"/></a>

*This package was created for a personal project*, **you can use it any way you like.**

The folder structure was made to separate different ORM's, and also for different services.
```
# Note that in all ORM's the entity fields are the same
```
---

## Modules

#### Users
|         	|Typeorm  |
|---------	|---------|
| Role    	|&#9745;  |
| User    	|&#9745;  |
| Address   |&#9745;  |
| Phone     |&#9745;  |

<a href="https://app.swaggerhub.com/apis-docs/fireheet/entities/0.1.0#/">Users entities documentation</a>
  
---
*To use this module, just import in your services or repository and use it as you like*

Example in NestJS:
```
import { User } from '@fireheet/entities/typeorm/users';

@Module({
  imports: [
    TypeOrmModule.forFeature([User, UsersRepository, ...]),
  ],
  controllers: [UsersController, ...],
  providers: [
    ...
  ],
  exports: [TypeOrmModule],
})
export default class UsersModule {}
```
npm package: @fireisgood/simple-signals
Description: A simple signal implementation to show how they work.
Author: FireIsGood
Latest version: 0.0.3

# Simple signals

[![NPM](https://nodei.co/npm/@fireisgood/simple-signals.svg?style=shields&data=v)](https://nodei.co/npm/@fireisgood/simple-signals/) ![NPM License](https://img.shields.io/npm/l/%40fireisgood%2Fsimple-signals)

A simple signal implementation to demonstrate how they work.

This project is based off the implementation as demonstrated by [Joy Of Code on
YouTube](https://www.youtube.com/watch?v=M5oAYP6Rxkg) with modifications to match modern implementations&mdash;mostly
to allow for direct calling to get the value.

Source code for reference can be found at [src/simple-signals.ts](src/simple-signals.ts) to show how simple the pattern
is.

## Examples

Basic usage:

```ts
import { computed, signal, Signal } from "@fireisgood/simple-signals";

const count = signal(1);
console.log(count()); // 1

// doubled.set() causes type errors
const doubled = computed(() => count() * 2);
console.log(count(), doubled()); // 1 2

count.set(4);
console.log(count(), doubled()); // 2 4

count.update((val) => val + 1);
console.log(count(), doubled()); // 5 10

// reference.set() causes type errors
const reference: Signal<number> = count;
console.log(count(), doubled(), reference()); // 5 10 5

count.set(10);
console.log(count(), doubled(), reference()); // 10 20 10
```

## Installation

The source code is offered as an NPM package:

```bash
npm install @fireisgood/simple-signals
```

## Tests

Tests are run using Jest and can be run with the following command:

```bash
npm run test
```

## Contributing

Huh? Why?

## License

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @firejsx/gzip
Description: Simple, small live gzip plugin for FireJSX
Author: Aniket Prajapati
Latest version: 1.0.1
Deprecated: FireJSX-GZIP is now a native FireJSX feature. This plugin is no longer required

# FireJSX GZIP

Simple, small live gzip plugin for [FireJSX](https://github.com/Fire-JSX/FireJSX)

## Installing

install using **yarn** or **npm**

**yarn**

```bash
$ yarn add @firejsx/gzip
```

**npm**

```bash
$ npm install @firejsx/gzip
```

## Registering

create a **firejsx.yml** file in the project root or specify one using `[ -c, --conf ]` flag.

Add the following in the file.

```yaml
plugins:
  - @firejsx/gzip
```

All done. Now your stuff will be gziped when using dev server.


## Code of conduct

Code of conduct can be found at [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)

## Contributing

Make sure to read **Contribution Guidelines** at [CONTRIBUTING.md](CONTRIBUTING.md) before contributing.

## License & Copyright

Copyright (C) 2020 Aniket Prajapati

Licensed under the [MIT](LICENSE)

## Contributors
 + [Aniket Prajapati](https://github.com/aniketfuryrocks) @ prajapati.ani306@gmail.com , [eAdded](http://www.eadded.com)
npm package: @firejsx/s3encode
Description: Simple, small [FireJSX](https://github.com/eAdded/FireJSX) plugin, which encodes urls to be S3 compatible.
Latest version: 1.3.0
Deprecated: Depreceated

# S3Encode

Simple, small [FireJSX](https://github.com/eAdded/FireJSX) plugin, which encodes urls to be S3 compatible.

## Install

install using **yarn** or **npm**

**yarn**

```bash
$ yarn add @firejsx/s3encode
```

**npm**

```bash
$ npm install @firejsx/s3encode
```

## Config

create a **firejsx.yml** file in the project root or specify one using `[ -c, --conf ]` flag.

Now you need to register the plugin

*firejsx.yml*

```yaml
plugins:
  - "@firejsx/s3encode"
```

## Code of conduct

Code of conduct can be found at [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)

## Contributing

Make sure to read **Contribution Guidelines** at [CONTRIBUTING.md](CONTRIBUTING.md) before contributing.

## License & Copyright

Copyright (C) 2020 Aniket Prajapati

Licensed under the [MIT LICENSE](LICENSE)

## Contributors
 + [Aniket Prajapati](https://github.com/aniketfuryrocks) @ prajapati.ani306@gmail.com , [eAdded](http://www.eadded.com)
npm package: @firejsx/s3publish
Description: Simple, small FireJSX plugin, which puts exported files from FireJSX to a S3 Bucket
Latest version: 0.6.1

# S3Publish

Simple, small [FireJSX](https://github.com/eAdded/FireJSX) plugin, which puts exported files from FireJSX to a S3 Bucket

## Install

install using **yarn** or **npm**

**yarn**

```bash
$ yarn add @firejsx/s3publish
```

**npm**

```bash
$ npm install @firejsx/s3publish
```

## Config

create a **firejsx.yml** file in the project root or specify one using `[ -c, --conf ]` flag.

Now you need to register the plugin and provide AWS Credentials

*firejsx.yml*

```yaml
plugins:
  - "@firejsx/s3publish"

custom:
  Aws:
    accessKeyId: string #enter accessKeyID of your IAM role here. Required
    secretAccessKey: string #enter secretAccessKey of your IAM role here. Required
    region: string #enter region of your s3 bucket. Required
    #You can put any other aws-sdk valid config here

  S3Publish:
    Bucket: string #enter Name of your s3 bucket. Required
    putStaticDir: boolean #put static dir to your s3 bucket. Defaults to true
    gzip: boolean #Gzip files. Defaults to true
    #You can put any other aws-sdk s3 putObject property here
```
**Consider using lib** [s3encode](https://www.npmjs.com/package/s3encode) **if your urls contains symbols like [?]**

## CacheControl

By default, files ending with `.html` and `.map.js` are set to `max-age:360` and others are set to `max-age=31536000`

To change cacheControl, you need to create a `firejsx.js` instead of `firejsx.yml` file in the project root dir

```javascript
exports.default = {
   custom: {
        //this is the default function to determine max-age
        CacheControl : path => path.endsWith('.html') || path.endsWith('.map.js') ? 'max-age:360' : 'max-age=31536000'
   }
}
```

## Code of conduct

Code of conduct can be found at [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)

## Contributing

Make sure to read **Contribution Guidelines** at [CONTRIBUTING.md](CONTRIBUTING.md) before contributing.

## License & Copyright

Copyright (C) 2020 Aniket Prajapati

Licensed under the [MIT LICENSE](LICENSE)

## Contributors
 + [Aniket Prajapati](https://github.com/aniketfuryrocks) @ prajapati.ani306@gmail.com , [eAdded](http://www.eadded.com)
npm package: @firekid/forge
Description: Official CLI for ForgeDB
Author: Firekid
Latest version: 1.0.3

# @firekid/forge

[![npm version](https://img.shields.io/npm/v/@firekid/forge?style=flat-square&color=CB3837)](https://npmjs.com/package/@firekid/forge)
[![License: MIT](https://img.shields.io/badge/License-MIT-22C55E?style=flat-square)](LICENSE)

Official CLI for [ForgeDB](https://forgedb.name.ng). Powered by [`@firekid/hurl`](https://npmjs.com/package/@firekid/hurl).

---

## Install

```bash
npm install -g @firekid/forge
```

---

## Auth

```bash
forge login              # GitHub / Google OAuth via browser
forge login --api        # Paste a CLI token from Settings
forge logout
forge whoami
```

Generate CLI tokens at **Settings → CLI Tokens** in the dashboard.

---

## Projects

```bash
forge projects list
forge projects create my-app
forge projects rename <id> new-name
forge projects delete <id>
```

---

## Tables

```bash
forge tables list --project <id>
forge tables create users --project <id>
forge tables delete users --project <id>
```

---

## Columns

```bash
forge columns list users --project <id>
forge columns add users score number --project <id> --required
forge columns add users slug string --project <id> --unique
forge columns remove users score --project <id>
```

Types: `string` · `number` · `boolean` · `date` · `json` · `array`

---

## Rows

```bash
forge rows list users --project <id>
forge rows list users --project <id> --page 2 --limit 50
forge rows list users --project <id> --search john

forge rows get users 42 --project <id>

forge rows insert users --data '{"name":"John","email":"john@example.com"}' --project <id>

forge rows update users 42 --data '{"name":"Jane"}' --project <id>

forge rows delete users 42 --project <id>
```

---

## API Keys

```bash
forge keys list --project <id>
forge keys create "mobile-app" --project <id> --env prod --permissions read_write
forge keys create "readonly" --project <id> --permissions read
forge keys revoke <key-id> --project <id>
```

---

## SQL

```bash
forge query "SELECT * FROM users WHERE active = 1" --project <id>
forge query --file ./migration.sql --project <id>
```

---

## Import / Export

```bash
# Import CSV into a table
forge import users ./users.csv --project <id>

# Export table to CSV (stdout)
forge export users --project <id> > backup.csv
```

---

## Logs

```bash
forge logs --project <id>           # last 50 requests
forge logs --project <id> --tail    # live stream
```

---

## Usage & Status

```bash
forge usage --project <id>    # requests, storage, row count
forge status                  # check API health
```

---

## Help

```bash
forge help
forge help login
forge help rows insert
forge help tables
```

---

## Global Options

| Flag | Description |
|------|-------------|
| `--project <id>` | Project ID |
| `--env <prod\|test>` | Environment (default: prod) |

---

## License

MIT © [Firekid](https://github.com/Firekid-is-him)
npm package: @firela/billclaw-core
Description: BillClaw Core - Framework-agnostic business logic for financial data import
Author: fire-la
Latest version: 0.5.5

# @firela/billclaw-core

Framework-agnostic core business logic for BillClaw financial data import.

## Overview

This package contains all core functionality with zero dependencies on any AI framework (OpenClaw, OpenHands, etc.). It provides:

- **Data Models**: TypeScript types and Zod schemas for financial data
- **Storage**: Transaction storage with JSON/CSV support, file locking, and streaming
- **Sync**: Plaid and Gmail integration for fetching transactions
- **Exporters**: Beancount and Ledger format exporters
- **Security**: Platform keychain integration and audit logging
- **Performance**: TTL-based memory cache and query indexes
- **Runtime Abstractions**: Logger, ConfigProvider, and EventEmitter interfaces

## Installation

```bash
pnpm add @firela/billclaw-core
```

## Quick Start

```typescript
import { Billclaw } from "@firela/billclaw-core";
import { createRuntimeContext } from "./runtime.js";

// Create a runtime context (framework-specific adapter)
const runtime = createRuntimeContext();

// Initialize BillClaw
const billclaw = new Billclaw(runtime);

// Sync transactions from Plaid
const results = await billclaw.syncPlaid();

// Export to Beancount
const transactions = await billclaw.getTransactions("all", 2024, 1);
const beancount = await exportToBeancount(transactions, {
  accountId: "all",
  year: 2024,
  month: 1,
  commodity: "USD",
});
```

## Architecture

### Core Classes

- **`Billclaw`**: Main class for managing financial data operations
- **`TransactionStorage`**: Handles transaction persistence and queries
- **`MemoryCache`**: TTL-based in-memory caching
- **`AuditLogger`**: Security event logging

### Data Sources

- **Plaid**: Bank account and credit card transactions via Plaid API
- **Gmail**: Bill parsing from email using pattern recognition
- **GoCardless**: European bank accounts via open banking (planned)

### Exporters

- **Beancount**: Plain text accounting format export
- **Ledger**: Ledger CLI format export

## API Reference

### Billclaw

```typescript
class Billclaw {
  constructor(context: RuntimeContext)
  
  // Account management
  getAccounts(): Promise<AccountConfig[]>
  
  // Sync operations
  syncPlaid(accountIds?: string[]): Promise<PlaidSyncResult[]>
  syncGmail(accountIds?: string[], days?: number): Promise<GmailFetchResult[]>
  syncDueAccounts(): Promise<any[]>
  
  // Transaction queries
  getTransactions(accountId: string, year: number, month: number): Promise<Transaction[]>
  
  // Export operations
  exportToBeancount(transactions: Transaction[], options: BeancountExportOptions): Promise<string>
  exportToLedger(transactions: Transaction[], options: LedgerExportOptions): Promise<string>
}
```

### Configuration

```typescript
interface BillclawConfig {
  accounts: AccountConfig[];
  webhooks: WebhookConfig[];
  storage: StorageConfig;
  sync: SyncConfig;
  plaid: PlaidConfig;
  gocardless?: GoCardlessConfig;
  gmail?: GmailConfig;
}
```

## License

MIT
npm package: @firela/parser-cn
Description: Chinese payment parser implementations (Alipay, WeChat Pay) for financial file formats
Author: FireLa Team
Latest version: 0.1.2

# @firela/parser-cn

Chinese payment and bank statement parsers for FireLa.

## Installation

```bash
npm install @firela/parser-cn
```

## Peer Dependencies

This package requires the following peer dependencies:

```bash
npm install chrono-node csv-parse iconv-lite jschardet
```

## Supported Formats

### Payment Parsers

| Parser | Format | Description |
|--------|--------|-------------|
| `AlipayMobileParser` | CSV | 支付宝 App 账单 (Alipay mobile app) |
| `AlipayWebParser` | CSV | 支付宝网页版账单 (Alipay web portal) |
| `AlipayYuebaoParser` | CSV | 余额宝账单 (Yu'e Bao/Alipay fund) |

### Bank Parsers

| Parser | Format | Description |
|--------|--------|-------------|
| `CcbDebitParser` | CSV | 建设银行借记卡 (CCB debit card) |
| `CmbcCreditParser` | CSV | 民生银行信用卡 (CMBC credit card) |

## Usage

```typescript
import { AlipayMobileParser, CcbDebitParser } from '@firela/parser-cn';

// Identify and parse Alipay Mobile CSV
const alipayParser = new AlipayMobileParser();
const buffer = fs.readFileSync('alipay_bill.csv');

if (alipayParser.identify(buffer)) {
  const result = alipayParser.parse(buffer);
  if (result.success) {
    console.log(result.data.transactions);
    // => RawTransaction[] with AlipayCustomFields
  }
}

// Parse CCB Debit statement
const ccbParser = new CcbDebitParser();
if (ccbParser.identify(buffer)) {
  const result = ccbParser.parse(buffer);
  if (result.success) {
    console.log(result.data.transactions);
    // => RawTransaction[] with BankCustomFields
  }
}
```

## Output Format

All parsers return `RawTransaction` objects with parser-specific custom fields:

```typescript
interface RawTransaction {
  date: Date;
  payee: string;
  amount: Decimal;
  currency: string;
  direction: 'in' | 'out';
  description: string;
  customFields: AlipayCustomFields | BankCustomFields;
}
```

## License

MIT
npm package: @firela/parser-core
Description: Pure TypeScript parser core infrastructure for financial file formats
Author: FireLa Team
Latest version: 0.1.1

# @firela/parser-core

Core parser interfaces and utilities for financial file formats.

## Installation

```bash
npm install @firela/parser-core
```

## Peer Dependencies

This package requires the following peer dependencies:

```bash
npm install chrono-node csv-parse iconv-lite jschardet
```

## Features

- **Parser Interface** - Generic `Parser<T>` interface with `identify()` and `parse()` methods
- **CSV Reader** - Encoding-aware CSV reading with automatic detection (GBK, UTF-8, etc.)
- **Date Parsing** - Chinese, ISO, and natural language date parsing via chrono-node
- **Amount Parsing** - Chinese currency formats and multi-currency support
- **Encoding** - Automatic encoding detection and conversion

## Usage

```typescript
import { Parser, RawTransaction, parseDate, parseChineseAmount, readCsv } from '@firela/parser-core';

// Parse a date string
const date = parseDate('2024年1月15日');
// => Date object

// Parse a Chinese amount
const amount = parseChineseAmount('¥1,234.56');
// => { amount: Decimal(1234.56), currency: 'CNY' }

// Read CSV with encoding detection
const rows = await readCsv(buffer);
// => string[][]
```

## API Reference

### Types

- `Parser<T>` - Generic parser interface
- `RawTransaction` - Parsed transaction without business logic
- `ParseResult<T>` - Result type with success/error handling
- `AlipayCustomFields`, `WeChatCustomFields`, `BankCustomFields` - Parser-specific fields

### Utilities

- `readCsv(buffer: Buffer): Promise<string[][]>` - Read CSV with encoding detection
- `parseDate(input: string): Date | null` - Parse various date formats
- `parseChineseAmount(input: string): ParsedAmount | null` - Parse Chinese currency amounts
- `convertEncoding(buffer: Buffer): Buffer` - Convert encoding to UTF-8

## License

MIT
npm package: @firela/parser-hk
Description: Hong Kong payment parser implementations (HSBC) for financial file formats
Author: FireLa Team
Latest version: 0.1.1

# @firela/parser-hk

Hong Kong bank statement parsers for FireLa.

## Installation

```bash
npm install @firela/parser-hk
```

## Peer Dependencies

This package requires the following peer dependencies:

```bash
npm install chrono-node csv-parse
```

## Supported Formats

### Bank Parsers

| Parser | Format | Description |
|--------|--------|-------------|
| `HsbcHkParser` | CSV | HSBC Hong Kong Credit Card and Debit/Savings statements (dual-format) |

## Usage

```typescript
import { HsbcHkParser } from '@firela/parser-hk';

// Identify and parse HSBC HK CSV
const hsbcParser = new HsbcHkParser();
const buffer = fs.readFileSync('hsbc_statement.csv');

if (hsbcParser.identify(buffer)) {
  const result = hsbcParser.parse(buffer);
  if (result.success) {
    console.log(result.data.transactions);
    // => RawTransaction[] with BankCustomFields
    console.log(result.data.metadata);
    // => { accountNumber, accountType, statementPeriod, ... }
  }
}
```

## HSBC HK Format Support

The `HsbcHkParser` supports two CSV formats:

1. **Credit Card Format** - Date, Description, Debit, Credit columns
2. **Debit/Savings Format** - Date, Description, Deposits, Withdrawals, Balance columns

The parser automatically detects the format based on header keywords.

## Output Format

All parsers return `RawTransaction` objects with bank-specific custom fields:

```typescript
interface RawTransaction {
  date: Date;
  payee: string;
  amount: Decimal;
  currency: string;  // HKD for HSBC HK
  direction: 'in' | 'out';
  description: string;
  customFields: BankCustomFields;
}
```

## License

MIT
npm package: @firelayer/cli
Description: Firelayer's CLI - Jump-start your Firebase Web Project
Author: João Teixeira
Latest version: 1.1.1

<p align="center">
  <a href="https://firelayer.io/">
    <img src="https://user-images.githubusercontent.com/3942799/78354854-884c2780-75a4-11ea-9882-a716e2095e98.png" alt="Firelayer" width="400" />
  </a>
</p>

<p align="center">Jump-start your Firebase Web Project</p>

<br/>

<p align="center">
  <a href="https://npmjs.org/package/@firelayer/cli">
    <img src="https://img.shields.io/npm/v/@firelayer/cli.svg" alt="Version" />
  </a>
  <a href="https://npmjs.org/package/@firelayer/cli">
    <img src="https://img.shields.io/npm/dw/@firelayer/cli.svg" alt="Downloads/week" />
  </a>
  <a href="https://oclif.io">
    <img src="https://img.shields.io/badge/cli-oclif-brightgreen.svg" alt="oclif" />
  </a>
</p>

## Getting Started

Install firelayer CLI globally:

```sh
npm i -g @firelayer/cli
```

And initialize a new project:
```sh
firelayer init new-project
```

Once it's installed, you can `cd new-project` and `yarn dev` and it will run the development server on your local machine.

## Table of Contents

* [Usage](#usage)
* [Command Topics](#command-topics)

## Usage
<!-- usage -->
```sh-session
$ npm install -g @firelayer/cli
$ firelayer COMMAND
running command...
$ firelayer (-v|--version|version)
@firelayer/cli/1.1.1 darwin-x64 node-v14.15.0
$ firelayer --help [COMMAND]
USAGE
  $ firelayer COMMAND
...
```
<!-- usagestop -->

<!-- commands -->
# Command Topics

* [`firelayer add`](docs/add.md) - add templates and plugins to the current project
* [`firelayer auth`](docs/auth.md) - users and authentication
* [`firelayer db`](docs/db.md) - database helper
* [`firelayer deploy`](docs/deploy.md) - deploy helper
* [`firelayer down`](docs/down.md) - put the application into maintenance mode
* [`firelayer env`](docs/env.md) - change development environment
* [`firelayer help`](docs/help.md) - display help for firelayer
* [`firelayer info`](docs/info.md) - print debugging information about your environment
* [`firelayer init`](docs/init.md) - create a new project
* [`firelayer make`](docs/make.md) - maker helper
* [`firelayer migrate`](docs/migrate.md) - run migrations
* [`firelayer run`](docs/run.md) - run shell commands with injected firelayer env variables
* [`firelayer up`](docs/up.md) - bring the application out of maintenance mode

<!-- commandsstop -->
npm package: @firelayer/core
Description: Firelayer Core
Author: João Teixeira
Latest version: 1.1.1

<a href="https://firelayer.io/">
  <img src="https://user-images.githubusercontent.com/3942799/78354854-884c2780-75a4-11ea-9882-a716e2095e98.png" alt="Firelayer" width="400" />
</a>

> Jump-start your Firebase Web Project

<br/>

# Firelayer Core

This package contains common functionality, data structures and bootstrapping capabilities.
npm package: @firelayer/eslint-config
Description: Firelayer eslint config
Author: João Teixeira
Latest version: 1.3.2

<a href="https://firelayer.io/">
  <img src="https://user-images.githubusercontent.com/3942799/78354854-884c2780-75a4-11ea-9882-a716e2095e98.png" alt="Firelayer" width="400" />
</a>

> Jumpstart your Firebase Project

<br/>

# Firelayer ESLint Config

## Getting Started

Do you want to add the config to your own projects? There you go:

1. Add this package to your devDependencies

```bash
$ npm i -D @firelayer/eslint-config
# or
$ yarn add -D @firelayer/eslint-config
```

2. Install `eslint` if not already present locally or globally

```bash
$ npm i -D eslint
# or
$ yarn add -D eslint
```

3. Create a `.eslintrc` file

4. Extend our config (you can use just the scope name as ESLint will assume the `eslint-config` suffix):

```json
{
  "extends": [
    "@firelayer"
  ]
}
```

## Full example

A full example `.eslintrc`:

```json
{
  "root": true,
  "extends": [
    "@firelayer"
  ]
}
```

## Vue

If you're using Vue, follow [Getting Started](#getting-started) section by replacing `@firelayer/eslint-config` by `@firelayer/eslint-config-vue`.

And in your `.eslintrc` all you need is :

```json
{
  "extends": [
    "@firelayer/eslint-config-vue"
  ]
}
```

## License

[MIT license](https://github.com/firelayer/eslint-config/blob/master/LICENSE) - Firelayer