open-index/open-npm huggingface dataset:
npm package: @savantly/sprout-admin
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.4.3.
Latest version: 1.1.0-RELEASE

# SproutAdmin

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

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

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

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @savaryna/git-add-account
Description: 🔐 A small CLI app that allows you to easily add multiple Git accounts on one machine. It switches between accounts automatically based on the workspace you are in.
Author: Alex Tofan
Latest version: 2.2.3

# @savaryna/add-git-account

🔐 A small CLI app that allows you to easily add multiple Git accounts on one machine. It switches between accounts automatically based on the workspace you are in.

## Agent usage (skill)

Add the skill using

```shell
npx skills add savaryna/git-add-account
```

and ask your agent to "add a new git account".

## CLI usage

Run the command direcly with

```shell
npx @savaryna/git-add-account
```

or if you installed it globally with

```shell
npm i -g @savaryna/git-add-account
```

then you can run it using

```shell
git-add-account
# or the shorter version
gaa
```

For usage and command details run it with the `--help` option.

After going through all the steps, you will be presented with your public SSH key so you can copy, and add it to your Git provider. For example GitHub[^1]:

1. Copy the public SSH key.
1. Go to the [SSH keys settings page](https://github.com/settings/keys).
1. Click on `New SSH key`.
1. Add the key as an `Authentication Key`.
1. Click on `Add SSH key`.
1. Add the same key again as a `Signing Key` if you chose to sign your work[^2].

Done! Any `git` command you run from the workspace you chose **(and its subdirectories)**, will now use this new account automatically.

## How it works

A simple way to use multiple Git accounts on one machine is to use different SSH configs based on the directory you are in. The way [@savaryna/add-git-account](https://www.npmjs.com/package/@savaryna/git-add-account) works is, it asks you for some basic information and then it creates files under `.config/` in the workspace directory you specified.

1. It creates a private/public `ed25519` SSH keypair using `ssh-keygen` ([see code](https://github.com/savaryna/git-add-account/blob/main/src/helpers/config.ts#L28-L29)).
1. It creates a `sshconfig` file based on this [template](https://github.com/savaryna/git-add-account/blob/main/src/templates/sshconfig.mustache).
1. It creates a `gitconfig` file based on this [template](https://github.com/savaryna/git-add-account/blob/main/src/templates/gitconfig.mustache).
1. It appends a conditional include to your global Git config based on this [template](https://github.com/savaryna/git-add-account/blob/main/src/templates/gitconfig.global.mustache). This makes sure that any `git` command you run from the workspace you chose **(and its subdirectories)**, will now use this new account automatically[^3].
1. Finally, it presents you with your public SSH key so you can copy, and add it to your Git provider.

## License

[MIT](LICENSE) &copy; [Alex Tofan](https://github.com/savaryna)

[^1]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?tool=webui
[^2]: https://docs.github.com/en/authentication/managing-commit-signature-verification
[^3]: https://git-scm.com/docs/git-config#_conditional_includes
npm package: @savchenko91/rc-redux-api-mw-fake-response
Description: Simple API middleware
Author: Alexander Savchenko
Latest version: 2.0.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

## What is it?

Simple API middleware

### Usage

```js
import { REDUX_API_MIDDLEWARE } from '@savchenko91/rc-redux-api-mw'

const SAVE_CAT = {
  START: 'CATS | SAVE | START',
  FAIL: 'CATS | SAVE | FAIL',
  SUCCESS: 'CATS | SAVE | SUCCESS',
}

const saveCat = (id, body, onSuccess) => ({
  type: REDUX_API_MIDDLEWARE,
  url: `/api/v1/cats/${id}`,
  method: 'post',
  stageActionTypes: SAVE_CAT,
  body,
  onSuccess,
})
```
npm package: @savchenko91/rc-redux-api-mw-query
Description: Simple API middleware
Author: Alexander Savchenko
Latest version: 2.0.6
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

## What is it?

Simple API middleware

### Usage

```js
import { REDUX_API_MIDDLEWARE } from '@savchenko91/rc-redux-api-mw'

const SAVE_CAT = {
  START: 'CATS | SAVE | START',
  FAIL: 'CATS | SAVE | FAIL',
  SUCCESS: 'CATS | SAVE | SUCCESS',
}

const saveCat = (id, body, onSuccess) => ({
  type: REDUX_API_MIDDLEWARE,
  url: `/api/v1/cats/${id}`,
  method: 'post',
  stageActionTypes: SAVE_CAT,
  body,
  onSuccess,
})
```
npm package: @savchenko91/schema-validator
Description: ![code size](https://img.shields.io/github/languages/code-size/savchenko91/rc-redux-api-mw) [![code size](https://img.shields.io/github/v/release/savchenko91/rc-redux-api-mw)](https://github.com/savchenko91/rc-redux-api-mw/releases)
Author: Alexander Savchenko
Latest version: 0.0.0
npm package: @savearray2/forte
Description: Email Address validation library, based on rfc 2822 and rfc 6532.
Author: savearray2
Latest version: 0.1.1

# forte

Parser for RFC-2822/RFC-6532 email addresses.

This library's sole purpose is to validate email addresses, and email addresses only (including esoteric ones!). It can be used in the browser or from within Node.js. Special care has been taken to ensure strange email addresses can be validated successfully.

Unicode/Punycode is also supported.

Examples:
```
simple@example.com
disposable.style.email.with+symbol@example.com
" "@example.org
"john..doe"@example.org
email@ドメイン.com
```

A wide array of test vectors can be found in the project test files.

## Installation

```
npm install @savearray2/forte
```

## Usage

```js
const Forte = require('@savearray2/forte')
const parsed_email = Forte.parse_email('email@domain.com')
```

```js
{
  local_part: { value: 'email', comments: [], quoted_string: false },
  domain: {
    value: 'domain.com',
    comments: [],
    safe_value: 'domain.com',
    type: 'fqdn'
  },
  rfc6532: false,
  address: 'email@domain.com',
  safe_address: 'email@domain.com'
}
```

## API

### `Forte.parse_email(addr, [opts])`

* `addr: string` - The email address to parse.
* `opts: object` with the following options:
	* `reject_quoted_string: bool` - Rejects any address whose local part a quoted string. Default: `false`.
	* `reject_comments: bool` - Rejects any address whose local part or domain contains comments. Default: `false`.
	* `reject_local: bool` - Rejects any address whose domain is determined to be local (no TLD). Default: `false`.
	* `reject_ip: bool` - Rejects any address whose domain is determined to be an IP literal (an IPv4 or IPv6 address). Default: `false`.

Returns `null`, if invalid address. Otherwise, returns an `EmailAddress` object with email address information:

* `local_part: object` - The local part of the email address.
	* `value: string` - The parsed local part string.
	* `quoted_string: bool` - If true, the local part contained a quoted string, when parsed.
	* `comments: array` - A (possibly nested) array of strings representing the comments.
* `domain: object` - The domain part of the email address.
	* `value: string` - The parsed domain string.
	* `safe_value: string` - A version of the domain that is safe to use with systems that only accept ASCII-encoded domains (punycode-encoded).
	* `comments: array` - A (possibly nested) array of strings representing the comments.
	* `type: string` - The type of domain parsed. (Values: `fqdn`, `local`, `ipv4`, `ipv6`)
* `address: string` - A pretty/simplified version of the address.
* `safe_address: string` - A pretty/simplified version of the address that is safe to use with systems that only accept ASCII-encoded email addresses (punycode-encoded).
* `rfc6532: bool` - If true, then the parsed address was processed in rfc6532 mode, and contains unicode characters (\u0080-\uFFFF).

## License

This library is licensed under MIT.
npm package: @saveav/register
Description: Reusable Register Pattern
Author: =
Latest version: 1.1.0

# register.js

An implementation of Register Pattern with small set of API that allows you to:

- `set` a value to a key.
- `get` a value associated to a key, if none, return the default value (by default set to `undefined`).
- `setDefault` value.
- `getDefault` value.
- `hasKey` to check if a key is defined.
- `keys` return a set of all defined keys.
- `values` return a set of all defined values.
- `toObject` to convert the register into an object.

## Install

For UMD (universal, including Browser), download the `register_umd.js`. `Register`
will be globally available. See implementation on `tests/test.html`.

For node:

```
npm i @saveav/register
```

And require the package this way:

```javascript
var Register = require('@saveav/register');
```

## Initialize

```javascript
var reg = new Register();
```

With default value:

```javascript
var reg = new Register({name: undefined, locale: "en"});
reg.get("adam"); // => {name: undefined, locale: "en"}
```

With default value and initial values:

```javascript
var reg = new Register({name: undefined, locale: "en"}, {
  adam: {name: "Adam", locale: "id"}
})

reg.get("adam"); // => {name: "Adam", locale: "id"}
```

## Use-case

Other than as an object; as a replacement of switch (who likes switch here?).
For implementation of switch replacement using the registry pattern, head to
the test folder and open `switch_test`.

# License

Open source. MIT. 2016.
npm package: @savecash/primesaver-icons
Description: Font Icon Library for Prime UI Libraries
Author: SaveCash
Latest version: 1.0.3

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![npm version](https://badge.fury.io/js/primeicons.svg)](https://badge.fury.io/js/primeicons)

---

![PrimeIcons Logo](https://www.primefaces.org/wp-content/uploads/2018/07/primeicons-logo.svg "PrimeIcons")

Font Icon Library for Prime UI Libraries: [PrimeNG](https://www.primefaces.org/primeng/#/icons/) | [PrimeReact](https://www.primefaces.org/primereact/#/icons/) | [PrimeFaces](https://primefaces.org/showcase/icons.xhtml) | [PrimeVue](https://primefaces.org/primevue/#/icons) 

---

![Icons Preview](https://www.primefaces.org/wp-content/uploads/2020/05/primeicons-40-1.png "PrimeIcons")