From fe331f6cde020646b71dec268ea98f53b939c9c1 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 18:59:52 +0800 Subject: [PATCH 01/16] - Refactoring: ES6 - Build: Switch from Webpack to Rollup - Linting: Add ESLint and apply latest ash-nazg fixers - Linting: Add recommended package.json fields - Maintenance: Add editorconfig, gitignore --- .editorconfig | 15 + .eslintignore | 2 + .eslintrc.cjs | 50 + README.md | 112 +- dist/json-pull-parser.js | 4 +- dist/json-pull-parser.js.map | 2 +- index.js | 141 +- package-lock.json | 7096 ++++++++++++++++++++++++++++++++++ package.json | 44 +- rollup.config.js | 15 + src/CodePointIterator.js | 41 + src/builder.js | 105 +- src/parser.js | 619 +-- webpack.config.js | 16 - 14 files changed, 7853 insertions(+), 409 deletions(-) create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 package-lock.json create mode 100644 rollup.config.js create mode 100644 src/CodePointIterator.js delete mode 100644 webpack.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ff45b86 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +; EditorConfig file: https://EditorConfig.org +; Install the "EditorConfig" plugin into your editor to use + +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true + +[*.md] +indent_size = 4 diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..de4d1f0 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..240d18d --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,50 @@ +'use strict'; + +module.exports = { + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module' + }, + extends: [ + 'ash-nazg/sauron' + ], + env: { + browser: false, + es6: true + }, + settings: { + polyfills: [ + 'Math.trunc', + 'Number.parseFloat', + 'Symbol.iterator' + ] + }, + globals: { + Atomics: 'readonly', + SharedArrayBuffer: 'readonly' + }, + overrides: [{ + files: ['.eslintrc.cjs'], + extends: [ + 'ash-nazg/sauron-node', + 'plugin:node/recommended-script' + ], + rules: { + 'import/no-commonjs': 0 + } + }, { + files: ['*.md'], + globals: { + json: true, + token: true, + JSONPullParser: true + }, + rules: { + 'import/unambiguous': 0 + } + }], + rules: { + 'no-bitwise': 0, + 'unicorn/consistent-destructuring': 0 + } +}; diff --git a/README.md b/README.md index d7af98b..e9c130b 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,21 @@ -JSONPullParser --------------- +# JSONPullParser -**Introduction** +## Introduction -`JSONPullParser` is a dropin replacement for `JSON.parse` and also provides a -pull based api. +Originally forked from [`JSONPullParser`](https://www.npmjs.com/package/json-pull-parser) +to expand on the types of iterators and to have available in source control. -**Usage** +A dropin replacement for `JSON.parse` and also provides a pull based api. -```javascript -let parser = new JSONPullParser(json); -let builder = new JSONPullParser.ObjectBuilder(); +## Usage + +```js +const parser = new JSONPullParser(json); +const builder = new JSONPullParser.ObjectBuilder(); -for (let token of parser) builder.handle(token); +for (const token of parser) { + builder.handle(token); +} ``` See live [demo](http://www.susi.se/json-pull-parser/demo.html)! @@ -26,23 +29,25 @@ If your *JavaScript* engine supports [Symbol.iterator](https://developer.mozilla then your parser is *iterable*. ```javascript -let parser = new JSONPullParser(json); +const parser = new JSONPullParser(json); -for (let token of parser) { +for (const token of parser) { // use token } ``` -Otherwise you have to get an *iterator* from `parser.tokens()` +Otherwise you have to get an *iterator* from `parser.tokens()`: ```javascript -var parser = new JSONPullParser(json); -var it = parser.tokens(); +const parser = new JSONPullParser(json); +const it = parser.tokens(); while (true) { - var step = it.next(); - if (step.done) break; - var token = step.value; + const step = it.next(); + if (step.done) { + break; + } + const token = step.value; // use token } ``` @@ -53,17 +58,17 @@ and `EndArray` at the correct depth. ## Installation -**Node (CommonJS)** +### Node (CommonJS) ```sh $ npm install json-pull-parser ``` -```javascript -const JSONPullParser = require('json-pull-parser') +```js +const JSONPullParser = require('json-pull-parser'); ``` -**Browser** +### Browser ```html @@ -77,43 +82,46 @@ const JSONPullParser = require('json-pull-parser') `JSON.parse` could be implemented by simply feeding all the tokens to `ObjectBuilder`. -```javascript -JSON.parse = function (source) -{ - let parser = new JSONPullParser(source); - let builder = new JSONPullParser.ObjectBuilder(); - for (let token of parser) builder.handle(token); +```js +JSON.parse = function (source) { + const parser = new JSONPullParser(source); + const builder = new JSONPullParser.ObjectBuilder(); + for (const token of parser) { + builder.handle(token); + } return builder.value; -} +}; ``` ## Custom handling of events -```javascript -let parser = new JSONPullParser(json); +```js +const parser = new JSONPullParser(json); -for (let token of parser) { +for (const token of parser) { switch (token.type) { - case JSONPullParser.StartObject: - break; - case JSONPullParser.EndObject: - break; - case JSONPullParser.StartArray: - break; - case JSONPullParser.EndArray: - break; - case JSONPullParser.String: - break; - case JSONPullParser.Number: - break; - case JSONPullParser.TrueLiteral: - break; - case JSONPullParser.FalseLiteral: - break; - case JSONPullParser.NullLiteral: - break; - case JSONPullParser.Error: - break; + case JSONPullParser.StartObject: + break; + case JSONPullParser.EndObject: + break; + case JSONPullParser.StartArray: + break; + case JSONPullParser.EndArray: + break; + case JSONPullParser.String: + break; + case JSONPullParser.Number: + break; + case JSONPullParser.TrueLiteral: + break; + case JSONPullParser.FalseLiteral: + break; + case JSONPullParser.NullLiteral: + break; + case JSONPullParser.Error: + break; + default: + throw new Error('Should not get here'); } } diff --git a/dist/json-pull-parser.js b/dist/json-pull-parser.js index 7ca7cf7..827c8b3 100644 --- a/dist/json-pull-parser.js +++ b/dist/json-pull-parser.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JSONPullParser=t():e.JSONPullParser=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,r){"use strict";function n(e){this.text=e}function o(e){this.s=e,this.f=0,this.l=0|e.length,this.cc=0}function a(e){var t={d:!1,s:e,f:0,l:e.length,e:v,c:0,r:1,x:[]};return{next:function(){if(t.f===t.l)return t.e||t.x.length>0?{done:!1,value:i(t.s,t.l,t.l,"Unexpected end of JSON input")}:{done:!0};var e=l(t);return t.f=e.last,{value:e,done:!1}}}}function i(e,t,r,o,a){a=a||1;for(var i=t,s=e.charCodeAt(i);10!==s&&i>0;)s=e.charCodeAt(--i);10===s&&++i;for(var u="undefined:"+a,c=e.substring(i,t+1),f="",l=i;l0?g|k:0,u(t,r,o)):i(t,r,o,"Unexpected token } in JSON at position "+r,e.r);case 91:return e.e&v?(e.e=v|k,e.x.push(J),c(t,r,o)):i(t,r,o,"Unexpected token [ in JSON at position "+r,e.r);case 93:return e.e&k&&e.x.pop()===J?(e.e=e.x.length>0?g|k:0,f(t,r,o)):i(t,r,o,"Unexpected token ] in JSON at position "+r,e.r);case 58:if(!(e.e&N))return i(t,r,o,"Unexpected token : in JSON at position "+r,e.r);e.e=v,++r;continue;case 44:if(!(e.e&g))return i(t,r,o,"Unexpected token , in JSON at position "+r,e.r);e.x.length>0&&e.x[e.x.length-1]===A?e.e=O:e.e=v,++r;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return e.e&v?(e.e=e.x.length>0?g|k:0,p(t,r,o)):i(t,r,o,"Unexpected number in JSON at position "+r,e.r);case 34:return e.e&O?(e.e=N,d(t,r,o)):e.e&v?(e.e=e.x.length>0?g|k:0,d(t,r,o)):i(t,r,o,"Unexpected string in JSON at position "+r,e.r);case 116:return e.e&v?(e.e=e.x.length>0?g|k:0,x(t,r,o)):i(t,r,o,"Unexpected token t in JSON at position "+r,e.r);case 102:return e.e&v?(e.e=e.x.length>0?g|k:0,y(t,r,o)):i(t,r,o,"Unexpected token f in JSON at position "+r,e.r);case 110:return e.e&v?(e.e=e.x.length>0?g|k:0,b(t,r,o)):i(t,r,o,"Unexpected token n in JSON at position "+r,e.r);default:return i(t,r,o,"Unexpected token "+t[r]+" in JSON at position "+r,e.r)}return{type:n.EndDocument,first:o,last:o}}function p(e,t,r){var o=t,a=e.charCodeAt(o++);if(45===a&&(a=e.charCodeAt(o++)),48!==a)for(;a>=48&&a<=57;)a=e.charCodeAt(o++);else a=e.charCodeAt(o++);if(46===a)for(a=e.charCodeAt(o++);a>=48&&a<=57;)a=e.charCodeAt(o++);if(101===a||69===a){if(a=e.charCodeAt(o++),43!==a&&45!==a||(a=e.charCodeAt(o++)),a<48||a>57)return i(e,o-1,r,"Unexpected token "+e[o-1]+" in JSON at position "+(o-1));if(o>=r)return i(e,t,r,"Unexpected end of JSON input");for(;a>=48&&a<=57;)a=e.charCodeAt(o++)}return{type:n.Number,value:parseFloat(e.substring(t,o-1)),first:t,last:o-1}}function d(e,t,r){for(var o=t+1;or)))return i(e,r,r,"Unexpected end of JSON input")}return{type:n.String,value:JSON.parse(e.substring(t,o)),source:e,first:t,last:o}}function h(e,t,r,n,o){if(t+n.length>r)return i(e,r,r,"Unexpected end of JSON input");for(var a=0;a",n.StartObject="{",n.EndObject="}",n.StartArray="[",n.EndArray="]",n.String="string",n.Number="number",n.TrueLiteral="true",n.FalseLiteral="false",n.NullLiteral="null",n.Whitespace="ws",n.Error="error",o.prototype.next=function(){return!(this.f>=this.l)&&(this.cc=0|source.charCodeAt(this.f++),!0)},o.prototype.code=function(){return this.cc},o.prototype.expect=function(e){},n.ObjectBuilder=S,n.parse=function(e,t){"string"!=typeof e&&(e=""+e);for(var r=new S,n=a(e),o=n.next();!o.done;o=n.next()){var i=o.value;r.handle(i)}if("undefined"==typeof r.value)throw new SyntaxError("Unexpected end of JSON input");return r.value},e.exports=n},function(e,t){function r(){this.handler={ref:this,add:function(e){return this.ref.value=e,e}}}r.prototype.startObject=function(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add:function(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}},r.prototype.endObject=function(){this.handler=this.handler.old},r.prototype.startArray=function(){this.handler={old:this.handler,ref:this.handler.add([]),add:function(e){return this.ref.push(e),e}}},r.prototype.endArray=r.prototype.endObject,r.prototype.add=function(e){this.handler.add(e)},r.prototype.handle=function(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}},e.exports=r},function(e,t,r){e.exports=r(0)}])}); -//# sourceMappingURL=json-pull-parser.js.map \ No newline at end of file +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message);default:throw new TypeError("Unexpected token type")}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e,s=n(t);for(let e=s.next();!e.done;e=s.next()){const t=e.value;a.handle(t)}if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); +//# sourceMappingURL=json-pull-parser.js.map diff --git a/dist/json-pull-parser.js.map b/dist/json-pull-parser.js.map index 6118b93..cd2f850 100644 --- a/dist/json-pull-parser.js.map +++ b/dist/json-pull-parser.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///dist/json-pull-parser.js","webpack:///webpack/bootstrap fadce7542f432126fdff","webpack:///./src/parser.js","webpack:///./src/builder.js","webpack:///./index.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","JSONPullParser","text","CodePointIterator","source","f","length","cc","TokenIterator","state","e","VALUE","r","x","next","done","ParserError","token","parseValue","last","charCodeAt","str0","str1","substring","str2","err","SyntaxError","type","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","CLOSE","push","OBJECT","pop","COMMA","ARRAY","COLON","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","match","ccs","success","TrueLiteral","FalseLiteral","NullLiteral","ObjectBuilder","Symbol","iterator","tokens","StartDocument","Whitespace","code","expect","reviever","builder","it","step","handle","handler","ref","add","startObject","old","key","endObject","startArray","endArray","message"],"mappings":"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","file":"dist/json-pull-parser.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"JSONPullParser\"] = factory();\n\telse\n\t\troot[\"JSONPullParser\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"JSONPullParser\"] = factory();\n\telse\n\t\troot[\"JSONPullParser\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ObjectBuilder = __webpack_require__(1);\n\nvar VALUE = 1;\nvar KEY = 2;\nvar COMMA = 4;\nvar COLON = 8;\nvar CLOSE = 16;\nvar OBJECT = 32;\nvar ARRAY = 64;\n\nfunction JSONPullParser(text)\n{\n this.text = text;\n}\n\nJSONPullParser.prototype[Symbol.iterator] = function()\n{\n return TokenIterator(this.text);\n}\n\nJSONPullParser.prototype.tokens = function()\n{\n return TokenIterator(this.text);\n}\n\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nfunction CodePointIterator(source)\n{\n this.s = source;\n this.f = 0;\n this.l = source.length | 0;\n this.cc = 0;\n}\n\nCodePointIterator.prototype.next = function ()\n{\n if (this.f >= this.l) return false;\n this.cc = source.charCodeAt(this.f++) | 0;\n return true;\n}\n\nCodePointIterator.prototype.code = function ()\n{\n return this.cc;\n}\n\nCodePointIterator.prototype.expect = function (code)\n{\n}\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\nJSONPullParser.parse = function(text, reviever)\n{\n if (typeof text !== 'string') text = '' + text;\n var builder = new ObjectBuilder();\n var it = TokenIterator(text);\n for (var step = it.next();!step.done; step = it.next()) {\n var token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') throw new SyntaxError('Unexpected end of JSON input');\n return builder.value;\n}\n\nfunction TokenIterator(text)\n{\n var state = {\n d: false, // done\n s: text,\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n return {\n next: function () {\n // console.log(`next: ${state.f}, ${state.l}, ${text.charCodeAt(state.f).toString(16)}`)\n if (state.f === state.l) {\n return (state.e || state.x.length > 0)\n ? { done: false, value: ParserError(state.s, state.l, state.l, 'Unexpected end of JSON input') }\n : { done: true };\n }\n var token = parseValue(state);\n state.f = token.last;\n return { value: token, done: false };\n }\n };\n}\n\nfunction ParserError(s, f, l, m, r)\n{\n r = r || 1;\n var c = f;\n var cc = s.charCodeAt(c);\n while (cc !== 0x0a && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0a) ++c;\n var str0 = 'undefined:' + r;\n var str1 = s.substring(c, f+1);\n var str2 = '';\n for (var i = c;i < f;++i) str2 += ' ';\n str2 += '^';\n\n var err = new SyntaxError(str0 + \"\\n\" + str1 + \"\\n\" + str2 + \"\\n\\n\" + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\nfunction parseObjectStart(s, f, l)\n{\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f+1\n };\n}\n\nfunction parseObjectEnd(s, f, l)\n{\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f+1\n };\n}\nfunction parseArrayStart(s, f, l)\n{\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f+1\n };\n}\n\nfunction parseArrayEnd(s, f, l)\n{\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f+1\n };\n}\n\nfunction parseValue(state)\n{\n var s = state.s;\n var f = state.f;\n var l = state.l;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0a: // LF\n state.c = 0;\n state.r++;\n case 0x09: // TAB\n case 0x0d: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7b: // {\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token { in JSON at position ' + f, state.r);\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7d: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) return ParserError(s, f, l, 'Unexpected token } in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5b: // [\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r);\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5d: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) return ParserError(s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3a: // :\n if (!(state.e & COLON)) return ParserError(s, f, l, 'Unexpected token : in JSON at position ' + f, state.r);\n state.e = VALUE;\n ++f; continue;\n case 0x2c: // ,\n if (!(state.e & COMMA)) return ParserError(s, f, l, 'Unexpected token , in JSON at position ' + f, state.r);\n if (state.x.length > 0 && state.x[state.x.length-1] === OBJECT) state.e = KEY;\n else state.e = VALUE;\n ++f; continue;\n case 0x2d: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected number in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected string in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token t in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token f in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6e: // n\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token n in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return ParserError(s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r);\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l,\n };\n}\n\nfunction parseNumber(s, f, l)\n{\n var c = f;\n\n var cc = s.charCodeAt(c++);\n\n if (cc === 0x2d /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n }\n else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2e /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2b /* + */|| cc === 0x2d /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) return ParserError(s, c-1, l, 'Unexpected token ' + s[c-1] + ' in JSON at position ' + (c-1));\n if (c >= l) return ParserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n\n }\n\n return {\n type: JSONPullParser.Number,\n value: parseFloat(s.substring(f, c-1)), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c-1\n };\n\n}\n\n// ECMA-404 section 9\nfunction parseString(s, f, l)\n{\n var c = f+1;\n while (c < l) {\n var cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5c /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return ParserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.substring(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\nfunction match(s, f, l, ccs, success)\n{\n if (f + ccs.length > l) return ParserError(s, l, l, 'Unexpected end of JSON input');\n for (var i = 0;i < ccs.length; ++i) {\n var cc = s.charCodeAt(f++);\n if (cc !== ccs[i]) return ParserError(s, f, l, 'Unexpected token ' + s[f-1] + ' in JSON at position ' + (f-1));\n }\n return success;\n}\n\nfunction parseTrue(s, f, l)\n{\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f+4\n });\n}\n\nfunction parseFalse(s, f, l)\n{\n return match(s, f, l, [0x66, 0x61, 0x6c, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f+5\n });\n}\n\nfunction parseNull(s, f, l)\n{\n return match(s, f, l, [0x6e, 0x75, 0x6c, 0x6c], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f+4\n });\n}\n\nmodule.exports = JSONPullParser;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\nfunction ObjectBuilder() {\n this.handler = {\n ref: this,\n add: function (value) { this.ref.value = value; return value; },\n };\n}\n\nObjectBuilder.prototype.startObject = function () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add: function (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n },\n };\n}\n\nObjectBuilder.prototype.endObject = function () {\n this.handler = this.handler.old;\n}\n\nObjectBuilder.prototype.startArray = function () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add: function (value) {\n this.ref.push(value);\n return value;\n },\n };\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nObjectBuilder.prototype.add = function (value) {\n this.handler.add(value);\n}\n\nObjectBuilder.prototype.handle = function (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n }\n}\n\nmodule.exports = ObjectBuilder;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(0);\n\n// function printStatus(fn) {\n// switch(%GetOptimizationStatus(fn)) {\n// case 1: console.log(\"Function is optimized\"); break;\n// case 2: console.log(\"Function is not optimized\"); break;\n// case 3: console.log(\"Function is always optimized\"); break;\n// case 4: console.log(\"Function is never optimized\"); break;\n// case 6: console.log(\"Function is maybe deoptimized\"); break;\n// case 7: console.log(\"Function is optimized by TurboFan\"); break;\n// default: console.log(\"Unknown optimization status\"); break;\n// }\n// }\n\n// const N = 1e6;\n\n// var o = true;\n// // for (let i = 0;i < N;++i) {\n// // o.push(null);\n// // o.push(true);\n// // o.push(false);\n// // // o.push(((Math.random() - 0.5) * 1e12));\n// // // o.push(((Math.random() - 0.5) * 1e12).toString(36));\n// // // o[ ((Math.random() - 0.5) * 1e12).toString(36) ] = ((Math.random() - 0.5) * 1e12);\n// // }\n\n// var s = JSON.stringify(o, null, 2);\n\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n\n\n// // %OptimizeFunctionOnNextCall(JSONPullParser.parse);\n// %OptimizeFunctionOnNextCall(parseTrue);\n// %OptimizeFunctionOnNextCall(parseFalse);\n// %OptimizeFunctionOnNextCall(parseNull);\n// %OptimizeFunctionOnNextCall(match);\n\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n\n// printStatus(JSONPullParser.parse);\n// printStatus(parseNumber);\n// printStatus(parseString);\n// printStatus(parseTrue);\n// printStatus(parseFalse);\n// printStatus(parseNull);\n// printStatus(match);\n\n\n// // console.time('1');\n// // var o1 = JSON.parse(s);\n// // console.timeEnd('1');\n// // var s1 = JSON.stringify(o1);\n\n// console.time('2');\n// var o2 = JSONPullParser.parse(s);\n// console.timeEnd('2');\n// // var s2 = JSON.stringify(o2);\n\n// console.time('1');\n// var o1 = JSON.parse(s);\n// console.timeEnd('1');\n// var s1 = JSON.stringify(o1);\n\n\n// // console.log(s1 === s2);\n\n// // for (let i = 0;i < N;++i) {\n// // if (o1[i] !== o2[i]) {\n// // console.log(i, o[i], o1[i], o2[i]);\n// // break;\n// // }\n// // }\n\n// JSON.parse('[\"Comma after the close\"],');\n\n// JSONPullParser.parse('25');\n\n\n/***/ }\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// dist/json-pull-parser.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap fadce7542f432126fdff","'use strict';\n\nvar ObjectBuilder = require('./builder');\n\nvar VALUE = 1;\nvar KEY = 2;\nvar COMMA = 4;\nvar COLON = 8;\nvar CLOSE = 16;\nvar OBJECT = 32;\nvar ARRAY = 64;\n\nfunction JSONPullParser(text)\n{\n this.text = text;\n}\n\nJSONPullParser.prototype[Symbol.iterator] = function()\n{\n return TokenIterator(this.text);\n}\n\nJSONPullParser.prototype.tokens = function()\n{\n return TokenIterator(this.text);\n}\n\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nfunction CodePointIterator(source)\n{\n this.s = source;\n this.f = 0;\n this.l = source.length | 0;\n this.cc = 0;\n}\n\nCodePointIterator.prototype.next = function ()\n{\n if (this.f >= this.l) return false;\n this.cc = source.charCodeAt(this.f++) | 0;\n return true;\n}\n\nCodePointIterator.prototype.code = function ()\n{\n return this.cc;\n}\n\nCodePointIterator.prototype.expect = function (code)\n{\n}\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\nJSONPullParser.parse = function(text, reviever)\n{\n if (typeof text !== 'string') text = '' + text;\n var builder = new ObjectBuilder();\n var it = TokenIterator(text);\n for (var step = it.next();!step.done; step = it.next()) {\n var token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') throw new SyntaxError('Unexpected end of JSON input');\n return builder.value;\n}\n\nfunction TokenIterator(text)\n{\n var state = {\n d: false, // done\n s: text,\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n return {\n next: function () {\n // console.log(`next: ${state.f}, ${state.l}, ${text.charCodeAt(state.f).toString(16)}`)\n if (state.f === state.l) {\n return (state.e || state.x.length > 0)\n ? { done: false, value: ParserError(state.s, state.l, state.l, 'Unexpected end of JSON input') }\n : { done: true };\n }\n var token = parseValue(state);\n state.f = token.last;\n return { value: token, done: false };\n }\n };\n}\n\nfunction ParserError(s, f, l, m, r)\n{\n r = r || 1;\n var c = f;\n var cc = s.charCodeAt(c);\n while (cc !== 0x0a && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0a) ++c;\n var str0 = 'undefined:' + r;\n var str1 = s.substring(c, f+1);\n var str2 = '';\n for (var i = c;i < f;++i) str2 += ' ';\n str2 += '^';\n\n var err = new SyntaxError(str0 + \"\\n\" + str1 + \"\\n\" + str2 + \"\\n\\n\" + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\nfunction parseObjectStart(s, f, l)\n{\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f+1\n };\n}\n\nfunction parseObjectEnd(s, f, l)\n{\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f+1\n };\n}\nfunction parseArrayStart(s, f, l)\n{\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f+1\n };\n}\n\nfunction parseArrayEnd(s, f, l)\n{\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f+1\n };\n}\n\nfunction parseValue(state)\n{\n var s = state.s;\n var f = state.f;\n var l = state.l;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0a: // LF\n state.c = 0;\n state.r++;\n case 0x09: // TAB\n case 0x0d: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7b: // {\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token { in JSON at position ' + f, state.r);\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7d: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) return ParserError(s, f, l, 'Unexpected token } in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5b: // [\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r);\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5d: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) return ParserError(s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3a: // :\n if (!(state.e & COLON)) return ParserError(s, f, l, 'Unexpected token : in JSON at position ' + f, state.r);\n state.e = VALUE;\n ++f; continue;\n case 0x2c: // ,\n if (!(state.e & COMMA)) return ParserError(s, f, l, 'Unexpected token , in JSON at position ' + f, state.r);\n if (state.x.length > 0 && state.x[state.x.length-1] === OBJECT) state.e = KEY;\n else state.e = VALUE;\n ++f; continue;\n case 0x2d: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected number in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected string in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token t in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token f in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6e: // n\n if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token n in JSON at position ' + f, state.r);\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return ParserError(s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r);\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l,\n };\n}\n\nfunction parseNumber(s, f, l)\n{\n var c = f;\n\n var cc = s.charCodeAt(c++);\n\n if (cc === 0x2d /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n }\n else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2e /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2b /* + */|| cc === 0x2d /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) return ParserError(s, c-1, l, 'Unexpected token ' + s[c-1] + ' in JSON at position ' + (c-1));\n if (c >= l) return ParserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n\n }\n\n return {\n type: JSONPullParser.Number,\n value: parseFloat(s.substring(f, c-1)), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c-1\n };\n\n}\n\n// ECMA-404 section 9\nfunction parseString(s, f, l)\n{\n var c = f+1;\n while (c < l) {\n var cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5c /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return ParserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.substring(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\nfunction match(s, f, l, ccs, success)\n{\n if (f + ccs.length > l) return ParserError(s, l, l, 'Unexpected end of JSON input');\n for (var i = 0;i < ccs.length; ++i) {\n var cc = s.charCodeAt(f++);\n if (cc !== ccs[i]) return ParserError(s, f, l, 'Unexpected token ' + s[f-1] + ' in JSON at position ' + (f-1));\n }\n return success;\n}\n\nfunction parseTrue(s, f, l)\n{\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f+4\n });\n}\n\nfunction parseFalse(s, f, l)\n{\n return match(s, f, l, [0x66, 0x61, 0x6c, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f+5\n });\n}\n\nfunction parseNull(s, f, l)\n{\n return match(s, f, l, [0x6e, 0x75, 0x6c, 0x6c], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f+4\n });\n}\n\nmodule.exports = JSONPullParser;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/parser.js\n// module id = 0\n// module chunks = 0","function ObjectBuilder() {\n this.handler = {\n ref: this,\n add: function (value) { this.ref.value = value; return value; },\n };\n}\n\nObjectBuilder.prototype.startObject = function () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add: function (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n },\n };\n}\n\nObjectBuilder.prototype.endObject = function () {\n this.handler = this.handler.old;\n}\n\nObjectBuilder.prototype.startArray = function () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add: function (value) {\n this.ref.push(value);\n return value;\n },\n };\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nObjectBuilder.prototype.add = function (value) {\n this.handler.add(value);\n}\n\nObjectBuilder.prototype.handle = function (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n }\n}\n\nmodule.exports = ObjectBuilder;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/builder.js\n// module id = 1\n// module chunks = 0","module.exports = require('./src/parser.js');\n\n// function printStatus(fn) {\n// switch(%GetOptimizationStatus(fn)) {\n// case 1: console.log(\"Function is optimized\"); break;\n// case 2: console.log(\"Function is not optimized\"); break;\n// case 3: console.log(\"Function is always optimized\"); break;\n// case 4: console.log(\"Function is never optimized\"); break;\n// case 6: console.log(\"Function is maybe deoptimized\"); break;\n// case 7: console.log(\"Function is optimized by TurboFan\"); break;\n// default: console.log(\"Unknown optimization status\"); break;\n// }\n// }\n\n// const N = 1e6;\n\n// var o = true;\n// // for (let i = 0;i < N;++i) {\n// // o.push(null);\n// // o.push(true);\n// // o.push(false);\n// // // o.push(((Math.random() - 0.5) * 1e12));\n// // // o.push(((Math.random() - 0.5) * 1e12).toString(36));\n// // // o[ ((Math.random() - 0.5) * 1e12).toString(36) ] = ((Math.random() - 0.5) * 1e12);\n// // }\n\n// var s = JSON.stringify(o, null, 2);\n\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n\n\n// // %OptimizeFunctionOnNextCall(JSONPullParser.parse);\n// %OptimizeFunctionOnNextCall(parseTrue);\n// %OptimizeFunctionOnNextCall(parseFalse);\n// %OptimizeFunctionOnNextCall(parseNull);\n// %OptimizeFunctionOnNextCall(match);\n\n// JSONPullParser.parse(s);\n// JSONPullParser.parse(s);\n\n// printStatus(JSONPullParser.parse);\n// printStatus(parseNumber);\n// printStatus(parseString);\n// printStatus(parseTrue);\n// printStatus(parseFalse);\n// printStatus(parseNull);\n// printStatus(match);\n\n\n// // console.time('1');\n// // var o1 = JSON.parse(s);\n// // console.timeEnd('1');\n// // var s1 = JSON.stringify(o1);\n\n// console.time('2');\n// var o2 = JSONPullParser.parse(s);\n// console.timeEnd('2');\n// // var s2 = JSON.stringify(o2);\n\n// console.time('1');\n// var o1 = JSON.parse(s);\n// console.timeEnd('1');\n// var s1 = JSON.stringify(o1);\n\n\n// // console.log(s1 === s2);\n\n// // for (let i = 0;i < N;++i) {\n// // if (o1[i] !== o2[i]) {\n// // console.log(i, o[i], o1[i], o2[i]);\n// // break;\n// // }\n// // }\n\n// JSON.parse('[\"Comma after the close\"],');\n\n// JSONPullParser.parse('25');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 2\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n throw new TypeError('Unexpected token type');\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n const it = tokenIterator(text);\n for (let step = it.next(); !step.done; step = it.next()) {\n const token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","TypeError","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","it","step","next","done","handle"],"mappings":"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"} \ No newline at end of file diff --git a/index.js b/index.js index 4adb40a..3f3b74e 100644 --- a/index.js +++ b/index.js @@ -1,79 +1,82 @@ -module.exports = require('./src/parser.js'); - -// function printStatus(fn) { -// switch(%GetOptimizationStatus(fn)) { -// case 1: console.log("Function is optimized"); break; -// case 2: console.log("Function is not optimized"); break; -// case 3: console.log("Function is always optimized"); break; -// case 4: console.log("Function is never optimized"); break; -// case 6: console.log("Function is maybe deoptimized"); break; -// case 7: console.log("Function is optimized by TurboFan"); break; -// default: console.log("Unknown optimization status"); break; -// } -// } - -// const N = 1e6; - -// var o = true; -// // for (let i = 0;i < N;++i) { -// // o.push(null); -// // o.push(true); -// // o.push(false); -// // // o.push(((Math.random() - 0.5) * 1e12)); -// // // o.push(((Math.random() - 0.5) * 1e12).toString(36)); -// // // o[ ((Math.random() - 0.5) * 1e12).toString(36) ] = ((Math.random() - 0.5) * 1e12); -// // } - -// var s = JSON.stringify(o, null, 2); - -// JSONPullParser.parse(s); -// JSONPullParser.parse(s); -// JSONPullParser.parse(s); - - -// // %OptimizeFunctionOnNextCall(JSONPullParser.parse); -// %OptimizeFunctionOnNextCall(parseTrue); -// %OptimizeFunctionOnNextCall(parseFalse); -// %OptimizeFunctionOnNextCall(parseNull); -// %OptimizeFunctionOnNextCall(match); - -// JSONPullParser.parse(s); -// JSONPullParser.parse(s); - -// printStatus(JSONPullParser.parse); -// printStatus(parseNumber); -// printStatus(parseString); -// printStatus(parseTrue); -// printStatus(parseFalse); -// printStatus(parseNull); -// printStatus(match); - - -// // console.time('1'); -// // var o1 = JSON.parse(s); -// // console.timeEnd('1'); -// // var s1 = JSON.stringify(o1); - -// console.time('2'); -// var o2 = JSONPullParser.parse(s); -// console.timeEnd('2'); -// // var s2 = JSON.stringify(o2); +import JSONPullParser from './src/parser.js'; + +export default JSONPullParser; + +/** + * @example +function printStatus (fn) { + switch (GetOptimizationStatus(fn)) { + case 1: console.log('Function is optimized'); break; + case 2: console.log('Function is not optimized'); break; + case 3: console.log('Function is always optimized'); break; + case 4: console.log('Function is never optimized'); break; + case 6: console.log('Function is maybe deoptimized'); break; + case 7: console.log('Function is optimized by TurboFan'); break; + default: console.log('Unknown optimization status'); break; + } +} + +const N = 1e6; + +const o = []; +for (let i = 0; i < N; ++i) { + o.push(null); + o.push(true); + o.push(false); + // o.push(((Math.random() - 0.5) * 1e12)); + // o.push(((Math.random() - 0.5) * 1e12).toString(36)); + // o[ ((Math.random() - 0.5) * 1e12).toString(36) ] = + // ((Math.random() - 0.5) * 1e12); +} + +const s = JSON.stringify(o, null, 2); + +JSONPullParser.parse(s); +JSONPullParser.parse(s); +JSONPullParser.parse(s); + +// %OptimizeFunctionOnNextCall(JSONPullParser.parse); +OptimizeFunctionOnNextCall(parseTrue); +OptimizeFunctionOnNextCall(parseFalse); +OptimizeFunctionOnNextCall(parseNull); +OptimizeFunctionOnNextCall(match); + +JSONPullParser.parse(s); +JSONPullParser.parse(s); + +printStatus(JSONPullParser.parse); +printStatus(parseNumber); +printStatus(parseString); +printStatus(parseTrue); +printStatus(parseFalse); +printStatus(parseNull); +printStatus(match); // console.time('1'); // var o1 = JSON.parse(s); // console.timeEnd('1'); // var s1 = JSON.stringify(o1); +console.time('2'); +const o2 = JSONPullParser.parse(s); +console.timeEnd('2'); +const s2 = JSON.stringify(o2); -// // console.log(s1 === s2); +console.time('1'); +const o1 = JSON.parse(s); +console.timeEnd('1'); +const s1 = JSON.stringify(o1); -// // for (let i = 0;i < N;++i) { -// // if (o1[i] !== o2[i]) { -// // console.log(i, o[i], o1[i], o2[i]); -// // break; -// // } -// // } +console.log(s1 === s2); -// JSON.parse('["Comma after the close"],'); +for (let i = 0; i < N; ++i) { + if (o1[i] !== o2[i]) { + console.log(i, o[i], o1[i], o2[i]); + break; + } +} -// JSONPullParser.parse('25'); +JSON.parse('["Comma after the close"],'); + +JSONPullParser.parse('25'); +*/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..693eef0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7096 @@ +{ + "name": "json-pull-parser", + "version": "1.0.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@eslint/eslintrc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "@mdn/browser-compat-data": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz", + "integrity": "sha512-GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==", + "dev": true, + "requires": { + "extend": "3.0.2" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@mysticatea/eslint-plugin": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@mysticatea/eslint-plugin/-/eslint-plugin-13.0.0.tgz", + "integrity": "sha512-L0FAKWY+P46aYMacZolyuXJOcg9B5N6HvlB/vr5k+FRVGqaeciayH6YD5hOhgusyUUqgC776RVjtIMeumNVjQQ==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "~2.6.1", + "@typescript-eslint/parser": "~2.6.1", + "eslint-plugin-eslint-comments": "~3.1.2", + "eslint-plugin-eslint-plugin": "~2.1.0", + "eslint-plugin-node": "~10.0.0", + "eslint-plugin-prettier": "~3.1.1", + "eslint-plugin-vue": "~6.0.0", + "prettier": "~1.19.1", + "vue-eslint-parser": "^7.0.0" + }, + "dependencies": { + "eslint-plugin-eslint-comments": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", + "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + } + }, + "eslint-plugin-node": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", + "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", + "dev": true, + "requires": { + "eslint-plugin-es": "^2.0.0", + "eslint-utils": "^1.4.2", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", + "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "dev": true + }, + "@types/node": { + "version": "14.14.22", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", + "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.1.tgz", + "integrity": "sha512-Z0rddsGqioKbvqfohg7BwkFC3PuNLsB+GE9QkFza7tiDzuHoy0y823Y+oGNDzxNZrYyLjqkZtCTl4vCqOmEN4g==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "2.6.1", + "eslint-utils": "^1.4.2", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.1.tgz", + "integrity": "sha512-EVrrUhl5yBt7fC7c62lWmriq4MIc49zpN3JmrKqfiFXPXCM5ErfEcZYfKOhZXkW6MBjFcJ5kGZqu1b+lyyExUw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.6.1", + "eslint-scope": "^5.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.6.1.tgz", + "integrity": "sha512-PDPkUkZ4c7yA+FWqigjwf3ngPUgoLaGjMlFh6TRtbjhqxFBnkElDfckSjm98q9cMr4xRzZ15VrS/xKm6QHYf0w==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "2.6.1", + "@typescript-eslint/typescript-estree": "2.6.1", + "eslint-visitor-keys": "^1.1.0" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", + "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0" + } + }, + "@typescript-eslint/types": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", + "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz", + "integrity": "sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "glob": "^7.1.4", + "is-glob": "^4.0.1", + "lodash.unescape": "4.0.1", + "semver": "^6.3.0", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", + "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, + "array-includes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-metadata-inferer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz", + "integrity": "sha512-tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "buf-compare": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", + "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", + "dev": true + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001178", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz", + "integrity": "sha512-VtdZLC0vsXykKni8Uztx45xynytOi71Ufx9T8kHptSw9AL4dpqailUJJHavttuzUe1KYuBYtChiWv+BAb7mPmQ==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "comment-parser": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.1.1.tgz", + "integrity": "sha512-vue7cRi1ZO5/72FJ+wZ5+siTSBlUv3ZksTk8bWD2IkaA6obitzMZP3yI65azTJLckwmi8lxfPP5Sd9oGuZ8e2g==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-assert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", + "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", + "dev": true, + "requires": { + "buf-compare": "^1.0.0", + "is-error": "^2.2.0" + } + }, + "core-js": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "dependencies": { + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deep-strict-equal": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", + "integrity": "sha1-SgeBR6irV/ag1PVUckPNIvROtOQ=", + "dev": true, + "requires": { + "core-assert": "^0.2.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serializer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", + "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "entities": "^2.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "dev": true, + "requires": { + "domelementtype": "^2.1.0" + } + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz", + "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0" + }, + "dependencies": { + "domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "dev": true, + "requires": { + "domelementtype": "^2.1.0" + } + } + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.642", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz", + "integrity": "sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhance-visitors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", + "integrity": "sha1-qpRdBdpGVnKh69OP7i7T2oUY6Vo=", + "dev": true, + "requires": { + "lodash": "^4.13.1" + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "env-editor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.1.tgz", + "integrity": "sha512-suh+Vm00GnPQgXpmONTkcUT9LgBSL6sJrRnJxbykT0j+ONjzmIS+1U3ne467ArdZN/42/npp+GnhtwkLQ+vUjw==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.3.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-ast-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", + "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", + "dev": true, + "requires": { + "lodash.get": "^4.4.2", + "lodash.zip": "^4.2.0" + } + }, + "eslint-config-ash-nazg": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-24.0.0.tgz", + "integrity": "sha512-rFT+W5+hJOTpdniArkosikbx89Tp3ATLMAUEUPQeKSnIs9czcdYJM78hMBItSNOPwvQHUBF/oHif4GHHCKd/4Q==", + "dev": true + }, + "eslint-config-prettier": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", + "dev": true + }, + "eslint-config-standard": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", + "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", + "dev": true + }, + "eslint-config-xo": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.34.0.tgz", + "integrity": "sha512-lbpHNfVmSrEQsHsyQ44wY8VA5mEI4Jri5Dk1BJUH0jiCw6nTkj16VQeHiuWzIBJ/uf+mF2FzSqLVf3tD1cHhYA==", + "dev": true, + "requires": { + "confusing-browser-globals": "1.0.10" + } + }, + "eslint-config-xo-typescript": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.37.0.tgz", + "integrity": "sha512-eFRj4xMhiMExCb+H/wyXC1OwTKJiOQ+Qd9myoZLWdyR0X8PAjtzPRfxSOyh2fkBnZvFCDY0DuqcLkPSDSe4Ybg==", + "dev": true + }, + "eslint-formatter-pretty": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.0.0.tgz", + "integrity": "sha512-QgdeZxQwWcN0TcXXNZJiS6BizhAANFhCzkE7Yl9HKB7WjElzwED6+FbbZB2gji8ofgJTGPqKm6VRCNT3OGCeEw==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "eslint-rule-docs": "^1.1.5", + "log-symbols": "^4.0.0", + "plur": "^4.0.0", + "string-width": "^4.2.0", + "supports-hyperlinks": "^2.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-import-resolver-webpack": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz", + "integrity": "sha512-hZWGcmjaJZK/WSCYGI/y4+FMGQZT+cwW/1E/P4rDwFj2PbanlQHISViw4ccDJ+2wxAqjgwBfxwy3seABbVKDEw==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.9", + "enhanced-resolve": "^0.9.1", + "find-root": "^1.1.0", + "has": "^1.0.3", + "interpret": "^1.2.0", + "lodash": "^4.17.15", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.13.1", + "semver": "^5.7.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-array-func": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.7.tgz", + "integrity": "sha512-fB5TBICjHSTGToNTbCCgR8zsngpUkoCM31EMh/M/NEAyNg90i5rUuG0dnNNBML2n0BzM0nBE3sPvo2SEWf6jlA==", + "dev": true + }, + "eslint-plugin-ava": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-11.0.0.tgz", + "integrity": "sha512-UMGedfl/gIKx1tzjGtAsTSJgowyAEZU2VWmpoWXYcuuV4B2H4Cu90yuMgMPEVt1mQlIZ21L7YM2CSpHUFJo/LQ==", + "dev": true, + "requires": { + "deep-strict-equal": "^0.2.0", + "enhance-visitors": "^1.0.0", + "eslint-utils": "^2.1.0", + "espree": "^7.2.0", + "espurify": "^2.0.1", + "import-modules": "^2.0.0", + "micro-spelling-correcter": "^1.1.1", + "pkg-dir": "^4.2.0", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "eslint-plugin-compat": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz", + "integrity": "sha512-lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==", + "dev": true, + "requires": { + "@mdn/browser-compat-data": "^2.0.7", + "ast-metadata-inferer": "^0.4.0", + "browserslist": "^4.12.2", + "caniuse-lite": "^1.0.30001166", + "core-js": "^3.6.5", + "find-up": "^4.1.0", + "lodash.memoize": "4.1.2", + "semver": "7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "eslint-plugin-es": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", + "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", + "dev": true, + "requires": { + "eslint-utils": "^1.4.2", + "regexpp": "^3.0.0" + }, + "dependencies": { + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + } + } + }, + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + } + }, + "eslint-plugin-eslint-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz", + "integrity": "sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg==", + "dev": true + }, + "eslint-plugin-html": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.1.1.tgz", + "integrity": "sha512-JSe3ZDb7feKMnQM27XWGeoIjvP4oWQMJD9GZ6wW67J7/plVL87NK72RBwlvfc3tTZiYUchHhxAwtgEd1GdofDA==", + "dev": true, + "requires": { + "htmlparser2": "^5.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-jsdoc": { + "version": "31.0.8", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.0.8.tgz", + "integrity": "sha512-tB/+QfKXbV1CUqIwpRdZACt7dv1xDjqEjoJpc07EGqLgydJokT43fsZWPfj2mPbiMXYhZQiJXaKhk1x8lgUDQg==", + "dev": true, + "requires": { + "comment-parser": "1.1.1", + "debug": "^4.3.1", + "jsdoctypeparser": "^9.0.0", + "lodash": "^4.17.20", + "regextras": "^0.7.1", + "semver": "^7.3.4", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-plugin-markdown": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz", + "integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "remark-parse": "^5.0.0", + "unified": "^6.1.2" + } + }, + "eslint-plugin-no-unsanitized": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.4.tgz", + "integrity": "sha512-WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==", + "dev": true + }, + "eslint-plugin-no-use-extend-native": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz", + "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==", + "dev": true, + "requires": { + "is-get-set-prop": "^1.0.0", + "is-js-type": "^2.0.0", + "is-obj-prop": "^1.0.0", + "is-proto-prop": "^2.0.0" + } + }, + "eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "requires": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + } + } + }, + "eslint-plugin-prettier": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", + "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-sonarjs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz", + "integrity": "sha512-XW5MnzlRjhXpIdbULC/qAdJYHWw3rRLws/DyawdlPU/IdVr9AmRK1r2LaCvabwKOAW2XYYSo3kDX58E4MrB7PQ==", + "dev": true + }, + "eslint-plugin-standard": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", + "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", + "dev": true + }, + "eslint-plugin-unicorn": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-26.0.1.tgz", + "integrity": "sha512-SWgF9sIVY74zqkkSN2dclSCqRfocWSUGD0haC0NX2oRfmdp9p8dQvJYkYSQePaCyssPUE/pqpsIEEZNTh8crUA==", + "dev": true, + "requires": { + "ci-info": "^2.0.0", + "clean-regexp": "^1.0.0", + "eslint-ast-utils": "^1.1.0", + "eslint-template-visitor": "^2.2.2", + "eslint-utils": "^2.1.0", + "import-modules": "^2.1.0", + "lodash": "^4.17.20", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.21", + "reserved-words": "^0.1.2", + "safe-regex": "^2.1.1", + "semver": "^7.3.4" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-plugin-vue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.0.2.tgz", + "integrity": "sha512-LF0AeuCjzTe+enkvvtvKClG3iYZwMKE3M6yEUZruUHNolLwqGqbEULzvMmojr+8KlMl//Ya1k7dKVt4HFASKfw==", + "dev": true, + "requires": { + "vue-eslint-parser": "^6.0.5" + }, + "dependencies": { + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "vue-eslint-parser": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-6.0.5.tgz", + "integrity": "sha512-Bvjlx7rH1Ulvus56KHeLXOjEi3JMOYTa1GAqZr9lBQhd8weK8mV7U7V2l85yokBZEWHJQjLn6X3nosY8TzkOKg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.0", + "esquery": "^1.0.1", + "lodash": "^4.17.11" + } + } + } + }, + "eslint-rule-docs": { + "version": "1.1.219", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.219.tgz", + "integrity": "sha512-MeihPfW6NSZkm9ia0OpqoZm0r8gU6xJoa+G1PqUCGGZMcJQpFeNTy1ItuNIrtZFsR6n0mVqYR4j55Rd3HxIb+Q==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-template-visitor": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.2.tgz", + "integrity": "sha512-SkcLjzKw3JjKTWHacRDeLBa2gxb600zbCKTkXj/V97QnZ9yxkknoPL8vc8PFueqbFXP7mYNTQzjCjcMpTRdRaA==", + "dev": true, + "requires": { + "babel-eslint": "^10.1.0", + "eslint-visitor-keys": "^2.0.0", + "esquery": "^1.3.1", + "multimap": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "espurify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.0.1.tgz", + "integrity": "sha512-7w/dUrReI/QbJFHRwfomTlkQOXaB1NuCrBRn5Y26HXn5gvh18/19AgLbayVrNxXQfkckvgrJloWyvZDuJ7dhEA==", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-set-props": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz", + "integrity": "sha1-mYR1wXhEVobQsyJG2l3428++jqM=", + "dev": true + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "requires": { + "ini": "1.3.7" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-modules": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", + "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "irregular-plurals": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz", + "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-error": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", + "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-get-set-prop": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz", + "integrity": "sha1-JzGHfk14pqae3M5rudaLB3nnYxI=", + "dev": true, + "requires": { + "get-set-props": "^0.1.0", + "lowercase-keys": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + } + }, + "is-js-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz", + "integrity": "sha1-c2FwBtZZtOtHKbunR9KHgt8PfiI=", + "dev": true, + "requires": { + "js-types": "^1.0.0" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-obj-prop": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", + "integrity": "sha1-s03nnEULjXxzqyzfZ9yHWtuF+A4=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0", + "obj-props": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-proto-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz", + "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0", + "proto-props": "^2.0.0" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz", + "integrity": "sha1-0kLmSU7Vcq08koCfyL7X92h8vwM=", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdoctypeparser": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", + "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-test-suite": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/json-schema-test-suite/-/json-schema-test-suite-0.0.10.tgz", + "integrity": "sha1-qTYEqsPPQIQk1VNgi8OgF/0JAbw=", + "dev": true, + "requires": { + "lodash": "^3.9.3" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "line-column-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-2.0.0.tgz", + "integrity": "sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==", + "dev": true, + "requires": { + "type-fest": "^0.4.1" + }, + "dependencies": { + "type-fest": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", + "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "dev": true + } + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, + "lodash.zip": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", + "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", + "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.6", + "resolve": "^1.17.0", + "semver": "^7.3.2", + "validate-npm-package-license": "^3.0.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micro-spelling-correcter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz", + "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multimap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", + "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.70", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", + "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "obj-props": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.3.0.tgz", + "integrity": "sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.1.tgz", + "integrity": "sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "open-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-3.0.0.tgz", + "integrity": "sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==", + "dev": true, + "requires": { + "env-editor": "^0.4.1", + "execa": "^5.0.0", + "line-column-path": "^2.0.0", + "open": "^7.3.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "plur": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", + "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", + "dev": true, + "requires": { + "irregular-plurals": "^3.2.0" + } + }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proto-props": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", + "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + } + } + }, + "regexp-tree": { + "version": "0.1.22", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.22.tgz", + "integrity": "sha512-ExKDwSwgv6tAMeaq8RTBQFMHdpnDMx0O07mu6xaLIhC5EDQTQlNlH42ec6uvPNlTAPC3stNVGQcy0WQtXypQKw==", + "dev": true + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regextras": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.38.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.0.tgz", + "integrity": "sha512-ay9zDiNitZK/LNE/EM2+v5CZ7drkB2xyDljvb1fQJCGnq43ZWRkhxN145oV8GmoW1YNi4sA/1Jdkr2LfawJoXw==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "requires": { + "regexp-tree": "~0.1.1" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "table": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "dev": true, + "requires": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "terser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "trim-newlines": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", + "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "dev": true + }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "dev": true + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz", + "integrity": "sha512-GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dev": true, + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, + "unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", + "dev": true + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dev": true, + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dev": true, + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "update-notifier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.0.1.tgz", + "integrity": "sha512-BuVpRdlwxeIOvmc32AGYvO1KVdPlsmqSh8KDDBxS6kDE5VR7R8OMP1d8MdhaVBvxl4H3551k9akXr0Y1iIB2Wg==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.2", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "dev": true, + "requires": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", + "dev": true + }, + "vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "dev": true, + "requires": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue-eslint-parser": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz", + "integrity": "sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-scope": "^5.0.0", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.2.1", + "esquery": "^1.0.1", + "lodash": "^4.17.15" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", + "dev": true + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xo": { + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/xo/-/xo-0.37.1.tgz", + "integrity": "sha512-UsD1QkITsojNJmiYaDg20GOuTEuHAYtys6Cz4JVWbral6hbCb+WU8ktt9xCTDrsr2rNPjoxp1oonoz9HkPYGnQ==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "^4.11.1", + "@typescript-eslint/parser": "^4.11.1", + "arrify": "^2.0.1", + "cosmiconfig": "^7.0.0", + "debug": "^4.3.1", + "eslint": "^7.17.0", + "eslint-config-prettier": "^7.1.0", + "eslint-config-xo": "^0.34.0", + "eslint-config-xo-typescript": "^0.37.0", + "eslint-formatter-pretty": "^4.0.0", + "eslint-import-resolver-webpack": "^0.13.0", + "eslint-plugin-ava": "^11.0.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-no-use-extend-native": "^0.5.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.3.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-unicorn": "^25.0.1", + "find-cache-dir": "^3.3.1", + "find-up": "^5.0.0", + "fs-extra": "^9.0.1", + "get-stdin": "^8.0.0", + "globby": "^9.2.0", + "has-flag": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-path-inside": "^3.0.2", + "json-stable-stringify-without-jsonify": "^1.0.1", + "json5": "^2.1.3", + "lodash": "^4.17.20", + "meow": "^8.1.0", + "micromatch": "^4.0.2", + "open-editor": "^3.0.0", + "p-reduce": "^2.1.0", + "path-exists": "^4.0.0", + "prettier": "^2.2.1", + "resolve-cwd": "^3.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.4", + "slash": "^3.0.0", + "to-absolute-glob": "^2.0.2", + "typescript": "^4.1.3", + "update-notifier": "^5.0.1" + }, + "dependencies": { + "@typescript-eslint/eslint-plugin": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", + "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", + "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", + "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", + "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + } + } + }, + "eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-unicorn": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-25.0.1.tgz", + "integrity": "sha512-MEyEWoyou/qhJH6rEER9YHACtCsQT+eewc6Fdxbi2eiTvsGrBR8JZMA6qaeof3oMQeRxOpaERoBKzU7R5c4A/w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0", + "clean-regexp": "^1.0.0", + "eslint-ast-utils": "^1.1.0", + "eslint-template-visitor": "^2.2.1", + "eslint-utils": "^2.1.0", + "import-modules": "^2.0.0", + "lodash": "^4.17.20", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.21", + "reserved-words": "^0.1.2", + "safe-regex": "^2.1.1", + "semver": "^7.3.4" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 5934096..3763027 100644 --- a/package.json +++ b/package.json @@ -2,18 +2,30 @@ "name": "json-pull-parser", "version": "1.0.2", "author": "John Susi (https://github.com/johnsusi/)", + "contributors": [ + "Brett Zamir" + ], "description": "JSON pull parser", "license": "MIT", "main": "index.js", + "type": "module", "scripts": { - "build": "webpack", + "lint": "eslint --ext=js,md,html .", + "build": "rollup -c", "test": "node ./test", - "preversion": "npm test", + "preversion": "npm run lint && npm test", "version": "npm run build && git add -A dist", "postversion": "git push && git push --tags && npm publish" }, + "repository": "https://github.com/johnsusi/json-pull-parser", + "bugs": "https://github.com/johnsusi/json-pull-parser/issues", + "homepage": "https://github.com/johnsusi/json-pull-parser#readme", + "engines": { + "node": ">=12" + }, "keywords": [ - "json" + "json", + "iterator" ], "files": [ "dist/json-pull-parser.js", @@ -22,11 +34,33 @@ "src/builder.js", "src/parser.js" ], + "dependencies": {}, "devDependencies": { + "@mysticatea/eslint-plugin": "^13.0.0", + "babel-eslint": "^10.1.0", + "eslint": "^7.18.0", + "eslint-config-ash-nazg": "^24.0.0", + "eslint-config-standard": "^16.0.2", + "eslint-plugin-array-func": "^3.1.7", + "eslint-plugin-compat": "^3.9.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^6.1.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsdoc": "^31.0.8", + "eslint-plugin-markdown": "^1.0.2", + "eslint-plugin-no-unsanitized": "^3.1.4", + "eslint-plugin-no-use-extend-native": "^0.5.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-sonarjs": "^0.5.0", + "eslint-plugin-standard": "^4.1.0", + "eslint-plugin-unicorn": "^26.0.1", "glob": "^7.1.1", "json-schema-test-suite": "^0.0.10", - "webpack": "beta", - "xo": "^0.17.1" + "rollup": "^2.38.0", + "rollup-plugin-terser": "^7.0.2", + "typescript": "^4.1.3", + "xo": "^0.37.1" }, "xo": { "space": true diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..c81f134 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,15 @@ +import {terser} from 'rollup-plugin-terser'; + +// eslint-disable-next-line import/no-anonymous-default-export -- Rollup config +export default [{ + input: 'index.js', + output: { + file: 'dist/json-pull-parser.js', + format: 'umd', + sourcemap: true, + name: 'JSONPullParser' + }, + plugins: [ + terser() + ] +}]; diff --git a/src/CodePointIterator.js b/src/CodePointIterator.js new file mode 100644 index 0000000..c9107bb --- /dev/null +++ b/src/CodePointIterator.js @@ -0,0 +1,41 @@ +/* eslint-disable no-empty-function, class-methods-use-this -- Not complete */ +/** + * @ignore + */ +class CodePointIterator { + /** + * @param {string} source + * @returns {void} + */ + constructor (source) { + this.s = source; + this.f = 0; + this.l = Math.trunc(source.length); + this.cc = 0; + } + + /** + * @returns {boolean} + */ + next () { + if (this.f >= this.l) return false; + this.cc = this.s.charCodeAt(this.f++); + return true; + } + + /** + * @returns {Integer} + */ + code () { + return this.cc; + } + + /** + * @param {Integer} code + * @returns {void} + */ + expect (code) { + } +} + +export default CodePointIterator; diff --git a/src/builder.js b/src/builder.js index 03c7a38..16a5179 100644 --- a/src/builder.js +++ b/src/builder.js @@ -1,46 +1,68 @@ -function ObjectBuilder() { - this.handler = { - ref: this, - add: function (value) { this.ref.value = value; return value; }, - }; -} - -ObjectBuilder.prototype.startObject = function () { - this.handler = { - old: this.handler, - key: null, - ref: this.handler.add({}), - add: function (value) { - if (this.key === null) this.key = value; - else { this.ref[this.key] = value; this.key = null; } - return value; - }, - }; -} +/** + * + */ +class ObjectBuilder { + /** + * + */ + constructor () { + this.handler = { + ref: this, + add (value) { this.ref.value = value; return value; } + }; + } -ObjectBuilder.prototype.endObject = function () { - this.handler = this.handler.old; -} + /** + * @returns {void} + */ + startObject () { + this.handler = { + old: this.handler, + key: null, + ref: this.handler.add({}), + add (value) { + if (this.key === null) this.key = value; + else { this.ref[this.key] = value; this.key = null; } + return value; + } + }; + } -ObjectBuilder.prototype.startArray = function () { - this.handler = { - old: this.handler, - ref: this.handler.add([]), - add: function (value) { - this.ref.push(value); - return value; - }, - }; -} + /** + * @returns {void} + */ + endObject () { + this.handler = this.handler.old; + } -ObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject; + /** + * @returns {void} + */ + startArray () { + this.handler = { + old: this.handler, + ref: this.handler.add([]), + add (value) { + this.ref.push(value); + return value; + } + }; + } -ObjectBuilder.prototype.add = function (value) { - this.handler.add(value); -} + /** + * @param {JSONValueOrError} value + * @returns {void} + */ + add (value) { + this.handler.add(value); + } -ObjectBuilder.prototype.handle = function (token) { - switch (token.type) { + /** + * @param {Token|TokenEnd} token + * @returns {void} + */ + handle (token) { + switch (token.type) { case '{': this.startObject(); break; @@ -62,7 +84,12 @@ ObjectBuilder.prototype.handle = function (token) { break; case 'error': throw new SyntaxError(token.value.message); + default: + throw new TypeError('Unexpected token type'); + } } } -module.exports = ObjectBuilder; \ No newline at end of file +ObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject; + +export default ObjectBuilder; diff --git a/src/parser.js b/src/parser.js index e0d73f9..148d040 100644 --- a/src/parser.js +++ b/src/parser.js @@ -1,131 +1,185 @@ -'use strict'; - -var ObjectBuilder = require('./builder'); - -var VALUE = 1; -var KEY = 2; -var COMMA = 4; -var COLON = 8; -var CLOSE = 16; -var OBJECT = 32; -var ARRAY = 64; - -function JSONPullParser(text) -{ - this.text = text; -} +import ObjectBuilder from './builder.js'; + +/** + * @typedef {PlainObject} State + * @property {string} s Text + * @property {boolean} [d=false] Done + * @property {Integer} [f=0] Position + * @property {Integer} [l] Defaults to text length + * @property {Integer} [e=VALUE] Expect + * @property {Integer} [c=0] Column + * @property {Integer} [r=1] Row + * @property {Integer[]} [x=[]] +*/ + +/** +* @typedef {string} Type +*/ + +/** + * @typedef {PlainObject} TokenPlain + * @property {Type} type + * @property {Integer} first + * @property {Integer} last +*/ + +/** + * @typedef {TokenPlain} TokenEnd + */ + +/** + * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError + */ + +/** + * @typedef {TokenPlain} Token + * @property {JSONValueOrError} value + */ + +/** + * @typedef {Token} TokenWithSource + * @property {string} source + */ + +const VALUE = 1; +const KEY = 2; +const COMMA = 4; +const COLON = 8; +const CLOSE = 16; +const OBJECT = 32; +const ARRAY = 64; + +/** + * + */ +class JSONPullParser { + /** + * @param {string} text + * @returns {void} + */ + constructor (text) { + this.text = text; + } -JSONPullParser.prototype[Symbol.iterator] = function() -{ - return TokenIterator(this.text); -} + /** + * @returns {Iterator} + */ + [Symbol.iterator] () { + return tokenIterator(this.text); + } -JSONPullParser.prototype.tokens = function() -{ - return TokenIterator(this.text); + /** + * @returns {Iterator} + */ + tokens () { + return tokenIterator(this.text); + } } +/* if (typeof Symbol === 'object' && Symbol.iterator) { JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens; } +*/ JSONPullParser.StartDocument = '<'; -JSONPullParser.EndDocument = '>'; -JSONPullParser.StartObject = '{'; -JSONPullParser.EndObject = '}'; -JSONPullParser.StartArray = '['; -JSONPullParser.EndArray = ']'; -JSONPullParser.String = 'string'; -JSONPullParser.Number = 'number'; -JSONPullParser.TrueLiteral = 'true'; -JSONPullParser.FalseLiteral = 'false'; -JSONPullParser.NullLiteral = 'null'; -JSONPullParser.Whitespace = 'ws'; -JSONPullParser.Error = 'error'; - -function CodePointIterator(source) -{ - this.s = source; - this.f = 0; - this.l = source.length | 0; - this.cc = 0; -} - -CodePointIterator.prototype.next = function () -{ - if (this.f >= this.l) return false; - this.cc = source.charCodeAt(this.f++) | 0; - return true; -} - -CodePointIterator.prototype.code = function () -{ - return this.cc; -} - -CodePointIterator.prototype.expect = function (code) -{ -} +JSONPullParser.EndDocument = '>'; +JSONPullParser.StartObject = '{'; +JSONPullParser.EndObject = '}'; +JSONPullParser.StartArray = '['; +JSONPullParser.EndArray = ']'; +JSONPullParser.String = 'string'; +JSONPullParser.Number = 'number'; +JSONPullParser.TrueLiteral = 'true'; +JSONPullParser.FalseLiteral = 'false'; +JSONPullParser.NullLiteral = 'null'; +JSONPullParser.Whitespace = 'ws'; +JSONPullParser.Error = 'error'; JSONPullParser.ObjectBuilder = ObjectBuilder; -JSONPullParser.parse = function(text, reviever) -{ - if (typeof text !== 'string') text = '' + text; - var builder = new ObjectBuilder(); - var it = TokenIterator(text); - for (var step = it.next();!step.done; step = it.next()) { - var token = step.value; +/** +* @callback ReviverFunction +* @returns {JSON} +*/ + +/** +* @param {string} text +* @param {ReviverFunction} reviver +*/ +JSONPullParser.parse = function (text, reviver) { + if (typeof text !== 'string') text = String(text); + const builder = new ObjectBuilder(); + const it = tokenIterator(text); + for (let step = it.next(); !step.done; step = it.next()) { + const token = step.value; // console.log("token: " + token.type); builder.handle(token); } - if (typeof builder.value === 'undefined') throw new SyntaxError('Unexpected end of JSON input'); + if (typeof builder.value === 'undefined') { + throw new SyntaxError('Unexpected end of JSON input'); + } return builder.value; -} - -function TokenIterator(text) -{ - var state = { - d: false, // done +}; + +/** + * @param {string} text + * @returns {void} + */ +function * tokenIterator (text) { + const state = { s: text, - f: 0, // position + d: false, // done + f: 0, // position l: text.length, // length - e: VALUE, // expect - c: 0, // column - r: 1, // row + e: VALUE, // expect + c: 0, // column + r: 1, // row x: [] }; - return { - next: function () { - // console.log(`next: ${state.f}, ${state.l}, ${text.charCodeAt(state.f).toString(16)}`) - if (state.f === state.l) { - return (state.e || state.x.length > 0) - ? { done: false, value: ParserError(state.s, state.l, state.l, 'Unexpected end of JSON input') } - : { done: true }; + + while (true) { + // console.log( + // `next: ${state.f}, ${state.l}, ` + + // `${text.charCodeAt(state.f).toString(16)}` + // ); + if (state.f === state.l) { + if (!state.e && !state.x.length) { + return; } - var token = parseValue(state); - state.f = token.last; - return { value: token, done: false }; + yield parserError( + state.s, state.l, state.l, 'Unexpected end of JSON input' + ); } - }; + const token = parseValue(state); + state.f = token.last; + + yield token; + } } -function ParserError(s, f, l, m, r) -{ - r = r || 1; - var c = f; - var cc = s.charCodeAt(c); - while (cc !== 0x0a && c > 0) { +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @param {string} m Message + * @param {Integer} r + * @returns {Token} + */ +function parserError (s, f, l, m, r = 1) { + let c = f; + let cc = s.charCodeAt(c); + while (cc !== 0x0A && c > 0) { cc = s.charCodeAt(--c); } - if (cc === 0x0a) ++c; - var str0 = 'undefined:' + r; - var str1 = s.substring(c, f+1); - var str2 = ''; - for (var i = c;i < f;++i) str2 += ' '; + if (cc === 0x0A) ++c; + const str0 = 'undefined:' + r; + const str1 = s.slice(c, f + 1); + let str2 = ''; + for (let i = c; i < f; ++i) str2 += ' '; str2 += '^'; - var err = new SyntaxError(str0 + "\n" + str1 + "\n" + str2 + "\n\n" + m); + const err = new SyntaxError(str0 + '\n' + str1 + '\n' + str2 + '\n\n' + m); return { type: JSONPullParser.Error, value: err, @@ -134,237 +188,352 @@ function ParserError(s, f, l, m, r) }; } -function parseObjectStart(s, f, l) -{ +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {Token} + */ +function parseObjectStart (s, f, l) { return { type: JSONPullParser.StartObject, value: '{', first: f, - last: f+1 + last: f + 1 }; } -function parseObjectEnd(s, f, l) -{ +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {Token} + */ +function parseObjectEnd (s, f, l) { return { type: JSONPullParser.EndObject, value: '}', first: f, - last: f+1 + last: f + 1 }; } -function parseArrayStart(s, f, l) -{ +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {Token} + */ +function parseArrayStart (s, f, l) { return { type: JSONPullParser.StartArray, value: '[', first: f, - last: f+1 + last: f + 1 }; } -function parseArrayEnd(s, f, l) -{ +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {Token} + */ +function parseArrayEnd (s, f, l) { return { type: JSONPullParser.EndArray, value: ']', first: f, - last: f+1 + last: f + 1 }; } -function parseValue(state) -{ - var s = state.s; - var f = state.f; - var l = state.l; +/** + * @param {State} state + * @returns {Token|TokenEnd} + */ +function parseValue (state) { + const {s, l} = state; + let {f} = state; while (f < l) { state.c++; switch (s.charCodeAt(f)) { - case 0x0a: // LF - state.c = 0; - state.r++; - case 0x09: // TAB - case 0x0d: // CR - case 0x20: // WS - ++f; continue; - case 0x7b: // { - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token { in JSON at position ' + f, state.r); - state.e = KEY | CLOSE; - state.x.push(OBJECT); - return parseObjectStart(s, f, l); - case 0x7d: // } - if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) return ParserError(s, f, l, 'Unexpected token } in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseObjectEnd(s, f, l); - case 0x5b: // [ - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r); - state.e = VALUE | CLOSE; - state.x.push(ARRAY); - return parseArrayStart(s, f, l); - case 0x5d: // ] - if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) return ParserError(s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseArrayEnd(s, f, l); - case 0x3a: // : - if (!(state.e & COLON)) return ParserError(s, f, l, 'Unexpected token : in JSON at position ' + f, state.r); + case 0x0A: // LF + state.c = 0; + state.r++; + // Fallthrough + case 0x09: // TAB + case 0x0D: // CR + case 0x20: // WS + ++f; continue; + case 0x7B: // { + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected token { in JSON at position ' + f, state.r + ); + } + state.e = KEY | CLOSE; + state.x.push(OBJECT); + return parseObjectStart(s, f, l); + case 0x7D: // } + if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) { + return parserError( + s, f, l, 'Unexpected token } in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseObjectEnd(s, f, l); + case 0x5B: // [ + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r + ); + } + state.e = VALUE | CLOSE; + state.x.push(ARRAY); + return parseArrayStart(s, f, l); + case 0x5D: // ] + if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) { + return parserError( + s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseArrayEnd(s, f, l); + case 0x3A: // : + if (!(state.e & COLON)) { + return parserError( + s, f, l, 'Unexpected token : in JSON at position ' + f, state.r + ); + } + state.e = VALUE; + ++f; continue; + case 0x2C: // , + if (!(state.e & COMMA)) { + return parserError( + s, f, l, 'Unexpected token , in JSON at position ' + f, state.r + ); + } + if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) { + state.e = KEY; + } else { state.e = VALUE; - ++f; continue; - case 0x2c: // , - if (!(state.e & COMMA)) return ParserError(s, f, l, 'Unexpected token , in JSON at position ' + f, state.r); - if (state.x.length > 0 && state.x[state.x.length-1] === OBJECT) state.e = KEY; - else state.e = VALUE; - ++f; continue; - case 0x2d: // - - case 0x30: // 0 - case 0x31: // 1 - case 0x32: // 2 - case 0x33: // 3 - case 0x34: // 4 - case 0x35: // 5 - case 0x36: // 6 - case 0x37: // 7 - case 0x38: // 8 - case 0x39: // 9 - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected number in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseNumber(s, f, l); - case 0x22: - if (state.e & KEY) { - state.e = COLON; - return parseString(s, f, l); - } - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected string in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + } + ++f; continue; + case 0x2D: // - + case 0x30: // 0 + case 0x31: // 1 + case 0x32: // 2 + case 0x33: // 3 + case 0x34: // 4 + case 0x35: // 5 + case 0x36: // 6 + case 0x37: // 7 + case 0x38: // 8 + case 0x39: // 9 + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected number in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseNumber(s, f, l); + case 0x22: + if (state.e & KEY) { + state.e = COLON; return parseString(s, f, l); - case 0x74: // t - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token t in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseTrue(s, f, l); - case 0x66: // f - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token f in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseFalse(s, f, l); - case 0x6e: // n - if (!(state.e & VALUE)) return ParserError(s, f, l, 'Unexpected token n in JSON at position ' + f, state.r); - state.e = state.x.length > 0 ? COMMA | CLOSE : 0; - return parseNull(s, f, l); - default: return ParserError(s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r); + } + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected string in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseString(s, f, l); + case 0x74: // t + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected token t in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseTrue(s, f, l); + case 0x66: // f + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected token f in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseFalse(s, f, l); + case 0x6E: // n + if (!(state.e & VALUE)) { + return parserError( + s, f, l, 'Unexpected token n in JSON at position ' + f, state.r + ); + } + state.e = state.x.length > 0 ? COMMA | CLOSE : 0; + return parseNull(s, f, l); + default: return parserError( + s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r + ); } } return { type: JSONPullParser.EndDocument, first: l, - last: l, + last: l }; } -function parseNumber(s, f, l) -{ - var c = f; +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {Token} + */ +function parseNumber (s, f, l) { + let c = f; - var cc = s.charCodeAt(c++); + let cc = s.charCodeAt(c++); - if (cc === 0x2d /* - */) cc = s.charCodeAt(c++); + if (cc === 0x2D /* - */) cc = s.charCodeAt(c++); if (cc !== 0x30 /* 0 */) { while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) { cc = s.charCodeAt(c++); } - } - else { + } else { cc = s.charCodeAt(c++); } - if (cc === 0x2e /* . */) { + if (cc === 0x2E /* . */) { cc = s.charCodeAt(c++); while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++); } if (cc === 0x65 /* e */|| cc === 0x45 /* E */) { cc = s.charCodeAt(c++); - if (cc === 0x2b /* + */|| cc === 0x2d /* - */) cc = s.charCodeAt(c++); - if (cc < 0x30 || cc > 0x39) return ParserError(s, c-1, l, 'Unexpected token ' + s[c-1] + ' in JSON at position ' + (c-1)); - if (c >= l) return ParserError(s, f, l, 'Unexpected end of JSON input'); + if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++); + if (cc < 0x30 || cc > 0x39) { + return parserError( + s, c - 1, l, + 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1) + ); + } + if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input'); while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++); - } return { type: JSONPullParser.Number, - value: parseFloat(s.substring(f, c-1)), // parseFloat seems to be faster than JSON.parse + value: Number.parseFloat( + s.slice(f, c - 1) + ), // parseFloat seems to be faster than JSON.parse first: f, - last: c-1 + last: c - 1 }; - } // ECMA-404 section 9 -function parseString(s, f, l) -{ - var c = f+1; +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {TokenWithSource} + */ +function parseString (s, f, l) { + let c = f + 1; while (c < l) { - var cc = s.charCodeAt(c++); + let cc = s.charCodeAt(c++); if (cc === 0x22 /* " */) break; - else if (cc === 0x5c /* \ */) { + else if (cc === 0x5C /* \ */) { cc = s.charCodeAt(c++); if (cc === 0x75 /* u */) { c += 4; - if (c > l) return ParserError(s, l, l, 'Unexpected end of JSON input'); + if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input'); } } } // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`); return { type: JSONPullParser.String, - value: JSON.parse(s.substring(f, c)), + value: JSON.parse(s.slice(f, c)), source: s, first: f, last: c }; } -function match(s, f, l, ccs, success) -{ - if (f + ccs.length > l) return ParserError(s, l, l, 'Unexpected end of JSON input'); - for (var i = 0;i < ccs.length; ++i) { - var cc = s.charCodeAt(f++); - if (cc !== ccs[i]) return ParserError(s, f, l, 'Unexpected token ' + s[f-1] + ' in JSON at position ' + (f-1)); +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @param {Integer[]} ccs + * @param {TokenWithSource} success + * @returns {token} + */ +function match (s, f, l, ccs, success) { + if (f + ccs.length > l) { + return parserError(s, l, l, 'Unexpected end of JSON input'); + } + for (const cc_ of ccs) { + const cc = s.charCodeAt(f++); + if (cc !== cc_) { + return parserError( + s, f, l, + 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1) + ); + } } return success; } -function parseTrue(s, f, l) -{ +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {TokenWithSource} + */ +function parseTrue (s, f, l) { return match(s, f, l, [0x74, 0x72, 0x75, 0x65], { type: JSONPullParser.TrueLiteral, value: true, source: s, first: f, - last: f+4 + last: f + 4 }); } -function parseFalse(s, f, l) -{ - return match(s, f, l, [0x66, 0x61, 0x6c, 0x73, 0x65], { +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {TokenWithSource} + */ +function parseFalse (s, f, l) { + return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], { type: JSONPullParser.FalseLiteral, value: false, source: s, first: f, - last: f+5 + last: f + 5 }); } -function parseNull(s, f, l) -{ - return match(s, f, l, [0x6e, 0x75, 0x6c, 0x6c], { +/** + * @param {string} s + * @param {Integer} f + * @param {Integer} l + * @returns {TokenWithSource} + */ +function parseNull (s, f, l) { + return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], { type: JSONPullParser.NullLiteral, value: null, source: s, first: f, - last: f+4 + last: f + 4 }); } -module.exports = JSONPullParser; +export default JSONPullParser; diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 039d297..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,16 +0,0 @@ -const webpack = require('webpack'); - -module.exports = { - entry: './index.js', - output: { - filename: 'dist/json-pull-parser.js', - library: 'JSONPullParser', - libraryTarget: 'umd', - }, - devtool: "source-map", - plugins: [ - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true - }), - ], -}; \ No newline at end of file From f7884bee31a644da51fdee911a3062c3ab924b92 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 19:05:15 +0800 Subject: [PATCH 02/16] - Linting: Apply fixes to test folder - npm: Update devDeps. --- .eslintignore | 1 + .eslintrc.cjs | 20 ++++++-- docs/demo.html | 119 +++++++++++++++++++++++----------------------- docs/index.html | 42 +++++++++------- package-lock.json | 21 ++++---- package.json | 8 ++-- test/index.js | 62 +++++++++++------------- 7 files changed, 144 insertions(+), 129 deletions(-) diff --git a/.eslintignore b/.eslintignore index de4d1f0..5536c95 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ dist node_modules +test/js diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 240d18d..6821c25 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -1,13 +1,14 @@ 'use strict'; module.exports = { + extends: [ + 'ash-nazg/sauron-node' + ], + parser: 'babel-eslint', parserOptions: { ecmaVersion: 2020, sourceType: 'module' }, - extends: [ - 'ash-nazg/sauron' - ], env: { browser: false, es6: true @@ -32,6 +33,19 @@ module.exports = { rules: { 'import/no-commonjs': 0 } + }, { + files: 'test/index.js', + parser: 'babel-eslint', + parserOptions: { + ecmaVersion: 2020, + sourceType: 'module' + }, + rules: { + 'node/no-unsupported-features/es-syntax': ['error', { + ignores: ['dynamicImport', 'modules'] + }], + 'no-console': 0 + } }, { files: ['*.md'], globals: { diff --git a/docs/demo.html b/docs/demo.html index 8db8e1c..da38d68 100644 --- a/docs/demo.html +++ b/docs/demo.html @@ -26,53 +26,55 @@ Please wait, benchmarking! \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 9e75d5b..3625330 100644 --- a/docs/index.html +++ b/docs/index.html @@ -77,18 +77,18 @@

