Comparing version 0.0.0 to 1.0.0
{ | ||
"name": "regexpp", | ||
"version": "0.0.0", | ||
"description": "RegExp parser.", | ||
"version": "1.0.0", | ||
"description": "Regular expression parser for ECMAScript 2018.", | ||
"engines": { | ||
@@ -14,2 +14,3 @@ "node": ">=4.0.0" | ||
"devDependencies": { | ||
"@types/eslint": "^4.16.0", | ||
"@types/mocha": "^2.2.48", | ||
@@ -24,4 +25,2 @@ "@types/node": "^9.4.6", | ||
"npm-run-all": "^4.1.2", | ||
"nyc": "^11.4.1", | ||
"opener": "^1.4.3", | ||
"prettier": "^1.9.2", | ||
@@ -33,18 +32,14 @@ "rollup": "^0.56.1", | ||
"ts-node": "^5.0.0", | ||
"typescript": "^2.8.0-dev.20180228", | ||
"typescript-eslint-parser": "^14.0.0", | ||
"wait-on": "^2.1.0", | ||
"warun": "^1.0.0" | ||
"typescript": "^2.7.2", | ||
"typescript-eslint-parser": "^14.0.0" | ||
}, | ||
"scripts": { | ||
"_mocha": "_mocha --require ts-node/register --reporter dot --timeout 10000 \"test/*.js\"", | ||
"prebuild": "npm run -s clean", | ||
"build": "tsc --project tsconfig.prod.json && rollup -c -o index.js && dts-bundle --name regexpp --main .temp/index.d.ts --out ../index.d.ts", | ||
"clean": "rimraf .nyc_output .temp coverage index.*", | ||
"codecov": "nyc report --reporter lcovonly && codecov", | ||
"coverage": "nyc report --reporter lcov && opener ./coverage/lcov-report/index.html", | ||
"lint": "eslint src test --ext .ts", | ||
"setup": "git submodule update --init && cd test/fixtures/eslint && npm install", | ||
"clean": "rimraf .temp index.*", | ||
"lint": "eslint src test tools --ext .ts", | ||
"pretest": "run-s build lint", | ||
"test": "nyc npm run _mocha", | ||
"test": "_mocha --require ts-node/register --reporter dot --timeout 10000 \"test/*.ts\"", | ||
"update:test": "ts-node tools/update-fixtures.ts", | ||
"update:ids": "ts-node tools/update-unicode-ids.ts", | ||
"preversion": "npm test", | ||
@@ -54,8 +49,3 @@ "version": "npm run -s build", | ||
"prewatch": "npm run -s clean", | ||
"update:fixtures": "ts-node test/tools/update-fixtures.ts", | ||
"watch": "run-p watch:*", | ||
"watch:tsc": "tsc --watch", | ||
"watch:rollup": "wait-on .temp/index.js && rollup -c -o index.js --watch", | ||
"watch:test": "wait-on index.js && warun index.js \"test/*.ts\" --debounce 1000 --no-initial -- nyc -r lcov npm run -s _mocha", | ||
"watch:coverage-report": "wait-on coverage/lcov-report/index.html && opener coverage/lcov-report/index.html" | ||
"watch": "npm run -s test -- --watch-extensions .ts --watch --growl" | ||
}, | ||
@@ -66,3 +56,19 @@ "repository": { | ||
}, | ||
"keywords": [], | ||
"keywords": [ | ||
"regexp", | ||
"regular", | ||
"expression", | ||
"parser", | ||
"validator", | ||
"ast", | ||
"abstract", | ||
"syntax", | ||
"tree", | ||
"ecmascript", | ||
"es2015", | ||
"es2016", | ||
"es2017", | ||
"es2018", | ||
"annexB" | ||
], | ||
"author": "Toru Nagashima (https://github.com/mysticatea)", | ||
@@ -69,0 +75,0 @@ "license": "MIT", |
149
README.md
# regexpp | ||
RegExp parser. | ||
[![npm version](https://img.shields.io/npm/v/regexpp.svg)](https://www.npmjs.com/package/regexpp) | ||
[![Downloads/month](https://img.shields.io/npm/dm/regexpp.svg)](http://www.npmtrends.com/regexpp) | ||
[![Build Status](https://travis-ci.org/mysticatea/regexpp.svg?branch=master)](https://travis-ci.org/mysticatea/regexpp) | ||
[![Dependency Status](https://david-dm.org/mysticatea/regexpp.svg)](https://david-dm.org/mysticatea/regexpp) | ||
The regular expression parser for ECMAScript. | ||
## 💿 Installation | ||
```bash | ||
$ npm install regexpp | ||
``` | ||
- require Node.js 4.0.0 or newer. | ||
## 📖 Usage | ||
```ts | ||
import { | ||
AST, | ||
RegExpParser, | ||
RegExpValidator, | ||
parseRegExpLiteral, | ||
validateRegExpLiteral, | ||
} from "regexpp" | ||
``` | ||
### parseRegExpLiteral(source, options?) | ||
Parse a given regular expression literal then make AST object. | ||
This is equivalent to `new RegExpParser(options).parseLiteral(source)`. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to parse. | ||
- `options?` ([`RegExpParser.Options`]) The options to parse. | ||
- **Return:** | ||
- The AST of the regular expression. | ||
### validateRegExpLiteral(source, options?) | ||
Validate a given regular expression literal. | ||
This is equivalent to `new RegExpValidator(options).validateLiteral(source)`. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to validate. | ||
- `options?` ([`RegExpValidator.Options`]) The options to validate. | ||
### RegExpParser | ||
#### new RegExpParser(options?) | ||
- **Parameters:** | ||
- `options?` ([`RegExpParser.Options`]) The options to parse. | ||
#### parser.parseLiteral(source, start?, end?) | ||
Parse a regular expression literal. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to parse. E.g. `"/abc/g"`. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
- **Return:** | ||
- The AST of the regular expression. | ||
#### parser.parsePattern(source, start?, end?, uFlag?) | ||
Parse a regular expression pattern. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to parse. E.g. `"abc"`. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
- `uFlag?` (`boolean`) The flag to enable Unicode mode. | ||
- **Return:** | ||
- The AST of the regular expression pattern. | ||
#### parser.parseFlags(source, start?, end?) | ||
Parse a regular expression flags. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to parse. E.g. `"gim"`. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
- **Return:** | ||
- The AST of the regular expression flags. | ||
### RegExpValidator | ||
#### new RegExpValidator(options) | ||
- **Parameters:** | ||
- `options` ([`RegExpValidator.Options`]) The options to validate. | ||
#### validator.validateLiteral(source, start, end) | ||
Validate a regular expression literal. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to validate. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
#### validator.validatePattern(source, start, end, uFlag) | ||
Validate a regular expression pattern. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to validate. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
- `uFlag?` (`boolean`) The flag to enable Unicode mode. | ||
#### validator.validateFlags(source, start, end) | ||
Validate a regular expression flags. | ||
- **Parameters:** | ||
- `source` (`string`) The source code to validate. | ||
- `start?` (`number`) The start index in the source code. Default is `0`. | ||
- `end?` (`number`) The end index in the source code. Default is `source.length`. | ||
## 📰 Changelog | ||
- [GitHub Releases](https://github.com/mysticatea/regexpp/releases) | ||
## 🍻 Contributing | ||
Welcome contributing! | ||
Please use GitHub's Issues/PRs. | ||
### Development Tools | ||
- `npm test` runs tests and measures coverage. | ||
- `npm run build` compiles TypeScript source code to `index.js`, `index.js.map`, and `index.d.ts`. | ||
- `npm run clean` removes the temporary files which are created by `npm test` and `npm run build`. | ||
- `npm run lint` runs ESLint. | ||
- `npm run update:test` updates test fixtures. | ||
- `npm run update:ids` updates `src/unicode/ids.ts`. | ||
- `npm run watch` runs tests with `--watch` option. | ||
[`RegExpParser.Options`]: src/parser.ts#L527 | ||
[`RegExpValidator.Options`]: src/validator.ts#L127 |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
608232
18
6
6977
0
150