aboutsummaryrefslogtreecommitdiff
path: root/node_modules/schema-utils
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/schema-utils
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/schema-utils')
-rw-r--r--node_modules/schema-utils/CHANGELOG.md124
-rw-r--r--node_modules/schema-utils/LICENSE20
-rw-r--r--node_modules/schema-utils/README.md130
-rw-r--r--node_modules/schema-utils/package.json40
-rw-r--r--node_modules/schema-utils/src/ValidationError.js25
-rw-r--r--node_modules/schema-utils/src/index.js9
-rw-r--r--node_modules/schema-utils/src/validateOptions.js37
7 files changed, 385 insertions, 0 deletions
diff --git a/node_modules/schema-utils/CHANGELOG.md b/node_modules/schema-utils/CHANGELOG.md
new file mode 100644
index 00000000..9c0bfd45
--- /dev/null
+++ b/node_modules/schema-utils/CHANGELOG.md
@@ -0,0 +1,124 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="0.4.7"></a>
+## [0.4.7](https://github.com/webpack-contrib/schema-utils/compare/v0.4.6...v0.4.7) (2018-08-07)
+
+
+### Bug Fixes
+
+* **src:** `node >= v4.0.0` support ([#32](https://github.com/webpack-contrib/schema-utils/issues/32)) ([cb13dd4](https://github.com/webpack-contrib/schema-utils/commit/cb13dd4))
+
+
+
+<a name="0.4.6"></a>
+## [0.4.6](https://github.com/webpack-contrib/schema-utils/compare/v0.4.5...v0.4.6) (2018-08-06)
+
+
+### Bug Fixes
+
+* **package:** remove lockfile ([#28](https://github.com/webpack-contrib/schema-utils/issues/28)) ([69f1a81](https://github.com/webpack-contrib/schema-utils/commit/69f1a81))
+* **package:** remove unnecessary `webpack` dependency ([#26](https://github.com/webpack-contrib/schema-utils/issues/26)) ([532eaa5](https://github.com/webpack-contrib/schema-utils/commit/532eaa5))
+
+
+
+<a name="0.4.5"></a>
+## [0.4.5](https://github.com/webpack-contrib/schema-utils/compare/v0.4.4...v0.4.5) (2018-02-13)
+
+
+### Bug Fixes
+
+* **CHANGELOG:** update broken links ([4483b9f](https://github.com/webpack-contrib/schema-utils/commit/4483b9f))
+* **package:** update broken links ([f2494ba](https://github.com/webpack-contrib/schema-utils/commit/f2494ba))
+
+
+
+<a name="0.4.4"></a>
+## [0.4.4](https://github.com/webpack-contrib/schema-utils/compare/v0.4.3...v0.4.4) (2018-02-13)
+
+
+### Bug Fixes
+
+* **package:** update `dependencies` ([#22](https://github.com/webpack-contrib/schema-utils/issues/22)) ([3aecac6](https://github.com/webpack-contrib/schema-utils/commit/3aecac6))
+
+
+
+<a name="0.4.3"></a>
+## [0.4.3](https://github.com/webpack-contrib/schema-utils/compare/v0.4.2...v0.4.3) (2017-12-14)
+
+
+### Bug Fixes
+
+* **validateOptions:** throw `err` instead of `process.exit(1)` ([#17](https://github.com/webpack-contrib/schema-utils/issues/17)) ([c595eda](https://github.com/webpack-contrib/schema-utils/commit/c595eda))
+* **ValidationError:** never return `this` in the ctor ([#16](https://github.com/webpack-contrib/schema-utils/issues/16)) ([c723791](https://github.com/webpack-contrib/schema-utils/commit/c723791))
+
+
+
+<a name="0.4.2"></a>
+## [0.4.2](https://github.com/webpack-contrib/schema-utils/compare/v0.4.1...v0.4.2) (2017-11-09)
+
+
+### Bug Fixes
+
+* **validateOptions:** catch `ValidationError` and handle it internally ([#15](https://github.com/webpack-contrib/schema-utils/issues/15)) ([9c5ef5e](https://github.com/webpack-contrib/schema-utils/commit/9c5ef5e))
+
+
+
+<a name="0.4.1"></a>
+## [0.4.1](https://github.com/webpack-contrib/schema-utils/compare/v0.4.0...v0.4.1) (2017-11-03)
+
+
+### Bug Fixes
+
+* **ValidationError:** use `Error.captureStackTrace` for `err.stack` handling ([#14](https://github.com/webpack-contrib/schema-utils/issues/14)) ([a6fb974](https://github.com/webpack-contrib/schema-utils/commit/a6fb974))
+
+
+
+<a name="0.4.0"></a>
+# [0.4.0](https://github.com/webpack-contrib/schema-utils/compare/v0.3.0...v0.4.0) (2017-10-28)
+
+
+### Features
+
+* add support for `typeof`, `instanceof` (`{Function\|RegExp}`) ([#10](https://github.com/webpack-contrib/schema-utils/issues/10)) ([9f01816](https://github.com/webpack-contrib/schema-utils/commit/9f01816))
+
+
+
+<a name="0.3.0"></a>
+# [0.3.0](https://github.com/webpack-contrib/schema-utils/compare/v0.2.1...v0.3.0) (2017-04-29)
+
+
+### Features
+
+* add ValidationError ([#8](https://github.com/webpack-contrib/schema-utils/issues/8)) ([d48f0fb](https://github.com/webpack-contrib/schema-utils/commit/d48f0fb))
+
+
+
+<a name="0.2.1"></a>
+## [0.2.1](https://github.com/webpack-contrib/schema-utils/compare/v0.2.0...v0.2.1) (2017-03-13)
+
+
+### Bug Fixes
+
+* Include .babelrc to `files` ([28f0363](https://github.com/webpack-contrib/schema-utils/commit/28f0363))
+* Include source to `files` ([43b0f2f](https://github.com/webpack-contrib/schema-utils/commit/43b0f2f))
+
+
+
+<a name="0.2.0"></a>
+# [0.2.0](https://github.com/webpack-contrib/schema-utils/compare/v0.1.0...v0.2.0) (2017-03-12)
+
+<a name="0.1.0"></a>
+# 0.1.0 (2017-03-07)
+
+
+### Features
+
+* **validations:** add validateOptions module ([ae9b47b](https://github.com/webpack-contrib/schema-utils/commit/ae9b47b))
+
+
+
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
diff --git a/node_modules/schema-utils/LICENSE b/node_modules/schema-utils/LICENSE
new file mode 100644
index 00000000..8c11fc72
--- /dev/null
+++ b/node_modules/schema-utils/LICENSE
@@ -0,0 +1,20 @@
+Copyright JS Foundation and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/schema-utils/README.md b/node_modules/schema-utils/README.md
new file mode 100644
index 00000000..2c4d9967
--- /dev/null
+++ b/node_modules/schema-utils/README.md
@@ -0,0 +1,130 @@
+[![npm][npm]][npm-url]
+[![node][node]][node-url]
+[![deps][deps]][deps-url]
+[![test][test]][test-url]
+[![coverage][cover]][cover-url]
+[![chat][chat]][chat-url]
+
+<div align="center">
+ <a href="http://json-schema.org">
+ <img width="160" height="160"
+ src="https://raw.githubusercontent.com/webpack-contrib/schema-utils/master/docs/logo.png">
+ </a>
+ <a href="https://github.com/webpack/webpack">
+ <img width="200" height="200"
+ src="https://webpack.js.org/assets/icon-square-big.svg">
+ </a>
+ <h1>Schema Utils</h1>
+</div>
+
+<h2 align="center">Install</h2>
+
+```bash
+npm i schema-utils
+```
+
+<h2 align="center">Usage</h2>
+
+### `validateOptions`
+
+**schema.json**
+```js
+{
+ "type": "object",
+ "properties": {
+ // Options...
+ },
+ "additionalProperties": false
+}
+```
+
+```js
+import schema from 'path/to/schema.json'
+import validateOptions from 'schema-utils'
+
+validateOptions(schema, options, 'Loader/Plugin Name')
+```
+
+<h2 align="center">Examples</h2>
+
+**schema.json**
+```json
+{
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "test": {
+ "anyOf": [
+ { "type": "array" },
+ { "type": "string" },
+ { "instanceof": "RegExp" }
+ ]
+ },
+ "transform": {
+ "instanceof": "Function"
+ },
+ "sourceMap": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+}
+```
+
+### `Loader`
+
+```js
+import { getOptions } from 'loader-utils'
+import validateOptions from 'schema-utils'
+
+import schema from 'path/to/schema.json'
+
+function loader (src, map) {
+ const options = getOptions(this) || {}
+
+ validateOptions(schema, options, 'Loader Name')
+
+ // Code...
+}
+```
+
+### `Plugin`
+
+```js
+import validateOptions from 'schema-utils'
+
+import schema from 'path/to/schema.json'
+
+class Plugin {
+ constructor (options) {
+ validateOptions(schema, options, 'Plugin Name')
+
+ this.options = options
+ }
+
+ apply (compiler) {
+ // Code...
+ }
+}
+```
+
+
+[npm]: https://img.shields.io/npm/v/schema-utils.svg
+[npm-url]: https://npmjs.com/package/schema-utils
+
+[node]: https://img.shields.io/node/v/schema-utils.svg
+[node-url]: https://nodejs.org
+
+[deps]: https://david-dm.org/webpack-contrib/schema-utils.svg
+[deps-url]: https://david-dm.org/webpack-contrib/schema-utils
+
+[test]: http://img.shields.io/travis/webpack-contrib/schema-utils.svg
+[test-url]: https://travis-ci.org/webpack-contrib/schema-utils
+
+[cover]: https://codecov.io/gh/webpack-contrib/schema-utils/branch/master/graph/badge.svg
+[cover-url]: https://codecov.io/gh/webpack-contrib/schema-utils
+
+[chat]: https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg
+[chat-url]: https://gitter.im/webpack/webpack
diff --git a/node_modules/schema-utils/package.json b/node_modules/schema-utils/package.json
new file mode 100644
index 00000000..ab2bf607
--- /dev/null
+++ b/node_modules/schema-utils/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "schema-utils",
+ "version": "0.4.7",
+ "description": "webpack Validation Utils",
+ "main": "src/index.js",
+ "files": [
+ "src"
+ ],
+ "engines": {
+ "node": ">= 4"
+ },
+ "scripts": {
+ "lint": "eslint --cache src test",
+ "test": "jest --env node --verbose --coverage",
+ "clean": "del-cli coverage",
+ "commits": "commitlint --from $(git rev-list --tags --max-count=1)",
+ "release": "npm run commits && standard-version"
+ },
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "devDependencies": {
+ "@commitlint/cli": "^7.0.0",
+ "@commitlint/config-conventional": "^7.0.0",
+ "@webpack-contrib/eslint-config-webpack": "^2.0.0",
+ "del-cli": "^1.0.0",
+ "eslint": "^5.0.0",
+ "eslint-plugin-import": "^2.0.0",
+ "eslint-plugin-prettier": "^2.0.0",
+ "jest": "^21.0.0",
+ "prettier": "^1.0.0",
+ "standard-version": "^4.0.0"
+ },
+ "author": "webpack Contrib (https://github.com/webpack-contrib)",
+ "bugs": "https://github.com/webpack-contrib/schema-utils/issues",
+ "homepage": "https://github.com/webpack-contrib/schema-utils",
+ "repository": "https://github.com/webpack-contrib/schema-utils",
+ "license": "MIT"
+}
diff --git a/node_modules/schema-utils/src/ValidationError.js b/node_modules/schema-utils/src/ValidationError.js
new file mode 100644
index 00000000..21264b5c
--- /dev/null
+++ b/node_modules/schema-utils/src/ValidationError.js
@@ -0,0 +1,25 @@
+/* eslint-disable
+ strict
+*/
+
+'use strict';
+
+class ValidationError extends Error {
+ constructor(errors, name) {
+ super();
+
+ this.name = 'ValidationError';
+
+ this.message = `${name || ''} Invalid Options\n\n`;
+
+ errors.forEach((err) => {
+ this.message += `options${err.dataPath} ${err.message}\n`;
+ });
+
+ this.errors = errors;
+
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+module.exports = ValidationError;
diff --git a/node_modules/schema-utils/src/index.js b/node_modules/schema-utils/src/index.js
new file mode 100644
index 00000000..13108c21
--- /dev/null
+++ b/node_modules/schema-utils/src/index.js
@@ -0,0 +1,9 @@
+/* eslint-disable
+ strict
+*/
+
+'use strict';
+
+const validateOptions = require('./validateOptions');
+
+module.exports = validateOptions;
diff --git a/node_modules/schema-utils/src/validateOptions.js b/node_modules/schema-utils/src/validateOptions.js
new file mode 100644
index 00000000..f6d9f22f
--- /dev/null
+++ b/node_modules/schema-utils/src/validateOptions.js
@@ -0,0 +1,37 @@
+/* eslint-disable
+ strict,
+ no-param-reassign
+*/
+
+'use strict';
+
+const fs = require('fs');
+const path = require('path');
+
+const Ajv = require('ajv');
+const ajvKeywords = require('ajv-keywords');
+
+const ValidationError = require('./ValidationError');
+
+const ajv = new Ajv({
+ allErrors: true,
+ useDefaults: true,
+ errorDataPath: 'property',
+});
+
+ajvKeywords(ajv, ['instanceof', 'typeof']);
+
+const validateOptions = (schema, options, name) => {
+ if (typeof schema === 'string') {
+ schema = fs.readFileSync(path.resolve(schema), 'utf8');
+ schema = JSON.parse(schema);
+ }
+
+ if (!ajv.validate(schema, options)) {
+ throw new ValidationError(ajv.errors, name);
+ }
+
+ return true;
+};
+
+module.exports = validateOptions;