# nodejs-license-key

> Project fork from https://www.npmjs.com/package/licensekey

Latest version **1.0.1** (published 2018-10-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install nodejs-license-key
pnpm add nodejs-license-key
yarn add nodejs-license-key
bun add nodejs-license-key
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2018-10-04 |
| First published | 2018-10-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 12.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 15 |
| Author | Indiana Zhao |
| Maintainers | indianazhao |

## Links

- npm: https://www.npmjs.com/package/nodejs-license-key
- Repository: https://github.com/indianazhao/nodejs-license-key
- Homepage: https://github.com/indianazhao/nodejs-license-key#readme
- Issues: https://github.com/indianazhao/nodejs-license-key/issues
- npm.io page: https://npm.io/package/nodejs-license-key

## Dependencies (4)

- [md5](https://npm.io/package/md5.md) ^2.2.1
- [chai](https://npm.io/package/chai.md) ^3.5.0
- [dotenv](https://npm.io/package/dotenv.md) ^2.0.0
- [uid-safe](https://npm.io/package/uid-safe.md) ^2.1.3

## Recent versions

- 1.0.1 (latest) — 2018-10-04
- 1.0.0 — 2018-10-04

## README

# Nodejs-License-Key v1.0.1

This project is forked from the NPM module [LicenseKey](https://www.npmjs.com/package/licensekey).

## Docs

Generate a License Key and validate the license. This is typically used for software licensing (serial number).

## Installation
```
npm install nodejs-license-key
```

## Data Structure
To create a license key - Enter the users information that your are able to recieve.

This object can be any data you wish to tie the license to - format Object
```
var userInfo = {
  company: 'www.funwoo.com',
  street: 'Taipei 101',
  city: 'Taipei',
  state: 'Taiwan',
  zip: '100'
};
```
Must include:
1) prodCode (string) - product abbr name, can be any size
2) appVersion (string) - optional if you want to tie the license to a version number
3) osType (string) - lock the license to a specific operating system, supported: 
    * Windows: WIN, WIN7, WIN8,WIN10
    * Macintosh: OSX, OSX1, OSX2, OSX3, OSX4, OSX5, OSX6, OSX7, OSX8, OSX9, OSX10, OSX11, OSX12
    * Apple Mobile: IOS, IOS5, IOS6, IOS7, IOS8, IOS9,IOS10
    * Google Mobile: ANDROID, ANDROID2, ANDROID3, ANDROID4, ANDROID43, ANDROID44, ANDROID5, ANDROID6, ANDROID7
    OTHER

```
var userLicense = {
  info: userInfo,
  prodCode: 'MyProject',
  appVersion: '1.5',
  osType: 'WIN'
};
```

## Init
```
var licenseKey = require('licensekey');
```

## Create a License Key
Then run the following code to recieve the License for the client
This function to be run ONLY for you to generate the license code for the client
```
var licenseKey = require('licensekey');

var userLicense = {
  info: userInfo,
  prodCode: 'LEN100120',
  appVersion: '1.5',
  osType: 'IOS8'
};

try{
  var license = licenseKey.createLicense(userLicense)
  console.log(license);
}catch(err){
  console.log(err);
}
```

if success returns
```
{ errorCode: 0,  message: 'ok',  license: 'WTYSA-XZ31V-7ZYV6-21A22-3E53F-D675B' }
```

if error, returns
```
{ errorCode: 1002, message: 'product code missing' }
```

## Validate a License Key
On client side your application will pass the user information (Data Structure) and License Key:
```
var licenseKey = require('licensekey');

var userLicense = {
  info: userInfo,
  prodCode: 'LEN100120',
  appVersion: '1.5',
  osType: 'IOS8'
};

try{
  var license = licensekey.validateLicense(userLicense, 'WTYSA-XZ31V-7ZYV6-21A22-3E53F-D675B');
  console.log(license);
}catch(err){
  console.log(err);
}
```
if success returns
```
{ errorCode: 0, message: 'ok' }
```

if error, returns
```
{ errorCode: 1006, message: 'license not valid' }
```

## Support
Tested in Chrome 53-54, Firefox 48-49, IE 11, Edge 14, Safari 9-10, Node.js 6-7, & PhantomJS 2.1.1.<br>
Automated test runs are available.

---
_Source: https://npm.io/package/nodejs-license-key · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
