# userscript-parser

> Userscript metadata parser.

Latest version **2.2.2** (published 2019-05-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install userscript-parser
pnpm add userscript-parser
yarn add userscript-parser
bun add userscript-parser
```

## 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 | 2.2.2 |
| Published | 2019-05-15 |
| First published | 2015-08-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 4.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 10 |
| Author | Amio |
| Maintainers | amio |
| Keywords | userscript, parser, meta |

## Links

- npm: https://www.npmjs.com/package/userscript-parser
- Repository: https://github.com/amio/userscript-parser
- Homepage: https://github.com/amio/userscript-parser#readme
- Issues: https://github.com/amio/userscript-parser/issues
- npm.io page: https://npm.io/package/userscript-parser

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 2.2.2 (latest) — 2019-05-15
- 2.2.1 — 2018-06-22
- 2.2.0 — 2018-06-22
- 2.1.0 — 2018-06-22
- 2.0.0 — 2018-05-05
- 1.0.0 — 2018-05-05
- 0.3.1 — 2015-10-11
- 0.3.0 — 2015-10-11
- 0.2.1 — 2015-08-26
- 0.2.0 — 2015-08-26
- 0.1.1 — 2015-08-13
- 0.1.0 — 2015-08-13

## README

# userscript-parser [![npm-version][npm-badge]][npm-link] [![install size][pp-badge]][pp-link]

Userscript metadata parser.

## Usage

```javascript
const userscriptText = '// ==UserScript==...'
const usp = require('userscript-parser')

const { meta, metablock, content } = usp(userscriptText)
```

Given this userscript:
```javascript
// ==UserScript==
// @name        Awesome Script
// @description This script even does the laundry!
// @downloadURL https://www.example.com/myscript.user.js
// @homepageURL https://github.com/gantt/downloadyoutube
// @author      Gantt
// @version     1.8.3
// @date        2015-05-17
// @include     https://www.youtube.com/*
// @exclude     https://www.youtube.com/embed/*
// @match       https://www.youtube.com/*
// @grant       GM_xmlhttpRequest
// @grant       GM_getValue
// @grant       GM_setValue
// @run-at      document-end
// @license     MIT License
// ==/UserScript==

var whoami = 'USERSCRIPT'
```

will produce this parsed object:

```javascript
{
  meta: {
    description: [ 'This script even does the laundry!', ],
    downloadURL: [ 'https://www.example.com/myscript.user.js' ],
    name: [ 'Awesome Script' ],
    homepageURL: [ 'https://github.com/gantt/downloadyoutube' ],
    author: [ 'Gantt' ],
    version: [ '1.8.3' ],
    date: [ '2015-05-17' ],
    include: [ 'https://www.youtube.com/*' ],
    exclude: [ 'https://www.youtube.com/embed/*' ],
    match: [ 'https://www.youtube.com/*' ],
    grant: [ 'GM_xmlhttpRequest', 'GM_getValue', 'GM_setValue' ],
    'run-at': [ 'document-end' ],
    license: [ 'MIT License' ]
  },
  metablock: "// ==UserScript==...",
  content: "\n\nvar whoami = 'USERSCRIPT'\n"
}
```

## License

MIT @ Amio

[npm-badge]: https://badgen.net/npm/v/userscript-parser
[npm-link]: https://www.npmjs.com/package/userscript-parser
[pp-badge]: https://badgen.net/packagephobia/publish/userscript-parser
[pp-link]: https://packagephobia.now.sh/result?p=userscript-parser

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