See live demo!

\ No newline at end of file +})(); + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 693eef0..5fc75a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2031,9 +2031,9 @@ } }, "eslint-config-ash-nazg": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-24.0.0.tgz", - "integrity": "sha512-rFT+W5+hJOTpdniArkosikbx89Tp3ATLMAUEUPQeKSnIs9czcdYJM78hMBItSNOPwvQHUBF/oHif4GHHCKd/4Q==", + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-25.0.0.tgz", + "integrity": "sha512-S6eVHgz+D6YUbx+3y+GfbOlyvK2MHTaYyb88w/i381F392aI+Gf7+fm0iq2A0JSMgNVt9kxs2KPJ8CMWm1VjYw==", "dev": true }, "eslint-config-prettier": { @@ -2355,9 +2355,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "31.0.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.0.8.tgz", - "integrity": "sha512-tB/+QfKXbV1CUqIwpRdZACt7dv1xDjqEjoJpc07EGqLgydJokT43fsZWPfj2mPbiMXYhZQiJXaKhk1x8lgUDQg==", + "version": "31.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.2.1.tgz", + "integrity": "sha512-OKgU5ZGTyMumrV9ddJQf3omXTqlMB3/GJfHiSQnskSpznUrC+BPYt5StTmroZaSERa52ZFRK8trJLLsVBpK49w==", "dev": true, "requires": { "comment-parser": "1.1.1", @@ -2478,21 +2478,20 @@ "dev": true }, "eslint-plugin-unicorn": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-26.0.1.tgz", - "integrity": "sha512-SWgF9sIVY74zqkkSN2dclSCqRfocWSUGD0haC0NX2oRfmdp9p8dQvJYkYSQePaCyssPUE/pqpsIEEZNTh8crUA==", + "version": "27.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-27.0.0.tgz", + "integrity": "sha512-uUvlueTa4SpkvLjbkqx08JbB0tY6XxOAa8vlfwbTzITfVNy3go3QzPCus49fO5M/mfooOuraIDVkaqan/pLAHg==", "dev": true, "requires": { "ci-info": "^2.0.0", "clean-regexp": "^1.0.0", - "eslint-ast-utils": "^1.1.0", "eslint-template-visitor": "^2.2.2", "eslint-utils": "^2.1.0", "import-modules": "^2.1.0", "lodash": "^4.17.20", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.21", + "regexp-tree": "^0.1.22", "reserved-words": "^0.1.2", "safe-regex": "^2.1.1", "semver": "^7.3.4" diff --git a/package.json b/package.json index 3763027..7dfc242 100644 --- a/package.json +++ b/package.json @@ -39,14 +39,14 @@ "@mysticatea/eslint-plugin": "^13.0.0", "babel-eslint": "^10.1.0", "eslint": "^7.18.0", - "eslint-config-ash-nazg": "^24.0.0", + "eslint-config-ash-nazg": "^25.1.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-array-func": "^3.1.7", "eslint-plugin-compat": "^3.9.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-html": "^6.1.1", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^31.0.8", + "eslint-plugin-jsdoc": "^31.2.1", "eslint-plugin-markdown": "^1.0.2", "eslint-plugin-no-unsanitized": "^3.1.4", "eslint-plugin-no-use-extend-native": "^0.5.0", @@ -54,8 +54,8 @@ "eslint-plugin-promise": "^4.2.1", "eslint-plugin-sonarjs": "^0.5.0", "eslint-plugin-standard": "^4.1.0", - "eslint-plugin-unicorn": "^26.0.1", - "glob": "^7.1.1", + "eslint-plugin-unicorn": "^27.0.0", + "glob": "^7.1.6", "json-schema-test-suite": "^0.0.10", "rollup": "^2.38.0", "rollup-plugin-terser": "^7.0.2", diff --git a/test/index.js b/test/index.js index ab194a6..d92a3f2 100644 --- a/test/index.js +++ b/test/index.js @@ -1,42 +1,38 @@ const JSONPullParser = require(__dirname + '/..'); const assert = require('assert'); -const fs = require('fs'); -const glob = require('glob').sync; +const fs = require('fs'); +const glob = require('glob').sync; -glob(__dirname + '/**/fail*.json').forEach(file => { +glob(__dirname + '/**/fail*.json').forEach((file) => { console.log(file); - var test = fs.readFileSync(file).toString(); + const test = fs.readFileSync(file).toString(); assert.throws(() => { - JSONPullParser.parse(test) + JSONPullParser.parse(test); }); - }); -glob(__dirname + '/**/pass*.json').forEach(file => { +glob(__dirname + '/**/pass*.json').forEach((file) => { console.log(file); - var test = fs.readFileSync(file).toString(); - - var o1 = JSONPullParser.parse(test); - assert.doesNotThrow( () => { + const test = fs.readFileSync(file).toString(); - var o1 = JSONPullParser.parse(test); - var o2 = JSON.parse(test); + const o1 = JSONPullParser.parse(test); + assert.doesNotThrow(() => { + const o1 = JSONPullParser.parse(test); + const o2 = JSON.parse(test); assert.deepStrictEqual(o1, o2); - }); - }); const util = require('util'); const vm = require('vm'); -glob(__dirname + '/js/**/*.js').forEach(file => { +glob(__dirname + '/js/**/*.js').forEach((file) => { console.log(file); const sandbox = { assert: { - throws(type, block) { + throws (type, block) { try { block(); assert.fail(); @@ -44,13 +40,13 @@ glob(__dirname + '/js/**/*.js').forEach(file => { assert(err instanceof type, `Expected ${type}, got ${err}`); } }, - sameValue(actual, expected, message) { + sameValue (actual, expected, message) { assert.equal(actual, expected, message); } }, - console: console, + console, JSON: JSONPullParser, - SyntaxError: SyntaxError, + SyntaxError }; const source = fs.readFileSync(file).toString(); @@ -58,28 +54,25 @@ glob(__dirname + '/js/**/*.js').forEach(file => { const context = new vm.createContext(sandbox); script.runInContext(context); - }); const testSuite = require('json-schema-test-suite'); const factory = function (schema, options) { return { - validate: function (json) { + validate (json) { try { - var s = JSON.stringify(json); - var s1, s2, e1; + const s = JSON.stringify(json); + let s1, s2, e1; try { s1 = JSON.stringify(JSON.parse(s)); - } - catch (err) { + } catch (err) { e1 = err; } try { s2 = JSON.stringify(JSONPullParser.parse(s)); - } - catch (err) { + } catch (err) { if (!e1) { console.log(json); console.error(err); @@ -87,9 +80,9 @@ const factory = function (schema, options) { } } - if (e1) return { valid: false, errors: [e1.message] }; + if (e1) return {valid: false, errors: [e1.message]}; - return s1 === s2 ? { valid: true } : { valid: false, errors: ['not equal'] }; + return s1 === s2 ? {valid: true} : {valid: false, errors: ['not equal']}; } catch (err) { console.error(err); } @@ -99,20 +92,19 @@ const factory = function (schema, options) { const tests = testSuite.testSync(factory); -glob(__dirname + '/json/benchmark/**.json').forEach(file => { +glob(__dirname + '/json/benchmark/**.json').forEach((file) => { console.log(file); const source = fs.readFileSync(file).toString(); console.time('JSON'); - for (let i = 0;i < 1e2;++i) JSON.parse(source); + for (let i = 0; i < 1e2; ++i) JSON.parse(source); const o1 = JSON.parse(source); console.timeEnd('JSON'); console.time('JSONPullParser'); - for (let i = 0;i < 1e2;++i) JSONPullParser.parse(source); + for (let i = 0; i < 1e2; ++i) JSONPullParser.parse(source); const o2 = JSONPullParser.parse(source); console.timeEnd('JSONPullParser'); assert.deepStrictEqual(o1, o2); assert.equal(JSON.stringify(o1), JSON.stringify(o2)); - -}) \ No newline at end of file +}); From 7739a913197589d48f61b444c1b617129feb849a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:06:23 +0800 Subject: [PATCH 03/16] - npm: Remove xo (using eslint-config-ash-nazg) --- package-lock.json | 4254 ++------------------------------------------- package.json | 6 +- 2 files changed, 137 insertions(+), 4123 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5fc75a1..3b3aeeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -188,16 +188,6 @@ "extend": "3.0.2" } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, "@mysticatea/eslint-plugin": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/@mysticatea/eslint-plugin/-/eslint-plugin-13.0.0.tgz", @@ -241,63 +231,12 @@ } } }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", "dev": true }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -310,18 +249,6 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", - "dev": true - }, "@types/node": { "version": "14.14.22", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", @@ -334,12 +261,6 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, "@typescript-eslint/eslint-plugin": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.1.tgz", @@ -376,22 +297,6 @@ "eslint-visitor-keys": "^1.1.0" } }, - "@typescript-eslint/scope-manager": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", - "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/visitor-keys": "4.14.0" - } - }, - "@typescript-eslint/types": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", - "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", - "dev": true - }, "@typescript-eslint/typescript-estree": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz", @@ -406,24 +311,6 @@ "tsutils": "^3.17.1" } }, - "@typescript-eslint/visitor-keys": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", - "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } - } - }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", @@ -448,78 +335,12 @@ "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -544,30 +365,6 @@ "sprintf-js": "~1.0.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true - }, "array-includes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", @@ -581,24 +378,6 @@ "is-string": "^1.0.5" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, "array.prototype.flat": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", @@ -610,65 +389,6 @@ "es-abstract": "^1.18.0-next.1" } }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, "ast-metadata-inferer": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz", @@ -681,18 +401,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, "babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -727,87 +435,65 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "caniuse-lite": { + "version": "1.0.30001178", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz", + "integrity": "sha512-VtdZLC0vsXykKni8Uztx45xynytOi71Ufx9T8kHptSw9AL4dpqailUJJHavttuzUe1KYuBYtChiWv+BAb7mPmQ==", "dev": true }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { "ansi-styles": { @@ -819,16 +505,6 @@ "color-convert": "^2.0.1" } }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -861,372 +537,29 @@ } } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - } - }, - "buf-compare": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", - "integrity": "sha1-/vKNqLgROgoNtEMLC2Rntpcws0o=", - "dev": true - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "caniuse-lite": { - "version": "1.0.30001178", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz", - "integrity": "sha512-VtdZLC0vsXykKni8Uztx45xynytOi71Ufx9T8kHptSw9AL4dpqailUJJHavttuzUe1KYuBYtChiWv+BAb7mPmQ==", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, "clean-regexp": { "version": "1.0.0", @@ -1237,37 +570,12 @@ "escape-string-regexp": "^1.0.5" } }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, "collapse-white-space": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", "dev": true }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -1301,168 +609,24 @@ "integrity": "sha512-vue7cRi1ZO5/72FJ+wZ5+siTSBlUv3ZksTk8bWD2IkaA6obitzMZP3yI65azTJLckwmi8lxfPP5Sd9oGuZ8e2g==", "dev": true }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "confusing-browser-globals": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", - "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-assert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", - "integrity": "sha1-+F4s+b/tKPdzzIs/pcW2m9wC/j8=", - "dev": true, - "requires": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" - } - }, "core-js": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1474,31 +638,6 @@ "which": "^2.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", @@ -1508,166 +647,19 @@ "ms": "2.1.2" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deep-strict-equal": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz", - "integrity": "sha1-SgeBR6irV/ag1PVUckPNIvROtOQ=", - "dev": true, - "requires": { - "core-assert": "^0.2.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } + "object-keys": "^1.0.12" } }, "doctrine": { @@ -1701,12 +693,6 @@ } } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, "domelementtype": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", @@ -1744,85 +730,18 @@ } } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, "electron-to-chromium": { "version": "1.3.642", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz", "integrity": "sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ==", "dev": true }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhance-visitors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz", - "integrity": "sha1-qpRdBdpGVnKh69OP7i7T2oUY6Vo=", - "dev": true, - "requires": { - "lodash": "^4.13.1" - } - }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" - } - }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -1838,12 +757,6 @@ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, - "env-editor": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.1.tgz", - "integrity": "sha512-suh+Vm00GnPQgXpmONTkcUT9LgBSL6sJrRnJxbykT0j+ONjzmIS+1U3ne467ArdZN/42/npp+GnhtwkLQ+vUjw==", - "dev": true - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -1892,12 +805,6 @@ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2020,26 +927,10 @@ } } }, - "eslint-ast-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz", - "integrity": "sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA==", - "dev": true, - "requires": { - "lodash.get": "^4.4.2", - "lodash.zip": "^4.2.0" - } - }, "eslint-config-ash-nazg": { - "version": "25.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-25.0.0.tgz", - "integrity": "sha512-S6eVHgz+D6YUbx+3y+GfbOlyvK2MHTaYyb88w/i381F392aI+Gf7+fm0iq2A0JSMgNVt9kxs2KPJ8CMWm1VjYw==", - "dev": true - }, - "eslint-config-prettier": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", - "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-25.1.0.tgz", + "integrity": "sha512-PEyVvlj8UlqxorgrVSmC6ArVTBWJ4S5vv2AHw0A27ROab2D0U1XIRg7JTxdJ9yPP+Q4ID6kIi6D2YwVvEf74Fw==", "dev": true }, "eslint-config-standard": { @@ -2048,36 +939,6 @@ "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", "dev": true }, - "eslint-config-xo": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.34.0.tgz", - "integrity": "sha512-lbpHNfVmSrEQsHsyQ44wY8VA5mEI4Jri5Dk1BJUH0jiCw6nTkj16VQeHiuWzIBJ/uf+mF2FzSqLVf3tD1cHhYA==", - "dev": true, - "requires": { - "confusing-browser-globals": "1.0.10" - } - }, - "eslint-config-xo-typescript": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.37.0.tgz", - "integrity": "sha512-eFRj4xMhiMExCb+H/wyXC1OwTKJiOQ+Qd9myoZLWdyR0X8PAjtzPRfxSOyh2fkBnZvFCDY0DuqcLkPSDSe4Ybg==", - "dev": true - }, - "eslint-formatter-pretty": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-formatter-pretty/-/eslint-formatter-pretty-4.0.0.tgz", - "integrity": "sha512-QgdeZxQwWcN0TcXXNZJiS6BizhAANFhCzkE7Yl9HKB7WjElzwED6+FbbZB2gji8ofgJTGPqKm6VRCNT3OGCeEw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "eslint-rule-docs": "^1.1.5", - "log-symbols": "^4.0.0", - "plur": "^4.0.0", - "string-width": "^4.2.0", - "supports-hyperlinks": "^2.0.0" - } - }, "eslint-import-resolver-node": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", @@ -2105,47 +966,6 @@ } } }, - "eslint-import-resolver-webpack": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.0.tgz", - "integrity": "sha512-hZWGcmjaJZK/WSCYGI/y4+FMGQZT+cwW/1E/P4rDwFj2PbanlQHISViw4ccDJ+2wxAqjgwBfxwy3seABbVKDEw==", - "dev": true, - "requires": { - "array-find": "^1.0.0", - "debug": "^2.6.9", - "enhanced-resolve": "^0.9.1", - "find-root": "^1.1.0", - "has": "^1.0.3", - "interpret": "^1.2.0", - "lodash": "^4.17.15", - "node-libs-browser": "^1.0.0 || ^2.0.0", - "resolve": "^1.13.1", - "semver": "^5.7.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "eslint-module-utils": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", @@ -2179,66 +999,6 @@ "integrity": "sha512-fB5TBICjHSTGToNTbCCgR8zsngpUkoCM31EMh/M/NEAyNg90i5rUuG0dnNNBML2n0BzM0nBE3sPvo2SEWf6jlA==", "dev": true }, - "eslint-plugin-ava": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-11.0.0.tgz", - "integrity": "sha512-UMGedfl/gIKx1tzjGtAsTSJgowyAEZU2VWmpoWXYcuuV4B2H4Cu90yuMgMPEVt1mQlIZ21L7YM2CSpHUFJo/LQ==", - "dev": true, - "requires": { - "deep-strict-equal": "^0.2.0", - "enhance-visitors": "^1.0.0", - "eslint-utils": "^2.1.0", - "espree": "^7.2.0", - "espurify": "^2.0.1", - "import-modules": "^2.0.0", - "micro-spelling-correcter": "^1.1.1", - "pkg-dir": "^4.2.0", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, "eslint-plugin-compat": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz", @@ -2595,12 +1355,6 @@ } } }, - "eslint-rule-docs": { - "version": "1.1.219", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.219.tgz", - "integrity": "sha512-MeihPfW6NSZkm9ia0OpqoZm0r8gU6xJoa+G1PqUCGGZMcJQpFeNTy1ItuNIrtZFsR6n0mVqYR4j55Rd3HxIb+Q==", - "dev": true - }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -2663,12 +1417,6 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "espurify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-2.0.1.tgz", - "integrity": "sha512-7w/dUrReI/QbJFHRwfomTlkQOXaB1NuCrBRn5Y26HXn5gvh18/19AgLbayVrNxXQfkckvgrJloWyvZDuJ7dhEA==", - "dev": true - }, "esquery": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", @@ -2715,181 +1463,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2902,20 +1481,6 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, - "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2928,61 +1493,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fastq": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", - "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, "file-entry-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } + "dev": true, + "requires": { + "flat-cache": "^3.0.4" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -3009,33 +1528,6 @@ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3078,24 +1570,6 @@ "integrity": "sha1-mYR1wXhEVobQsyJG2l3428++jqM=", "dev": true }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, - "get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -3119,21 +1593,6 @@ "is-glob": "^4.0.1" } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "requires": { - "ini": "1.3.7" - } - }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -3143,263 +1602,12 @@ "type-fest": "^0.8.1" } }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3421,115 +1629,6 @@ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -3548,30 +1647,6 @@ "entities": "^2.0.0" } }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -3588,12 +1663,6 @@ "resolve-from": "^4.0.0" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true - }, "import-modules": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", @@ -3606,12 +1675,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3628,54 +1691,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "irregular-plurals": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.2.0.tgz", - "integrity": "sha512-YqTdPLfwP7YFN0SsD3QUVCkm9ZG2VzOXv3DOrw5G5mkMbVwptTwVcFv7/C0vOpBmgTxAeTG19XpUs1E522LW9Q==", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -3710,15 +1725,6 @@ "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", @@ -3728,26 +1734,6 @@ "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", @@ -3760,43 +1746,6 @@ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-error": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", - "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -3831,18 +1780,8 @@ "is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true - }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - } + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true }, "is-js-type": { "version": "2.0.0", @@ -3853,36 +1792,12 @@ "js-types": "^1.0.0" } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, "is-obj-prop": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", @@ -3893,27 +1808,12 @@ "obj-props": "^1.0.0" } }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "is-proto-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz", @@ -3933,21 +1833,6 @@ "has-symbols": "^1.0.1" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", @@ -3963,54 +1848,18 @@ "has-symbols": "^1.0.1" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "is-word-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", "dev": true }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -4023,12 +1872,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "jest-worker": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", @@ -4091,12 +1934,6 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -4141,40 +1978,6 @@ "minimist": "^1.2.0" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "requires": { - "json-buffer": "3.0.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "requires": { - "package-json": "^6.3.0" - } - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4185,23 +1988,6 @@ "type-check": "~0.4.0" } }, - "line-column-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/line-column-path/-/line-column-path-2.0.0.tgz", - "integrity": "sha512-nz3A+vi4bElhwd62E9+Qk/f9BDYLSzD/4Hy1rir0I4GnMxSTezSymzANyph5N1PgRZ3sSbA+yR5hOuXxc71a0Q==", - "dev": true, - "requires": { - "type-fest": "^0.4.1" - }, - "dependencies": { - "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true - } - } - }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -4215,333 +2001,63 @@ "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", - "dev": true - }, - "lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", - "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "dependencies": { - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "normalize-package-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", - "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.6", - "resolve": "^1.17.0", - "semver": "^7.3.2", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micro-spelling-correcter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz", - "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "p-locate": "^4.1.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", "dev": true }, - "minimalistic-assert": { + "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "minimatch": { @@ -4559,46 +2075,6 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -4611,70 +2087,12 @@ "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, "node-releases": { "version": "1.1.70", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", @@ -4701,21 +2119,6 @@ } } }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, "obj-props": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.3.0.tgz", @@ -4728,37 +2131,6 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", @@ -4771,15 +2143,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", @@ -4792,15 +2155,6 @@ "object-keys": "^1.1.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "object.values": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", @@ -4822,37 +2176,6 @@ "wrappy": "1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/open/-/open-7.3.1.tgz", - "integrity": "sha512-f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "open-editor": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/open-editor/-/open-editor-3.0.0.tgz", - "integrity": "sha512-00Nqoa7k8F4AK1oSFMIIhYku+essXiCljR2L2kV+bl5j90ANgbQgzEeTdZu23LsikDoz+KfhyRHpGLAwpQhugA==", - "dev": true, - "requires": { - "env-editor": "^0.4.1", - "execa": "^5.0.0", - "line-column-path": "^2.0.0", - "open": "^7.3.0" - } - }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -4867,18 +2190,6 @@ "word-wrap": "^1.2.3" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -4897,36 +2208,12 @@ "p-limit": "^2.2.0" } }, - "p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true - }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4936,19 +2223,6 @@ "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", @@ -4972,24 +2246,6 @@ "error-ex": "^1.2.0" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5023,25 +2279,6 @@ "pify": "^2.0.0" } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -5108,39 +2345,18 @@ } } }, - "plur": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-4.0.0.tgz", - "integrity": "sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==", - "dev": true, - "requires": { - "irregular-plurals": "^3.2.0" - } - }, "pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - }, "prettier": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", @@ -5156,18 +2372,6 @@ "fast-diff": "^1.1.2" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -5180,71 +2384,12 @@ "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5254,36 +2399,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } - } - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -5356,63 +2471,6 @@ } } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, "regexp-tree": { "version": "0.1.22", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.22.tgz", @@ -5431,24 +2489,6 @@ "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", "dev": true }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "requires": { - "rc": "^1.2.8" - } - }, "remark-parse": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", @@ -5472,12 +2512,6 @@ "xtend": "^4.0.1" } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -5512,56 +2546,12 @@ "path-parse": "^1.0.6" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -5571,16 +2561,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "rollup": { "version": "2.38.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.0.tgz", @@ -5602,12 +2582,6 @@ "terser": "^5.0.0" } }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -5623,27 +2597,12 @@ "regexp-tree": "~0.1.1" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "requires": { - "semver": "^6.3.0" - } - }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", @@ -5653,45 +2612,6 @@ "randombytes": "^2.1.0" } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5707,18 +2627,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -5756,147 +2664,12 @@ } } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", @@ -5915,12 +2688,6 @@ } } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -5953,15 +2720,6 @@ "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -5974,50 +2732,6 @@ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", @@ -6049,23 +2763,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -6081,21 +2778,6 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -6111,33 +2793,6 @@ "has-flag": "^3.0.0" } }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "table": { "version": "6.0.7", "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", @@ -6170,18 +2825,6 @@ } } }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, "terser": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", @@ -6207,94 +2850,11 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true }, "trim": { "version": "0.0.1", @@ -6302,12 +2862,6 @@ "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, - "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", - "dev": true - }, "trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", @@ -6347,12 +2901,6 @@ "tslib": "^1.8.1" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6368,27 +2916,12 @@ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, "typescript": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, "unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", @@ -6413,27 +2946,6 @@ "x-is-string": "^0.1.0" } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "requires": { - "crypto-random-string": "^2.0.0" - } - }, "unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", @@ -6473,85 +2985,6 @@ "unist-util-is": "^3.0.0" } }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "update-notifier": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.0.1.tgz", - "integrity": "sha512-BuVpRdlwxeIOvmc32AGYvO1KVdPlsmqSh8KDDBxS6kDE5VR7R8OMP1d8MdhaVBvxl4H3551k9akXr0Y1iIB2Wg==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.2", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.2", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -6561,68 +2994,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, "v8-compile-cache": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", @@ -6666,12 +3037,6 @@ "unist-util-stringify-position": "^1.1.1" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "vue-eslint-parser": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz", @@ -6714,15 +3079,6 @@ "isexe": "^2.0.0" } }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -6735,332 +3091,12 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true - }, - "xo": { - "version": "0.37.1", - "resolved": "https://registry.npmjs.org/xo/-/xo-0.37.1.tgz", - "integrity": "sha512-UsD1QkITsojNJmiYaDg20GOuTEuHAYtys6Cz4JVWbral6hbCb+WU8ktt9xCTDrsr2rNPjoxp1oonoz9HkPYGnQ==", - "dev": true, - "requires": { - "@typescript-eslint/eslint-plugin": "^4.11.1", - "@typescript-eslint/parser": "^4.11.1", - "arrify": "^2.0.1", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "eslint": "^7.17.0", - "eslint-config-prettier": "^7.1.0", - "eslint-config-xo": "^0.34.0", - "eslint-config-xo-typescript": "^0.37.0", - "eslint-formatter-pretty": "^4.0.0", - "eslint-import-resolver-webpack": "^0.13.0", - "eslint-plugin-ava": "^11.0.0", - "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-no-use-extend-native": "^0.5.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.3.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-unicorn": "^25.0.1", - "find-cache-dir": "^3.3.1", - "find-up": "^5.0.0", - "fs-extra": "^9.0.1", - "get-stdin": "^8.0.0", - "globby": "^9.2.0", - "has-flag": "^4.0.0", - "imurmurhash": "^0.1.4", - "is-path-inside": "^3.0.2", - "json-stable-stringify-without-jsonify": "^1.0.1", - "json5": "^2.1.3", - "lodash": "^4.17.20", - "meow": "^8.1.0", - "micromatch": "^4.0.2", - "open-editor": "^3.0.0", - "p-reduce": "^2.1.0", - "path-exists": "^4.0.0", - "prettier": "^2.2.1", - "resolve-cwd": "^3.0.0", - "resolve-from": "^5.0.0", - "semver": "^7.3.4", - "slash": "^3.0.0", - "to-absolute-glob": "^2.0.2", - "typescript": "^4.1.3", - "update-notifier": "^5.0.1" - }, - "dependencies": { - "@typescript-eslint/eslint-plugin": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", - "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.14.0", - "@typescript-eslint/scope-manager": "4.14.0", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.15", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", - "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.14.0", - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/typescript-estree": "4.14.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", - "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.14.0", - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/typescript-estree": "4.14.0", - "debug": "^4.1.1" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", - "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.14.0", - "@typescript-eslint/visitor-keys": "4.14.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - } - } - }, - "eslint-plugin-prettier": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", - "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, - "eslint-plugin-unicorn": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-25.0.1.tgz", - "integrity": "sha512-MEyEWoyou/qhJH6rEER9YHACtCsQT+eewc6Fdxbi2eiTvsGrBR8JZMA6qaeof3oMQeRxOpaERoBKzU7R5c4A/w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0", - "clean-regexp": "^1.0.0", - "eslint-ast-utils": "^1.1.0", - "eslint-template-visitor": "^2.2.1", - "eslint-utils": "^2.1.0", - "import-modules": "^2.0.0", - "lodash": "^4.17.20", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.21", - "reserved-words": "^0.1.2", - "safe-regex": "^2.1.1", - "semver": "^7.3.4" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "dependencies": { - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - } - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -7072,24 +3108,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true } } } diff --git a/package.json b/package.json index 7dfc242..e003eb3 100644 --- a/package.json +++ b/package.json @@ -59,10 +59,6 @@ "json-schema-test-suite": "^0.0.10", "rollup": "^2.38.0", "rollup-plugin-terser": "^7.0.2", - "typescript": "^4.1.3", - "xo": "^0.37.1" - }, - "xo": { - "space": true + "typescript": "^4.1.3" } } From 8be2021135c40bd2fc4b55302d0410641bd76152 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:28:47 +0800 Subject: [PATCH 04/16] - Linting: Further ash-nazg --- .eslintignore | 1 + .eslintrc.cjs | 23 +++++++++++++++- docs/demo.html | 75 +++++++++++++++++++++++++++++++------------------- index.js | 4 +-- src/parser.js | 1 + 5 files changed, 72 insertions(+), 32 deletions(-) diff --git a/.eslintignore b/.eslintignore index 5536c95..590f666 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ dist node_modules test/js +docs/index.html diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 6821c25..4ffae59 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -46,14 +46,35 @@ module.exports = { }], 'no-console': 0 } + }, { + files: '*.html', + env: { + browser: true + }, + globals: { + JSONPullParser: true + }, + rules: { + 'import/unambiguous': 0 + } }, { files: ['*.md'], globals: { json: true, - token: true, + require: true, JSONPullParser: true }, rules: { + 'import/no-commonjs': 0, + 'no-shadow': ['error', { + allow: ['JSONPullParser'] + }], + 'no-unused-vars': ['error', { + varsIgnorePattern: 'token|JSONPullParser' + }], + 'node/no-missing-require': ['error', { + allowModules: ['json-pull-parser'] + }], 'import/unambiguous': 0 } }], diff --git a/docs/demo.html b/docs/demo.html index da38d68..ff1c07e 100644 --- a/docs/demo.html +++ b/docs/demo.html @@ -26,22 +26,28 @@ Please wait, benchmarking! - \ No newline at end of file + diff --git a/index.js b/index.js index 3f3b74e..affa3c0 100644 --- a/index.js +++ b/index.js @@ -20,9 +20,7 @@ const N = 1e6; const o = []; for (let i = 0; i < N; ++i) { - o.push(null); - o.push(true); - o.push(false); + o.push(null, true, false); // o.push(((Math.random() - 0.5) * 1e12)); // o.push(((Math.random() - 0.5) * 1e12).toString(36)); // o[ ((Math.random() - 0.5) * 1e12).toString(36) ] = diff --git a/src/parser.js b/src/parser.js index 148d040..6162524 100644 --- a/src/parser.js +++ b/src/parser.js @@ -124,6 +124,7 @@ JSONPullParser.parse = function (text, reviver) { /** * @param {string} text + * @yields {Token|TokenEnd} * @returns {void} */ function * tokenIterator (text) { From 152c68b16eee25f2f01958a4b923f9a9960892c2 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:33:55 +0800 Subject: [PATCH 05/16] - Testing: Use ESM --- package.json | 2 +- test/index.js | 53 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index e003eb3..3ccad69 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "scripts": { "lint": "eslint --ext=js,md,html .", "build": "rollup -c", - "test": "node ./test", + "test": "node --experimental-modules ./test/index.js", "preversion": "npm run lint && npm test", "version": "npm run build && git add -A dist", "postversion": "git push && git push --tags && npm publish" diff --git a/test/index.js b/test/index.js index d92a3f2..85f8d60 100644 --- a/test/index.js +++ b/test/index.js @@ -1,10 +1,25 @@ -const JSONPullParser = require(__dirname + '/..'); +/* eslint-disable node/no-sync -- Ok for tests */ +import assert from 'assert'; +import fs from 'fs'; +import {join, dirname} from 'path'; +import {fileURLToPath} from 'url'; +import vm from 'vm'; +import glb from 'glob'; -const assert = require('assert'); -const fs = require('fs'); -const glob = require('glob').sync; +import testSuite from 'json-schema-test-suite'; -glob(__dirname + '/**/fail*.json').forEach((file) => { +const glob = glb.sync; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +const globRelativePath = (path) => { + return glob(join(__dirname, path)); +}; + +(async () => { +// eslint-disable-next-line no-unsanitized/method -- Own tests +const JSONPullParser = (await import(__dirname + '/../index.js')).default; +globRelativePath('/**/fail*.json').forEach((file) => { console.log(file); const test = fs.readFileSync(file).toString(); assert.throws(() => { @@ -12,23 +27,20 @@ glob(__dirname + '/**/fail*.json').forEach((file) => { }); }); -glob(__dirname + '/**/pass*.json').forEach((file) => { +globRelativePath('/**/pass*.json').forEach((file) => { console.log(file); const test = fs.readFileSync(file).toString(); - const o1 = JSONPullParser.parse(test); + let o1 = JSONPullParser.parse(test); assert.doesNotThrow(() => { - const o1 = JSONPullParser.parse(test); + o1 = JSONPullParser.parse(test); const o2 = JSON.parse(test); assert.deepStrictEqual(o1, o2); }); }); -const util = require('util'); -const vm = require('vm'); - -glob(__dirname + '/js/**/*.js').forEach((file) => { +globRelativePath('/js/**/*.js').forEach((file) => { console.log(file); const sandbox = { assert: { @@ -37,6 +49,7 @@ glob(__dirname + '/js/**/*.js').forEach((file) => { block(); assert.fail(); } catch (err) { + // eslint-disable-next-line no-restricted-syntax -- Frame safe assert(err instanceof type, `Expected ${type}, got ${err}`); } }, @@ -52,12 +65,10 @@ glob(__dirname + '/js/**/*.js').forEach((file) => { const source = fs.readFileSync(file).toString(); const script = new vm.Script(source); - const context = new vm.createContext(sandbox); + const context = vm.createContext(sandbox); script.runInContext(context); }); -const testSuite = require('json-schema-test-suite'); - const factory = function (schema, options) { return { validate (json) { @@ -76,23 +87,28 @@ const factory = function (schema, options) { if (!e1) { console.log(json); console.error(err); + // eslint-disable-next-line max-len -- Necessary + // eslint-disable-next-line unicorn/no-process-exit -- Immediate feedback process.exit(-1); } } if (e1) return {valid: false, errors: [e1.message]}; - return s1 === s2 ? {valid: true} : {valid: false, errors: ['not equal']}; + return s1 === s2 + ? {valid: true} + : {valid: false, errors: ['not equal']}; } catch (err) { console.error(err); + return {valid: false, errors: ['oops']}; } } }; }; -const tests = testSuite.testSync(factory); +/* const tests = */ testSuite.testSync(factory); -glob(__dirname + '/json/benchmark/**.json').forEach((file) => { +globRelativePath('/json/benchmark/**.json').forEach((file) => { console.log(file); const source = fs.readFileSync(file).toString(); console.time('JSON'); @@ -108,3 +124,4 @@ glob(__dirname + '/json/benchmark/**.json').forEach((file) => { assert.deepStrictEqual(o1, o2); assert.equal(JSON.stringify(o1), JSON.stringify(o2)); }); +})(); From 0b813cb74e1b30919f423c8a56a05aa9801a0f49 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:38:31 +0800 Subject: [PATCH 06/16] - Fix (regression): don't throw with unspecified token types --- src/builder.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/builder.js b/src/builder.js index 16a5179..b9bce88 100644 --- a/src/builder.js +++ b/src/builder.js @@ -85,7 +85,7 @@ class ObjectBuilder { case 'error': throw new SyntaxError(token.value.message); default: - throw new TypeError('Unexpected token type'); + break; } } } From d714823fa33c03341b6f55252038f91ac2a7923c Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:39:27 +0800 Subject: [PATCH 07/16] - Fix: Remove placeholder message --- test/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/index.js b/test/index.js index 85f8d60..0a4c0fc 100644 --- a/test/index.js +++ b/test/index.js @@ -100,7 +100,7 @@ const factory = function (schema, options) { : {valid: false, errors: ['not equal']}; } catch (err) { console.error(err); - return {valid: false, errors: ['oops']}; + return {valid: false, errors: [err.message]}; } } }; From 9ea7214abf9ac99e386621da7236f3f69f19f06b Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sat, 23 Jan 2021 20:45:20 +0800 Subject: [PATCH 08/16] - Update: Build --- dist/json-pull-parser.js | 2 +- dist/json-pull-parser.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/json-pull-parser.js b/dist/json-pull-parser.js index 827c8b3..840065f 100644 --- a/dist/json-pull-parser.js +++ b/dist/json-pull-parser.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message);default:throw new TypeError("Unexpected token type")}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e,s=n(t);for(let e=s.next();!e.done;e=s.next()){const t=e.value;a.handle(t)}if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e,s=n(t);for(let e=s.next();!e.done;e=s.next()){const t=e.value;a.handle(t)}if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); //# sourceMappingURL=json-pull-parser.js.map diff --git a/dist/json-pull-parser.js.map b/dist/json-pull-parser.js.map index cd2f850..47538f6 100644 --- a/dist/json-pull-parser.js.map +++ b/dist/json-pull-parser.js.map @@ -1 +1 @@ -{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n throw new TypeError('Unexpected token type');\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n const it = tokenIterator(text);\n for (let step = it.next(); !step.done; step = it.next()) {\n const token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","TypeError","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","it","step","next","done","handle"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n const it = tokenIterator(text);\n for (let step = it.next(); !step.done; step = it.next()) {\n const token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","it","step","next","done","handle"],"mappings":"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"} \ No newline at end of file From 557b3a3e637712efb21bc62175c4d8be89e5f87a Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 24 Jan 2021 21:45:28 +0800 Subject: [PATCH 09/16] - Refactor: Simplify internal iteration --- src/parser.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/parser.js b/src/parser.js index 6162524..203f0ca 100644 --- a/src/parser.js +++ b/src/parser.js @@ -110,9 +110,7 @@ JSONPullParser.ObjectBuilder = ObjectBuilder; JSONPullParser.parse = function (text, reviver) { if (typeof text !== 'string') text = String(text); const builder = new ObjectBuilder(); - const it = tokenIterator(text); - for (let step = it.next(); !step.done; step = it.next()) { - const token = step.value; + for (const token of tokenIterator(text)) { // console.log("token: " + token.type); builder.handle(token); } From ff323dc36450cfbefe2b52e74216918ae45f6627 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Sun, 24 Jan 2021 22:57:08 +0800 Subject: [PATCH 10/16] - npm: Update devDep. --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b3aeeb..ee2139e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1115,9 +1115,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "31.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.2.1.tgz", - "integrity": "sha512-OKgU5ZGTyMumrV9ddJQf3omXTqlMB3/GJfHiSQnskSpznUrC+BPYt5StTmroZaSERa52ZFRK8trJLLsVBpK49w==", + "version": "31.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.3.2.tgz", + "integrity": "sha512-MsrQ5+ah4dMez6Z2cLeg9HrUkdeDWzmaebmTKozlHue7o+mANQxSKhn52KclrFz7EkNa/pUIPi4VE3TnseRxuA==", "dev": true, "requires": { "comment-parser": "1.1.1", diff --git a/package.json b/package.json index 3ccad69..ed9b93e 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-html": "^6.1.1", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^31.2.1", + "eslint-plugin-jsdoc": "^31.3.2", "eslint-plugin-markdown": "^1.0.2", "eslint-plugin-no-unsanitized": "^3.1.4", "eslint-plugin-no-use-extend-native": "^0.5.0", From 50a4f55e47b139fa0baa6c19fe7a7c4ec3cb7cd7 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 08:20:10 +0800 Subject: [PATCH 11/16] - Linting: Check cjs extension --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ed9b93e..de0164e 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "main": "index.js", "type": "module", "scripts": { - "lint": "eslint --ext=js,md,html .", + "lint": "eslint --ext=js,cjs,md,html .", "build": "rollup -c", "test": "node --experimental-modules ./test/index.js", "preversion": "npm run lint && npm test", From 16ccda9663ce3cd501e2a76dcd8c789f0f05781e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 08:20:19 +0800 Subject: [PATCH 12/16] - Build: Update --- dist/json-pull-parser.js | 2 +- dist/json-pull-parser.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/json-pull-parser.js b/dist/json-pull-parser.js index 840065f..0fa99b9 100644 --- a/dist/json-pull-parser.js +++ b/dist/json-pull-parser.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e,s=n(t);for(let e=s.next();!e.done;e=s.next()){const t=e.value;a.handle(t)}if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e;for(const e of n(t))a.handle(e);if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); //# sourceMappingURL=json-pull-parser.js.map diff --git a/dist/json-pull-parser.js.map b/dist/json-pull-parser.js.map index 47538f6..9dfd4bf 100644 --- a/dist/json-pull-parser.js.map +++ b/dist/json-pull-parser.js.map @@ -1 +1 @@ -{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n const it = tokenIterator(text);\n for (let step = it.next(); !step.done; step = it.next()) {\n const token = step.value;\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","it","step","next","done","handle"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n for (const token of tokenIterator(text)) {\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","handle"],"mappings":"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"} \ No newline at end of file From 04982599a91c2365220b3f5ec1d2aa912cf181c8 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 09:38:33 +0800 Subject: [PATCH 13/16] - Build: Use cjs extension in `dist` - Build: Add ESM export - Refactoring: Use cjs extension in binary file - Linting: Apply latest ash-nazg; switch to babel/eslint-parser - npm: Update devDeps. (including changed peerDeps) - npm: Update `main` and add `exports` field --- .eslintrc.cjs | 33 +- README.md | 2 +- bin/verify | 8 - bin/verify.cjs | 13 + ...on-pull-parser.js => json-pull-parser.cjs} | 2 +- dist/json-pull-parser.cjs.map | 1 + dist/json-pull-parser.js.map | 1 - package-lock.json | 5056 ++++++++++++++--- package.json | 33 +- rollup.config.js | 14 +- test/index.js | 16 +- 11 files changed, 4478 insertions(+), 701 deletions(-) delete mode 100755 bin/verify create mode 100755 bin/verify.cjs rename dist/{json-pull-parser.js => json-pull-parser.cjs} (99%) create mode 100644 dist/json-pull-parser.cjs.map delete mode 100644 dist/json-pull-parser.js.map diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 4ffae59..03eb773 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,15 +2,14 @@ module.exports = { extends: [ - 'ash-nazg/sauron-node' + 'ash-nazg/sauron-node-overrides' ], - parser: 'babel-eslint', + parser: '@babel/eslint-parser', parserOptions: { - ecmaVersion: 2020, - sourceType: 'module' + requireConfigFile: false, + ecmaVersion: 2020 }, env: { - browser: false, es6: true }, settings: { @@ -20,27 +19,23 @@ module.exports = { 'Symbol.iterator' ] }, - globals: { - Atomics: 'readonly', - SharedArrayBuffer: 'readonly' - }, overrides: [{ - files: ['.eslintrc.cjs'], - extends: [ - 'ash-nazg/sauron-node', - 'plugin:node/recommended-script' - ], + files: '*.cjs', + extends: ['ash-nazg/sauron-node-script-overrides'], rules: { - 'import/no-commonjs': 0 + // Internal use + 'node/shebang': 'off' } }, { files: 'test/index.js', - parser: 'babel-eslint', + parser: '@babel/eslint-parser', parserOptions: { + requireConfigFile: false, ecmaVersion: 2020, sourceType: 'module' }, rules: { + 'no-shadow': ['error', {allow: ['assert']}], 'node/no-unsupported-features/es-syntax': ['error', { ignores: ['dynamicImport', 'modules'] }], @@ -58,7 +53,7 @@ module.exports = { 'import/unambiguous': 0 } }, { - files: ['*.md'], + files: ['*.md/*.js'], globals: { json: true, require: true, @@ -66,6 +61,7 @@ module.exports = { }, rules: { 'import/no-commonjs': 0, + 'import/unambiguous': 0, 'no-shadow': ['error', { allow: ['JSONPullParser'] }], @@ -74,8 +70,7 @@ module.exports = { }], 'node/no-missing-require': ['error', { allowModules: ['json-pull-parser'] - }], - 'import/unambiguous': 0 + }] } }], rules: { diff --git a/README.md b/README.md index e9c130b..81eaff9 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ const JSONPullParser = require('json-pull-parser'); ### Browser ```html - + ``` ## ObjectBuilder diff --git a/bin/verify b/bin/verify deleted file mode 100755 index c0fd333..0000000 --- a/bin/verify +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env node - -var JSONPullParser = require('../'); - -var content = ''; -process.stdin.resume(); -process.stdin.on('data', data => content += data.toString()); -process.stdin.on('end', () => console.log(JSONPullParser.parse(content))); \ No newline at end of file diff --git a/bin/verify.cjs b/bin/verify.cjs new file mode 100755 index 0000000..e5fb135 --- /dev/null +++ b/bin/verify.cjs @@ -0,0 +1,13 @@ +#!/usr/bin/env node +'use strict'; + +const JSONPullParser = require('../'); + +let content = ''; +process.stdin.resume(); +process.stdin.on('data', (data) => { + content += data.toString(); +}); + +// eslint-disable-next-line no-console -- CLI +process.stdin.on('end', () => console.log(JSONPullParser.parse(content))); diff --git a/dist/json-pull-parser.js b/dist/json-pull-parser.cjs similarity index 99% rename from dist/json-pull-parser.js rename to dist/json-pull-parser.cjs index 0fa99b9..ba45e65 100644 --- a/dist/json-pull-parser.js +++ b/dist/json-pull-parser.cjs @@ -1,2 +1,2 @@ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).JSONPullParser=t()}(this,(function(){"use strict";class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}}}e.prototype.endArray=e.prototype.endObject;const t=16;class r{constructor(e){this.text=e}[Symbol.iterator](){return n(this.text)}tokens(){return n(this.text)}}function*n(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield a(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=u(t);t.f=e.last,yield e}}function a(e,t,n,a,s=1){let i=t,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,t+1);let l="";for(let e=i;e0?20:0,i(0,f)):a(n,f,u,"Unexpected token } in JSON at position "+f,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),o(0,f)):a(n,f,u,"Unexpected token [ in JSON at position "+f,e.r);case 93:return e.e&t&&64===e.x.pop()?(e.e=e.x.length>0?20:0,c(0,f)):a(n,f,u,"Unexpected token ] in JSON at position "+f,e.r);case 58:if(!(8&e.e))return a(n,f,u,"Unexpected token : in JSON at position "+f,e.r);e.e=1,++f;continue;case 44:if(!(4&e.e))return a(n,f,u,"Unexpected token , in JSON at position "+f,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++f;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,l(n,f,u)):a(n,f,u,"Unexpected number in JSON at position "+f,e.r);case 34:return 2&e.e?(e.e=8,d(n,f,u)):1&e.e?(e.e=e.x.length>0?20:0,d(n,f,u)):a(n,f,u,"Unexpected string in JSON at position "+f,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,h(n,f,u)):a(n,f,u,"Unexpected token t in JSON at position "+f,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,p(n,f,u)):a(n,f,u,"Unexpected token f in JSON at position "+f,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,x(n,f,u)):a(n,f,u,"Unexpected token n in JSON at position "+f,e.r);default:return a(n,f,u,"Unexpected token "+n[f]+" in JSON at position "+f,e.r)}return{type:r.EndDocument,first:u,last:u}}function l(e,t,n){let s=t,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return a(e,s-1,n,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=n)return a(e,t,n,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:r.Number,value:Number.parseFloat(e.slice(t,s-1)),first:t,last:s-1}}function d(e,t,n){let s=t+1;for(;sn)))return a(e,n,n,"Unexpected end of JSON input")}return{type:r.String,value:JSON.parse(e.slice(t,s)),source:e,first:t,last:s}}function f(e,t,r,n,s){if(t+n.length>r)return a(e,r,r,"Unexpected end of JSON input");for(const s of n){if(e.charCodeAt(t++)!==s)return a(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function h(e,t,n){return f(e,t,n,[116,114,117,101],{type:r.TrueLiteral,value:!0,source:e,first:t,last:t+4})}function p(e,t,n){return f(e,t,n,[102,97,108,115,101],{type:r.FalseLiteral,value:!1,source:e,first:t,last:t+5})}function x(e,t,n){return f(e,t,n,[110,117,108,108],{type:r.NullLiteral,value:null,source:e,first:t,last:t+4})}return r.StartDocument="<",r.EndDocument=">",r.StartObject="{",r.EndObject="}",r.StartArray="[",r.EndArray="]",r.String="string",r.Number="number",r.TrueLiteral="true",r.FalseLiteral="false",r.NullLiteral="null",r.Whitespace="ws",r.Error="error",r.ObjectBuilder=e,r.parse=function(t,r){"string"!=typeof t&&(t=String(t));const a=new e;for(const e of n(t))a.handle(e);if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value},r})); -//# sourceMappingURL=json-pull-parser.js.map +//# sourceMappingURL=json-pull-parser.cjs.map diff --git a/dist/json-pull-parser.cjs.map b/dist/json-pull-parser.cjs.map new file mode 100644 index 0000000..5ca7719 --- /dev/null +++ b/dist/json-pull-parser.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"json-pull-parser.cjs","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n for (const token of tokenIterator(text)) {\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","handle"],"mappings":"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"} \ No newline at end of file diff --git a/dist/json-pull-parser.js.map b/dist/json-pull-parser.js.map deleted file mode 100644 index 9dfd4bf..0000000 --- a/dist/json-pull-parser.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n for (const token of tokenIterator(text)) {\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","CLOSE","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","handle"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ee2139e..c697a58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,56 +1,4083 @@ { "name": "json-pull-parser", "version": "1.0.2", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "1.0.2", + "license": "MIT", + "bin": { + "json-pull-parser": "bin/verify.cjs" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.13.4", + "@brettz9/eslint-plugin": "^1.0.3", + "eslint": "^7.20.0", + "eslint-config-ash-nazg": "^29.8.0", + "eslint-config-standard": "^16.0.2", + "eslint-plugin-array-func": "^3.1.7", + "eslint-plugin-compat": "^3.9.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^6.1.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsdoc": "^32.2.0", + "eslint-plugin-markdown": "^2.0.0", + "eslint-plugin-no-unsanitized": "^3.1.4", + "eslint-plugin-no-use-extend-native": "^0.5.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.3.1", + "eslint-plugin-radar": "^0.2.1", + "eslint-plugin-standard": "^4.1.0", + "eslint-plugin-unicorn": "^28.0.2", + "glob": "^7.1.6", + "json-schema-test-suite": "^0.0.10", + "rollup": "^2.39.1", + "rollup-plugin-terser": "^7.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.12.13" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.6.tgz", + "integrity": "sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.1.tgz", + "integrity": "sha512-FzeKfFBG2rmFtGiiMdXZPFt/5R5DXubVi82uYhjGX4Msf+pgYQMCFIqFXZWs5vbIYbf14VeBIgdGI03CDOOM1w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.0", + "@babel/parser": "^7.13.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "7.0.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.4.tgz", + "integrity": "sha512-WfFEd89SzqmtYox8crTLJuEXyJolZY6Uu6iJpJmw4aMu50zHbYnxzxwuVkCt2cWygw+gLkUPTtAuox7eSnrL8g==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.0", + "eslint-visitor-keys": "^1.3.0", + "semver": "7.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": ">=7.5.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.0.tgz", + "integrity": "sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.0.tgz", + "integrity": "sha512-SOWD0JK9+MMIhTQiUVd4ng8f3NXhPVQvTv7D3UN4wbp/6cAHnB2EmMaU1zZA2Hh1gwme+THBrVSqTFxHczTh0Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "node_modules/@babel/helpers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", + "integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@brettz9/eslint-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@brettz9/eslint-plugin/-/eslint-plugin-1.0.3.tgz", + "integrity": "sha512-2ESGw4oZJ5IvkFitzRXzfdUY8hzSPSanQ8i+adzWMQPK7jxxUHkZ6GEslOd7GjHFZIcwqc1xVXVU0itf8zYFGA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "eslint": ">=7.20.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mdn/browser-compat-data": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz", + "integrity": "sha512-GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==", + "dev": true, + "dependencies": { + "extend": "3.0.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-metadata-inferer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz", + "integrity": "sha512-tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001191", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", + "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/comment-parser": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.1.2.tgz", + "integrity": "sha512-AOdq0i8ghZudnYv8RUnHrhTgafUGs61Rdz9jemU5x2lnZwAWyOq7vySo626K59e1fVKH1xSRorJwPVRLSWOoAQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/core-js": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", + "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.1.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", + "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz", + "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/domutils/node_modules/domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.1.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.673", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.673.tgz", + "integrity": "sha512-ms+QR2ckfrrpEAjXweLx6kNCbpAl66DcW//3BZD4BV5KhUgr0RZRce1ON/9J3QyA3JO28nzgb5Xv8DnPr05ILg==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.20.0.tgz", + "integrity": "sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.3.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-ash-nazg": { + "version": "29.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-29.8.0.tgz", + "integrity": "sha512-R1DBmX46w2Byjhq51faJRedIffs3WItOgrX0rW42WEuMlmzZ9E7vUeV2fjfUmy/BeEgQQIS4pssqbZKApLYERA==", + "dev": true, + "dependencies": { + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "@brettz9/eslint-plugin": "^1.0.3", + "eslint": "^7.20.0", + "eslint-config-standard": "^16.0.2", + "eslint-plugin-array-func": "^3.1.7", + "eslint-plugin-compat": "^3.9.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-html": "^6.1.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsdoc": "^32.2.0", + "eslint-plugin-markdown": "^2.0.0", + "eslint-plugin-no-unsanitized": "^3.1.4", + "eslint-plugin-no-use-extend-native": "^0.5.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.3.1", + "eslint-plugin-radar": "^0.2.1", + "eslint-plugin-standard": "^4.1.0", + "eslint-plugin-unicorn": "^28.0.2" + } + }, + "node_modules/eslint-config-ash-nazg/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-standard": { + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", + "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": "^7.12.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^4.2.1" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-array-func": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.7.tgz", + "integrity": "sha512-fB5TBICjHSTGToNTbCCgR8zsngpUkoCM31EMh/M/NEAyNg90i5rUuG0dnNNBML2n0BzM0nBE3sPvo2SEWf6jlA==", + "dev": true, + "engines": { + "node": ">= 6.8.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } + }, + "node_modules/eslint-plugin-compat": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz", + "integrity": "sha512-lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==", + "dev": true, + "dependencies": { + "@mdn/browser-compat-data": "^2.0.7", + "ast-metadata-inferer": "^0.4.0", + "browserslist": "^4.12.2", + "caniuse-lite": "^1.0.30001166", + "core-js": "^3.6.5", + "find-up": "^4.1.0", + "lodash.memoize": "4.1.2", + "semver": "7.3.2" + }, + "engines": { + "node": ">=9.x" + }, + "peerDependencies": { + "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/eslint-plugin-compat/node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "engines": { + "node": ">=6.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" + } + }, + "node_modules/eslint-plugin-eslint-comments/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint-plugin-html": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.1.1.tgz", + "integrity": "sha512-JSe3ZDb7feKMnQM27XWGeoIjvP4oWQMJD9GZ6wW67J7/plVL87NK72RBwlvfc3tTZiYUchHhxAwtgEd1GdofDA==", + "dev": true, + "dependencies": { + "htmlparser2": "^5.0.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "32.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-32.2.0.tgz", + "integrity": "sha512-ikeVeF3JVmzjcmGd04OZK0rXjgiw46TWtNX+OhyF2jQlw3w1CAU1vyAyLv8PZcIjp7WxP4N20Vg1CI9bp/52dw==", + "dev": true, + "dependencies": { + "comment-parser": "1.1.2", + "debug": "^4.3.1", + "jsdoctypeparser": "^9.0.0", + "lodash": "^4.17.20", + "regextras": "^0.7.1", + "semver": "^7.3.4", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-2.0.0.tgz", + "integrity": "sha512-zt10JoexHeJFMTE5egDcetAJ34bn5k/92s0wAuRZfhDAyI0ryEj+O91JL2CbBExajie6BE5L63y47dN1Sbp6mQ==", + "dev": true, + "dependencies": { + "remark-parse": "^5.0.0", + "unified": "^6.1.2" + }, + "engines": { + "node": "^8.10.0 || ^10.12.0 || >= 12.0.0" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-no-unsanitized": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.4.tgz", + "integrity": "sha512-WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==", + "dev": true, + "peerDependencies": { + "eslint": "^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-no-use-extend-native": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz", + "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==", + "dev": true, + "dependencies": { + "is-get-set-prop": "^1.0.0", + "is-js-type": "^2.0.0", + "is-obj-prop": "^1.0.0", + "is-proto-prop": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "dependencies": { + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-plugin-node/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", + "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-plugin-radar": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-radar/-/eslint-plugin-radar-0.2.1.tgz", + "integrity": "sha512-aOc1MK6ddL45X6mS6zEqFIKy/c/qnwjhNycDecaFMw5acUsD744ZCZf2cG7yxLhMv71mBSwr6pZdu+26+Zzk5A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": ">= 3.0.0 <= 7.x.x" + } + }, + "node_modules/eslint-plugin-standard": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", + "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz", + "integrity": "sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0", + "clean-regexp": "^1.0.0", + "eslint-template-visitor": "^2.2.2", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "import-modules": "^2.1.0", + "lodash": "^4.17.20", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.22", + "reserved-words": "^0.1.2", + "safe-regex": "^2.1.1", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=7.17.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-template-visitor": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", + "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", + "eslint-visitor-keys": "^2.0.0", + "esquery": "^1.3.1", + "multimap": "^1.1.0" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-template-visitor/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-set-props": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz", + "integrity": "sha1-mYR1wXhEVobQsyJG2l3428++jqM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-5.0.1.tgz", + "integrity": "sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.3.0", + "domutils": "^2.4.2", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/fb55/htmlparser2?sponsor=1" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-modules": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", + "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-get-set-prop": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz", + "integrity": "sha1-JzGHfk14pqae3M5rudaLB3nnYxI=", + "dev": true, + "dependencies": { + "get-set-props": "^0.1.0", + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-js-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-js-type/-/is-js-type-2.0.0.tgz", + "integrity": "sha1-c2FwBtZZtOtHKbunR9KHgt8PfiI=", + "dev": true, + "dependencies": { + "js-types": "^1.0.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj-prop": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-obj-prop/-/is-obj-prop-1.0.0.tgz", + "integrity": "sha1-s03nnEULjXxzqyzfZ9yHWtuF+A4=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0", + "obj-props": "^1.0.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-proto-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-proto-prop/-/is-proto-prop-2.0.0.tgz", + "integrity": "sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0", + "proto-props": "^2.0.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-types": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/js-types/-/js-types-1.0.0.tgz", + "integrity": "sha1-0kLmSU7Vcq08koCfyL7X92h8vwM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoctypeparser": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", + "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "dev": true, + "bin": { + "jsdoctypeparser": "bin/jsdoctypeparser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-test-suite": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/json-schema-test-suite/-/json-schema-test-suite-0.0.10.tgz", + "integrity": "sha1-qTYEqsPPQIQk1VNgi8OgF/0JAbw=", + "dev": true, + "dependencies": { + "lodash": "^3.9.3" + } + }, + "node_modules/json-schema-test-suite/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multimap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", + "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/obj-props": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/obj-props/-/obj-props-1.3.0.tgz", + "integrity": "sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dev": true, + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-props": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-2.0.0.tgz", + "integrity": "sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.23.tgz", + "integrity": "sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regextras": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "dev": true, + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dev": true, + "dependencies": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.39.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.1.tgz", + "integrity": "sha512-9rfr0Z6j+vE+eayfNVFr1KZ+k+jiUl2+0e4quZafy1x6SFCjzFspfRSO2ZZQeWeX9noeDTUDgg6eCENiEPFvQg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "dev": true, + "dependencies": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.1.tgz", + "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/terser": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unified": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", + "dev": true, + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "node_modules/unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, + "node_modules/unist-util-remove-position": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", + "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", + "dev": true, + "dependencies": { + "unist-util-visit": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", + "dev": true + }, + "node_modules/unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dev": true, + "dependencies": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dev": true, + "dependencies": { + "unist-util-is": "^3.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", + "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "node_modules/vfile-location": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", + "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", + "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", + "dev": true, + "dependencies": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, "dependencies": { "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.6.tgz", + "integrity": "sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw==", + "dev": true + }, + "@babel/core": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.1.tgz", + "integrity": "sha512-FzeKfFBG2rmFtGiiMdXZPFt/5R5DXubVi82uYhjGX4Msf+pgYQMCFIqFXZWs5vbIYbf14VeBIgdGI03CDOOM1w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.0", + "@babel/parser": "^7.13.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "7.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/eslint-parser": { + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.4.tgz", + "integrity": "sha512-WfFEd89SzqmtYox8crTLJuEXyJolZY6Uu6iJpJmw4aMu50zHbYnxzxwuVkCt2cWygw+gLkUPTtAuox7eSnrL8g==", + "dev": true, + "requires": { + "eslint-scope": "5.1.0", + "eslint-visitor-keys": "^1.3.0", + "semver": "7.0.0" } }, "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.0.tgz", + "integrity": "sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw==", "dev": true, "requires": { - "@babel/types": "^7.12.11", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, + "@babel/helper-compilation-targets": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.0.tgz", + "integrity": "sha512-SOWD0JK9+MMIhTQiUVd4ng8f3NXhPVQvTv7D3UN4wbp/6cAHnB2EmMaU1zZA2Hh1gwme+THBrVSqTFxHczTh0Q==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "7.0.0" + } + }, "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "dev": true, "requires": { - "@babel/types": "^7.12.10" + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "dev": true, "requires": { - "@babel/types": "^7.12.11" + "@babel/types": "^7.12.13" } }, "@babel/helper-validator-identifier": { @@ -59,76 +4086,72 @@ "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.0.tgz", + "integrity": "sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } } }, "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "version": "7.13.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.4.tgz", + "integrity": "sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA==", "dev": true }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" } }, "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } } }, "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -136,6 +4159,13 @@ "to-fast-properties": "^2.0.0" } }, + "@brettz9/eslint-plugin": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@brettz9/eslint-plugin/-/eslint-plugin-1.0.3.tgz", + "integrity": "sha512-2ESGw4oZJ5IvkFitzRXzfdUY8hzSPSanQ8i+adzWMQPK7jxxUHkZ6GEslOd7GjHFZIcwqc1xVXVU0itf8zYFGA==", + "dev": true, + "requires": {} + }, "@eslint/eslintrc": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", @@ -154,28 +4184,14 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "type-fest": "^0.8.1" } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true } } }, @@ -188,61 +4204,6 @@ "extend": "3.0.2" } }, - "@mysticatea/eslint-plugin": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/@mysticatea/eslint-plugin/-/eslint-plugin-13.0.0.tgz", - "integrity": "sha512-L0FAKWY+P46aYMacZolyuXJOcg9B5N6HvlB/vr5k+FRVGqaeciayH6YD5hOhgusyUUqgC776RVjtIMeumNVjQQ==", - "dev": true, - "requires": { - "@typescript-eslint/eslint-plugin": "~2.6.1", - "@typescript-eslint/parser": "~2.6.1", - "eslint-plugin-eslint-comments": "~3.1.2", - "eslint-plugin-eslint-plugin": "~2.1.0", - "eslint-plugin-node": "~10.0.0", - "eslint-plugin-prettier": "~3.1.1", - "eslint-plugin-vue": "~6.0.0", - "prettier": "~1.19.1", - "vue-eslint-parser": "^7.0.0" - }, - "dependencies": { - "eslint-plugin-eslint-comments": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.1.2.tgz", - "integrity": "sha512-QexaqrNeteFfRTad96W+Vi4Zj1KFbkHHNMMaHZEYcovKav6gdomyGzaxSDSL3GoIyUOo078wRAdYlu1caiauIQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "ignore": "^5.0.5" - } - }, - "eslint-plugin-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-10.0.0.tgz", - "integrity": "sha512-1CSyM/QCjs6PXaT18+zuAXsjXGIGo5Rw630rSKwokSs2jrYURQc4R5JZpoanNCqwNmepg+0eZ9L7YiRUJb8jiQ==", - "dev": true, - "requires": { - "eslint-plugin-es": "^2.0.0", - "eslint-utils": "^1.4.2", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - } - } - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -250,9 +4211,9 @@ "dev": true }, "@types/node": { - "version": "14.14.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.22.tgz", - "integrity": "sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==", + "version": "14.14.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", + "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", "dev": true }, "@types/normalize-package-data": { @@ -261,67 +4222,18 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "@typescript-eslint/eslint-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.1.tgz", - "integrity": "sha512-Z0rddsGqioKbvqfohg7BwkFC3PuNLsB+GE9QkFza7tiDzuHoy0y823Y+oGNDzxNZrYyLjqkZtCTl4vCqOmEN4g==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.6.1", - "eslint-utils": "^1.4.2", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^2.0.1", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.1.tgz", - "integrity": "sha512-EVrrUhl5yBt7fC7c62lWmriq4MIc49zpN3JmrKqfiFXPXCM5ErfEcZYfKOhZXkW6MBjFcJ5kGZqu1b+lyyExUw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.6.1", - "eslint-scope": "^5.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.6.1.tgz", - "integrity": "sha512-PDPkUkZ4c7yA+FWqigjwf3ngPUgoLaGjMlFh6TRtbjhqxFBnkElDfckSjm98q9cMr4xRzZ15VrS/xKm6QHYf0w==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.6.1", - "@typescript-eslint/typescript-estree": "2.6.1", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.1.tgz", - "integrity": "sha512-+sTnssW6bcbDZKE8Ce7VV6LdzkQz2Bxk7jzk1J8H1rovoTxnm6iXvYIyncvNsaB/kBCOM63j/LNJfm27bNdUoA==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "glob": "^7.1.4", - "is-glob": "^4.0.1", - "lodash.unescape": "4.0.1", - "semver": "^6.3.0", - "tsutils": "^3.17.1" - } - }, "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true + "dev": true, + "requires": {} }, "ajv": { "version": "6.12.6", @@ -366,15 +4278,15 @@ } }, "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" } }, @@ -401,28 +4313,6 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", @@ -446,16 +4336,16 @@ } }, "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001173", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.69" + "node-releases": "^1.1.70" } }, "buffer-from": { @@ -481,60 +4371,20 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001178", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz", - "integrity": "sha512-VtdZLC0vsXykKni8Uztx45xynytOi71Ufx9T8kHptSw9AL4dpqailUJJHavttuzUe1KYuBYtChiWv+BAb7mPmQ==", + "version": "1.0.30001191", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", + "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "character-entities": { @@ -604,9 +4454,9 @@ "dev": true }, "comment-parser": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.1.1.tgz", - "integrity": "sha512-vue7cRi1ZO5/72FJ+wZ5+siTSBlUv3ZksTk8bWD2IkaA6obitzMZP3yI65azTJLckwmi8lxfPP5Sd9oGuZ8e2g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.1.2.tgz", + "integrity": "sha512-AOdq0i8ghZudnYv8RUnHrhTgafUGs61Rdz9jemU5x2lnZwAWyOq7vySo626K59e1fVKH1xSRorJwPVRLSWOoAQ==", "dev": true }, "concat-map": { @@ -621,10 +4471,19 @@ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, "core-js": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", - "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.0.tgz", + "integrity": "sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ==", "dev": true }, "cross-spawn": { @@ -731,9 +4590,9 @@ } }, "electron-to-chromium": { - "version": "1.3.642", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.642.tgz", - "integrity": "sha512-cev+jOrz/Zm1i+Yh334Hed6lQVOkkemk2wRozfMF4MtTR7pxf3r3L5Rbd7uX1zMcEqVJ7alJBnJL7+JffkC6FQ==", + "version": "1.3.673", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.673.tgz", + "integrity": "sha512-ms+QR2ckfrrpEAjXweLx6kNCbpAl66DcW//3BZD4BV5KhUgr0RZRce1ON/9J3QyA3JO28nzgb5Xv8DnPr05ILg==", "dev": true }, "emoji-regex": { @@ -752,9 +4611,9 @@ } }, "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, "error-ex": { @@ -812,12 +4671,12 @@ "dev": true }, "eslint": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", - "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.20.0.tgz", + "integrity": "sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -829,7 +4688,7 @@ "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", - "esquery": "^1.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", @@ -856,27 +4715,57 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -885,35 +4774,19 @@ "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "type-fest": "^0.8.1" } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "semver": { @@ -924,20 +4797,44 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "eslint-config-ash-nazg": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-25.1.0.tgz", - "integrity": "sha512-PEyVvlj8UlqxorgrVSmC6ArVTBWJ4S5vv2AHw0A27ROab2D0U1XIRg7JTxdJ9yPP+Q4ID6kIi6D2YwVvEf74Fw==", - "dev": true + "version": "29.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-ash-nazg/-/eslint-config-ash-nazg-29.8.0.tgz", + "integrity": "sha512-R1DBmX46w2Byjhq51faJRedIffs3WItOgrX0rW42WEuMlmzZ9E7vUeV2fjfUmy/BeEgQQIS4pssqbZKApLYERA==", + "dev": true, + "requires": { + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } }, "eslint-config-standard": { "version": "16.0.2", "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-16.0.2.tgz", "integrity": "sha512-fx3f1rJDsl9bY7qzyX8SAtP8GBSk6MfXFaTfaGgk12aAYW4gJSyRm7dM790L6cbXv63fvjY4XeSzXnb4WM+SKw==", - "dev": true + "dev": true, + "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.4", @@ -997,7 +4894,8 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-3.1.7.tgz", "integrity": "sha512-fB5TBICjHSTGToNTbCCgR8zsngpUkoCM31EMh/M/NEAyNg90i5rUuG0dnNNBML2n0BzM0nBE3sPvo2SEWf6jlA==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-compat": { "version": "3.9.0", @@ -1024,21 +4922,13 @@ } }, "eslint-plugin-es": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-2.0.0.tgz", - "integrity": "sha512-f6fceVtg27BR02EYnBhgWLFQfK6bN4Ll0nQFrBHOlCsAyxeZkn0NHns5O0YZOPrV1B3ramd6cgFwaoFLcSkwEQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, "requires": { - "eslint-utils": "^1.4.2", + "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" - }, - "dependencies": { - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - } } }, "eslint-plugin-eslint-comments": { @@ -1049,14 +4939,16 @@ "requires": { "escape-string-regexp": "^1.0.5", "ignore": "^5.0.5" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } } }, - "eslint-plugin-eslint-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz", - "integrity": "sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg==", - "dev": true - }, "eslint-plugin-html": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.1.1.tgz", @@ -1115,12 +5007,12 @@ } }, "eslint-plugin-jsdoc": { - "version": "31.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.3.2.tgz", - "integrity": "sha512-MsrQ5+ah4dMez6Z2cLeg9HrUkdeDWzmaebmTKozlHue7o+mANQxSKhn52KclrFz7EkNa/pUIPi4VE3TnseRxuA==", + "version": "32.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-32.2.0.tgz", + "integrity": "sha512-ikeVeF3JVmzjcmGd04OZK0rXjgiw46TWtNX+OhyF2jQlw3w1CAU1vyAyLv8PZcIjp7WxP4N20Vg1CI9bp/52dw==", "dev": true, "requires": { - "comment-parser": "1.1.1", + "comment-parser": "1.1.2", "debug": "^4.3.1", "jsdoctypeparser": "^9.0.0", "lodash": "^4.17.20", @@ -1141,12 +5033,11 @@ } }, "eslint-plugin-markdown": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.2.tgz", - "integrity": "sha512-BfvXKsO0K+zvdarNc801jsE/NTLmig4oKhZ1U3aSUgTf2dB/US5+CrfGxMsCK2Ki1vS1R3HPok+uYpufFndhzw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-2.0.0.tgz", + "integrity": "sha512-zt10JoexHeJFMTE5egDcetAJ34bn5k/92s0wAuRZfhDAyI0ryEj+O91JL2CbBExajie6BE5L63y47dN1Sbp6mQ==", "dev": true, "requires": { - "object-assign": "^4.0.1", "remark-parse": "^5.0.0", "unified": "^6.1.2" } @@ -1155,7 +5046,8 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.4.tgz", "integrity": "sha512-WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-no-use-extend-native": { "version": "0.5.0", @@ -1183,70 +5075,51 @@ "semver": "^6.1.0" }, "dependencies": { - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "eslint-plugin-prettier": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", - "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - }, "eslint-plugin-promise": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", - "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", + "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", "dev": true }, - "eslint-plugin-sonarjs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sonarjs/-/eslint-plugin-sonarjs-0.5.0.tgz", - "integrity": "sha512-XW5MnzlRjhXpIdbULC/qAdJYHWw3rRLws/DyawdlPU/IdVr9AmRK1r2LaCvabwKOAW2XYYSo3kDX58E4MrB7PQ==", - "dev": true + "eslint-plugin-radar": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-radar/-/eslint-plugin-radar-0.2.1.tgz", + "integrity": "sha512-aOc1MK6ddL45X6mS6zEqFIKy/c/qnwjhNycDecaFMw5acUsD744ZCZf2cG7yxLhMv71mBSwr6pZdu+26+Zzk5A==", + "dev": true, + "requires": {} }, "eslint-plugin-standard": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-unicorn": { - "version": "27.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-27.0.0.tgz", - "integrity": "sha512-uUvlueTa4SpkvLjbkqx08JbB0tY6XxOAa8vlfwbTzITfVNy3go3QzPCus49fO5M/mfooOuraIDVkaqan/pLAHg==", + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz", + "integrity": "sha512-k4AoFP7n8/oq6lBXkdc9Flid6vw2B8j7aXFCxgzJCyKvmaKrCUFb1TFPhG9eSJQFZowqmymMPRtl8oo9NKLUbw==", "dev": true, "requires": { "ci-info": "^2.0.0", "clean-regexp": "^1.0.0", "eslint-template-visitor": "^2.2.2", "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", "import-modules": "^2.1.0", "lodash": "^4.17.20", "pluralize": "^8.0.0", @@ -1257,14 +5130,11 @@ "semver": "^7.3.4" }, "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true }, "parse-json": { "version": "5.2.0", @@ -1320,58 +5190,24 @@ } } }, - "eslint-plugin-vue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.0.2.tgz", - "integrity": "sha512-LF0AeuCjzTe+enkvvtvKClG3iYZwMKE3M6yEUZruUHNolLwqGqbEULzvMmojr+8KlMl//Ya1k7dKVt4HFASKfw==", - "dev": true, - "requires": { - "vue-eslint-parser": "^6.0.5" - }, - "dependencies": { - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "vue-eslint-parser": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-6.0.5.tgz", - "integrity": "sha512-Bvjlx7rH1Ulvus56KHeLXOjEi3JMOYTa1GAqZr9lBQhd8weK8mV7U7V2l85yokBZEWHJQjLn6X3nosY8TzkOKg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.0", - "esquery": "^1.0.1", - "lodash": "^4.17.11" - } - } - } - }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { - "esrecurse": "^4.3.0", + "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-template-visitor": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.2.tgz", - "integrity": "sha512-SkcLjzKw3JjKTWHacRDeLBa2gxb600zbCKTkXj/V97QnZ9yxkknoPL8vc8PFueqbFXP7mYNTQzjCjcMpTRdRaA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", + "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", "dev": true, "requires": { - "babel-eslint": "^10.1.0", + "@babel/core": "^7.12.16", + "@babel/eslint-parser": "^7.12.16", "eslint-visitor-keys": "^2.0.0", "esquery": "^1.3.1", "multimap": "^1.1.0" @@ -1386,9 +5222,9 @@ } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" @@ -1401,14 +5237,14 @@ "dev": true }, "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" } }, "esprima": { @@ -1418,9 +5254,9 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -1475,12 +5311,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", - "dev": true - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1494,9 +5324,9 @@ "dev": true }, "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" @@ -1535,9 +5365,9 @@ "dev": true }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -1553,10 +5383,16 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", @@ -1594,18 +5430,15 @@ } }, "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "has": { @@ -1648,9 +5481,9 @@ } }, "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { @@ -1720,9 +5553,9 @@ "dev": true }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-core-module": { @@ -1825,11 +5658,12 @@ } }, "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -1970,12 +5804,12 @@ "dev": true }, "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "levn": { @@ -2016,9 +5850,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.memoize": { @@ -2027,12 +5861,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", - "dev": true - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -2094,9 +5922,9 @@ "dev": true }, "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", "dev": true }, "normalize-package-data": { @@ -2125,12 +5953,6 @@ "integrity": "sha512-k2Xkjx5wn6eC3537SWAXHzB6lkI81kS+icMKMkh4nG3w7shWG6MaWOBrNvhWVOszrtL5uxdfymQQfPUxwY+2eg==", "dev": true }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, "object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", @@ -2156,14 +5978,14 @@ } }, "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, @@ -2357,21 +6179,6 @@ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "requires": { - "fast-diff": "^1.1.2" - } - }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -2472,15 +6279,15 @@ } }, "regexp-tree": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.22.tgz", - "integrity": "sha512-ExKDwSwgv6tAMeaq8RTBQFMHdpnDMx0O07mu6xaLIhC5EDQTQlNlH42ec6uvPNlTAPC3stNVGQcy0WQtXypQKw==", + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.23.tgz", + "integrity": "sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==", "dev": true }, "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "regextras": { @@ -2537,12 +6344,12 @@ "dev": true }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -2562,12 +6369,12 @@ } }, "rollup": { - "version": "2.38.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.0.tgz", - "integrity": "sha512-ay9zDiNitZK/LNE/EM2+v5CZ7drkB2xyDljvb1fQJCGnq43ZWRkhxN145oV8GmoW1YNi4sA/1Jdkr2LfawJoXw==", + "version": "2.39.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.1.tgz", + "integrity": "sha512-9rfr0Z6j+vE+eayfNVFr1KZ+k+jiUl2+0e4quZafy1x6SFCjzFspfRSO2ZZQeWeX9noeDTUDgg6eCENiEPFvQg==", "dev": true, "requires": { - "fsevents": "~2.1.2" + "fsevents": "~2.3.1" } }, "rollup-plugin-terser": { @@ -2598,9 +6405,9 @@ } }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true }, "serialize-javascript": { @@ -2744,22 +6551,22 @@ } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -2806,9 +6613,9 @@ }, "dependencies": { "ajv": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", - "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.1.tgz", + "integrity": "sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -2826,9 +6633,9 @@ } }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz", + "integrity": "sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -2884,21 +6691,17 @@ "json5": "^1.0.1", "minimist": "^1.2.0", "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz", - "integrity": "sha512-GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==", - "dev": true, - "requires": { - "tslib": "^1.8.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } } }, "type-check": { @@ -2916,12 +6719,6 @@ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, - "typescript": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", - "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", - "dev": true - }, "unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", @@ -3037,39 +6834,6 @@ "unist-util-stringify-position": "^1.1.1" } }, - "vue-eslint-parser": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz", - "integrity": "sha512-n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-scope": "^5.0.0", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", - "esquery": "^1.0.1", - "lodash": "^4.17.15" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - } - } - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index de0164e..df0426b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,11 @@ ], "description": "JSON pull parser", "license": "MIT", - "main": "index.js", + "main": "dist/json-pull-parser.cjs", + "exports": { + "require": "dist/json-pull-parser.cjs", + "module": "dist/json-pull-parser.js" + }, "type": "module", "scripts": { "lint": "eslint --ext=js,cjs,md,html .", @@ -28,37 +32,36 @@ "iterator" ], "files": [ - "dist/json-pull-parser.js", - "dist/json-pull-parser.js.map", + "dist/json-pull-parser.cjs", + "dist/json-pull-parser.cjs.map", "index.js", "src/builder.js", "src/parser.js" ], "dependencies": {}, "devDependencies": { - "@mysticatea/eslint-plugin": "^13.0.0", - "babel-eslint": "^10.1.0", - "eslint": "^7.18.0", - "eslint-config-ash-nazg": "^25.1.0", + "@babel/eslint-parser": "^7.13.4", + "@brettz9/eslint-plugin": "^1.0.3", + "eslint": "^7.20.0", + "eslint-config-ash-nazg": "^29.8.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-array-func": "^3.1.7", "eslint-plugin-compat": "^3.9.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-html": "^6.1.1", "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jsdoc": "^31.3.2", - "eslint-plugin-markdown": "^1.0.2", + "eslint-plugin-jsdoc": "^32.2.0", + "eslint-plugin-markdown": "^2.0.0", "eslint-plugin-no-unsanitized": "^3.1.4", "eslint-plugin-no-use-extend-native": "^0.5.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.2.1", - "eslint-plugin-sonarjs": "^0.5.0", + "eslint-plugin-promise": "^4.3.1", + "eslint-plugin-radar": "^0.2.1", "eslint-plugin-standard": "^4.1.0", - "eslint-plugin-unicorn": "^27.0.0", + "eslint-plugin-unicorn": "^28.0.2", "glob": "^7.1.6", "json-schema-test-suite": "^0.0.10", - "rollup": "^2.38.0", - "rollup-plugin-terser": "^7.0.2", - "typescript": "^4.1.3" + "rollup": "^2.39.1", + "rollup-plugin-terser": "^7.0.2" } } diff --git a/rollup.config.js b/rollup.config.js index c81f134..575a382 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,10 +1,9 @@ import {terser} from 'rollup-plugin-terser'; -// eslint-disable-next-line import/no-anonymous-default-export -- Rollup config export default [{ input: 'index.js', output: { - file: 'dist/json-pull-parser.js', + file: 'dist/json-pull-parser.cjs', format: 'umd', sourcemap: true, name: 'JSONPullParser' @@ -12,4 +11,15 @@ export default [{ plugins: [ terser() ] +}, { + input: 'index.js', + output: { + file: 'dist/json-pull-parser.js', + format: 'esm', + sourcemap: true, + name: 'JSONPullParser' + }, + plugins: [ + terser() + ] }]; diff --git a/test/index.js b/test/index.js index 0a4c0fc..3fe97d3 100644 --- a/test/index.js +++ b/test/index.js @@ -21,20 +21,20 @@ const globRelativePath = (path) => { const JSONPullParser = (await import(__dirname + '/../index.js')).default; globRelativePath('/**/fail*.json').forEach((file) => { console.log(file); - const test = fs.readFileSync(file).toString(); + const tst = fs.readFileSync(file).toString(); assert.throws(() => { - JSONPullParser.parse(test); + JSONPullParser.parse(tst); }); }); globRelativePath('/**/pass*.json').forEach((file) => { console.log(file); - const test = fs.readFileSync(file).toString(); + const tst = fs.readFileSync(file).toString(); - let o1 = JSONPullParser.parse(test); + let o1 = JSONPullParser.parse(tst); assert.doesNotThrow(() => { - o1 = JSONPullParser.parse(test); - const o2 = JSON.parse(test); + o1 = JSONPullParser.parse(tst); + const o2 = JSON.parse(tst); assert.deepStrictEqual(o1, o2); }); @@ -65,8 +65,8 @@ globRelativePath('/js/**/*.js').forEach((file) => { const source = fs.readFileSync(file).toString(); const script = new vm.Script(source); - const context = vm.createContext(sandbox); - script.runInContext(context); + const ctxt = vm.createContext(sandbox); + script.runInContext(ctxt); }); const factory = function (schema, options) { From 7443d19ec1c63e3799d30032a090524dcbff687e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 09:47:45 +0800 Subject: [PATCH 14/16] - Docs: Remove unneeded comment --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 81eaff9..a7a81c5 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,6 @@ ## Introduction -Originally forked from [`JSONPullParser`](https://www.npmjs.com/package/json-pull-parser) -to expand on the types of iterators and to have available in source control. - A dropin replacement for `JSON.parse` and also provides a pull based api. ## Usage From 9daee3dfc58b3b8f320b6e556ad39693d70cdab8 Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 09:55:47 +0800 Subject: [PATCH 15/16] - Swith to proper `exports` and allow `builder` export --- package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index df0426b..85c4f89 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,11 @@ ], "description": "JSON pull parser", "license": "MIT", - "main": "dist/json-pull-parser.cjs", + "main": "./dist/json-pull-parser.cjs", "exports": { - "require": "dist/json-pull-parser.cjs", - "module": "dist/json-pull-parser.js" + "import": "./dist/json-pull-parser.js", + "require": "./dist/json-pull-parser.cjs", + "./builder": "./src/builder.js" }, "type": "module", "scripts": { From 19c9726a355d6ce5f1fe2ce4b5aa007342b7d3ee Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Thu, 25 Feb 2021 10:12:10 +0800 Subject: [PATCH 16/16] - Build: Add ESM build files --- dist/json-pull-parser.js | 2 ++ dist/json-pull-parser.js.map | 1 + 2 files changed, 3 insertions(+) create mode 100644 dist/json-pull-parser.js create mode 100644 dist/json-pull-parser.js.map diff --git a/dist/json-pull-parser.js b/dist/json-pull-parser.js new file mode 100644 index 0000000..448bbcd --- /dev/null +++ b/dist/json-pull-parser.js @@ -0,0 +1,2 @@ +class e{constructor(){this.handler={ref:this,add(e){return this.ref.value=e,e}}}startObject(){this.handler={old:this.handler,key:null,ref:this.handler.add({}),add(e){return null===this.key?this.key=e:(this.ref[this.key]=e,this.key=null),e}}}endObject(){this.handler=this.handler.old}startArray(){this.handler={old:this.handler,ref:this.handler.add([]),add(e){return this.ref.push(e),e}}}add(e){this.handler.add(e)}handle(e){switch(e.type){case"{":this.startObject();break;case"}":this.endObject();break;case"[":this.startArray();break;case"]":this.endArray();break;case"string":case"number":case"true":case"false":case"null":this.add(e.value);break;case"error":throw new SyntaxError(e.value.message)}}}e.prototype.endArray=e.prototype.endObject;class t{constructor(e){this.text=e}[Symbol.iterator](){return r(this.text)}tokens(){return r(this.text)}}function*r(e){const t={s:e,d:!1,f:0,l:e.length,e:1,c:0,r:1,x:[]};for(;;){if(t.f===t.l){if(!t.e&&!t.x.length)return;yield n(t.s,t.l,t.l,"Unexpected end of JSON input")}const e=c(t);t.f=e.last,yield e}}function n(e,r,n,a,s=1){let i=r,o=e.charCodeAt(i);for(;10!==o&&i>0;)o=e.charCodeAt(--i);10===o&&++i;const c="undefined:"+s,u=e.slice(i,r+1);let l="";for(let e=i;e0?20:0,s(0,d)):n(r,d,c,"Unexpected token } in JSON at position "+d,e.r);case 91:return 1&e.e?(e.e=17,e.x.push(64),i(0,d)):n(r,d,c,"Unexpected token [ in JSON at position "+d,e.r);case 93:return 16&e.e&&64===e.x.pop()?(e.e=e.x.length>0?20:0,o(0,d)):n(r,d,c,"Unexpected token ] in JSON at position "+d,e.r);case 58:if(!(8&e.e))return n(r,d,c,"Unexpected token : in JSON at position "+d,e.r);e.e=1,++d;continue;case 44:if(!(4&e.e))return n(r,d,c,"Unexpected token , in JSON at position "+d,e.r);e.x.length>0&&32===e.x[e.x.length-1]?e.e=2:e.e=1,++d;continue;case 45:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return 1&e.e?(e.e=e.x.length>0?20:0,u(r,d,c)):n(r,d,c,"Unexpected number in JSON at position "+d,e.r);case 34:return 2&e.e?(e.e=8,l(r,d,c)):1&e.e?(e.e=e.x.length>0?20:0,l(r,d,c)):n(r,d,c,"Unexpected string in JSON at position "+d,e.r);case 116:return 1&e.e?(e.e=e.x.length>0?20:0,f(r,d,c)):n(r,d,c,"Unexpected token t in JSON at position "+d,e.r);case 102:return 1&e.e?(e.e=e.x.length>0?20:0,h(r,d,c)):n(r,d,c,"Unexpected token f in JSON at position "+d,e.r);case 110:return 1&e.e?(e.e=e.x.length>0?20:0,p(r,d,c)):n(r,d,c,"Unexpected token n in JSON at position "+d,e.r);default:return n(r,d,c,"Unexpected token "+r[d]+" in JSON at position "+d,e.r)}return{type:t.EndDocument,first:c,last:c}}function u(e,r,a){let s=r,i=e.charCodeAt(s++);if(45===i&&(i=e.charCodeAt(s++)),48!==i)for(;i>=48&&i<=57;)i=e.charCodeAt(s++);else i=e.charCodeAt(s++);if(46===i)for(i=e.charCodeAt(s++);i>=48&&i<=57;)i=e.charCodeAt(s++);if(101===i||69===i){if(i=e.charCodeAt(s++),43!==i&&45!==i||(i=e.charCodeAt(s++)),i<48||i>57)return n(e,s-1,a,"Unexpected token "+e[s-1]+" in JSON at position "+(s-1));if(s>=a)return n(e,r,a,"Unexpected end of JSON input");for(;i>=48&&i<=57;)i=e.charCodeAt(s++)}return{type:t.Number,value:Number.parseFloat(e.slice(r,s-1)),first:r,last:s-1}}function l(e,r,a){let s=r+1;for(;sa)))return n(e,a,a,"Unexpected end of JSON input")}return{type:t.String,value:JSON.parse(e.slice(r,s)),source:e,first:r,last:s}}function d(e,t,r,a,s){if(t+a.length>r)return n(e,r,r,"Unexpected end of JSON input");for(const s of a){if(e.charCodeAt(t++)!==s)return n(e,t,r,"Unexpected token "+e[t-1]+" in JSON at position "+(t-1))}return s}function f(e,r,n){return d(e,r,n,[116,114,117,101],{type:t.TrueLiteral,value:!0,source:e,first:r,last:r+4})}function h(e,r,n){return d(e,r,n,[102,97,108,115,101],{type:t.FalseLiteral,value:!1,source:e,first:r,last:r+5})}function p(e,r,n){return d(e,r,n,[110,117,108,108],{type:t.NullLiteral,value:null,source:e,first:r,last:r+4})}t.StartDocument="<",t.EndDocument=">",t.StartObject="{",t.EndObject="}",t.StartArray="[",t.EndArray="]",t.String="string",t.Number="number",t.TrueLiteral="true",t.FalseLiteral="false",t.NullLiteral="null",t.Whitespace="ws",t.Error="error",t.ObjectBuilder=e,t.parse=function(t,n){"string"!=typeof t&&(t=String(t));const a=new e;for(const e of r(t))a.handle(e);if(void 0===a.value)throw new SyntaxError("Unexpected end of JSON input");return a.value};export default t; +//# sourceMappingURL=json-pull-parser.js.map diff --git a/dist/json-pull-parser.js.map b/dist/json-pull-parser.js.map new file mode 100644 index 0000000..8c0bf2d --- /dev/null +++ b/dist/json-pull-parser.js.map @@ -0,0 +1 @@ +{"version":3,"file":"json-pull-parser.js","sources":["../src/builder.js","../src/parser.js"],"sourcesContent":["/**\n *\n */\nclass ObjectBuilder {\n /**\n *\n */\n constructor () {\n this.handler = {\n ref: this,\n add (value) { this.ref.value = value; return value; }\n };\n }\n\n /**\n * @returns {void}\n */\n startObject () {\n this.handler = {\n old: this.handler,\n key: null,\n ref: this.handler.add({}),\n add (value) {\n if (this.key === null) this.key = value;\n else { this.ref[this.key] = value; this.key = null; }\n return value;\n }\n };\n }\n\n /**\n * @returns {void}\n */\n endObject () {\n this.handler = this.handler.old;\n }\n\n /**\n * @returns {void}\n */\n startArray () {\n this.handler = {\n old: this.handler,\n ref: this.handler.add([]),\n add (value) {\n this.ref.push(value);\n return value;\n }\n };\n }\n\n /**\n * @param {JSONValueOrError} value\n * @returns {void}\n */\n add (value) {\n this.handler.add(value);\n }\n\n /**\n * @param {Token|TokenEnd} token\n * @returns {void}\n */\n handle (token) {\n switch (token.type) {\n case '{':\n this.startObject();\n break;\n case '}':\n this.endObject();\n break;\n case '[':\n this.startArray();\n break;\n case ']':\n this.endArray();\n break;\n case 'string':\n case 'number':\n case 'true':\n case 'false':\n case 'null':\n this.add(token.value);\n break;\n case 'error':\n throw new SyntaxError(token.value.message);\n default:\n break;\n }\n }\n}\n\nObjectBuilder.prototype.endArray = ObjectBuilder.prototype.endObject;\n\nexport default ObjectBuilder;\n","import ObjectBuilder from './builder.js';\n\n/**\n * @typedef {PlainObject} State\n * @property {string} s Text\n * @property {boolean} [d=false] Done\n * @property {Integer} [f=0] Position\n * @property {Integer} [l] Defaults to text length\n * @property {Integer} [e=VALUE] Expect\n * @property {Integer} [c=0] Column\n * @property {Integer} [r=1] Row\n * @property {Integer[]} [x=[]]\n*/\n\n/**\n* @typedef {string} Type\n*/\n\n/**\n * @typedef {PlainObject} TokenPlain\n * @property {Type} type\n * @property {Integer} first\n * @property {Integer} last\n*/\n\n/**\n * @typedef {TokenPlain} TokenEnd\n */\n\n/**\n * @typedef {SyntaxError|string|Float|boolean|null} JSONValueOrError\n */\n\n/**\n * @typedef {TokenPlain} Token\n * @property {JSONValueOrError} value\n */\n\n/**\n * @typedef {Token} TokenWithSource\n * @property {string} source\n */\n\nconst VALUE = 1;\nconst KEY = 2;\nconst COMMA = 4;\nconst COLON = 8;\nconst CLOSE = 16;\nconst OBJECT = 32;\nconst ARRAY = 64;\n\n/**\n *\n */\nclass JSONPullParser {\n /**\n * @param {string} text\n * @returns {void}\n */\n constructor (text) {\n this.text = text;\n }\n\n /**\n * @returns {Iterator}\n */\n [Symbol.iterator] () {\n return tokenIterator(this.text);\n }\n\n /**\n * @returns {Iterator}\n */\n tokens () {\n return tokenIterator(this.text);\n }\n}\n\n/*\nif (typeof Symbol === 'object' && Symbol.iterator) {\n JSONPullParser.prototype[Symbol.iterator] = JSONPullParser.prototype.tokens;\n}\n*/\n\nJSONPullParser.StartDocument = '<';\nJSONPullParser.EndDocument = '>';\nJSONPullParser.StartObject = '{';\nJSONPullParser.EndObject = '}';\nJSONPullParser.StartArray = '[';\nJSONPullParser.EndArray = ']';\nJSONPullParser.String = 'string';\nJSONPullParser.Number = 'number';\nJSONPullParser.TrueLiteral = 'true';\nJSONPullParser.FalseLiteral = 'false';\nJSONPullParser.NullLiteral = 'null';\nJSONPullParser.Whitespace = 'ws';\nJSONPullParser.Error = 'error';\n\nJSONPullParser.ObjectBuilder = ObjectBuilder;\n\n/**\n* @callback ReviverFunction\n* @returns {JSON}\n*/\n\n/**\n* @param {string} text\n* @param {ReviverFunction} reviver\n*/\nJSONPullParser.parse = function (text, reviver) {\n if (typeof text !== 'string') text = String(text);\n const builder = new ObjectBuilder();\n for (const token of tokenIterator(text)) {\n // console.log(\"token: \" + token.type);\n builder.handle(token);\n }\n if (typeof builder.value === 'undefined') {\n throw new SyntaxError('Unexpected end of JSON input');\n }\n return builder.value;\n};\n\n/**\n * @param {string} text\n * @yields {Token|TokenEnd}\n * @returns {void}\n */\nfunction * tokenIterator (text) {\n const state = {\n s: text,\n d: false, // done\n f: 0, // position\n l: text.length, // length\n e: VALUE, // expect\n c: 0, // column\n r: 1, // row\n x: []\n };\n\n while (true) {\n // console.log(\n // `next: ${state.f}, ${state.l}, ` +\n // `${text.charCodeAt(state.f).toString(16)}`\n // );\n if (state.f === state.l) {\n if (!state.e && !state.x.length) {\n return;\n }\n yield parserError(\n state.s, state.l, state.l, 'Unexpected end of JSON input'\n );\n }\n const token = parseValue(state);\n state.f = token.last;\n\n yield token;\n }\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {string} m Message\n * @param {Integer} r\n * @returns {Token}\n */\nfunction parserError (s, f, l, m, r = 1) {\n let c = f;\n let cc = s.charCodeAt(c);\n while (cc !== 0x0A && c > 0) {\n cc = s.charCodeAt(--c);\n }\n if (cc === 0x0A) ++c;\n const str0 = 'undefined:' + r;\n const str1 = s.slice(c, f + 1);\n let str2 = '';\n for (let i = c; i < f; ++i) str2 += ' ';\n str2 += '^';\n\n const err = new SyntaxError(str0 + '\\n' + str1 + '\\n' + str2 + '\\n\\n' + m);\n return {\n type: JSONPullParser.Error,\n value: err,\n first: f,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectStart (s, f, l) {\n return {\n type: JSONPullParser.StartObject,\n value: '{',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseObjectEnd (s, f, l) {\n return {\n type: JSONPullParser.EndObject,\n value: '}',\n first: f,\n last: f + 1\n };\n}\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayStart (s, f, l) {\n return {\n type: JSONPullParser.StartArray,\n value: '[',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseArrayEnd (s, f, l) {\n return {\n type: JSONPullParser.EndArray,\n value: ']',\n first: f,\n last: f + 1\n };\n}\n\n/**\n * @param {State} state\n * @returns {Token|TokenEnd}\n */\nfunction parseValue (state) {\n const {s, l} = state;\n let {f} = state;\n while (f < l) {\n state.c++;\n switch (s.charCodeAt(f)) {\n case 0x0A: // LF\n state.c = 0;\n state.r++;\n // Fallthrough\n case 0x09: // TAB\n case 0x0D: // CR\n case 0x20: // WS\n ++f; continue;\n case 0x7B: // {\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token { in JSON at position ' + f, state.r\n );\n }\n state.e = KEY | CLOSE;\n state.x.push(OBJECT);\n return parseObjectStart(s, f, l);\n case 0x7D: // }\n if (!(state.e & CLOSE) || state.x.pop() !== OBJECT) {\n return parserError(\n s, f, l, 'Unexpected token } in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseObjectEnd(s, f, l);\n case 0x5B: // [\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token [ in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE | CLOSE;\n state.x.push(ARRAY);\n return parseArrayStart(s, f, l);\n case 0x5D: // ]\n if (!(state.e & CLOSE) || state.x.pop() !== ARRAY) {\n return parserError(\n s, f, l, 'Unexpected token ] in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseArrayEnd(s, f, l);\n case 0x3A: // :\n if (!(state.e & COLON)) {\n return parserError(\n s, f, l, 'Unexpected token : in JSON at position ' + f, state.r\n );\n }\n state.e = VALUE;\n ++f; continue;\n case 0x2C: // ,\n if (!(state.e & COMMA)) {\n return parserError(\n s, f, l, 'Unexpected token , in JSON at position ' + f, state.r\n );\n }\n if (state.x.length > 0 && state.x[state.x.length - 1] === OBJECT) {\n state.e = KEY;\n } else {\n state.e = VALUE;\n }\n ++f; continue;\n case 0x2D: // -\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected number in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNumber(s, f, l);\n case 0x22:\n if (state.e & KEY) {\n state.e = COLON;\n return parseString(s, f, l);\n }\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected string in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseString(s, f, l);\n case 0x74: // t\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token t in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseTrue(s, f, l);\n case 0x66: // f\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token f in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseFalse(s, f, l);\n case 0x6E: // n\n if (!(state.e & VALUE)) {\n return parserError(\n s, f, l, 'Unexpected token n in JSON at position ' + f, state.r\n );\n }\n state.e = state.x.length > 0 ? COMMA | CLOSE : 0;\n return parseNull(s, f, l);\n default: return parserError(\n s, f, l, 'Unexpected token ' + s[f] + ' in JSON at position ' + f, state.r\n );\n }\n }\n return {\n type: JSONPullParser.EndDocument,\n first: l,\n last: l\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {Token}\n */\nfunction parseNumber (s, f, l) {\n let c = f;\n\n let cc = s.charCodeAt(c++);\n\n if (cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n\n if (cc !== 0x30 /* 0 */) {\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) {\n cc = s.charCodeAt(c++);\n }\n } else {\n cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x2E /* . */) {\n cc = s.charCodeAt(c++);\n while (cc >= 0x30 && cc <= 0x39) cc = s.charCodeAt(c++);\n }\n\n if (cc === 0x65 /* e */|| cc === 0x45 /* E */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x2B /* + */|| cc === 0x2D /* - */) cc = s.charCodeAt(c++);\n if (cc < 0x30 || cc > 0x39) {\n return parserError(\n s, c - 1, l,\n 'Unexpected token ' + s[c - 1] + ' in JSON at position ' + (c - 1)\n );\n }\n if (c >= l) return parserError(s, f, l, 'Unexpected end of JSON input');\n while (cc >= 0x30 /* 0 */ && cc <= 0x39 /* 9 */) cc = s.charCodeAt(c++);\n }\n\n return {\n type: JSONPullParser.Number,\n value: Number.parseFloat(\n s.slice(f, c - 1)\n ), // parseFloat seems to be faster than JSON.parse\n first: f,\n last: c - 1\n };\n}\n\n// ECMA-404 section 9\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseString (s, f, l) {\n let c = f + 1;\n while (c < l) {\n let cc = s.charCodeAt(c++);\n if (cc === 0x22 /* \" */) break;\n else if (cc === 0x5C /* \\ */) {\n cc = s.charCodeAt(c++);\n if (cc === 0x75 /* u */) {\n c += 4;\n if (c > l) return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n }\n }\n // console.log(`string: ${c}, ${f}, ${s.substring(f, c)}`);\n return {\n type: JSONPullParser.String,\n value: JSON.parse(s.slice(f, c)),\n source: s,\n first: f,\n last: c\n };\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @param {Integer[]} ccs\n * @param {TokenWithSource} success\n * @returns {token}\n */\nfunction match (s, f, l, ccs, success) {\n if (f + ccs.length > l) {\n return parserError(s, l, l, 'Unexpected end of JSON input');\n }\n for (const cc_ of ccs) {\n const cc = s.charCodeAt(f++);\n if (cc !== cc_) {\n return parserError(\n s, f, l,\n 'Unexpected token ' + s[f - 1] + ' in JSON at position ' + (f - 1)\n );\n }\n }\n return success;\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseTrue (s, f, l) {\n return match(s, f, l, [0x74, 0x72, 0x75, 0x65], {\n type: JSONPullParser.TrueLiteral,\n value: true,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseFalse (s, f, l) {\n return match(s, f, l, [0x66, 0x61, 0x6C, 0x73, 0x65], {\n type: JSONPullParser.FalseLiteral,\n value: false,\n source: s,\n first: f,\n last: f + 5\n });\n}\n\n/**\n * @param {string} s\n * @param {Integer} f\n * @param {Integer} l\n * @returns {TokenWithSource}\n */\nfunction parseNull (s, f, l) {\n return match(s, f, l, [0x6E, 0x75, 0x6C, 0x6C], {\n type: JSONPullParser.NullLiteral,\n value: null,\n source: s,\n first: f,\n last: f + 4\n });\n}\n\nexport default JSONPullParser;\n"],"names":["ObjectBuilder","[object Object]","this","handler","ref","value","old","key","add","push","token","type","startObject","endObject","startArray","endArray","SyntaxError","message","prototype","JSONPullParser","text","Symbol","iterator","tokenIterator","state","s","d","f","l","length","e","c","r","x","parserError","parseValue","last","m","cc","charCodeAt","str0","str1","slice","str2","i","err","Error","first","parseObjectStart","StartObject","parseObjectEnd","EndObject","parseArrayStart","StartArray","parseArrayEnd","EndArray","KEY","pop","COMMA","VALUE","parseNumber","parseString","parseTrue","parseFalse","parseNull","EndDocument","Number","parseFloat","String","JSON","parse","source","match","ccs","success","cc_","TrueLiteral","FalseLiteral","NullLiteral","StartDocument","Whitespace","reviver","builder","handle"],"mappings":"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"} \ No newline at end of file