├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── __tests__ ├── d1 │ └── 1.js ├── d2 │ └── 1.js ├── require-order │ ├── a.js │ ├── a.json │ ├── b.js │ └── b.json ├── smoke.spec.js └── withoutDefault.js ├── circle.yml ├── es_modules.js ├── interop-require.js ├── package.json ├── src ├── babelIt.js ├── cacheMirror.js ├── esm_modules.js ├── hoistExtensions.js ├── index.js ├── interopRequire.js ├── resolutions.js ├── setAliases.js └── utils.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '6' 4 | - '7' 5 | - 'node' 6 | env: 7 | - CXX=g++-4.8 8 | addons: 9 | apt: 10 | sources: 11 | - ubuntu-toolchain-r-test 12 | packages: 13 | - g++-4.8 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Anton 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # require-control [![Build Status](https://secure.travis-ci.org/theKashey/require-control.svg)](http://travis-ci.org/theKashey/require-control) [![Greenkeeper badge](https://badges.greenkeeper.io/theKashey/require-control.svg)](https://greenkeeper.io/) 2 | 3 | This is a module-in-the-middle, require hack, path control, this is just a toolbox to master nodejs modules. 4 | 5 | - Fast relief againts the imports inside your node_modules. 6 | - A cure from "something.`default` is not a thing". 7 | - A way to tame module name resolution. 8 | 9 | # API 10 | - All commands returns a function to cancel side effects. 11 | - All commands could be run as many times as you wish, but only name resolution will make sense. 12 | 13 | ### 1. To cure all `imports` nodejs could look inside packages, stored out of sight of babel, inside node_modules 14 | ```js 15 | import 'require-control/register'; 16 | ``` 17 | And then all `imports` inside node_modules will work 18 | 19 | ### 2. To make your project _webpack-compact_(babel interop require) by forcing `.default` to exist on exports 20 | ```js 21 | import 'require-control/interop-require'; 22 | ``` 23 | And then default will _always_ exists. 24 | 25 | ### 3. To create a loop-aware module cache 26 | ```js 27 | import {mirrorModuleCache} from 'require-control'; 28 | mirrorModuleCache((requireName, absoluteFilePath) => boolean); 29 | ``` 30 | And that will change how cache works for the selected files. 31 | 32 | ### 4. To control path resolution 33 | ```js 34 | import {nameResolution} from 'require-control'; 35 | nameResolution((requireName, parent) => newFileName); 36 | 37 | import {setAliases} from 'require-control'; 38 | setAliases({ 39 | 'from': 'to' 40 | }); 41 | ``` 42 | And then all module aliases (webpack resolve, ts paths, aliases, anything) 43 | 44 | PS: You can use setAliases to achieve 10-100 speedup against tsconfig-paths, if you are not using "complex" typescript paths. 45 | 46 | PPS: `setAlias` is doing the same [module-alias](https://github.com/ilearnio/module-alias) does - changes how `Module._resolveFilename` works. If you want to migrate to `aliases` from `relative` imports you might use [relative-to-alias](https://github.com/s-yadav/relative-to-alias) or [restructor](https://github.com/theKashey/restructor). 47 | 48 | ### 4.5 To control module resolution order 49 | ```js 50 | import {hoistExtensions} from 'require-control'; 51 | 52 | // make tsx, ts and jsx be picked first 53 | hoistExtensions(['.tsx', '.ts', '.jsx']); 54 | ``` 55 | That could be quite usefull, if you have `Component.less` and `Component.jsx` or `Component.tsx`, as long as 56 | `require('./Component')` would load `.less` file - it goes before any other "non-native" extension. 57 | 58 | PS: This command just moves listed extensions prior non-listed. 59 | 60 | ### 5. To apply any babel transformation, anywhere 61 | `babelIt(pick, babelSettings)`, where pick could return true, false, or code to pipe into babel. 62 | ```js 63 | import {babelIt} from 'require-control'; 64 | 65 | babelIt( fileName => fileName.includes('my-folder'), { 66 | babelrc: false, 67 | plugin: ['power-converter'] 68 | }) 69 | ``` 70 | 71 | ## Examples 72 | 73 | #### TypeScript + ES6 + Mocha 74 | 75 | ```js 76 | require('ts-node/register'); // support TS 77 | require('babel-register'); // support ES 78 | 79 | const { esm_modules, interopRequire, setAliases, resolutions } = require('require-control'); 80 | 81 | esm_modules(); // support ES in node_modules 82 | interopRequire(); // "webpack" default imports everywhere in js,jsx,less,scss 83 | interopRequire(['.less']); // "webpack" default imports for .less files 84 | 85 | setAliases({ // why not! 86 | 'common': path.join(root, 'src/common'), 87 | 'components': path.join(root, 'src/components'), 88 | }); 89 | 90 | resolutions(request => { // custom resolution 91 | if (request === 'react') { 92 | return 'preact'; 93 | } 94 | }); 95 | ``` 96 | 97 | #### Webpack aliases (or typescript paths) 98 | ```js 99 | const {setAliases } = require('require-control'); 100 | 101 | setAliases({ 102 | 'common': path.join(root, 'src/common'), 103 | 'components': path.join(root, 'src/components'), 104 | }); 105 | ``` 106 | 107 | ### Would not be done without 108 | This project would not be ever created without my work on [rewiremock](https://github.com/theKashey/rewiremock). 109 | 110 | # Licence 111 | MIT 112 | -------------------------------------------------------------------------------- /__tests__/d1/1.js: -------------------------------------------------------------------------------- 1 | module.exports = 1; -------------------------------------------------------------------------------- /__tests__/d2/1.js: -------------------------------------------------------------------------------- 1 | module.exports = 2; -------------------------------------------------------------------------------- /__tests__/require-order/a.js: -------------------------------------------------------------------------------- 1 | exports.value = 'js'; -------------------------------------------------------------------------------- /__tests__/require-order/a.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "json" 3 | } -------------------------------------------------------------------------------- /__tests__/require-order/b.js: -------------------------------------------------------------------------------- 1 | exports.value = 'js'; -------------------------------------------------------------------------------- /__tests__/require-order/b.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "json" 3 | } -------------------------------------------------------------------------------- /__tests__/smoke.spec.js: -------------------------------------------------------------------------------- 1 | const {expect} = require('chai'); 2 | const Module = require('module'); 3 | 4 | const defaultResolvers = Object.assign({}, require.extensions); 5 | describe('clear test', () => { 6 | beforeEach(() => { 7 | require._cache = {}; 8 | }); 9 | 10 | it('without default', () => { 11 | const withOutdefault = require('./withoutDefault') 12 | expect(withOutdefault.default).to.be.equal(undefined); 13 | expect(withOutdefault()).to.be.equal(42); 14 | }); 15 | 16 | it('imports in modules', () => { 17 | expect(() => require('./node_modules/test')).to.throw(); 18 | }); 19 | }); 20 | 21 | describe('mocked test', () => { 22 | beforeEach(() => { 23 | require._cache = Module._cache = {}; 24 | require.extensions['.js'] = defaultResolvers['.js']; 25 | }); 26 | 27 | it('without default', () => { 28 | require('../interop-require'); 29 | const withOutdefault = require('./withoutDefault') 30 | expect(withOutdefault.default()).to.be.equal(42); 31 | expect(withOutdefault()).to.be.equal(42); 32 | }); 33 | 34 | it('imports in modules', () => { 35 | const remove = require('../es_modules'); 36 | require('./node_modules/test'); 37 | expect(require('./node_modules/test').default).to.be.equal(42); 38 | remove(); 39 | require._cache = Module._cache = {}; 40 | expect(() => require('./node_modules/test')).to.throw(); 41 | }); 42 | 43 | it('should import aliases', () => { 44 | const {setAliases} = require('../'); 45 | const remove = setAliases({ 46 | 'target': './d1', 47 | 'common': './d2', 48 | }); 49 | expect(require('target/1')).to.be.equal(1); 50 | expect(require('common/1')).to.be.equal(2); 51 | expect(require('./d1/1')).to.be.equal(1); 52 | expect(require('./d2/1')).to.be.equal(2); 53 | remove(); 54 | expect(() => require('target/1')).to.throw(); 55 | }); 56 | }); 57 | 58 | describe('hoistExtensions', () => { 59 | it('default behavior', () => { 60 | expect(require('./require-order/a').value).to.be.equal('js'); 61 | }); 62 | 63 | it('hoisted behavior', () => { 64 | const hoist = require('../src/hoistExtensions'); 65 | hoist(['.json']); 66 | // require b to bypass path cache 67 | expect(require('./require-order/b').value).to.be.equal('json'); 68 | }); 69 | }); -------------------------------------------------------------------------------- /__tests__/withoutDefault.js: -------------------------------------------------------------------------------- 1 | module.exports = function () { 2 | return 42 3 | }; -------------------------------------------------------------------------------- /circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | node: 3 | version: 8.9.1 4 | 5 | test: 6 | override: 7 | - npm run test -------------------------------------------------------------------------------- /es_modules.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src').esm_modules(); -------------------------------------------------------------------------------- /interop-require.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./src').interopRequire(); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "require-control", 3 | "version": "3.0.0", 4 | "description": "Get the full control over the nodejs module system.", 5 | "main": "./src/index.js", 6 | "scripts": { 7 | "test": "mocha __tests__/**/*spec.js" 8 | }, 9 | "files": [ 10 | "src", 11 | "es_modules.js", 12 | "interop-require.js" 13 | ], 14 | "keywords": [ 15 | "mocha", 16 | "karma", 17 | "babel", 18 | "nodejs", 19 | "imports", 20 | "syntax-error", 21 | "esm" 22 | ], 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/theKashey/require-control" 26 | }, 27 | "author": "Anton Korzunov (thekashey@gmail.com)", 28 | "license": "ISC", 29 | "dependencies": { 30 | "@babel/plugin-transform-modules-commonjs": "^7.0.0" 31 | }, 32 | "peerDependencies": { 33 | "@babel/core": "^7.0.0" 34 | }, 35 | "devDependencies": { 36 | "@babel/core": "^7.0.12", 37 | "chai": "^4.1.2", 38 | "mocha": "^5.1.1", 39 | "ts-node": "^6.0.3" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/babelIt.js: -------------------------------------------------------------------------------- 1 | const {transformSync} = require("@babel/core"); 2 | const fs = require("fs"); 3 | const {forAllJS} = require('./utils'); 4 | 5 | function babelIt(filter, babelSettings) { 6 | 7 | function compile(code, filename) { 8 | return transformSync(code, {...babelSettings, filename}).code 9 | } 10 | 11 | function babelLoader(module, code, filename) { 12 | module._compile(compile(code, filename), filename); 13 | } 14 | 15 | return function () { 16 | let enabled = true; 17 | 18 | // precache 19 | compile('','fake.js'); 20 | 21 | forAllJS(function (ext) { 22 | const getJS = require.extensions[ext]; 23 | 24 | require.extensions[ext] = (module, filename) => { 25 | let data; 26 | let filterResult = enabled && filter(filename, module); 27 | if (enabled && filterResult) { 28 | if (filterResult === true) { 29 | filterResult = fs.readFileSync(fileName); 30 | } 31 | data = babelLoader(module, filterResult, filename) || module; 32 | } else { 33 | data = getJS(module, filename) || module; 34 | } 35 | 36 | return data; 37 | }; 38 | }); 39 | 40 | return () => { 41 | enabled = false; 42 | } 43 | } 44 | 45 | } 46 | 47 | module.exports = babelIt; -------------------------------------------------------------------------------- /src/cacheMirror.js: -------------------------------------------------------------------------------- 1 | const Module = require('module'); 2 | 3 | function mirrorModuleCache(condition) { 4 | const internalCache = {}; 5 | let enabled = true; 6 | const mLoad = Module._load; 7 | 8 | Module._load = function (request, parent, isMain) { 9 | 10 | const filename = Module._resolveFilename(request, parent, isMain); 11 | const check = enabled && condition(request, filename); 12 | if (check) { 13 | Module._cache[filename] = internalCache[filename]; 14 | } 15 | 16 | const result = mLoad(request, parent, isMain); 17 | 18 | if (check) { 19 | internalCache[filename] = Module._cache[filename]; 20 | } 21 | 22 | return result; 23 | }; 24 | return () => { 25 | enabled = false; 26 | } 27 | } 28 | 29 | module.exports = mirrorModuleCache; -------------------------------------------------------------------------------- /src/esm_modules.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const babelIt = require('./babelIt'); 3 | 4 | const esm_modules = babelIt( 5 | fileName => { 6 | if (fileName.indexOf('node_modules') > 0) { 7 | const code = fs.readFileSync(fileName); 8 | // use reduced version of the code to remove false positives of the check 9 | // remove comments, but keywords can still be found in strings 10 | const reducedCode = code.toString('utf-8') 11 | .replace(/\/\*([^\*]*)\*\//gi, '') 12 | .replace(/\/\*(.*)\*\//gi, '') 13 | .replace(/\/\/(.*)/gi, '') 14 | // no imports inside 15 | return reducedCode.indexOf('import ') !== reducedCode.indexOf('export ') && code; 16 | } 17 | return false; 18 | }, { 19 | babelrc: false, 20 | plugins: ["@babel/plugin-transform-modules-commonjs"] 21 | } 22 | ); 23 | 24 | module.exports = esm_modules; 25 | -------------------------------------------------------------------------------- /src/hoistExtensions.js: -------------------------------------------------------------------------------- 1 | const hoistExtensions = (hoistedExtensions) => { 2 | const restExtensions = {}; 3 | 4 | Object 5 | .keys(require.extensions) 6 | .forEach(name => { 7 | if (hoistedExtensions.indexOf(name) < 0) { 8 | restExtensions[name] = require.extensions[name]; 9 | delete require.extensions[name]; 10 | } 11 | }); 12 | 13 | Object.assign(require.extensions, restExtensions); 14 | }; 15 | 16 | module.exports = hoistExtensions; -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const esm_modules = require('./esm_modules'); 2 | const interopRequire = require('./interopRequire'); 3 | const cacheMirror = require('./cacheMirror'); 4 | const resolutions = require('./resolutions'); 5 | const setAliases = require('./setAliases'); 6 | const babelIt = require('./babelIt'); 7 | const hoistExtensions = require('./hoistExtensions'); 8 | 9 | 10 | exports.esm_modules = esm_modules; 11 | exports.interopRequire = interopRequire; 12 | exports.cacheMirror = cacheMirror; 13 | exports.resolutions = resolutions; 14 | exports.setAliases = setAliases; 15 | exports.babelIt = babelIt; 16 | exports.hoistExtensions = hoistExtensions; 17 | -------------------------------------------------------------------------------- /src/interopRequire.js: -------------------------------------------------------------------------------- 1 | const {allHookable} = require('./utils'); 2 | 3 | function interopRequire(extensions) { 4 | let enabled = true; 5 | 6 | const ext = extensions || allHookable; 7 | if(!ext.length){ 8 | throw new Error('interopRequire - extensions should be an array'); 9 | } 10 | 11 | ext.forEach(ext => { 12 | const getJS = extensions || require.extensions[ext]; 13 | 14 | require.extensions[ext] = (module, filename) => { 15 | const data = getJS(module, filename) || module; 16 | if ( 17 | enabled && 18 | data && 19 | ['object', 'function'].indexOf(typeof data.exports) >= 0 && 20 | !data.exports.default 21 | ) { 22 | Object.defineProperty(data.exports, 'default', { 23 | enumerable: false, 24 | value: data.exports 25 | }) 26 | } 27 | 28 | return data; 29 | }; 30 | }); 31 | return () => { 32 | enabled = false; 33 | } 34 | } 35 | 36 | module.exports = interopRequire; -------------------------------------------------------------------------------- /src/resolutions.js: -------------------------------------------------------------------------------- 1 | const Module = require('module'); 2 | 3 | function nameResolution(resolutor) { 4 | let enabled = true; 5 | 6 | const originalResolveFilename = Module._resolveFilename; 7 | 8 | Module._resolveFilename = function (request, _parent) { 9 | const match = enabled && resolutor(request, _parent); 10 | if (match) { 11 | const modifiedArguments = [match].concat([].slice.call(arguments, 1)); // Passes all arguments. Even those that is not specified above. 12 | return originalResolveFilename.apply(this, modifiedArguments); 13 | } 14 | 15 | return originalResolveFilename.apply(this, arguments); 16 | }; 17 | 18 | return () => { 19 | enabled = false; 20 | } 21 | } 22 | 23 | module.exports = nameResolution; -------------------------------------------------------------------------------- /src/setAliases.js: -------------------------------------------------------------------------------- 1 | const resolution = require('./resolutions'); 2 | 3 | function setAliases(aliases) { 4 | const keys = []; 5 | Object.keys(aliases).forEach(key => { 6 | keys.push(key) 7 | }); 8 | keys.sort((a, b) => a.length - b.length); 9 | 10 | return resolution(fileName => { 11 | if (fileName) { 12 | if (fileName[0] === '.') { 13 | return false; 14 | } 15 | for (let i = 0; i < keys.length; ++i) { 16 | const key = keys[i]; 17 | if (fileName.indexOf(key) === 0) { 18 | return aliases[key] + fileName.substr(key.length); 19 | } 20 | } 21 | } 22 | return false; 23 | }); 24 | } 25 | 26 | module.exports = setAliases; -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | const allJS = [ 2 | '.js', 3 | '.jsx' 4 | ]; 5 | 6 | const allCSS = [ 7 | '.css', 8 | '.less', 9 | '.scss', 10 | ]; 11 | 12 | const allHookable = [ 13 | ...allJS, 14 | ...allCSS, 15 | ] 16 | 17 | function forAllJS(callback) { 18 | allJS.forEach(callback); 19 | } 20 | 21 | exports.allJS = allJS; 22 | exports.allCSS = allCSS; 23 | exports.allHookable = allHookable; 24 | 25 | exports.forAllJS = forAllJS; -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.1.0": 6 | version "2.2.0" 7 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" 8 | integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.1.0" 11 | "@jridgewell/trace-mapping" "^0.3.9" 12 | 13 | "@babel/code-frame@^7.18.6": 14 | version "7.18.6" 15 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" 16 | integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== 17 | dependencies: 18 | "@babel/highlight" "^7.18.6" 19 | 20 | "@babel/compat-data@^7.20.5": 21 | version "7.20.14" 22 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/compat-data/-/compat-data-7.20.14.tgz#4106fc8b755f3e3ee0a0a7c27dde5de1d2b2baf8" 23 | integrity sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw== 24 | 25 | "@babel/core@^7.0.12": 26 | version "7.20.12" 27 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" 28 | integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== 29 | dependencies: 30 | "@ampproject/remapping" "^2.1.0" 31 | "@babel/code-frame" "^7.18.6" 32 | "@babel/generator" "^7.20.7" 33 | "@babel/helper-compilation-targets" "^7.20.7" 34 | "@babel/helper-module-transforms" "^7.20.11" 35 | "@babel/helpers" "^7.20.7" 36 | "@babel/parser" "^7.20.7" 37 | "@babel/template" "^7.20.7" 38 | "@babel/traverse" "^7.20.12" 39 | "@babel/types" "^7.20.7" 40 | convert-source-map "^1.7.0" 41 | debug "^4.1.0" 42 | gensync "^1.0.0-beta.2" 43 | json5 "^2.2.2" 44 | semver "^6.3.0" 45 | 46 | "@babel/generator@^7.20.7": 47 | version "7.20.14" 48 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/generator/-/generator-7.20.14.tgz#9fa772c9f86a46c6ac9b321039400712b96f64ce" 49 | integrity sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg== 50 | dependencies: 51 | "@babel/types" "^7.20.7" 52 | "@jridgewell/gen-mapping" "^0.3.2" 53 | jsesc "^2.5.1" 54 | 55 | "@babel/helper-compilation-targets@^7.20.7": 56 | version "7.20.7" 57 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" 58 | integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== 59 | dependencies: 60 | "@babel/compat-data" "^7.20.5" 61 | "@babel/helper-validator-option" "^7.18.6" 62 | browserslist "^4.21.3" 63 | lru-cache "^5.1.1" 64 | semver "^6.3.0" 65 | 66 | "@babel/helper-environment-visitor@^7.18.9": 67 | version "7.18.9" 68 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" 69 | integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== 70 | 71 | "@babel/helper-function-name@^7.19.0": 72 | version "7.19.0" 73 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" 74 | integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== 75 | dependencies: 76 | "@babel/template" "^7.18.10" 77 | "@babel/types" "^7.19.0" 78 | 79 | "@babel/helper-hoist-variables@^7.18.6": 80 | version "7.18.6" 81 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" 82 | integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 83 | dependencies: 84 | "@babel/types" "^7.18.6" 85 | 86 | "@babel/helper-module-imports@^7.18.6": 87 | version "7.18.6" 88 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" 89 | integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== 90 | dependencies: 91 | "@babel/types" "^7.18.6" 92 | 93 | "@babel/helper-module-transforms@^7.20.11": 94 | version "7.20.11" 95 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" 96 | integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== 97 | dependencies: 98 | "@babel/helper-environment-visitor" "^7.18.9" 99 | "@babel/helper-module-imports" "^7.18.6" 100 | "@babel/helper-simple-access" "^7.20.2" 101 | "@babel/helper-split-export-declaration" "^7.18.6" 102 | "@babel/helper-validator-identifier" "^7.19.1" 103 | "@babel/template" "^7.20.7" 104 | "@babel/traverse" "^7.20.10" 105 | "@babel/types" "^7.20.7" 106 | 107 | "@babel/helper-simple-access@^7.20.2": 108 | version "7.20.2" 109 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" 110 | integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== 111 | dependencies: 112 | "@babel/types" "^7.20.2" 113 | 114 | "@babel/helper-split-export-declaration@^7.18.6": 115 | version "7.18.6" 116 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" 117 | integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== 118 | dependencies: 119 | "@babel/types" "^7.18.6" 120 | 121 | "@babel/helper-string-parser@^7.19.4": 122 | version "7.19.4" 123 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" 124 | integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== 125 | 126 | "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 127 | version "7.19.1" 128 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" 129 | integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== 130 | 131 | "@babel/helper-validator-option@^7.18.6": 132 | version "7.18.6" 133 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" 134 | integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== 135 | 136 | "@babel/helpers@^7.20.7": 137 | version "7.20.13" 138 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" 139 | integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== 140 | dependencies: 141 | "@babel/template" "^7.20.7" 142 | "@babel/traverse" "^7.20.13" 143 | "@babel/types" "^7.20.7" 144 | 145 | "@babel/highlight@^7.18.6": 146 | version "7.18.6" 147 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" 148 | integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== 149 | dependencies: 150 | "@babel/helper-validator-identifier" "^7.18.6" 151 | chalk "^2.0.0" 152 | js-tokens "^4.0.0" 153 | 154 | "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": 155 | version "7.20.15" 156 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" 157 | integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== 158 | 159 | "@babel/template@^7.18.10", "@babel/template@^7.20.7": 160 | version "7.20.7" 161 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" 162 | integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== 163 | dependencies: 164 | "@babel/code-frame" "^7.18.6" 165 | "@babel/parser" "^7.20.7" 166 | "@babel/types" "^7.20.7" 167 | 168 | "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13": 169 | version "7.20.13" 170 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" 171 | integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== 172 | dependencies: 173 | "@babel/code-frame" "^7.18.6" 174 | "@babel/generator" "^7.20.7" 175 | "@babel/helper-environment-visitor" "^7.18.9" 176 | "@babel/helper-function-name" "^7.19.0" 177 | "@babel/helper-hoist-variables" "^7.18.6" 178 | "@babel/helper-split-export-declaration" "^7.18.6" 179 | "@babel/parser" "^7.20.13" 180 | "@babel/types" "^7.20.7" 181 | debug "^4.1.0" 182 | globals "^11.1.0" 183 | 184 | "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7": 185 | version "7.20.7" 186 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" 187 | integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== 188 | dependencies: 189 | "@babel/helper-string-parser" "^7.19.4" 190 | "@babel/helper-validator-identifier" "^7.19.1" 191 | to-fast-properties "^2.0.0" 192 | 193 | "@jridgewell/gen-mapping@^0.1.0": 194 | version "0.1.1" 195 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" 196 | integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== 197 | dependencies: 198 | "@jridgewell/set-array" "^1.0.0" 199 | "@jridgewell/sourcemap-codec" "^1.4.10" 200 | 201 | "@jridgewell/gen-mapping@^0.3.2": 202 | version "0.3.2" 203 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 204 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 205 | dependencies: 206 | "@jridgewell/set-array" "^1.0.1" 207 | "@jridgewell/sourcemap-codec" "^1.4.10" 208 | "@jridgewell/trace-mapping" "^0.3.9" 209 | 210 | "@jridgewell/resolve-uri@3.1.0": 211 | version "3.1.0" 212 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 213 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 214 | 215 | "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": 216 | version "1.1.2" 217 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 218 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 219 | 220 | "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": 221 | version "1.4.14" 222 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 223 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 224 | 225 | "@jridgewell/trace-mapping@^0.3.9": 226 | version "0.3.17" 227 | resolved "https://packages.atlassian.com/api/npm/npm-remote/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" 228 | integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== 229 | dependencies: 230 | "@jridgewell/resolve-uri" "3.1.0" 231 | "@jridgewell/sourcemap-codec" "1.4.14" 232 | 233 | ansi-styles@^3.2.1: 234 | version "3.2.1" 235 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 236 | dependencies: 237 | color-convert "^1.9.0" 238 | 239 | arrify@^1.0.0: 240 | version "1.0.1" 241 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 242 | 243 | assertion-error@^1.0.1: 244 | version "1.1.0" 245 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 246 | 247 | balanced-match@^1.0.0: 248 | version "1.0.0" 249 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 250 | 251 | brace-expansion@^1.1.7: 252 | version "1.1.11" 253 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 254 | dependencies: 255 | balanced-match "^1.0.0" 256 | concat-map "0.0.1" 257 | 258 | browser-stdout@1.3.1: 259 | version "1.3.1" 260 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 261 | 262 | browserslist@^4.21.3: 263 | version "4.21.5" 264 | resolved "https://packages.atlassian.com/api/npm/npm-remote/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" 265 | integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== 266 | dependencies: 267 | caniuse-lite "^1.0.30001449" 268 | electron-to-chromium "^1.4.284" 269 | node-releases "^2.0.8" 270 | update-browserslist-db "^1.0.10" 271 | 272 | buffer-from@^1.0.0: 273 | version "1.0.0" 274 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" 275 | 276 | caniuse-lite@^1.0.30001449: 277 | version "1.0.30001451" 278 | resolved "https://packages.atlassian.com/api/npm/npm-remote/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz#2e197c698fc1373d63e1406d6607ea4617c613f1" 279 | integrity sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w== 280 | 281 | chai@^4.1.2: 282 | version "4.1.2" 283 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" 284 | dependencies: 285 | assertion-error "^1.0.1" 286 | check-error "^1.0.1" 287 | deep-eql "^3.0.0" 288 | get-func-name "^2.0.0" 289 | pathval "^1.0.0" 290 | type-detect "^4.0.0" 291 | 292 | chalk@^2.0.0: 293 | version "2.4.2" 294 | resolved "https://packages.atlassian.com/api/npm/npm-remote/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 295 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 296 | dependencies: 297 | ansi-styles "^3.2.1" 298 | escape-string-regexp "^1.0.5" 299 | supports-color "^5.3.0" 300 | 301 | chalk@^2.3.0: 302 | version "2.4.1" 303 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 304 | dependencies: 305 | ansi-styles "^3.2.1" 306 | escape-string-regexp "^1.0.5" 307 | supports-color "^5.3.0" 308 | 309 | check-error@^1.0.1: 310 | version "1.0.2" 311 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 312 | 313 | color-convert@^1.9.0: 314 | version "1.9.1" 315 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 316 | dependencies: 317 | color-name "^1.1.1" 318 | 319 | color-name@^1.1.1: 320 | version "1.1.3" 321 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 322 | 323 | commander@2.11.0: 324 | version "2.11.0" 325 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" 326 | 327 | concat-map@0.0.1: 328 | version "0.0.1" 329 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 330 | 331 | convert-source-map@^1.7.0: 332 | version "1.9.0" 333 | resolved "https://packages.atlassian.com/api/npm/npm-remote/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" 334 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== 335 | 336 | debug@3.1.0: 337 | version "3.1.0" 338 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 339 | dependencies: 340 | ms "2.0.0" 341 | 342 | debug@^4.1.0: 343 | version "4.3.4" 344 | resolved "https://packages.atlassian.com/api/npm/npm-remote/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 345 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 346 | dependencies: 347 | ms "2.1.2" 348 | 349 | deep-eql@^3.0.0: 350 | version "3.0.1" 351 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 352 | dependencies: 353 | type-detect "^4.0.0" 354 | 355 | diff@3.5.0, diff@^3.1.0: 356 | version "3.5.0" 357 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 358 | 359 | electron-to-chromium@^1.4.284: 360 | version "1.4.290" 361 | resolved "https://packages.atlassian.com/api/npm/npm-remote/electron-to-chromium/-/electron-to-chromium-1.4.290.tgz#62ddde1ea2db0dc31b6fe5898911fc85b83977fb" 362 | integrity sha512-3uIkNYprKqAixFqANvs7K3zacGz6iVIMcGG1M/7hMn6Gvzxe52Xg//wRUds7GPv2uouF7EZ4Sh51fLDw+aBkHw== 363 | 364 | escalade@^3.1.1: 365 | version "3.1.1" 366 | resolved "https://packages.atlassian.com/api/npm/npm-remote/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 367 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 368 | 369 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: 370 | version "1.0.5" 371 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 372 | 373 | fs.realpath@^1.0.0: 374 | version "1.0.0" 375 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 376 | 377 | gensync@^1.0.0-beta.2: 378 | version "1.0.0-beta.2" 379 | resolved "https://packages.atlassian.com/api/npm/npm-remote/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 380 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 381 | 382 | get-func-name@^2.0.0: 383 | version "2.0.0" 384 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 385 | 386 | glob@7.1.2: 387 | version "7.1.2" 388 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 389 | dependencies: 390 | fs.realpath "^1.0.0" 391 | inflight "^1.0.4" 392 | inherits "2" 393 | minimatch "^3.0.4" 394 | once "^1.3.0" 395 | path-is-absolute "^1.0.0" 396 | 397 | globals@^11.1.0: 398 | version "11.12.0" 399 | resolved "https://packages.atlassian.com/api/npm/npm-remote/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 400 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 401 | 402 | growl@1.10.3: 403 | version "1.10.3" 404 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f" 405 | 406 | has-flag@^2.0.0: 407 | version "2.0.0" 408 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 409 | 410 | has-flag@^3.0.0: 411 | version "3.0.0" 412 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 413 | 414 | he@1.1.1: 415 | version "1.1.1" 416 | resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" 417 | 418 | inflight@^1.0.4: 419 | version "1.0.6" 420 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 421 | dependencies: 422 | once "^1.3.0" 423 | wrappy "1" 424 | 425 | inherits@2: 426 | version "2.0.3" 427 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 428 | 429 | js-tokens@^4.0.0: 430 | version "4.0.0" 431 | resolved "https://packages.atlassian.com/api/npm/npm-remote/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 432 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 433 | 434 | jsesc@^2.5.1: 435 | version "2.5.2" 436 | resolved "https://packages.atlassian.com/api/npm/npm-remote/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 437 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 438 | 439 | json5@^2.2.2: 440 | version "2.2.3" 441 | resolved "https://packages.atlassian.com/api/npm/npm-remote/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 442 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 443 | 444 | lru-cache@^5.1.1: 445 | version "5.1.1" 446 | resolved "https://packages.atlassian.com/api/npm/npm-remote/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 447 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 448 | dependencies: 449 | yallist "^3.0.2" 450 | 451 | make-error@^1.1.1: 452 | version "1.3.4" 453 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" 454 | 455 | minimatch@3.0.4, minimatch@^3.0.4: 456 | version "3.0.4" 457 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 458 | dependencies: 459 | brace-expansion "^1.1.7" 460 | 461 | minimist@0.0.8: 462 | version "0.0.8" 463 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 464 | 465 | minimist@^1.2.0: 466 | version "1.2.0" 467 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 468 | 469 | mkdirp@0.5.1, mkdirp@^0.5.1: 470 | version "0.5.1" 471 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 472 | dependencies: 473 | minimist "0.0.8" 474 | 475 | mocha@^5.1.1: 476 | version "5.1.1" 477 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.1.1.tgz#b774c75609dac05eb48f4d9ba1d827b97fde8a7b" 478 | dependencies: 479 | browser-stdout "1.3.1" 480 | commander "2.11.0" 481 | debug "3.1.0" 482 | diff "3.5.0" 483 | escape-string-regexp "1.0.5" 484 | glob "7.1.2" 485 | growl "1.10.3" 486 | he "1.1.1" 487 | minimatch "3.0.4" 488 | mkdirp "0.5.1" 489 | supports-color "4.4.0" 490 | 491 | ms@2.0.0: 492 | version "2.0.0" 493 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 494 | 495 | ms@2.1.2: 496 | version "2.1.2" 497 | resolved "https://packages.atlassian.com/api/npm/npm-remote/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 498 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 499 | 500 | node-releases@^2.0.8: 501 | version "2.0.10" 502 | resolved "https://packages.atlassian.com/api/npm/npm-remote/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" 503 | integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== 504 | 505 | once@^1.3.0: 506 | version "1.4.0" 507 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 508 | dependencies: 509 | wrappy "1" 510 | 511 | path-is-absolute@^1.0.0: 512 | version "1.0.1" 513 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 514 | 515 | pathval@^1.0.0: 516 | version "1.1.0" 517 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" 518 | 519 | picocolors@^1.0.0: 520 | version "1.0.0" 521 | resolved "https://packages.atlassian.com/api/npm/npm-remote/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 522 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 523 | 524 | semver@^6.3.0: 525 | version "6.3.0" 526 | resolved "https://packages.atlassian.com/api/npm/npm-remote/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 527 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 528 | 529 | source-map-support@^0.5.3: 530 | version "0.5.6" 531 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 532 | dependencies: 533 | buffer-from "^1.0.0" 534 | source-map "^0.6.0" 535 | 536 | source-map@^0.6.0: 537 | version "0.6.1" 538 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 539 | 540 | supports-color@4.4.0: 541 | version "4.4.0" 542 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" 543 | dependencies: 544 | has-flag "^2.0.0" 545 | 546 | supports-color@^5.3.0: 547 | version "5.4.0" 548 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 549 | dependencies: 550 | has-flag "^3.0.0" 551 | 552 | to-fast-properties@^2.0.0: 553 | version "2.0.0" 554 | resolved "https://packages.atlassian.com/api/npm/npm-remote/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 555 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== 556 | 557 | ts-node@^6.0.3: 558 | version "6.0.3" 559 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-6.0.3.tgz#28bf74bcad134fad17f7469dad04638ece03f0f4" 560 | dependencies: 561 | arrify "^1.0.0" 562 | chalk "^2.3.0" 563 | diff "^3.1.0" 564 | make-error "^1.1.1" 565 | minimist "^1.2.0" 566 | mkdirp "^0.5.1" 567 | source-map-support "^0.5.3" 568 | yn "^2.0.0" 569 | 570 | type-detect@^4.0.0: 571 | version "4.0.8" 572 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 573 | 574 | update-browserslist-db@^1.0.10: 575 | version "1.0.10" 576 | resolved "https://packages.atlassian.com/api/npm/npm-remote/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" 577 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== 578 | dependencies: 579 | escalade "^3.1.1" 580 | picocolors "^1.0.0" 581 | 582 | wrappy@1: 583 | version "1.0.2" 584 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 585 | 586 | yallist@^3.0.2: 587 | version "3.1.1" 588 | resolved "https://packages.atlassian.com/api/npm/npm-remote/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 589 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 590 | 591 | yn@^2.0.0: 592 | version "2.0.0" 593 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 594 | --------------------------------------------------------------------------------