From 6fb5c30b1dc7888b34f0d805476d23fa581208dc Mon Sep 17 00:00:00 2001 From: Bronwen Date: Fri, 21 May 2021 23:31:35 -0400 Subject: [PATCH 01/21] systems save to disk. Closes #3 --- package.json | 4 + src/Instance.ts | 62 +++++++++++--- src/KV.ts | 3 - src/Serializable.ts | 198 -------------------------------------------- src/System.ts | 26 ++++-- src/extensions.ts | 5 ++ src/run.ts | 7 +- test/counter.v | 1 + test/main.v | 2 + yarn.lock | 50 +++++++++++ 10 files changed, 136 insertions(+), 222 deletions(-) delete mode 100644 src/KV.ts delete mode 100644 src/Serializable.ts diff --git a/package.json b/package.json index 3eb38b9..7fae617 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,15 @@ }, "dependencies": { "@types/debug": "^4.1.5", + "@types/fs-extra": "^9.0.11", "@types/lodash": "^4.14.169", "@types/nearley": "^2.11.1", "@types/node": "^15.3.0", "@types/uglify-js": "^3.13.0", + "@types/uuid": "^8.3.0", "cross-env": "^7.0.3", "debug": "^4.3.1", + "fs-extra": "^10.0.0", "lodash": "^4.17.21", "moo": "^0.5.1", "nearley": "^2.20.1", @@ -31,6 +34,7 @@ "supervisor": "^0.12.0", "typescript": "^4.2.4", "uglify-js": "^3.13.5", + "uuid": "^8.3.2", "yarn": "^1.22.10" } } diff --git a/src/Instance.ts b/src/Instance.ts index b9b5cb4..ff84599 100644 --- a/src/Instance.ts +++ b/src/Instance.ts @@ -1,20 +1,27 @@ - -import Serializable from './Serializable.js'; -import minify from './minify.js'; import debug from 'debug'; import _ from 'lodash'; const log = debug('vogue:instance'); import vm from 'vm'; -import Module, { Link } from './Module.js'; +import Module, { Link, Variable } from './Module.js'; import System from './System.js'; -import { KV } from './KV.js'; +import * as uuid from 'uuid'; /** * @typedef {import('./System.js').default} System * @typedef {import('./Module.js').default} Module */ +export type SerializedInstance = { + type: string, + links: { + [name: string]: string + }, + members: { + [name: string]: any // SO LONG AS ITS SERIALIZABLE ._.* + }, + id: string +} -export default class Instance extends Serializable { +export default class Instance { module: Module; links = {} system: System; @@ -23,11 +30,12 @@ export default class Instance extends Serializable { internalFunctions = {}; _link: Instance; location: string; + _id: string; createContext(): vm.Context { if(this.context) return this.context; - const initialContext: KV = {}; + const initialContext: any = {}; // system globals! // TODO turn this into its own vogue module! system.create/instance.create @@ -49,34 +57,38 @@ export default class Instance extends Serializable { for(const name in this.module.imports) initialContext[name] = this.module.imports[name]; + // instance defined functions + initialContext.sync = this.system.saveInstance.bind(this.system, this); + const context = vm.createContext(initialContext); + // user defined functions for(const name in this.module.functions) { const { code, parameters, async } = this.module.functions[name]; const injectedScript = ` var ${name} = ${async ? 'async' : ''} function ${name}(${parameters.join(', ')}) ${code} +${name} = ${name}.bind(this); `; - vm.runInContext(injectedScript, context, { - - }); + vm.runInContext(injectedScript, context, {}); } return context; }; constructor(module: Module, location: string, parameters: {[name: string]: any}, system: System) { - super(); this.module = module; this.location = location; this.system = system; this.context = this.createContext(); + this._id = uuid.v4(); this._link = new Proxy(this, { get(target: Instance, prop: string, receiver) { log(`getting ${target.module.name.full}.${prop}: (${target.module.identifiers[prop]}|${typeof target.context[prop]})`); const DNEText = `${target.module.name.full}.${prop.toString()} either does not exist, or is not accessible`; if(prop === 'restore') throw new Error(DNEText); + if(prop === '__link__') return target._id; if(prop in target.module.functions) { return target.context[prop]; @@ -93,4 +105,32 @@ var ${name} = ${async ? 'async' : ''} function ${name}(${parameters.join(', ')}) get link () { return this._link; } + + toSerializableObject(): SerializedInstance { + const obj: any = {}; + obj.type = this.module.name.full; + obj.links = Object.fromEntries(this.module.links.map((link: Link): [string, string] => { + const name = link.name; + const linkId = this.context[name]?.__link__; + return [name, linkId]; + })); + obj.members = Object.fromEntries( + this.module.variables + .filter((member: Variable): boolean => { + return member.persist; + }) + .map((member: Variable): [string, any] => { + const name = member.name; + const value = this.context[name]; + return [name, value]; + }) + ); + obj.id = this._id; + + return obj as SerializedInstance; + } + + toString() { + return this.module.name.full + '(' + this._id + ')'; + } } \ No newline at end of file diff --git a/src/KV.ts b/src/KV.ts deleted file mode 100644 index 795fc4d..0000000 --- a/src/KV.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type KV = { - [key: string]: any -}; \ No newline at end of file diff --git a/src/Serializable.ts b/src/Serializable.ts deleted file mode 100644 index c410650..0000000 --- a/src/Serializable.ts +++ /dev/null @@ -1,198 +0,0 @@ -// import { Ubjson } from '@shelacek/ubjson'; -import { existsSync, readFileSync, writeFileSync } from 'fs'; -import { KV } from './KV'; - -export default class Serializable { - - constructor(...args: any[]) {} - - // things that need to be stored only in cold - // storage are keyed with a special prefix - static CLASS_REFERENCE = '$$CLASS_NAME'; - - // things that need to be stored only at runtime - // are keyed with symbols to not interfere with - // user code. - static PERSIST_LOCATION = Symbol('PERSIST_LOCATION'); - - start() {} - - // toUbj() { - // return Ubjson.encode(this.toSerializableObject()); - // } - - // static fromUbj(buffer) { - // return this.fromSerializableObject(Ubjson.decode(buffer)); - // } - - toJson() { - return JSON.stringify(this.toSerializableObject(), null, 2); - } - - static serializationDependencies(): any[] { - return []; - } - - static fromJson(str: string) { - return this.fromSerializableObject(JSON.parse(str)); - } - - toSerializableObject() { - - const transformValue = (val: any): any => { - if(Array.isArray(val)) { - return transformArray(val); - } else if (val === null || val === undefined) { - return val; - } else if(typeof val === 'object') { - return transformObject(val); - } else { - return val; - } - } - - const transformObject = (obj: KV): KV => { - const clone: KV = {}; - for(const prop of Object.keys(obj)) { - if(prop.startsWith('_')) continue; - - clone[prop] = transformValue(obj[prop]); - } - if(obj instanceof Serializable) { - clone[Serializable.CLASS_REFERENCE] = obj.constructor.name; - } - return clone; - } - - const transformArray = (arr: any[]): any[] => { - const clone = []; - for(const item of arr) { - clone.push(transformValue(item)); - } - return clone; - } - - return transformObject(this); - } - - static fromSerializableObject(obj: KV) { - if(obj[Serializable.CLASS_REFERENCE] !== this.name) return null; - - const transformValue = (val: any): any => { - if(Array.isArray(val)) { - return transformArray(val); - } else if(val === null || val === undefined) { - return val; - } else if(typeof val === 'object') { - if(Serializable.CLASS_REFERENCE in val) { - const classes = this.serializationDependencies(); - const matchingClasses = classes.filter((classObject) => { - classObject.name === val[Serializable.CLASS_REFERENCE] - }); - if(matchingClasses.length === 1) { - return matchingClasses[0].fromSerializableObject(val); - } else { - return transformObject(val); - } - } - return transformObject(val); - } else { - return val; - } - } - - const transformObject = (obj: KV): KV => { - const clone: KV = {}; - for(const prop of Object.keys(obj)) { - if(prop.startsWith('_')) continue; - - clone[prop] = transformValue(obj[prop]); - } - return clone; - } - - const transformArray = (arr: any[]): any[] => { - const clone = []; - for(const item of arr) { - clone.push(transformValue(item)); - } - return clone; - } - - const clone = transformObject(obj); - if(Serializable.CLASS_REFERENCE in obj) - clone.__proto__ = this.prototype; - - clone.restore(); - - return clone; - } - - serialize({ - encoding = 'json' - } = {}) { - - switch(encoding) { - case 'json': return this.toJson(); - case 'ubjson': - // case 'ubj': return this.toUbj(); - default: { - throw new TypeError('Unknown encoding: ' + encoding); - } - } - - } - - static deserialize(obj: any, { - encoding = 'json' - } = {}) { - - switch(encoding) { - case 'json': return this.fromJson(obj); - case 'ubjson': - // case 'ubj': return this.fromUbj(obj); - default: { - throw new TypeError('Unknown encoding: ' + encoding); - } - } - } - - async restore() {} - - static createFromDisk(filename: string, ...args: any[]) { - if(existsSync(filename)) { - const instance = this.deserialize(readFileSync(createFilepath(filename))); - // TS is plain and simply wrong... symbols can be used to index object... - // @ts-ignore - instance[Serializable.PERSIST_LOCATION] = createFilepath(filename); - instance?.restore(); - return instance; - } else { - const instance = new this(...args); - // again... TS is wrong... - // @ts-ignore - instance[Serializable.PERSIST_LOCATION] = createFilepath(filename); - instance?.updateDisk(); - return instance; - } - } - - updateDisk(filepath?: string) { - // if it hasnt yet been written to disk... - // this can happen if the contrustor - // was called outside of createFromDisk - if(filepath) { - // see above... TS7053 is just _wrong_. incorrect. thats not how JS works. - // @ts-ignore - this[Serializable.PERSIST_LOCATION] = createFilepath(filepath); - } - const data = this.serialize(); - // this is getting annoying... - // @ts-ignore - writeFileSync(this[Serializable.PERSIST_LOCATION], data); - } -} - -function createFilepath(path: string) { - return `data/${path}`; -} \ No newline at end of file diff --git a/src/System.ts b/src/System.ts index 0d51240..79e85d6 100644 --- a/src/System.ts +++ b/src/System.ts @@ -1,8 +1,10 @@ import Instance from './Instance.js'; -import Serializable from './Serializable.js'; import _ from 'lodash'; import Module from './Module.js'; import debug from 'debug'; +import { writeFileSync } from 'fs'; +import { resolve } from 'path'; +import { ensureDirSync } from 'fs-extra'; const log = debug('vogue:system') const {get, set} = _; @@ -13,7 +15,7 @@ type ModuleNamespaceMap = { type ModuleName = string; -class System extends Serializable { +class System { instances: Instance[] = []; modules: Module[]; namespace: ModuleNamespaceMap = {}; @@ -23,12 +25,11 @@ class System extends Serializable { rootDir: string; constructor(modules: Module[], rootDir: string) { - super(); + this.rootDir = rootDir; this.modules = modules; this.createNamespace(); const bootModules = this.deriveBootModules(); this.createStaticInstances(); - this.rootDir = rootDir; log('instantiating boot modules...'); for(const name of bootModules) { @@ -79,6 +80,19 @@ class System extends Serializable { }, {}); } + saveInstance(instance: Instance): void { + log('saving ' + instance) + const path = resolve(this.rootDir, '.system'); + ensureDirSync(path); + const file = instance._id + '.json'; + const filepath = resolve(path, file); + log(filepath); + const json = JSON.stringify(instance.toSerializableObject(), null, 2) + log(json); + writeFileSync(filepath, json); + log('synced ' + instance); + } + getModule(name: ModuleName): Module { const module = get(this.namespace, name); if(module instanceof Module) return module; @@ -86,7 +100,9 @@ class System extends Serializable { } createInstance(name: ModuleName, args = {}) { - return new Instance(this.getModule(name), '', args, this); + const instance = new Instance(this.getModule(name), '', args, this); + this.saveInstance(instance); + return instance; } newInstance(name: ModuleName, args = {}) { diff --git a/src/extensions.ts b/src/extensions.ts index e0bb37d..06b0441 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -4,3 +4,8 @@ Object.defineProperty(Array.prototype, 'empty', { return this.length === 0; } }); + + +process.on('unhandledRejection', (reason: Error, p) => { + console.log(reason.stack ?? reason.name + '\n\nStack trace unavailable...'); +}); \ No newline at end of file diff --git a/src/run.ts b/src/run.ts index ed37cc7..5de9ebb 100644 --- a/src/run.ts +++ b/src/run.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env node +#!/usr/bin/env node --enable-source-maps --unhandled-rejections=strict import debug from 'debug'; const log = debug('vogue:cli'); const systemLocation = resolve(process.argv[2]); @@ -11,14 +11,11 @@ import Module from './Module.js'; import System from './System.js'; import './extensions.js'; import { fileURLToPath } from 'url'; -// globals inside grammar context -import minify from './minify'; const { get, set } = _; const standardLibrary = resolve(fileURLToPath(dirname(import.meta.url)), '..', 'lib', 'vogue'); (async () => { - // TODO simplify this line gaddam const ignoreDeps = (path: string) => parse(path).name !== 'node_modules'; const files = [ @@ -35,7 +32,7 @@ const standardLibrary = resolve(fileURLToPath(dirname(import.meta.url)), '..', ' const modules = await Promise.all(fullpaths.map(loc => Module.create(loc, systemLocation))); const sys = new System(modules, systemLocation); -})() +})(); function walkdirSync(root: string, filter: ((path: string) => boolean) = () => true): string[] { log('reading', root, '...'); diff --git a/test/counter.v b/test/counter.v index 3e04bf3..f241772 100644 --- a/test/counter.v +++ b/test/counter.v @@ -2,6 +2,7 @@ member count; increment() { count ++; + sync(); } getCount() { diff --git a/test/main.v b/test/main.v index a901312..cd334cf 100644 --- a/test/main.v +++ b/test/main.v @@ -19,4 +19,6 @@ async restore { // window.setScene() // await counter.render(); + + sync(); } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 3bfd784..4231fa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,6 +6,13 @@ version "4.1.5" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz" +"@types/fs-extra@^9.0.11": + version "9.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" + integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== + dependencies: + "@types/node" "*" + "@types/lodash@^4.14.169": version "4.14.169" resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz" @@ -14,6 +21,11 @@ version "2.11.1" resolved "https://registry.npmjs.org/@types/nearley/-/nearley-2.11.1.tgz" +"@types/node@*": + version "15.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc" + integrity sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A== + "@types/node@^15.3.0": version "15.3.0" resolved "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz" @@ -24,6 +36,11 @@ dependencies: source-map "^0.6.1" +"@types/uuid@^8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" + integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== + async@0.2.10: version "0.2.10" resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz" @@ -62,6 +79,20 @@ discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + immediate@~3.0.5: version "3.0.6" resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" @@ -70,6 +101,15 @@ isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + lie@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz" @@ -172,6 +212,16 @@ underscore@~1.4.4: version "1.4.4" resolved "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" From f604948d715b9610a5629d91ee836af11607026e Mon Sep 17 00:00:00 2001 From: Bronwen Date: Fri, 21 May 2021 23:31:55 -0400 Subject: [PATCH 02/21] attempt to fix travis --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ba8e41f..bc37bc4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,5 @@ node_js: os: - windows - linux - - osx \ No newline at end of file + - osx +env: YARN_GPG=no \ No newline at end of file From 7a12c1adb8c74ce55497d9fb9ddf4fbc764f35b5 Mon Sep 17 00:00:00 2001 From: Bronwen Date: Fri, 21 May 2021 23:43:08 -0400 Subject: [PATCH 03/21] automatic syncing of members on change. Closes #2 --- .gitignore | 1 + .npmignore | 3 ++- src/Instance.ts | 22 ++++++++++++++++++++-- test/counter.v | 1 - 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 884a4d8..1998067 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules out +.system \ No newline at end of file diff --git a/.npmignore b/.npmignore index ff53e28..4a8977f 100644 --- a/.npmignore +++ b/.npmignore @@ -2,4 +2,5 @@ node_modules src test .editorconfig -tsconfig.json \ No newline at end of file +tsconfig.json +.system \ No newline at end of file diff --git a/src/Instance.ts b/src/Instance.ts index ff84599..567fc49 100644 --- a/src/Instance.ts +++ b/src/Instance.ts @@ -52,8 +52,11 @@ export default class Instance { initialContext[link.name] = []; for(const link of this.module.links.filter((v: Link) => !v.array && !v.required)) initialContext[link.name] = null; - for(const variable of this.module.variables) - initialContext[variable.name] = null; + for(const variable of this.module.variables) { + attachHookedProperty(initialContext, variable.name, null, () => { + this.system.saveInstance(this); + }) + } for(const name in this.module.imports) initialContext[name] = this.module.imports[name]; @@ -133,4 +136,19 @@ ${name} = ${name}.bind(this); toString() { return this.module.name.full + '(' + this._id + ')'; } +} + +function attachHookedProperty(target: any, name: string, initialValue: any, changedHook: () => void) { + const propId = uuid.v4(); + target[propId] = initialValue; + // TODO if its an object, replace it with a dead simple proxy? for detecting internal changes... + Object.defineProperty(target, name, { + get() { + return target[propId]; + }, + set(value) { + target[propId] = value; + changedHook(); + } + }) } \ No newline at end of file diff --git a/test/counter.v b/test/counter.v index f241772..3e04bf3 100644 --- a/test/counter.v +++ b/test/counter.v @@ -2,7 +2,6 @@ member count; increment() { count ++; - sync(); } getCount() { From 24467f479ae684ce5135b95a3920bf46802fcadc Mon Sep 17 00:00:00 2001 From: Valerie Date: Sat, 22 May 2021 13:18:01 -0400 Subject: [PATCH 04/21] lots of potential issues, but definitely Closes #21 --- package.json | 2 +- src/Instance.ts | 96 ++++++++++++++++++++++++++++++------------ src/Module.ts | 4 +- src/System.ts | 108 +++++++++++++++++++++++++++++++++++++++++------- vogue-0.0.1.tgz | Bin 30409 -> 0 bytes 5 files changed, 165 insertions(+), 45 deletions(-) delete mode 100644 vogue-0.0.1.tgz diff --git a/package.json b/package.json index 7fae617..453cd61 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "scripts": { "test": "node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug": "cross-env DEBUG=vogue:* yarn test", - "debug:watch": "cross-env DEBUG=vogue:* supervisor -w out,test,lib -n exit --exec yarn -- test", + "debug:watch": "cross-env DEBUG=vogue:* supervisor -w out,test/**/*.v,lib -n exit --exec yarn -- test", "postinstall": "yarn compile && cd test && yarn", "postcompile:watch": "echo DONE", "compile": "tsc", diff --git a/src/Instance.ts b/src/Instance.ts index 567fc49..9ce88dd 100644 --- a/src/Instance.ts +++ b/src/Instance.ts @@ -2,7 +2,7 @@ import debug from 'debug'; import _ from 'lodash'; const log = debug('vogue:instance'); import vm from 'vm'; -import Module, { Link, Variable } from './Module.js'; +import Module, { LinkDescription, Variable } from './Module.js'; import System from './System.js'; import * as uuid from 'uuid'; /** @@ -10,6 +10,8 @@ import * as uuid from 'uuid'; * @typedef {import('./Module.js').default} Module */ +export type Link = any; // BUT PROXY + export type SerializedInstance = { type: string, links: { @@ -25,38 +27,49 @@ export default class Instance { module: Module; links = {} system: System; - context: vm.Context; + context: vm.Context | null = null; locals = []; internalFunctions = {}; _link: Instance; location: string; _id: string; + initialContext: any = {}; + + get currentContext(): any { + return this.context ?? this.initialContext; + } + + sync() { + this.system.saveInstance(this); + } createContext(): vm.Context { if(this.context) return this.context; + const initialContext: any = {}; // system globals! // TODO turn this into its own vogue module! system.create/instance.create // TODO request context from system... - initialContext.create = this.system.newInstance.bind(this.system); + initialContext.create = this.system.newLink.bind(this.system); initialContext.process = process; - for(const name in this.system.staticInstances) - initialContext[name] = this.system.staticInstances[name]; + for(const name in this.system.staticLinks) { + log('creating context with static link: ' + name); + initialContext[name] = this.system.staticLinks[name]; + } // local links! // optional arrays // TODO maybe make these property accessors to allow for some automation - for(const link of this.module.links.filter((v: Link) => v.array && !v.required)) + for(const link of this.module.links.filter((v: LinkDescription) => v.array && !v.required)) initialContext[link.name] = []; - for(const link of this.module.links.filter((v: Link) => !v.array && !v.required)) + for(const link of this.module.links.filter((v: LinkDescription) => !v.array && !v.required)) initialContext[link.name] = null; - for(const variable of this.module.variables) { - attachHookedProperty(initialContext, variable.name, null, () => { - this.system.saveInstance(this); - }) - } + for(const variable of this.module.variables) + attachHookedProperty(initialContext, variable.name, null, this.sync.bind(this)) + for(const name in this.initialContext) + initialContext[name] = this.initialContext[name] for(const name in this.module.imports) initialContext[name] = this.module.imports[name]; @@ -68,41 +81,70 @@ export default class Instance { // user defined functions for(const name in this.module.functions) { const { code, parameters, async } = this.module.functions[name]; - const injectedScript = -` -var ${name} = ${async ? 'async' : ''} function ${name}(${parameters.join(', ')}) ${code} -${name} = ${name}.bind(this); -`; + const injectedScript = ` + var ${name} = ${async ? 'async ' : ''}function ${name}(${parameters.join(', ')}) ${code} + ${name} = ${name}.bind(this);`.trim(); + // log('injecting function...') + // log(injectedScript) vm.runInContext(injectedScript, context, {}); } + log('context created! ' + Object.keys(context)); + // log(context); + return context; }; - constructor(module: Module, location: string, parameters: {[name: string]: any}, system: System) { + setMember(name: string, value: any) { + log('setMember: ' + this.toString() + '.' + name + ' => ' + value); + this.currentContext[name] = value; + } + + setLink(name: string, value: Link) { + log('setLink: ' + this.toString() + '.' + name + ' => ' + value.__link__); + this.currentContext[name] = value; + } + + constructor( + module: Module, + location: string, + parameters: {[name: string]: any}, + system: System, + options?: { + id?: string + } + ) { this.module = module; this.location = location; this.system = system; - this.context = this.createContext(); - this._id = uuid.v4(); + // this.context = this.createContext(); + this._id = options?.id ?? uuid.v4(); this._link = new Proxy(this, { get(target: Instance, prop: string, receiver) { - log(`getting ${target.module.name.full}.${prop}: (${target.module.identifiers[prop]}|${typeof target.context[prop]})`); + log(`getting ${target.module.name.full}.${prop.toString()}: (${target.module.identifiers[prop]}|${typeof target.context?.[prop]})`); + + if(target.context === null) + target.restore(); + const DNEText = `${target.module.name.full}.${prop.toString()} either does not exist, or is not accessible`; if(prop === 'restore') throw new Error(DNEText); if(prop === '__link__') return target._id; if(prop in target.module.functions) { - return target.context[prop]; + return target.context?.[prop]; } throw new Error(DNEText); } }); + log('created ' + this); } restore() { - return this.context.restore?.(); + if(this.context === null) + this.context = this.createContext(); + + return this.context?.restore?.(); } get link () { @@ -112,9 +154,9 @@ ${name} = ${name}.bind(this); toSerializableObject(): SerializedInstance { const obj: any = {}; obj.type = this.module.name.full; - obj.links = Object.fromEntries(this.module.links.map((link: Link): [string, string] => { + obj.links = Object.fromEntries(this.module.links.map((link: LinkDescription): [string, string] => { const name = link.name; - const linkId = this.context[name]?.__link__; + const linkId = this.context?.[name]?.__link__; return [name, linkId]; })); obj.members = Object.fromEntries( @@ -124,7 +166,7 @@ ${name} = ${name}.bind(this); }) .map((member: Variable): [string, any] => { const name = member.name; - const value = this.context[name]; + const value = this.context?.[name]; return [name, value]; }) ); @@ -134,7 +176,7 @@ ${name} = ${name}.bind(this); } toString() { - return this.module.name.full + '(' + this._id + ')'; + return this.module.name.full + '(' + this._id.substr(0, 4) + ')'; } } diff --git a/src/Module.ts b/src/Module.ts index 5e9f3a7..c36c14e 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -14,7 +14,7 @@ import { createRequire } from 'module'; import { pathToFileURL } from 'url'; const log = debug('vogue:module'); -export type Link = { +export type LinkDescription = { name: string, array: boolean, required: boolean @@ -26,7 +26,7 @@ export type Variable = { } export default class Module { - links: Link[] = []; + links: LinkDescription[] = []; globals = []; functions: { [name: string]: { diff --git a/src/System.ts b/src/System.ts index 79e85d6..503bb6c 100644 --- a/src/System.ts +++ b/src/System.ts @@ -1,8 +1,8 @@ -import Instance from './Instance.js'; +import Instance, { Link, SerializedInstance } from './Instance.js'; import _ from 'lodash'; import Module from './Module.js'; import debug from 'debug'; -import { writeFileSync } from 'fs'; +import { lstatSync, readdirSync, readFileSync, writeFileSync } from 'fs'; import { resolve } from 'path'; import { ensureDirSync } from 'fs-extra'; const log = debug('vogue:system') @@ -16,11 +16,11 @@ type ModuleNamespaceMap = { type ModuleName = string; class System { - instances: Instance[] = []; + instances: Map = new Map(); modules: Module[]; namespace: ModuleNamespaceMap = {}; - staticInstances: { - [key: string]: Instance + staticLinks: { + [key: string]: Link } = {}; rootDir: string; @@ -28,16 +28,87 @@ class System { this.rootDir = rootDir; this.modules = modules; this.createNamespace(); + + const vault = readdirSync(resolve(this.rootDir, '.system')).map(v => resolve(this.rootDir, '.system', v)); + const serializedInstances: SerializedInstance[] = vault.map((v) => JSON.parse(readFileSync(v).toString())); + + log('injecting serialized instances...'); + for(const serializedInstance of serializedInstances) + this.injectSerializedInstance(serializedInstance); + log('linking serialized instances...'); + for(const serializedInstance of serializedInstances) + this.linkSerializedInstance(serializedInstance); + + log('restoring static instances...'); + for(const [,instance] of this.instances) { + if(!!instance.module.static) { + instance.restore(); + } + } + + log('restoring boot instances...'); + for(const [,instance] of this.instances) { + if(!!instance.module.singleton) { + instance.restore(); + } + } + // this.inject(serializedInstance); + + + if (vault.length !== 0) { + return this; + } + + // TODO future workflow notes + // pull jsons into boots + // filter json boots + // create static / singletons into boots + // boot boots! + + const bootModules = this.deriveBootModules(); this.createStaticInstances(); log('instantiating boot modules...'); for(const name of bootModules) { log(' ' + name); - this.newInstance(name); + this.newLink(name); } } + linkSerializedInstance(serializedInstance: SerializedInstance): void { + const instance = this.getInstanceById(serializedInstance.id); + for(const name in serializedInstance.links) { + const linkId = serializedInstance.links[name] + const linkedInstance = this.getInstanceById(linkId); + const linkedInstanceLink = linkedInstance.link; + instance.setLink(name, linkedInstanceLink); + } + } + + injectSerializedInstance(serializedInstance: SerializedInstance): void { + const instance = new Instance(this.getModule(serializedInstance.type), this.rootDir, {}, this, { + id: serializedInstance.id + }); + this.instances.set(instance._id, instance); + + for(const name in serializedInstance.members) { + instance.setMember(name, serializedInstance.members[name]); + } + + if(instance.module.static) { + log('injected static instance ' + instance.module.static + ': ' + instance.module.name.full); + this.staticLinks[instance.module.static] = instance.link; + } + } + + getInstanceById(id: string): Instance { + if(!this.instances.has(id)) + throw new Error(`${id} is not a valid instance link id`); + + return this.instances.get(id) as Instance; + } + createStaticInstances() { log('deriving static modules...'); const staticModules = this.modules.filter((module) => { @@ -50,8 +121,8 @@ class System { log('instantiating static modules...'); for(const module of staticModules) { log(' ' + module.static + ': ' + module.name.full); - this.staticInstances[module.static] = - this.newInstance(module.name.full, {}); + this.staticLinks[module.static] = + this.newLink(module.name.full, {}); } } @@ -81,16 +152,13 @@ class System { } saveInstance(instance: Instance): void { - log('saving ' + instance) const path = resolve(this.rootDir, '.system'); ensureDirSync(path); const file = instance._id + '.json'; const filepath = resolve(path, file); - log(filepath); + log('saving ' + instance + '...'); const json = JSON.stringify(instance.toSerializableObject(), null, 2) - log(json); writeFileSync(filepath, json); - log('synced ' + instance); } getModule(name: ModuleName): Module { @@ -100,12 +168,12 @@ class System { } createInstance(name: ModuleName, args = {}) { - const instance = new Instance(this.getModule(name), '', args, this); + const instance = new Instance(this.getModule(name), this.rootDir, args, this); this.saveInstance(instance); return instance; } - newInstance(name: ModuleName, args = {}) { + newLink(name: ModuleName, args = {}) { const instance = this.createInstance(name, args); const link = instance.link; instance.restore(); @@ -113,4 +181,14 @@ class System { } } -export default System; \ No newline at end of file +export default System; + +// class SerializedInstanceInjector { +// system: System; +// serializedInstances: SerializedInstance[]; + +// constructor(serializedInstances: SerializedInstance[], system: System) { +// this.serializedInstances = serializedInstances; +// this.system = system; +// } +// } \ No newline at end of file diff --git a/vogue-0.0.1.tgz b/vogue-0.0.1.tgz deleted file mode 100644 index 7b94f1e2e2771997cf2f16b5084a4d7e24f60eef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30409 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 E08u|%{r~^~ From 6c62ae499436c29f7f9d7538658fd21816cbacd1 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sat, 22 May 2021 13:18:30 -0400 Subject: [PATCH 05/21] cleanup --- .gitignore | 3 ++- .npmignore | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1998067..b017598 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules out -.system \ No newline at end of file +.system +*.tgz \ No newline at end of file diff --git a/.npmignore b/.npmignore index 4a8977f..76e8274 100644 --- a/.npmignore +++ b/.npmignore @@ -3,4 +3,5 @@ src test .editorconfig tsconfig.json -.system \ No newline at end of file +.system +*.tgz \ No newline at end of file From 463ecc62c1677840aff4ad04bc16aac04c3c8838 Mon Sep 17 00:00:00 2001 From: Bronwen Date: Sat, 22 May 2021 16:36:11 -0400 Subject: [PATCH 06/21] better tests? --- src/System.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/System.ts b/src/System.ts index 503bb6c..b7167e9 100644 --- a/src/System.ts +++ b/src/System.ts @@ -28,6 +28,8 @@ class System { this.rootDir = rootDir; this.modules = modules; this.createNamespace(); + + ensureDirSync(resolve(this.rootDir, '.system')); const vault = readdirSync(resolve(this.rootDir, '.system')).map(v => resolve(this.rootDir, '.system', v)); const serializedInstances: SerializedInstance[] = vault.map((v) => JSON.parse(readFileSync(v).toString())); From 23925a030f4a71043fb9ba4725072e2f4ab444e5 Mon Sep 17 00:00:00 2001 From: Bronwen Date: Sat, 22 May 2021 18:13:26 -0400 Subject: [PATCH 07/21] namespace parse tests! --- package.json | 6 +- tests/lexer.js | 20 ++ tests/modules/namespaceX.v | 1 + tests/modules/namespaceXY.v | 1 + tests/modules/namespaceXYZ.v | 1 + yarn.lock | 585 ++++++++++++++++++++++++++++++++++- 6 files changed, 610 insertions(+), 4 deletions(-) create mode 100644 tests/lexer.js create mode 100644 tests/modules/namespaceX.v create mode 100644 tests/modules/namespaceXY.v create mode 100644 tests/modules/namespaceXYZ.v diff --git a/package.json b/package.json index 453cd61..cd69462 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "vogue": "out/run.js" }, "scripts": { - "test": "node --enable-source-maps --unhandled-rejections=strict out/run.js test", - "debug": "cross-env DEBUG=vogue:* yarn test", + "test": "mocha tests", + "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "cross-env DEBUG=vogue:* supervisor -w out,test/**/*.v,lib -n exit --exec yarn -- test", "postinstall": "yarn compile && cd test && yarn", "postcompile:watch": "echo DONE", @@ -24,10 +24,12 @@ "@types/node": "^15.3.0", "@types/uglify-js": "^3.13.0", "@types/uuid": "^8.3.0", + "chai": "^4.3.4", "cross-env": "^7.0.3", "debug": "^4.3.1", "fs-extra": "^10.0.0", "lodash": "^4.17.21", + "mocha": "^8.4.0", "moo": "^0.5.1", "nearley": "^2.20.1", "nedb": "^1.8.0", diff --git a/tests/lexer.js b/tests/lexer.js new file mode 100644 index 0000000..1bc706c --- /dev/null +++ b/tests/lexer.js @@ -0,0 +1,20 @@ +import { createAst } from './../out/createAst.js'; +import { readFileSync } from 'fs'; +import { resolve, parse } from 'path'; +import { fileURLToPath } from 'node:url'; +import { expect } from 'chai'; + +describe('Lexer', () => { + it('parses namespaces without dots', () => { + const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceX.v')); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); + }); + it('parses namespaces with a single dot', () => { + const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceXY.v')); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); + }); + it('parses namespaces two dots', () => { + const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceXYZ.v')); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); + }); +}) \ No newline at end of file diff --git a/tests/modules/namespaceX.v b/tests/modules/namespaceX.v new file mode 100644 index 0000000..cf48ea6 --- /dev/null +++ b/tests/modules/namespaceX.v @@ -0,0 +1 @@ +namespace x; \ No newline at end of file diff --git a/tests/modules/namespaceXY.v b/tests/modules/namespaceXY.v new file mode 100644 index 0000000..ed48418 --- /dev/null +++ b/tests/modules/namespaceXY.v @@ -0,0 +1 @@ +namespace x.y; \ No newline at end of file diff --git a/tests/modules/namespaceXYZ.v b/tests/modules/namespaceXYZ.v new file mode 100644 index 0000000..c8624b5 --- /dev/null +++ b/tests/modules/namespaceXYZ.v @@ -0,0 +1 @@ +namespace x.y.z; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 4231fa1..8bec488 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,20 +41,166 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + async@0.2.10: version "0.2.10" resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz" +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + binary-search-tree@0.2.5: version "0.2.5" resolved "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz" dependencies: underscore "~1.4.4" +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +chai@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" + integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + commander@^2.19.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + cross-env@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" @@ -69,16 +215,68 @@ cross-spawn@^7.0.1: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.3.1: +debug@4.3.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" dependencies: ms "2.1.2" +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -88,19 +286,132 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + 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" + graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + immediate@~3.0.5: version "3.0.6" resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -122,10 +433,31 @@ localforage@^1.3.0: dependencies: lie "3.1.1" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.2.5: version "1.2.5" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" @@ -136,6 +468,37 @@ mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +mocha@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + moo@^0.5.0, moo@^0.5.1: version "0.5.1" resolved "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz" @@ -144,6 +507,16 @@ ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + nearley@^2.20.1: version "2.20.1" resolved "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz" @@ -163,10 +536,56 @@ nedb@^1.8.0: mkdirp "~0.5.1" underscore "~1.4.4" +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" @@ -178,10 +597,41 @@ randexp@0.4.6: discontinuous-range "1.0.0" ret "~0.1.10" +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -196,10 +646,72 @@ source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + supervisor@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz" +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + typescript@^4.2.4: version "4.2.4" resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz" @@ -222,12 +734,81 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -which@^2.0.1: +which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" dependencies: isexe "^2.0.0" +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yarn@^1.22.10: version "1.22.10" resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 95bafd405887e316bb375b81bb62c2129e2dc88f Mon Sep 17 00:00:00 2001 From: Bronwen Date: Sat, 22 May 2021 18:27:59 -0400 Subject: [PATCH 08/21] test watcher... test link parsing --- package.json | 1 + tests/lexer.js | 49 +++++++++++++++++++++---------- tests/lib/ModuleFiles.js | 16 ++++++++++ tests/modules/link.v | 1 + tests/modules/linkArray.v | 1 + tests/modules/requiredLink.v | 1 + tests/modules/requiredLinkArray.v | 1 + 7 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 tests/lib/ModuleFiles.js create mode 100644 tests/modules/link.v create mode 100644 tests/modules/linkArray.v create mode 100644 tests/modules/requiredLink.v create mode 100644 tests/modules/requiredLinkArray.v diff --git a/package.json b/package.json index cd69462..bcbc433 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "scripts": { "test": "mocha tests", + "test:watch": "supervisor -n exit -w out,tests --exec mocha -- tests", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "cross-env DEBUG=vogue:* supervisor -w out,test/**/*.v,lib -n exit --exec yarn -- test", "postinstall": "yarn compile && cd test && yarn", diff --git a/tests/lexer.js b/tests/lexer.js index 1bc706c..9ec60c3 100644 --- a/tests/lexer.js +++ b/tests/lexer.js @@ -1,20 +1,39 @@ import { createAst } from './../out/createAst.js'; -import { readFileSync } from 'fs'; -import { resolve, parse } from 'path'; -import { fileURLToPath } from 'node:url'; import { expect } from 'chai'; +import * as ModuleFiles from './lib/ModuleFiles.js' describe('Lexer', () => { - it('parses namespaces without dots', () => { - const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceX.v')); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); - }); - it('parses namespaces with a single dot', () => { - const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceXY.v')); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); - }); - it('parses namespaces two dots', () => { - const ast = createAst(resolve(parse(fileURLToPath(import.meta.url)).dir, 'modules', 'namespaceXYZ.v')); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); - }); + describe('namespaces', () => { + it('parses namespaces without dots', () => { + const ast = createAst(ModuleFiles.namespaceX); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); + }); + it('parses namespaces with a single dot', () => { + const ast = createAst(ModuleFiles.namespaceXY); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); + }); + it('parses namespaces two dots', () => { + const ast = createAst(ModuleFiles.namespaceXYZ); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); + }); + }) + + describe('links', () => { + it('parses link', () => { + const ast = createAst(ModuleFiles.link); + expect(ast).to.deep.equal([{type: 'link', array: false, required: false, name: 'test'}]); + }); + it('parses required link', () => { + const ast = createAst(ModuleFiles.requiredLink); + expect(ast).to.deep.equal([{type: 'link', array: false, required: true, name: 'test'}]); + }); + it('parses link array', () => { + const ast = createAst(ModuleFiles.linkArray); + expect(ast).to.deep.equal([{type: 'link', array: true, required: false, name: 'test'}]); + }); + it('parses required link array', () => { + const ast = createAst(ModuleFiles.requiredLinkArray); + expect(ast).to.deep.equal([{type: 'link', array: true, required: true, name: 'test'}]); + }); + }) }) \ No newline at end of file diff --git a/tests/lib/ModuleFiles.js b/tests/lib/ModuleFiles.js new file mode 100644 index 0000000..1432925 --- /dev/null +++ b/tests/lib/ModuleFiles.js @@ -0,0 +1,16 @@ + +import { resolve, parse } from 'path'; +import { fileURLToPath } from 'node:url'; + +function file(str) { + return resolve(parse(fileURLToPath(import.meta.url)).dir, '..', 'modules', str + '.v') +} + +export const namespaceX = file('namespaceX'); +export const namespaceXY = file('namespaceXY'); +export const namespaceXYZ = file('namespaceXYZ'); + +export const link = file('link'); +export const linkArray = file('linkArray'); +export const requiredLink = file('requiredLink'); +export const requiredLinkArray = file('requiredLinkArray'); diff --git a/tests/modules/link.v b/tests/modules/link.v new file mode 100644 index 0000000..097a07e --- /dev/null +++ b/tests/modules/link.v @@ -0,0 +1 @@ +link test; \ No newline at end of file diff --git a/tests/modules/linkArray.v b/tests/modules/linkArray.v new file mode 100644 index 0000000..567628c --- /dev/null +++ b/tests/modules/linkArray.v @@ -0,0 +1 @@ +link[] test; \ No newline at end of file diff --git a/tests/modules/requiredLink.v b/tests/modules/requiredLink.v new file mode 100644 index 0000000..db246e1 --- /dev/null +++ b/tests/modules/requiredLink.v @@ -0,0 +1 @@ +required link test; \ No newline at end of file diff --git a/tests/modules/requiredLinkArray.v b/tests/modules/requiredLinkArray.v new file mode 100644 index 0000000..aa7d649 --- /dev/null +++ b/tests/modules/requiredLinkArray.v @@ -0,0 +1 @@ +required link[] test; \ No newline at end of file From ca7f49e938d8a853ceb002d55ded023277f0eada Mon Sep 17 00:00:00 2001 From: Bronwen Date: Sun, 23 May 2021 17:38:54 -0400 Subject: [PATCH 09/21] coverage, better scripts & dev env --- .gitignore | 4 +- .mocharc.json | 8 + .npmignore | 4 +- .nycrc.json | 9 + examples/test/main.v | 5 + examples/{valyria => test}/package.json | 0 examples/{valyria => test}/yarn.lock | 1 + examples/valyria/main.v | 6 - package.json | 22 +- src/createAst.ts | 1 - src/extensions.ts | 8 +- src/minify.ts | 28 +- test/extensions.test.ts | 11 + test/lexer.test.ts | 82 ++++ test/lib/ModuleFiles.ts | 27 ++ test/modules/AsyncFunctionOneParam.v | 3 + test/modules/asyncFunctionEmptyParams.v | 3 + test/modules/asyncFunctionNoParams.v | 3 + test/modules/asyncFunctionTwoParams.v | 3 + test/modules/blank.v | 0 test/modules/functionEmptyParams.v | 3 + test/modules/functionNoParams.v | 3 + test/modules/functionOneParam.v | 3 + test/modules/functionTwoParams.v | 3 + {tests => test}/modules/link.v | 0 {tests => test}/modules/linkArray.v | 0 {tests => test}/modules/namespaceX.v | 0 {tests => test}/modules/namespaceXY.v | 0 {tests => test}/modules/namespaceXYZ.v | 0 {tests => test}/modules/requiredLink.v | 0 {tests => test}/modules/requiredLinkArray.v | 0 test/pawn.v | 6 - test/{ => system}/counter.v | 0 test/{ => system}/main.v | 0 test/{ => system}/package.json | 5 +- test/system/yarn.lock | 176 ++++++++ test/trees.v | 11 - test/tsconfig.json | 14 + test/world.v | 16 - test/yarn.lock | 346 ---------------- tests/lexer.js | 39 -- tests/lib/ModuleFiles.js | 16 - yarn.lock | 423 +++++++++++++++++--- 43 files changed, 768 insertions(+), 524 deletions(-) create mode 100644 .mocharc.json create mode 100644 .nycrc.json create mode 100644 examples/test/main.v rename examples/{valyria => test}/package.json (100%) rename examples/{valyria => test}/yarn.lock (96%) delete mode 100644 examples/valyria/main.v create mode 100644 test/extensions.test.ts create mode 100644 test/lexer.test.ts create mode 100644 test/lib/ModuleFiles.ts create mode 100644 test/modules/AsyncFunctionOneParam.v create mode 100644 test/modules/asyncFunctionEmptyParams.v create mode 100644 test/modules/asyncFunctionNoParams.v create mode 100644 test/modules/asyncFunctionTwoParams.v create mode 100644 test/modules/blank.v create mode 100644 test/modules/functionEmptyParams.v create mode 100644 test/modules/functionNoParams.v create mode 100644 test/modules/functionOneParam.v create mode 100644 test/modules/functionTwoParams.v rename {tests => test}/modules/link.v (100%) rename {tests => test}/modules/linkArray.v (100%) rename {tests => test}/modules/namespaceX.v (100%) rename {tests => test}/modules/namespaceXY.v (100%) rename {tests => test}/modules/namespaceXYZ.v (100%) rename {tests => test}/modules/requiredLink.v (100%) rename {tests => test}/modules/requiredLinkArray.v (100%) delete mode 100644 test/pawn.v rename test/{ => system}/counter.v (100%) rename test/{ => system}/main.v (100%) rename test/{ => system}/package.json (60%) create mode 100644 test/system/yarn.lock delete mode 100644 test/trees.v create mode 100644 test/tsconfig.json delete mode 100644 test/world.v delete mode 100644 test/yarn.lock delete mode 100644 tests/lexer.js delete mode 100644 tests/lib/ModuleFiles.js diff --git a/.gitignore b/.gitignore index b017598..a4f0abd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ node_modules out .system -*.tgz \ No newline at end of file +*.tgz +.nyc_output +coverage \ No newline at end of file diff --git a/.mocharc.json b/.mocharc.json new file mode 100644 index 0000000..f2ab853 --- /dev/null +++ b/.mocharc.json @@ -0,0 +1,8 @@ +{ + "spec": [ + "test/**/*.test.ts" + ], + "loader": [ + "ts-node/esm.mjs" + ] +} \ No newline at end of file diff --git a/.npmignore b/.npmignore index 76e8274..9475183 100644 --- a/.npmignore +++ b/.npmignore @@ -4,4 +4,6 @@ test .editorconfig tsconfig.json .system -*.tgz \ No newline at end of file +*.tgz +.nyc_output +coverage \ No newline at end of file diff --git a/.nycrc.json b/.nycrc.json new file mode 100644 index 0000000..c686840 --- /dev/null +++ b/.nycrc.json @@ -0,0 +1,9 @@ +{ + "extension": [ + ".ts" + ], + "require": [ + "ts-node/esm.mjs" + ], + "cache": false +} \ No newline at end of file diff --git a/examples/test/main.v b/examples/test/main.v new file mode 100644 index 0000000..745b90d --- /dev/null +++ b/examples/test/main.v @@ -0,0 +1,5 @@ +singleton; + +restore { + console.log('worked!\n'.repeat(10)); +} \ No newline at end of file diff --git a/examples/valyria/package.json b/examples/test/package.json similarity index 100% rename from examples/valyria/package.json rename to examples/test/package.json diff --git a/examples/valyria/yarn.lock b/examples/test/yarn.lock similarity index 96% rename from examples/valyria/yarn.lock rename to examples/test/yarn.lock index e5e646d..c5dc1d0 100644 --- a/examples/valyria/yarn.lock +++ b/examples/test/yarn.lock @@ -509,6 +509,7 @@ tar-stream@^2.1.4: terminal-kit@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/terminal-kit/-/terminal-kit-2.1.2.tgz#08689ff9f8efc6614d34d4cc7be916a91742b896" + integrity sha512-1eG7CrQfE1dd5ZHPG5WrTk/DTeskFPqSLEl+QYmvwvI41dRCN2j1qVyxA4FwE0/x24AbjhSA3FJSIgWqQD610Q== dependencies: "@cronvel/get-pixels" "^3.4.0" chroma-js "^2.1.1" diff --git a/examples/valyria/main.v b/examples/valyria/main.v deleted file mode 100644 index c2e4461..0000000 --- a/examples/valyria/main.v +++ /dev/null @@ -1,6 +0,0 @@ -singleton; -link window - -restore { - window ??= create('SDL.window'); -} \ No newline at end of file diff --git a/package.json b/package.json index bcbc433..fd1ada1 100644 --- a/package.json +++ b/package.json @@ -8,33 +8,39 @@ "vogue": "out/run.js" }, "scripts": { - "test": "mocha tests", - "test:watch": "supervisor -n exit -w out,tests --exec mocha -- tests", + "test": "c8 --all mocha", + "test:watch": "mocha", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", - "debug:watch": "cross-env DEBUG=vogue:* supervisor -w out,test/**/*.v,lib -n exit --exec yarn -- test", - "postinstall": "yarn compile && cd test && yarn", - "postcompile:watch": "echo DONE", - "compile": "tsc", - "compile:watch": "tsc --watch" + "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", + "compile": "tsc --listEmittedFiles", + "compile:watch": "yarn compile --watch --preserveWatchOutput", + "postinstall": "yarn compile" }, "dependencies": { + "@types/chai": "^4.2.18", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.11", + "@types/jest": "^26.0.23", "@types/lodash": "^4.14.169", "@types/nearley": "^2.11.1", "@types/node": "^15.3.0", + "@types/sinon": "^10.0.0", "@types/uglify-js": "^3.13.0", "@types/uuid": "^8.3.0", + "c8": "^7.7.2", "chai": "^4.3.4", "cross-env": "^7.0.3", "debug": "^4.3.1", + "esm": "^3.2.25", "fs-extra": "^10.0.0", "lodash": "^4.17.21", "mocha": "^8.4.0", + "mocha-lcov-reporter": "^1.3.0", "moo": "^0.5.1", "nearley": "^2.20.1", - "nedb": "^1.8.0", + "sinon": "^10.0.0", "supervisor": "^0.12.0", + "ts-node": "^9.1.1", "typescript": "^4.2.4", "uglify-js": "^3.13.5", "uuid": "^8.3.2", diff --git a/src/createAst.ts b/src/createAst.ts index e527371..fa7f6b4 100644 --- a/src/createAst.ts +++ b/src/createAst.ts @@ -14,7 +14,6 @@ import { readFileSync } from 'fs'; import debug from 'debug'; import { resolve, dirname } from 'path'; import { fileURLToPath } from 'url'; -import minify from './minify.js'; const log = debug('vogue:ast'); const grammarFile = resolve(fileURLToPath(dirname(import.meta.url)), '..', 'lib', 'grammar.ne'); diff --git a/src/extensions.ts b/src/extensions.ts index 06b0441..c1422e4 100644 --- a/src/extensions.ts +++ b/src/extensions.ts @@ -5,7 +5,7 @@ Object.defineProperty(Array.prototype, 'empty', { } }); - -process.on('unhandledRejection', (reason: Error, p) => { - console.log(reason.stack ?? reason.name + '\n\nStack trace unavailable...'); -}); \ No newline at end of file +// in theory we dont need this anymore... with strict promise rejections... +// process.on('unhandledRejection', (reason: Error, p) => { +// console.log(reason.stack ?? reason.name + '\n\nStack trace unavailable...'); +// }); \ No newline at end of file diff --git a/src/minify.ts b/src/minify.ts index 20535d1..d64f379 100644 --- a/src/minify.ts +++ b/src/minify.ts @@ -1,16 +1,16 @@ -import uglify from 'uglify-js'; +// import uglify from 'uglify-js'; -export default (code: string): string => { - return uglify.minify(code, { - compress: { - dead_code: true, - global_defs: { - DEBUG: false - } - }, - sourceMap: { - content: 'inline' - } - }).code; -} \ No newline at end of file +// export default (code: string): string => { +// return uglify.minify(code, { +// compress: { +// dead_code: true, +// global_defs: { +// DEBUG: false +// } +// }, +// sourceMap: { +// content: 'inline' +// } +// }).code; +// } \ No newline at end of file diff --git a/test/extensions.test.ts b/test/extensions.test.ts new file mode 100644 index 0000000..d22e16e --- /dev/null +++ b/test/extensions.test.ts @@ -0,0 +1,11 @@ +import { expect } from 'chai'; +import '../src/extensions.ts'; +import sinon from 'sinon'; + +describe('extensions', () => { + it('creates empty array extensions', () => { + expect(([] as any).empty).to.be.true; + expect(([1] as any).empty).to.be.false; + expect(([1, 2, 3] as any).empty).to.be.false; + }); +}) \ No newline at end of file diff --git a/test/lexer.test.ts b/test/lexer.test.ts new file mode 100644 index 0000000..817b0ce --- /dev/null +++ b/test/lexer.test.ts @@ -0,0 +1,82 @@ +import { createAst } from '../out/createAst.js'; +import { expect } from 'chai'; +import * as ModuleFiles from './lib/ModuleFiles.js' + +describe('Lexer', () => { + + it('parses blank file', () => { + const ast = createAst(ModuleFiles.blank); + expect(ast).to.deep.equal([]); + }); + + describe('namespaces', () => { + it('parses namespaces without dots', () => { + const ast = createAst(ModuleFiles.namespaceX); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); + }); + it('parses namespaces with a single dot', () => { + const ast = createAst(ModuleFiles.namespaceXY); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); + }); + it('parses namespaces two dots', () => { + const ast = createAst(ModuleFiles.namespaceXYZ); + expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); + }); + }); + + describe('links', () => { + it('parses link', () => { + const ast = createAst(ModuleFiles.link); + expect(ast).to.deep.equal([{type: 'link', array: false, required: false, name: 'test'}]); + }); + it('parses required link', () => { + const ast = createAst(ModuleFiles.requiredLink); + expect(ast).to.deep.equal([{type: 'link', array: false, required: true, name: 'test'}]); + }); + it('parses link array', () => { + const ast = createAst(ModuleFiles.linkArray); + expect(ast).to.deep.equal([{type: 'link', array: true, required: false, name: 'test'}]); + }); + it('parses required link array', () => { + const ast = createAst(ModuleFiles.requiredLinkArray); + expect(ast).to.deep.equal([{type: 'link', array: true, required: true, name: 'test'}]); + }); + }); + + describe('functions', () => { + it('function with parameters omitted', () => { + const ast = createAst(ModuleFiles.functionNoParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: false}]); + }); + it('function with empty parameters', () => { + const ast = createAst(ModuleFiles.functionEmptyParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: false}]); + }); + it('function with one parameter', () => { + const ast = createAst(ModuleFiles.functionOneParam); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a"], async: false}]); + }); + it('function with two parameters', () => { + const ast = createAst(ModuleFiles.functionTwoParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a", "b"], async: false}]); + }); + + it('async function with parameters omitted', () => { + const ast = createAst(ModuleFiles.asyncFunctionNoParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: true}]); + }); + it('async function with empty parameters', () => { + const ast = createAst(ModuleFiles.asyncFunctionEmptyParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: true}]); + }); + it('async function with one parameter', () => { + const ast = createAst(ModuleFiles.asyncFunctionOneParam); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a"], async: true}]); + }); + it('async function with two parameters', () => { + const ast = createAst(ModuleFiles.asyncFunctionTwoParams); + expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a", "b"], async: true}]); + }); + }); + +}); \ No newline at end of file diff --git a/test/lib/ModuleFiles.ts b/test/lib/ModuleFiles.ts new file mode 100644 index 0000000..e25cb18 --- /dev/null +++ b/test/lib/ModuleFiles.ts @@ -0,0 +1,27 @@ + +import { resolve, parse } from 'path'; +import { fileURLToPath } from 'url'; + +function file(str: string) { + return resolve(parse(fileURLToPath(import.meta.url)).dir, '..', 'modules', str + '.v') +} + +export const blank = file('blank'); + +export const namespaceX = file('namespaceX'); +export const namespaceXY = file('namespaceXY'); +export const namespaceXYZ = file('namespaceXYZ'); + +export const link = file('link'); +export const linkArray = file('linkArray'); +export const requiredLink = file('requiredLink'); +export const requiredLinkArray = file('requiredLinkArray'); + +export const functionNoParams = file('functionNoParams'); +export const functionEmptyParams = file('functionEmptyParams'); +export const functionOneParam = file('functionOneParam'); +export const functionTwoParams = file('functionTwoParams'); +export const asyncFunctionNoParams = file('asyncFunctionNoParams'); +export const asyncFunctionEmptyParams = file('asyncFunctionEmptyParams'); +export const asyncFunctionOneParam = file('asyncFunctionOneParam'); +export const asyncFunctionTwoParams = file('asyncFunctionTwoParams'); diff --git a/test/modules/AsyncFunctionOneParam.v b/test/modules/AsyncFunctionOneParam.v new file mode 100644 index 0000000..82c38fb --- /dev/null +++ b/test/modules/AsyncFunctionOneParam.v @@ -0,0 +1,3 @@ +async test(a) { + +} \ No newline at end of file diff --git a/test/modules/asyncFunctionEmptyParams.v b/test/modules/asyncFunctionEmptyParams.v new file mode 100644 index 0000000..3f5cd15 --- /dev/null +++ b/test/modules/asyncFunctionEmptyParams.v @@ -0,0 +1,3 @@ +async test() { + +} \ No newline at end of file diff --git a/test/modules/asyncFunctionNoParams.v b/test/modules/asyncFunctionNoParams.v new file mode 100644 index 0000000..bbe429f --- /dev/null +++ b/test/modules/asyncFunctionNoParams.v @@ -0,0 +1,3 @@ +async test { + +} \ No newline at end of file diff --git a/test/modules/asyncFunctionTwoParams.v b/test/modules/asyncFunctionTwoParams.v new file mode 100644 index 0000000..8e5d3f0 --- /dev/null +++ b/test/modules/asyncFunctionTwoParams.v @@ -0,0 +1,3 @@ +async test(a, b) { + +} \ No newline at end of file diff --git a/test/modules/blank.v b/test/modules/blank.v new file mode 100644 index 0000000..e69de29 diff --git a/test/modules/functionEmptyParams.v b/test/modules/functionEmptyParams.v new file mode 100644 index 0000000..25be7c8 --- /dev/null +++ b/test/modules/functionEmptyParams.v @@ -0,0 +1,3 @@ +test() { + +} \ No newline at end of file diff --git a/test/modules/functionNoParams.v b/test/modules/functionNoParams.v new file mode 100644 index 0000000..a8c71a8 --- /dev/null +++ b/test/modules/functionNoParams.v @@ -0,0 +1,3 @@ +test { + +} \ No newline at end of file diff --git a/test/modules/functionOneParam.v b/test/modules/functionOneParam.v new file mode 100644 index 0000000..c9ca1d5 --- /dev/null +++ b/test/modules/functionOneParam.v @@ -0,0 +1,3 @@ +test(a) { + +} \ No newline at end of file diff --git a/test/modules/functionTwoParams.v b/test/modules/functionTwoParams.v new file mode 100644 index 0000000..76398e2 --- /dev/null +++ b/test/modules/functionTwoParams.v @@ -0,0 +1,3 @@ +test(a, b) { + +} \ No newline at end of file diff --git a/tests/modules/link.v b/test/modules/link.v similarity index 100% rename from tests/modules/link.v rename to test/modules/link.v diff --git a/tests/modules/linkArray.v b/test/modules/linkArray.v similarity index 100% rename from tests/modules/linkArray.v rename to test/modules/linkArray.v diff --git a/tests/modules/namespaceX.v b/test/modules/namespaceX.v similarity index 100% rename from tests/modules/namespaceX.v rename to test/modules/namespaceX.v diff --git a/tests/modules/namespaceXY.v b/test/modules/namespaceXY.v similarity index 100% rename from tests/modules/namespaceXY.v rename to test/modules/namespaceXY.v diff --git a/tests/modules/namespaceXYZ.v b/test/modules/namespaceXYZ.v similarity index 100% rename from tests/modules/namespaceXYZ.v rename to test/modules/namespaceXYZ.v diff --git a/tests/modules/requiredLink.v b/test/modules/requiredLink.v similarity index 100% rename from tests/modules/requiredLink.v rename to test/modules/requiredLink.v diff --git a/tests/modules/requiredLinkArray.v b/test/modules/requiredLinkArray.v similarity index 100% rename from tests/modules/requiredLinkArray.v rename to test/modules/requiredLinkArray.v diff --git a/test/pawn.v b/test/pawn.v deleted file mode 100644 index 72a7433..0000000 --- a/test/pawn.v +++ /dev/null @@ -1,6 +0,0 @@ - - - -restore { - -} \ No newline at end of file diff --git a/test/counter.v b/test/system/counter.v similarity index 100% rename from test/counter.v rename to test/system/counter.v diff --git a/test/main.v b/test/system/main.v similarity index 100% rename from test/main.v rename to test/system/main.v diff --git a/test/package.json b/test/system/package.json similarity index 60% rename from test/package.json rename to test/system/package.json index be685c5..eed6f0b 100644 --- a/test/package.json +++ b/test/system/package.json @@ -1,12 +1,9 @@ { - "name": "test", + "name": "system", "version": "1.0.0", "main": "index.js", "license": "MIT", "dependencies": { - "chalk": "^4.1.1", - "random-world": "^1.2.1", - "signale": "^1.4.0", "sisteransi": "^1.0.5", "terminal-kit": "^2.1.2" } diff --git a/test/system/yarn.lock b/test/system/yarn.lock new file mode 100644 index 0000000..fcf7cdd --- /dev/null +++ b/test/system/yarn.lock @@ -0,0 +1,176 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cronvel/get-pixels@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@cronvel/get-pixels/-/get-pixels-3.4.0.tgz#697cd691c16bbb8b29ed596da73fd6a7e9a2f34d" + integrity sha512-do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw== + dependencies: + jpeg-js "^0.4.1" + ndarray "^1.0.19" + ndarray-pack "^1.1.1" + node-bitmap "0.0.1" + omggif "^1.0.10" + pngjs "^5.0.0" + +chroma-js@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.1.2.tgz#1075cb9ae25bcb2017c109394168b5cf3aa500ec" + integrity sha512-ri/ouYDWuxfus3UcaMxC1Tfp3IE9K5iQzxc2hSxbBRVNQFut1UuGAsZmiAf2mOUubzGJwgMSv9lHg+XqLaz1QQ== + dependencies: + cross-env "^6.0.3" + +cross-env@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" + integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== + dependencies: + cross-spawn "^7.0.0" + +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cwise-compiler@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" + integrity sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU= + dependencies: + uniq "^1.0.0" + +iota-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" + integrity sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc= + +is-buffer@^1.0.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +jpeg-js@^0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" + integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== + +lazyness@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/lazyness/-/lazyness-1.2.0.tgz#5dc0f02c37280436b21f0e4918ce6e72a109c657" + integrity sha512-KenL6EFbwxBwRxG93t0gcUyi0Nw0Ub31FJKN1laA4UscdkL1K1AxUd0gYZdcLU3v+x+wcFi4uQKS5hL+fk500g== + +ndarray-pack@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ndarray-pack/-/ndarray-pack-1.2.1.tgz#8caebeaaa24d5ecf70ff86020637977da8ee585a" + integrity sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo= + dependencies: + cwise-compiler "^1.1.2" + ndarray "^1.0.13" + +ndarray@^1.0.13, ndarray@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" + integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== + dependencies: + iota-array "^1.0.0" + is-buffer "^1.0.2" + +nextgen-events@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/nextgen-events/-/nextgen-events-1.4.0.tgz#82e7201e4d8421f1cb4dcfce973c10b455fdc2be" + integrity sha512-bwSpShfuLg/lcRFokZvtUcrn5kumy6uRI6Jc+QWzH+bW6ZRdog7LfwAwhqeTzVfsprZgDGrctr6rO5aJhcdAfg== + +node-bitmap@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" + integrity sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE= + +omggif@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +seventh@^0.7.40: + version "0.7.40" + resolved "https://registry.yarnpkg.com/seventh/-/seventh-0.7.40.tgz#a5a010496cb84421bb81f524840484a5aa473be9" + integrity sha512-7sxUydQx4iEh17uJUFjZDAwbffJirldZaNIJvVB/hk9mPEL3J4GpLGSL+mHFH2ydkye46DAsLGqzFJ+/Qj5foQ== + dependencies: + setimmediate "^1.0.5" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +string-kit@^0.12.5: + version "0.12.5" + resolved "https://registry.yarnpkg.com/string-kit/-/string-kit-0.12.5.tgz#e7f646e7740e54b7ecae6cf67b73bb616aa16652" + integrity sha512-aB7yK0RgOx3SElEfQ6lZu2xS5hWr4ToJispiy+djJ4yh3f2zaTMCm44ZrHZnN1RiQQCLfpa5Btz2bishyBm8IQ== + +terminal-kit@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/terminal-kit/-/terminal-kit-2.1.2.tgz#08689ff9f8efc6614d34d4cc7be916a91742b896" + integrity sha512-1eG7CrQfE1dd5ZHPG5WrTk/DTeskFPqSLEl+QYmvwvI41dRCN2j1qVyxA4FwE0/x24AbjhSA3FJSIgWqQD610Q== + dependencies: + "@cronvel/get-pixels" "^3.4.0" + chroma-js "^2.1.1" + lazyness "^1.2.0" + ndarray "^1.0.19" + nextgen-events "^1.3.4" + seventh "^0.7.40" + string-kit "^0.12.5" + tree-kit "^0.7.0" + +tree-kit@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/tree-kit/-/tree-kit-0.7.0.tgz#f677b10f79d9b4442ba20e0d87c8a12ecabe5fbb" + integrity sha512-MAqFo2oJJ39zmxq3xETx0nMAgZw2z6pnJPjIAehEcrDaeePDhBBTshAlyhCDtezMDTIu1Av+vGE501xN3Sh8VA== + +uniq@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" diff --git a/test/trees.v b/test/trees.v deleted file mode 100644 index 7c5f230..0000000 --- a/test/trees.v +++ /dev/null @@ -1,11 +0,0 @@ -namespace structures; - -member alive; -member age; - -required link land; - -restore { - alive ??= true; - age ??= 0; -} \ No newline at end of file diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..0472462 --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "allowSyntheticDefaultImports": true, + "target": "esnext", + "sourceMap": true, + "declaration": true + }, + "include": [ + "**/*.ts" + ] +} \ No newline at end of file diff --git a/test/world.v b/test/world.v deleted file mode 100644 index 2625b35..0000000 --- a/test/world.v +++ /dev/null @@ -1,16 +0,0 @@ -link[] pawns; - -member map; -member size; - -restore { - for(let i = 0; i < 3; i ++) { - - } - - this.size ??= 64; -} - -async render() { - -} \ No newline at end of file diff --git a/test/yarn.lock b/test/yarn.lock deleted file mode 100644 index d7295b4..0000000 --- a/test/yarn.lock +++ /dev/null @@ -1,346 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@cronvel/get-pixels@^3.4.0": - version "3.4.0" - resolved "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.4.0.tgz" - dependencies: - jpeg-js "^0.4.1" - ndarray "^1.0.19" - ndarray-pack "^1.1.1" - node-bitmap "0.0.1" - omggif "^1.0.10" - pngjs "^5.0.0" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - dependencies: - color-convert "^2.0.1" - -chalk@^2.3.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chroma-js@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/chroma-js/-/chroma-js-2.1.1.tgz" - dependencies: - cross-env "^6.0.3" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - -cross-env@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz" - dependencies: - cross-spawn "^7.0.0" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cwise-compiler@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz" - dependencies: - uniq "^1.0.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - dependencies: - escape-string-regexp "^1.0.5" - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -graceful-fs@^4.1.2: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - -iota-array@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-buffer@^1.0.2: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - -jpeg-js@^0.4.1: - version "0.4.3" - resolved "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz" - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - -lazyness@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/lazyness/-/lazyness-1.2.0.tgz" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -moment@^2.11.2: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - -ndarray-pack@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz" - dependencies: - cwise-compiler "^1.1.2" - ndarray "^1.0.13" - -ndarray@^1.0.13, ndarray@^1.0.19: - version "1.0.19" - resolved "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz" - dependencies: - iota-array "^1.0.0" - is-buffer "^1.0.2" - -nextgen-events@^1.3.4: - version "1.3.4" - resolved "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.3.4.tgz" - -node-bitmap@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz" - -omggif@^1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - dependencies: - p-try "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pkg-conf@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz" - -random-world@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/random-world/-/random-world-1.2.1.tgz#aca953a169dc5ffa455a2bc39d7ee81da6f12480" - integrity sha1-rKlToWncX/pFWivDnX7oHabxJIA= - dependencies: - moment "^2.11.2" - seedrandom "^2.4.2" - underscore "^1.8.3" - uuid "^3.0.1" - -seedrandom@^2.4.2: - version "2.4.4" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.4.tgz#b25ea98632c73e45f58b77cfaa931678df01f9ba" - integrity sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA== - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - -seventh@^0.7.40: - version "0.7.40" - resolved "https://registry.npmjs.org/seventh/-/seventh-0.7.40.tgz" - dependencies: - setimmediate "^1.0.5" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - -signale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - pkg-conf "^2.1.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - -string-kit@^0.12.5: - version "0.12.5" - resolved "https://registry.npmjs.org/string-kit/-/string-kit-0.12.5.tgz" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - dependencies: - has-flag "^4.0.0" - -terminal-kit@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/terminal-kit/-/terminal-kit-2.1.2.tgz" - dependencies: - "@cronvel/get-pixels" "^3.4.0" - chroma-js "^2.1.1" - lazyness "^1.2.0" - ndarray "^1.0.19" - nextgen-events "^1.3.4" - seventh "^0.7.40" - string-kit "^0.12.5" - tree-kit "^0.7.0" - -tree-kit@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/tree-kit/-/tree-kit-0.7.0.tgz" - -underscore@^1.8.3: - version "1.13.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== - -uniq@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - -uuid@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - dependencies: - isexe "^2.0.0" diff --git a/tests/lexer.js b/tests/lexer.js deleted file mode 100644 index 9ec60c3..0000000 --- a/tests/lexer.js +++ /dev/null @@ -1,39 +0,0 @@ -import { createAst } from './../out/createAst.js'; -import { expect } from 'chai'; -import * as ModuleFiles from './lib/ModuleFiles.js' - -describe('Lexer', () => { - describe('namespaces', () => { - it('parses namespaces without dots', () => { - const ast = createAst(ModuleFiles.namespaceX); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); - }); - it('parses namespaces with a single dot', () => { - const ast = createAst(ModuleFiles.namespaceXY); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); - }); - it('parses namespaces two dots', () => { - const ast = createAst(ModuleFiles.namespaceXYZ); - expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); - }); - }) - - describe('links', () => { - it('parses link', () => { - const ast = createAst(ModuleFiles.link); - expect(ast).to.deep.equal([{type: 'link', array: false, required: false, name: 'test'}]); - }); - it('parses required link', () => { - const ast = createAst(ModuleFiles.requiredLink); - expect(ast).to.deep.equal([{type: 'link', array: false, required: true, name: 'test'}]); - }); - it('parses link array', () => { - const ast = createAst(ModuleFiles.linkArray); - expect(ast).to.deep.equal([{type: 'link', array: true, required: false, name: 'test'}]); - }); - it('parses required link array', () => { - const ast = createAst(ModuleFiles.requiredLinkArray); - expect(ast).to.deep.equal([{type: 'link', array: true, required: true, name: 'test'}]); - }); - }) -}) \ No newline at end of file diff --git a/tests/lib/ModuleFiles.js b/tests/lib/ModuleFiles.js deleted file mode 100644 index 1432925..0000000 --- a/tests/lib/ModuleFiles.js +++ /dev/null @@ -1,16 +0,0 @@ - -import { resolve, parse } from 'path'; -import { fileURLToPath } from 'node:url'; - -function file(str) { - return resolve(parse(fileURLToPath(import.meta.url)).dir, '..', 'modules', str + '.v') -} - -export const namespaceX = file('namespaceX'); -export const namespaceXY = file('namespaceXY'); -export const namespaceXYZ = file('namespaceXYZ'); - -export const link = file('link'); -export const linkArray = file('linkArray'); -export const requiredLink = file('requiredLink'); -export const requiredLinkArray = file('requiredLinkArray'); diff --git a/yarn.lock b/yarn.lock index 8bec488..78466cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,67 @@ # yarn lockfile v1 +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/fake-timers@^7.0.4": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.0.tgz#8f13af27d842cbf51ad4502e05562fe9391d084e" + integrity sha512-hAEzXi6Wbvlb67NnGMGSNOeAflLVnMa4yliPU/ty1qjgW/vAletH15/v/esJwASSIA0YlIyjnloenFbEZc9q9A== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" + integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== + +"@types/chai@^4.2.18": + version "4.2.18" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4" + integrity sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ== + "@types/debug@^4.1.5": version "4.1.5" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz" @@ -13,6 +74,33 @@ dependencies: "@types/node" "*" +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.23": + version "26.0.23" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7" + integrity sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + "@types/lodash@^4.14.169": version "4.14.169" resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz" @@ -30,6 +118,13 @@ version "15.3.0" resolved "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz" +"@types/sinon@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.0.tgz#eecc3847af03d45ffe53d55aaaaf6ecb28b5e584" + integrity sha512-jDZ55oCKxqlDmoTBBbBBEx+N8ZraUVhggMZ9T5t+6/Dh8/4NiOjSUfpLrPiEwxQDlAe3wpAkoXhWvE6LibtsMQ== + dependencies: + "@sinonjs/fake-timers" "^7.0.4" + "@types/uglify-js@^3.13.0": version "3.13.0" resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz" @@ -41,6 +136,18 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" @@ -76,6 +183,11 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -86,10 +198,6 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -async@0.2.10: - version "0.2.10" - resolved "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -100,12 +208,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -binary-search-tree@0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz" - dependencies: - underscore "~1.4.4" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -126,6 +228,29 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +c8@^7.7.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.7.2.tgz#30ff37b8125d96cab3eb065895a0b68dbc495a0f" + integrity sha512-8AqNnUMxB3hsgYCYso2GJjlwnaNPlrEEbYbCQb7N76V1nrOgCKXiTcE3gXU18rIj0FeduPywROrIBMC7XAKApg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.0.2" + rimraf "^3.0.0" + test-exclude "^6.0.0" + v8-to-istanbul "^7.1.0" + yargs "^16.2.0" + yargs-parser "^20.2.7" + camelcase@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" @@ -201,13 +326,25 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +convert-source-map@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-env@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1: +cross-spawn@^7.0.0, cross-spawn@^7.0.1: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" dependencies: @@ -233,11 +370,21 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + diff@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^4.0.1, diff@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" @@ -257,6 +404,11 @@ escape-string-regexp@4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +esm@^3.2.25: + version "3.2.25" + resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" + integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -264,7 +416,7 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-up@5.0.0: +find-up@5.0.0, find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -277,6 +429,14 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + fs-extra@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" @@ -325,6 +485,18 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3, glob@^7.1.4: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + 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" + graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" @@ -345,9 +517,10 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== inflight@^1.0.4: version "1.0.6" @@ -401,10 +574,52 @@ is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + js-yaml@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" @@ -421,17 +636,10 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -lie@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz" - dependencies: - immediate "~3.0.5" - -localforage@^1.3.0: - version "1.9.0" - resolved "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz" - dependencies: - lie "3.1.1" +just-extend@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== locate-path@^6.0.0: version "6.0.0" @@ -440,6 +648,11 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" @@ -451,6 +664,18 @@ log-symbols@4.0.0: dependencies: chalk "^4.0.0" +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -458,15 +683,10 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" - -mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - dependencies: - minimist "^1.2.5" +mocha-lcov-reporter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384" + integrity sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q= mocha@^8.4.0: version "8.4.0" @@ -526,15 +746,16 @@ nearley@^2.20.1: railroad-diagrams "^1.0.0" randexp "0.4.6" -nedb@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz" +nise@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" + integrity sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA== dependencies: - async "0.2.10" - binary-search-tree "0.2.5" - localforage "^1.3.0" - mkdirp "~0.5.1" - underscore "~1.4.4" + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -576,6 +797,13 @@ path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + pathval@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" @@ -586,6 +814,16 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" @@ -604,6 +842,11 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + readdirp@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" @@ -620,11 +863,28 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + serialize-javascript@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" @@ -642,10 +902,40 @@ shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" -source-map@^0.6.1: +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +sinon@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" + integrity sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw== + dependencies: + "@sinonjs/commons" "^1.8.1" + "@sinonjs/fake-timers" "^6.0.1" + "@sinonjs/samsam" "^5.3.1" + diff "^4.0.2" + nise "^4.1.0" + supports-color "^7.1.0" + +source-map-support@^0.5.17: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -700,6 +990,15 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -707,7 +1006,19 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -type-detect@^4.0.0, type-detect@^4.0.5: +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -720,10 +1031,6 @@ uglify-js@^3.13.5: version "3.13.5" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz" -underscore@~1.4.4: - version "1.4.4" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -734,6 +1041,15 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-to-istanbul@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -776,7 +1092,7 @@ yargs-parser@20.2.4: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.7: version "20.2.7" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== @@ -791,7 +1107,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@16.2.0, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -808,6 +1124,11 @@ yarn@^1.22.10: version "1.22.10" resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From c444db74e25bc2782e23778c566e5c34c7598427 Mon Sep 17 00:00:00 2001 From: Bronwen Date: Sun, 23 May 2021 17:39:02 -0400 Subject: [PATCH 10/21] more dev stuff --- package.json | 9 +- tsconfig.json | 3 +- yarn.lock | 465 +++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 470 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index fd1ada1..acdc0ae 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,13 @@ "vogue": "out/run.js" }, "scripts": { + "dev": "cross-env FORCE_COLOR=true multiview [ yarn test:watch ] [ yarn compile:watch ]", "test": "c8 --all mocha", - "test:watch": "mocha", + "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn -- test", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", - "compile": "tsc --listEmittedFiles", - "compile:watch": "yarn compile --watch --preserveWatchOutput", + "compile": "tsc", + "compile:watch": "yarn compile --watch", "postinstall": "yarn compile" }, "dependencies": { @@ -29,6 +30,7 @@ "@types/uuid": "^8.3.0", "c8": "^7.7.2", "chai": "^4.3.4", + "concurrently": "^6.1.0", "cross-env": "^7.0.3", "debug": "^4.3.1", "esm": "^3.2.25", @@ -37,6 +39,7 @@ "mocha": "^8.4.0", "mocha-lcov-reporter": "^1.3.0", "moo": "^0.5.1", + "multiview": "^3.0.1", "nearley": "^2.20.1", "sinon": "^10.0.0", "supervisor": "^0.12.0", diff --git a/tsconfig.json b/tsconfig.json index 8dd7b2a..e7afa9d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,8 @@ "target": "esnext", "outDir": "out", "sourceMap": true, - "declaration": true + "declaration": true, + "pretty": true }, "include": [ "src/**/*.ts" diff --git a/yarn.lock b/yarn.lock index 78466cd..c9c5c6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,27 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + +"@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -118,6 +139,11 @@ version "15.3.0" resolved "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz" +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + "@types/sinon@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.0.tgz#eecc3847af03d45ffe53d55aaaaf6ecb28b5e584" @@ -158,6 +184,11 @@ ansi-colors@4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-regex@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" + integrity sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0= + ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" @@ -168,6 +199,18 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-state@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ansi-state/-/ansi-state-1.0.5.tgz#0aeda248409664ac16b589121ac831cd6f721aa7" + integrity sha1-Cu2iSECWZKwWtYkSGsgxzW9yGqc= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -233,6 +276,11 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= + c8@^7.7.2: version "7.7.2" resolved "https://registry.yarnpkg.com/c8/-/c8-7.7.2.tgz#30ff37b8125d96cab3eb065895a0b68dbc495a0f" @@ -268,7 +316,16 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.0.5" -chalk@^4.0.0: +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== @@ -305,6 +362,18 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -312,11 +381,35 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +columnify@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.3.2.tgz#61bd578a9269ae6fd949ce36fff589f3702c7867" + integrity sha1-Yb1XipJprm/ZSc42//WJ83AseGc= + dependencies: + strip-ansi "^2.0.0" + wcwidth "^1.0.0" + +columns@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/columns/-/columns-0.8.0.tgz#c272fd81a18704423b2a3842e99d1920a577edd9" + integrity sha1-wnL9gaGHBEI7KjhC6Z0ZIKV37dk= + dependencies: + ansi-state "~1.0.5" + heartbeats "~3.1.0" + split "~0.3.2" + strip-bom "~1.0.0" + wcwidth.js "~1.0.0" + commander@^2.19.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -326,6 +419,21 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +concurrently@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.1.0.tgz#00d22525d3fcdce7f34cc7f3c9753f90a57d6208" + integrity sha512-jy+xj49pvqeKjc2TAVXRIhrgPG51eBKDZti0kZ41kaWk9iLbyWBjH6KMFpW7peOLkEymD+ZM83Lx6UEy3N/M9g== + dependencies: + chalk "^4.1.0" + date-fns "^2.16.1" + lodash "^4.17.21" + read-pkg "^5.2.0" + rxjs "^6.6.3" + spawn-command "^0.0.2-1" + supports-color "^8.1.0" + tree-kill "^1.2.2" + yargs "^16.2.0" + convert-source-map@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -333,6 +441,11 @@ convert-source-map@^1.6.0: dependencies: safe-buffer "~5.1.1" +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -352,6 +465,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1: shebang-command "^2.0.0" which "^2.0.1" +date-fns@^2.16.1: + version "2.21.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.3.tgz#8f5f6889d7a96bbcc1f0ea50239b397a83357f9b" + integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== + debug@4.3.1, debug@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" @@ -370,6 +488,13 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + diff-sequences@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" @@ -394,6 +519,13 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -404,11 +536,23 @@ escape-string-regexp@4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + esm@^3.2.25: version "3.2.25" resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== +event-transmitter@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/event-transmitter/-/event-transmitter-2.0.0.tgz#7d58aeb72abb47c1e7eab0d7bf78033c0de33493" + integrity sha1-fViutyq7R8Hn6rDXv3gDPA3jNJM= + dependencies: + readable-stream "2.2.3" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -424,6 +568,11 @@ find-up@5.0.0, find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -456,6 +605,11 @@ fsevents@~2.3.1: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -507,16 +661,38 @@ growl@1.10.5: resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +heartbeats@~3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/heartbeats/-/heartbeats-3.1.5.tgz#99be8b2392b9075cc9aebebb5831616bceac160e" + integrity sha1-mb6LI5K5B1zJrr67WDFha86sFg4= + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -530,11 +706,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@~2.0.1: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -542,6 +723,13 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -574,11 +762,21 @@ is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -620,6 +818,11 @@ jest-get-type@^26.3.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" @@ -627,6 +830,11 @@ js-yaml@4.0.0: dependencies: argparse "^2.0.1" +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -641,6 +849,16 @@ just-extend@^4.0.2: resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== +keypress@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77" + integrity sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc= + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -683,6 +901,11 @@ minimatch@3.0.4, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist@^1.1.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + mocha-lcov-reporter@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384" @@ -732,6 +955,19 @@ ms@2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multiview@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/multiview/-/multiview-3.0.1.tgz#ecd7cc36b55a3a782a9615fc06b1ef74392cca1b" + integrity sha512-SQhM9HwOw3MUyeR1g0javHbdlQNL7NcMR5Q1aahMMGdOLe80hFid9la3n0B8fgl329Iy+0vvIpIBWu5LAigTqQ== + dependencies: + columns "0.8.0" + event-transmitter "2.0.0" + keypress "0.2.1" + protogram "1.1.3" + protogram-help "1.0.2" + tree-kill "^1.2.2" + unparse-args "1.0.1" + nanoid@3.1.20: version "3.1.20" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" @@ -757,6 +993,16 @@ nise@^4.1.0: just-extend "^4.0.2" path-to-regexp "^1.7.0" +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -783,6 +1029,16 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + 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" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -797,6 +1053,11 @@ path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-to-regexp@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" @@ -814,6 +1075,11 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +pkginfo@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= + pretty-format@^26.0.0, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" @@ -824,6 +1090,27 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= + +protogram-help@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/protogram-help/-/protogram-help-1.0.2.tgz#fb49cacff85fe80edb3568ac6eac78af0b032a19" + integrity sha1-+0nKz/hf6A7bNWisbqx4rwsDKhk= + dependencies: + columnify "~1.3.2" + pkginfo "~0.3.0" + +protogram@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/protogram/-/protogram-1.1.3.tgz#95f1df709c43310d62c13942baa09b753a688cf1" + integrity sha1-lfHfcJxDMQ1iwTlCuqCbdTpojPE= + dependencies: + subarg "~1.0.0" + unparse-args "~1.0.1" + railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" @@ -847,6 +1134,29 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" + integrity sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk= + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + readdirp@~3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" @@ -859,6 +1169,14 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +resolve@^1.10.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" @@ -870,6 +1188,13 @@ rimraf@^3.0.0: dependencies: glob "^7.1.3" +rxjs@^6.6.3: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -880,6 +1205,11 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -902,6 +1232,11 @@ shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" +shell-escape@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.1.0.tgz#20e996fdd5f0c51be3f3c550119b77723d98e335" + integrity sha1-IOmW/dXwxRvj88VQEZt3cj2Y4zU= + signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -936,6 +1271,44 @@ source-map@^0.7.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +spawn-command@^0.0.2-1: + version "0.0.2-1" + resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" + integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + +split@~0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + "string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -953,6 +1326,18 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +strip-ansi@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" + integrity sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4= + dependencies: + ansi-regex "^1.0.0" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -967,22 +1352,44 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-bom@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +subarg@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + supervisor@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz" -supports-color@8.1.1: +supports-color@8.1.1, supports-color@^8.1.0: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -999,6 +1406,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -1006,6 +1418,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + ts-node@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" @@ -1018,11 +1435,21 @@ ts-node@^9.1.1: source-map-support "^0.5.17" yn "3.1.1" +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + typescript@^4.2.4: version "4.2.4" resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz" @@ -1036,6 +1463,18 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unparse-args@1.0.1, unparse-args@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unparse-args/-/unparse-args-1.0.1.tgz#85906d556861045806f97533cd325ad100677078" + integrity sha1-hZBtVWhhBFgG+XUzzTJa0QBncHg= + dependencies: + shell-escape "~0.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -1050,6 +1489,26 @@ v8-to-istanbul@^7.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +wcwidth.js@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth.js/-/wcwidth.js-1.0.1.tgz#44ad20db7d28dbb0a538604637e905de030f2996" + integrity sha512-LfinnEPQ7qBU4VWQpUsPi2GO3DsMsW/JMPBSi/FdvsutiCFcyQ66qBJIRJ9Lc3zNueiFnhioeJSdqlAkdONO8g== + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + which@2.0.2, which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" From eb802f28cc568afcc7f48fc6fc58560d8c53c8eb Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 17:58:38 -0400 Subject: [PATCH 11/21] casing casing --- package.json | 6 +++--- test/modules/AsyncFunctionOneParam.v | 3 --- 2 files changed, 3 insertions(+), 6 deletions(-) delete mode 100644 test/modules/AsyncFunctionOneParam.v diff --git a/package.json b/package.json index acdc0ae..a796e85 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,13 @@ "vogue": "out/run.js" }, "scripts": { - "dev": "cross-env FORCE_COLOR=true multiview [ yarn test:watch ] [ yarn compile:watch ]", + "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ]", "test": "c8 --all mocha", "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn -- test", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", - "compile": "tsc", - "compile:watch": "yarn compile --watch", + "compile": "tsc --listEmittedFiles", + "compile:watch": "yarn compile --watch --preserveWatchOutput", "postinstall": "yarn compile" }, "dependencies": { diff --git a/test/modules/AsyncFunctionOneParam.v b/test/modules/AsyncFunctionOneParam.v deleted file mode 100644 index 82c38fb..0000000 --- a/test/modules/AsyncFunctionOneParam.v +++ /dev/null @@ -1,3 +0,0 @@ -async test(a) { - -} \ No newline at end of file From fd69ee0d0ae8596ee1f0d952f0dd49e9060213e3 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 17:59:07 -0400 Subject: [PATCH 12/21] casing casing casin --- test/modules/asyncFunctionOneParameter.v | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test/modules/asyncFunctionOneParameter.v diff --git a/test/modules/asyncFunctionOneParameter.v b/test/modules/asyncFunctionOneParameter.v new file mode 100644 index 0000000..ac21368 --- /dev/null +++ b/test/modules/asyncFunctionOneParameter.v @@ -0,0 +1,3 @@ +async test(a) { + +} \ No newline at end of file From ffb54417f329e80fec1569642faf604b8e4b3be8 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 18:02:38 -0400 Subject: [PATCH 13/21] dev not working on windows :( --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a796e85..a771f60 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "scripts": { "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ]", "test": "c8 --all mocha", - "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn -- test", + "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn.cmd -- test", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", - "compile": "tsc --listEmittedFiles", + "compile": "tsc", "compile:watch": "yarn compile --watch --preserveWatchOutput", "postinstall": "yarn compile" }, From 8b6642e5503b6245bc2568d82bfd67501df9fe50 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 18:03:16 -0400 Subject: [PATCH 14/21] okay NOW --- .../{asyncFunctionOneParameter.v => asyncFunctionOneParam.v} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/modules/{asyncFunctionOneParameter.v => asyncFunctionOneParam.v} (100%) diff --git a/test/modules/asyncFunctionOneParameter.v b/test/modules/asyncFunctionOneParam.v similarity index 100% rename from test/modules/asyncFunctionOneParameter.v rename to test/modules/asyncFunctionOneParam.v From 6f8f279543d9df7201cd71168045d9c4597b7ae5 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 18:21:09 -0400 Subject: [PATCH 15/21] tests dont test block (for line ending differences) --- package.json | 2 +- test/lexer.test.ts | 72 ++++++++++++++++++++++++++++++---------------- 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index a771f60..685d8db 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "scripts": { "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ]", "test": "c8 --all mocha", - "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn.cmd -- test", + "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn -- test", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", "compile": "tsc", diff --git a/test/lexer.test.ts b/test/lexer.test.ts index 817b0ce..4fb6262 100644 --- a/test/lexer.test.ts +++ b/test/lexer.test.ts @@ -5,77 +5,101 @@ import * as ModuleFiles from './lib/ModuleFiles.js' describe('Lexer', () => { it('parses blank file', () => { - const ast = createAst(ModuleFiles.blank); + const ast: any = createAst(ModuleFiles.blank); expect(ast).to.deep.equal([]); }); describe('namespaces', () => { it('parses namespaces without dots', () => { - const ast = createAst(ModuleFiles.namespaceX); + const ast: any = createAst(ModuleFiles.namespaceX); expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x'}]); }); it('parses namespaces with a single dot', () => { - const ast = createAst(ModuleFiles.namespaceXY); + const ast: any = createAst(ModuleFiles.namespaceXY); expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y'}]); }); it('parses namespaces two dots', () => { - const ast = createAst(ModuleFiles.namespaceXYZ); + const ast: any = createAst(ModuleFiles.namespaceXYZ); expect(ast).to.deep.equal([{type: 'namespace', namespace: 'x.y.z'}]); }); }); describe('links', () => { it('parses link', () => { - const ast = createAst(ModuleFiles.link); + const ast: any = createAst(ModuleFiles.link); expect(ast).to.deep.equal([{type: 'link', array: false, required: false, name: 'test'}]); }); it('parses required link', () => { - const ast = createAst(ModuleFiles.requiredLink); + const ast: any = createAst(ModuleFiles.requiredLink); expect(ast).to.deep.equal([{type: 'link', array: false, required: true, name: 'test'}]); }); it('parses link array', () => { - const ast = createAst(ModuleFiles.linkArray); + const ast: any = createAst(ModuleFiles.linkArray); expect(ast).to.deep.equal([{type: 'link', array: true, required: false, name: 'test'}]); }); it('parses required link array', () => { - const ast = createAst(ModuleFiles.requiredLinkArray); + const ast: any = createAst(ModuleFiles.requiredLinkArray); expect(ast).to.deep.equal([{type: 'link', array: true, required: true, name: 'test'}]); }); }); describe('functions', () => { it('function with parameters omitted', () => { - const ast = createAst(ModuleFiles.functionNoParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: false}]); + const ast: any = createAst(ModuleFiles.functionNoParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.include({type: 'function', name: 'test', async: false}); + expect(ast[0].parameters).to.be.an('array').of.length(0); }); it('function with empty parameters', () => { - const ast = createAst(ModuleFiles.functionEmptyParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: false}]); + const ast: any = createAst(ModuleFiles.functionEmptyParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.include({type: 'function', name: 'test', async: false}); + expect(ast[0].parameters).to.be.an('array').of.length(0); }); it('function with one parameter', () => { - const ast = createAst(ModuleFiles.functionOneParam); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a"], async: false}]); + const ast: any = createAst(ModuleFiles.functionOneParam); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.include({type: 'function', name: 'test', async: false}); + expect(ast[0].parameters).to.be.an('array').deep.equals(["a"]); }); it('function with two parameters', () => { - const ast = createAst(ModuleFiles.functionTwoParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a", "b"], async: false}]); + const ast: any = createAst(ModuleFiles.functionTwoParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.include({type: 'function', name: 'test', async: false}); + expect(ast[0].parameters).to.be.an('array').deep.equals(["a", "b"]); }); it('async function with parameters omitted', () => { - const ast = createAst(ModuleFiles.asyncFunctionNoParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: true}]); + const ast: any = createAst(ModuleFiles.asyncFunctionNoParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.deep.include({type: 'function', name: 'test', async: true}); + expect(ast[0].parameters).to.be.an('array').of.length(0); }); it('async function with empty parameters', () => { - const ast = createAst(ModuleFiles.asyncFunctionEmptyParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: [], async: true}]); + const ast: any = createAst(ModuleFiles.asyncFunctionEmptyParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.deep.include({type: 'function', name: 'test', async: true}); + expect(ast[0].parameters).to.be.an('array').of.length(0); }); it('async function with one parameter', () => { - const ast = createAst(ModuleFiles.asyncFunctionOneParam); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a"], async: true}]); + const ast: any = createAst(ModuleFiles.asyncFunctionOneParam); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.deep.include({type: 'function', name: 'test', async: true}); + expect(ast[0].parameters).to.be.an('array').deep.equals(["a"]); }); it('async function with two parameters', () => { - const ast = createAst(ModuleFiles.asyncFunctionTwoParams); - expect(ast).to.deep.equal([{type: 'function', name: 'test', block: '{\n\t\n}', parameters: ["a", "b"], async: true}]); + const ast: any = createAst(ModuleFiles.asyncFunctionTwoParams); + expect(ast).to.be.an('array').with.length(1); + expect(ast[0]).to.be.an('object'); + expect(ast[0]).to.deep.include({type: 'function', name: 'test', async: true}); + expect(ast[0].parameters).to.be.an('array').deep.equals(["a", "b"]); }); }); From 9418af0d525d8c2daba37672023a86a3232fd333 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 18:58:59 -0400 Subject: [PATCH 16/21] works on WINDOWS?!?! --- .nycrc.json | 9 --------- test/extensions.test.ts | 1 - test/lexer.test.ts | 2 +- test/tsconfig.json | 8 ++------ 4 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 .nycrc.json diff --git a/.nycrc.json b/.nycrc.json deleted file mode 100644 index c686840..0000000 --- a/.nycrc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extension": [ - ".ts" - ], - "require": [ - "ts-node/esm.mjs" - ], - "cache": false -} \ No newline at end of file diff --git a/test/extensions.test.ts b/test/extensions.test.ts index d22e16e..6f193f6 100644 --- a/test/extensions.test.ts +++ b/test/extensions.test.ts @@ -1,6 +1,5 @@ import { expect } from 'chai'; import '../src/extensions.ts'; -import sinon from 'sinon'; describe('extensions', () => { it('creates empty array extensions', () => { diff --git a/test/lexer.test.ts b/test/lexer.test.ts index 4fb6262..98d6805 100644 --- a/test/lexer.test.ts +++ b/test/lexer.test.ts @@ -1,4 +1,4 @@ -import { createAst } from '../out/createAst.js'; +import { createAst } from '../src/createAst.js'; import { expect } from 'chai'; import * as ModuleFiles from './lib/ModuleFiles.js' diff --git a/test/tsconfig.json b/test/tsconfig.json index 0472462..055efbf 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,12 +1,8 @@ { "compilerOptions": { - "module": "esnext", + "module": "ES6", "moduleResolution": "node", - "strict": true, - "allowSyntheticDefaultImports": true, - "target": "esnext", - "sourceMap": true, - "declaration": true + "target": "es2020" }, "include": [ "**/*.ts" From 3f3ce060d5b55b2fc209e6b7a844da3f24d2d423 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 19:52:11 -0400 Subject: [PATCH 17/21] works on windows now! --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 685d8db..5812385 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "scripts": { "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ]", "test": "c8 --all mocha", - "test:watch": "supervisor -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec yarn -- test", + "test:watch": "cross-env FORCE_COLOR=true supervisor -t -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec cross-env -- yarn test", "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", "compile": "tsc", From 2c052b3feeda3cb43643e33e9a1a55fb3924c806 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 20:35:48 -0400 Subject: [PATCH 18/21] re-instantiate examples/test as system testing --- {test/system => examples/test}/counter.v | 0 examples/test/main.v | 23 ++- package.json | 8 +- test/system/main.v | 24 ---- test/system/package.json | 10 -- test/system/yarn.lock | 176 ----------------------- 6 files changed, 25 insertions(+), 216 deletions(-) rename {test/system => examples/test}/counter.v (100%) delete mode 100644 test/system/main.v delete mode 100644 test/system/package.json delete mode 100644 test/system/yarn.lock diff --git a/test/system/counter.v b/examples/test/counter.v similarity index 100% rename from test/system/counter.v rename to examples/test/counter.v diff --git a/examples/test/main.v b/examples/test/main.v index 745b90d..cd334cf 100644 --- a/examples/test/main.v +++ b/examples/test/main.v @@ -1,5 +1,24 @@ singleton; -restore { - console.log('worked!\n'.repeat(10)); +link counter; +link window; + +async restore { + // process.stdout.write(typeof console._link + '\n'); + console.log('~ Welcome to Vogue ~'); + // process.stdout.write(JSON.stringify(console, null, 2)) + counter ??= create('counter', {}); + for(let i = 0; i < 10; i ++) + counter.increment(); + // const choice = await console.choice('select a thing', ['a', 'b', 'c', 'd']); + + console.log(counter.getCount()); + + // window ??= create('SDL.window', {}); + + // window.setScene() + + // await counter.render(); + + sync(); } \ No newline at end of file diff --git a/package.json b/package.json index 5812385..d8ca6bf 100644 --- a/package.json +++ b/package.json @@ -8,14 +8,14 @@ "vogue": "out/run.js" }, "scripts": { - "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ]", + "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ] [ yarn debug:watch ]", "test": "c8 --all mocha", "test:watch": "cross-env FORCE_COLOR=true supervisor -t -w src,test,.mocharc.json -n exit --extensions js,ts,node --exec cross-env -- yarn test", - "debug": "cross-env DEBUG=vogue:* yarn node --enable-source-maps --unhandled-rejections=strict out/run.js test", - "debug:watch": "supervisor -w out,test/system/**/*.v,lib -n exit --exec yarn -- clear_and yarn debug", + "debug": "cross-env DEBUG=vogue:* FORCE_COLOR=true DEBUG_COLORS=true DEBUG_HIDE_DATE=true node --enable-source-maps --unhandled-rejections=strict out/run.js examples/test", + "debug:watch": "supervisor -t -w out,test/system/**/*.v,lib -n exit --exec yarn -- debug", "compile": "tsc", "compile:watch": "yarn compile --watch --preserveWatchOutput", - "postinstall": "yarn compile" + "postinstall": "yarn compile && cd examples/test && yarn" }, "dependencies": { "@types/chai": "^4.2.18", diff --git a/test/system/main.v b/test/system/main.v deleted file mode 100644 index cd334cf..0000000 --- a/test/system/main.v +++ /dev/null @@ -1,24 +0,0 @@ -singleton; - -link counter; -link window; - -async restore { - // process.stdout.write(typeof console._link + '\n'); - console.log('~ Welcome to Vogue ~'); - // process.stdout.write(JSON.stringify(console, null, 2)) - counter ??= create('counter', {}); - for(let i = 0; i < 10; i ++) - counter.increment(); - // const choice = await console.choice('select a thing', ['a', 'b', 'c', 'd']); - - console.log(counter.getCount()); - - // window ??= create('SDL.window', {}); - - // window.setScene() - - // await counter.render(); - - sync(); -} \ No newline at end of file diff --git a/test/system/package.json b/test/system/package.json deleted file mode 100644 index eed6f0b..0000000 --- a/test/system/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "system", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "dependencies": { - "sisteransi": "^1.0.5", - "terminal-kit": "^2.1.2" - } -} diff --git a/test/system/yarn.lock b/test/system/yarn.lock deleted file mode 100644 index fcf7cdd..0000000 --- a/test/system/yarn.lock +++ /dev/null @@ -1,176 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@cronvel/get-pixels@^3.4.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@cronvel/get-pixels/-/get-pixels-3.4.0.tgz#697cd691c16bbb8b29ed596da73fd6a7e9a2f34d" - integrity sha512-do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw== - dependencies: - jpeg-js "^0.4.1" - ndarray "^1.0.19" - ndarray-pack "^1.1.1" - node-bitmap "0.0.1" - omggif "^1.0.10" - pngjs "^5.0.0" - -chroma-js@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.1.2.tgz#1075cb9ae25bcb2017c109394168b5cf3aa500ec" - integrity sha512-ri/ouYDWuxfus3UcaMxC1Tfp3IE9K5iQzxc2hSxbBRVNQFut1UuGAsZmiAf2mOUubzGJwgMSv9lHg+XqLaz1QQ== - dependencies: - cross-env "^6.0.3" - -cross-env@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941" - integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag== - dependencies: - cross-spawn "^7.0.0" - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cwise-compiler@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/cwise-compiler/-/cwise-compiler-1.1.3.tgz#f4d667410e850d3a313a7d2db7b1e505bb034cc5" - integrity sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU= - dependencies: - uniq "^1.0.0" - -iota-array@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" - integrity sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc= - -is-buffer@^1.0.2: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -jpeg-js@^0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" - integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== - -lazyness@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/lazyness/-/lazyness-1.2.0.tgz#5dc0f02c37280436b21f0e4918ce6e72a109c657" - integrity sha512-KenL6EFbwxBwRxG93t0gcUyi0Nw0Ub31FJKN1laA4UscdkL1K1AxUd0gYZdcLU3v+x+wcFi4uQKS5hL+fk500g== - -ndarray-pack@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ndarray-pack/-/ndarray-pack-1.2.1.tgz#8caebeaaa24d5ecf70ff86020637977da8ee585a" - integrity sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo= - dependencies: - cwise-compiler "^1.1.2" - ndarray "^1.0.13" - -ndarray@^1.0.13, ndarray@^1.0.19: - version "1.0.19" - resolved "https://registry.yarnpkg.com/ndarray/-/ndarray-1.0.19.tgz#6785b5f5dfa58b83e31ae5b2a058cfd1ab3f694e" - integrity sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ== - dependencies: - iota-array "^1.0.0" - is-buffer "^1.0.2" - -nextgen-events@^1.3.4: - version "1.4.0" - resolved "https://registry.yarnpkg.com/nextgen-events/-/nextgen-events-1.4.0.tgz#82e7201e4d8421f1cb4dcfce973c10b455fdc2be" - integrity sha512-bwSpShfuLg/lcRFokZvtUcrn5kumy6uRI6Jc+QWzH+bW6ZRdog7LfwAwhqeTzVfsprZgDGrctr6rO5aJhcdAfg== - -node-bitmap@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" - integrity sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE= - -omggif@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -pngjs@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" - integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -seventh@^0.7.40: - version "0.7.40" - resolved "https://registry.yarnpkg.com/seventh/-/seventh-0.7.40.tgz#a5a010496cb84421bb81f524840484a5aa473be9" - integrity sha512-7sxUydQx4iEh17uJUFjZDAwbffJirldZaNIJvVB/hk9mPEL3J4GpLGSL+mHFH2ydkye46DAsLGqzFJ+/Qj5foQ== - dependencies: - setimmediate "^1.0.5" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -string-kit@^0.12.5: - version "0.12.5" - resolved "https://registry.yarnpkg.com/string-kit/-/string-kit-0.12.5.tgz#e7f646e7740e54b7ecae6cf67b73bb616aa16652" - integrity sha512-aB7yK0RgOx3SElEfQ6lZu2xS5hWr4ToJispiy+djJ4yh3f2zaTMCm44ZrHZnN1RiQQCLfpa5Btz2bishyBm8IQ== - -terminal-kit@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/terminal-kit/-/terminal-kit-2.1.2.tgz#08689ff9f8efc6614d34d4cc7be916a91742b896" - integrity sha512-1eG7CrQfE1dd5ZHPG5WrTk/DTeskFPqSLEl+QYmvwvI41dRCN2j1qVyxA4FwE0/x24AbjhSA3FJSIgWqQD610Q== - dependencies: - "@cronvel/get-pixels" "^3.4.0" - chroma-js "^2.1.1" - lazyness "^1.2.0" - ndarray "^1.0.19" - nextgen-events "^1.3.4" - seventh "^0.7.40" - string-kit "^0.12.5" - tree-kit "^0.7.0" - -tree-kit@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/tree-kit/-/tree-kit-0.7.0.tgz#f677b10f79d9b4442ba20e0d87c8a12ecabe5fbb" - integrity sha512-MAqFo2oJJ39zmxq3xETx0nMAgZw2z6pnJPjIAehEcrDaeePDhBBTshAlyhCDtezMDTIu1Av+vGE501xN3Sh8VA== - -uniq@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" From 4a3e160cf846d548260443947291565dd6aaf271 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 20:37:20 -0400 Subject: [PATCH 19/21] update repo field --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index d8ca6bf..b26e8bf 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "bin": { "vogue": "out/run.js" }, + "repository": { + "url": "https://github.com/marcus13345/vogue" + }, "scripts": { "dev": "multiview [ yarn test:watch ] [ yarn compile:watch ] [ yarn debug:watch ]", "test": "c8 --all mocha", From 01ad715b106c792090c00d5840c31f2e81073bd3 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 21:27:42 -0400 Subject: [PATCH 20/21] update for release --- .npmignore | 6 +- package.json | 32 +- yarn.lock | 2752 +++++++++++++++++++++----------------------------- 3 files changed, 1179 insertions(+), 1611 deletions(-) diff --git a/.npmignore b/.npmignore index 9475183..a95bf19 100644 --- a/.npmignore +++ b/.npmignore @@ -6,4 +6,8 @@ tsconfig.json .system *.tgz .nyc_output -coverage \ No newline at end of file +coverage +syntax.md +testinglib +.travis.yml +.mocharc.json \ No newline at end of file diff --git a/package.json b/package.json index b26e8bf..200534f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vogue", - "version": "0.0.1", + "version": "0.1.0", "main": "index.js", "license": "MIT", "type": "module", @@ -20,7 +20,11 @@ "compile:watch": "yarn compile --watch --preserveWatchOutput", "postinstall": "yarn compile && cd examples/test && yarn" }, - "dependencies": { + "devDependencies": { + "c8": "^7.7.2", + "cross-env": "^7.0.3", + "multiview": "^3.0.1", + "yarn": "^1.22.10", "@types/chai": "^4.2.18", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.11", @@ -31,25 +35,21 @@ "@types/sinon": "^10.0.0", "@types/uglify-js": "^3.13.0", "@types/uuid": "^8.3.0", - "c8": "^7.7.2", "chai": "^4.3.4", - "concurrently": "^6.1.0", - "cross-env": "^7.0.3", - "debug": "^4.3.1", - "esm": "^3.2.25", - "fs-extra": "^10.0.0", - "lodash": "^4.17.21", "mocha": "^8.4.0", "mocha-lcov-reporter": "^1.3.0", - "moo": "^0.5.1", - "multiview": "^3.0.1", - "nearley": "^2.20.1", - "sinon": "^10.0.0", "supervisor": "^0.12.0", + "sinon": "^10.0.0", "ts-node": "^9.1.1", - "typescript": "^4.2.4", + "typescript": "^4.2.4" + }, + "dependencies": { + "debug": "^4.3.1", + "fs-extra": "^10.0.0", + "lodash": "^4.17.21", + "moo": "^0.5.1", + "nearley": "^2.20.1", "uglify-js": "^3.13.5", - "uuid": "^8.3.2", - "yarn": "^1.22.10" + "uuid": "^8.3.2" } } diff --git a/yarn.lock b/yarn.lock index c9c5c6d..48b1f2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,1594 +1,1158 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/helper-validator-identifier@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" - integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== - -"@babel/highlight@^7.12.13": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" - integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/fake-timers@^7.0.4": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.0.tgz#8f13af27d842cbf51ad4502e05562fe9391d084e" - integrity sha512-hAEzXi6Wbvlb67NnGMGSNOeAflLVnMa4yliPU/ty1qjgW/vAletH15/v/esJwASSIA0YlIyjnloenFbEZc9q9A== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/samsam@^5.3.1": - version "5.3.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" - integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== - dependencies: - "@sinonjs/commons" "^1.6.0" - lodash.get "^4.4.2" - type-detect "^4.0.8" - -"@sinonjs/text-encoding@^0.7.1": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" - integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== - -"@types/chai@^4.2.18": - version "4.2.18" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4" - integrity sha512-rS27+EkB/RE1Iz3u0XtVL5q36MGDWbgYe7zWiodyKNUnthxY0rukK5V36eiUCtCisB7NN8zKYH6DO2M37qxFEQ== - -"@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz" - -"@types/fs-extra@^9.0.11": - version "9.0.11" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" - integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.23": - version "26.0.23" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7" - integrity sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA== - dependencies: - jest-diff "^26.0.0" - pretty-format "^26.0.0" - -"@types/lodash@^4.14.169": - version "4.14.169" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.169.tgz" - -"@types/nearley@^2.11.1": - version "2.11.1" - resolved "https://registry.npmjs.org/@types/nearley/-/nearley-2.11.1.tgz" - -"@types/node@*": - version "15.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc" - integrity sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A== - -"@types/node@^15.3.0": - version "15.3.0" - resolved "https://registry.npmjs.org/@types/node/-/node-15.3.0.tgz" - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/sinon@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.0.tgz#eecc3847af03d45ffe53d55aaaaf6ecb28b5e584" - integrity sha512-jDZ55oCKxqlDmoTBBbBBEx+N8ZraUVhggMZ9T5t+6/Dh8/4NiOjSUfpLrPiEwxQDlAe3wpAkoXhWvE6LibtsMQ== - dependencies: - "@sinonjs/fake-timers" "^7.0.4" - -"@types/uglify-js@^3.13.0": - version "3.13.0" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz" - dependencies: - source-map "^0.6.1" - -"@types/uuid@^8.3.0": - version "8.3.0" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" - integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== - -"@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== - -"@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== - dependencies: - "@types/yargs-parser" "*" - -"@ungap/promise-all-settled@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" - integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" - integrity sha1-QchHGUZGN15qGl0Qw8oFTvn8mA0= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-state@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/ansi-state/-/ansi-state-1.0.5.tgz#0aeda248409664ac16b589121ac831cd6f721aa7" - integrity sha1-Cu2iSECWZKwWtYkSGsgxzW9yGqc= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -anymatch@~3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= - -c8@^7.7.2: - version "7.7.2" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.7.2.tgz#30ff37b8125d96cab3eb065895a0b68dbc495a0f" - integrity sha512-8AqNnUMxB3hsgYCYso2GJjlwnaNPlrEEbYbCQb7N76V1nrOgCKXiTcE3gXU18rIj0FeduPywROrIBMC7XAKApg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.2" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.0.2" - rimraf "^3.0.0" - test-exclude "^6.0.0" - v8-to-istanbul "^7.1.0" - yargs "^16.2.0" - yargs-parser "^20.2.7" - -camelcase@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== - -chai@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@^2.0.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" - integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -columnify@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.3.2.tgz#61bd578a9269ae6fd949ce36fff589f3702c7867" - integrity sha1-Yb1XipJprm/ZSc42//WJ83AseGc= - dependencies: - strip-ansi "^2.0.0" - wcwidth "^1.0.0" - -columns@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/columns/-/columns-0.8.0.tgz#c272fd81a18704423b2a3842e99d1920a577edd9" - integrity sha1-wnL9gaGHBEI7KjhC6Z0ZIKV37dk= - dependencies: - ansi-state "~1.0.5" - heartbeats "~3.1.0" - split "~0.3.2" - strip-bom "~1.0.0" - wcwidth.js "~1.0.0" - -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concurrently@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.1.0.tgz#00d22525d3fcdce7f34cc7f3c9753f90a57d6208" - integrity sha512-jy+xj49pvqeKjc2TAVXRIhrgPG51eBKDZti0kZ41kaWk9iLbyWBjH6KMFpW7peOLkEymD+ZM83Lx6UEy3N/M9g== - dependencies: - chalk "^4.1.0" - date-fns "^2.16.1" - lodash "^4.17.21" - read-pkg "^5.2.0" - rxjs "^6.6.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^16.2.0" - -convert-source-map@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.0, cross-spawn@^7.0.1: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -date-fns@^2.16.1: - version "2.21.3" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.21.3.tgz#8f5f6889d7a96bbcc1f0ea50239b397a83357f9b" - integrity sha512-HeYdzCaFflc1i4tGbj7JKMjM4cKGYoyxwcIIkHzNgCkX8xXDNJDZXgDDVchIWpN4eQc3lH37WarduXFZJOtxfw== - -debug@4.3.1, debug@^4.3.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - dependencies: - ms "2.1.2" - -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - -diff@^4.0.1, diff@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -esm@^3.2.25: - version "3.2.25" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.2.25.tgz#342c18c29d56157688ba5ce31f8431fbb795cc10" - integrity sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA== - -event-transmitter@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/event-transmitter/-/event-transmitter-2.0.0.tgz#7d58aeb72abb47c1e7eab0d7bf78033c0de33493" - integrity sha1-fViutyq7R8Hn6rDXv3gDPA3jNJM= - dependencies: - readable-stream "2.2.3" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - integrity sha1-Wb+1DNkF9g18OUzT2ayqtOatk04= - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -glob-parent@~5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - 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" - -glob@^7.1.3, glob@^7.1.4: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - 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" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -heartbeats@~3.1.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/heartbeats/-/heartbeats-3.1.5.tgz#99be8b2392b9075cc9aebebb5831616bceac160e" - integrity sha1-mb6LI5K5B1zJrr67WDFha86sFg4= - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@~2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" - integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-reports@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" - integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-diff@^26.0.0: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== - dependencies: - chalk "^4.0.0" - diff-sequences "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" - integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== - dependencies: - argparse "^2.0.1" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== - -keypress@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77" - integrity sha1-HoBFQlABjbrUw/6USX1uZ7YmnHc= - -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - -log-symbols@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== - dependencies: - chalk "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mocha-lcov-reporter@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384" - integrity sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q= - -mocha@^8.4.0: - version "8.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" - integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== - dependencies: - "@ungap/promise-all-settled" "1.1.2" - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.1" - debug "4.3.1" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.1.6" - growl "1.10.5" - he "1.2.0" - js-yaml "4.0.0" - log-symbols "4.0.0" - minimatch "3.0.4" - ms "2.1.3" - nanoid "3.1.20" - serialize-javascript "5.0.1" - strip-json-comments "3.1.1" - supports-color "8.1.1" - which "2.0.2" - wide-align "1.1.3" - workerpool "6.1.0" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -moo@^0.5.0, moo@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - -ms@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multiview@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/multiview/-/multiview-3.0.1.tgz#ecd7cc36b55a3a782a9615fc06b1ef74392cca1b" - integrity sha512-SQhM9HwOw3MUyeR1g0javHbdlQNL7NcMR5Q1aahMMGdOLe80hFid9la3n0B8fgl329Iy+0vvIpIBWu5LAigTqQ== - dependencies: - columns "0.8.0" - event-transmitter "2.0.0" - keypress "0.2.1" - protogram "1.1.3" - protogram-help "1.0.2" - tree-kill "^1.2.2" - unparse-args "1.0.1" - -nanoid@3.1.20: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== - -nearley@^2.20.1: - version "2.20.1" - resolved "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz" - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - -nise@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" - integrity sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@sinonjs/fake-timers" "^6.0.0" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - 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" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pkginfo@~0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" - integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= - -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - -protogram-help@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/protogram-help/-/protogram-help-1.0.2.tgz#fb49cacff85fe80edb3568ac6eac78af0b032a19" - integrity sha1-+0nKz/hf6A7bNWisbqx4rwsDKhk= - dependencies: - columnify "~1.3.2" - pkginfo "~0.3.0" - -protogram@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/protogram/-/protogram-1.1.3.tgz#95f1df709c43310d62c13942baa09b753a688cf1" - integrity sha1-lfHfcJxDMQ1iwTlCuqCbdTpojPE= - dependencies: - subarg "~1.0.0" - unparse-args "~1.0.1" - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz" - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz" - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -readable-stream@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" - integrity sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk= - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== - dependencies: - picomatch "^2.2.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -resolve@^1.10.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - -rimraf@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rxjs@^6.6.3: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -serialize-javascript@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - -shell-escape@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.1.0.tgz#20e996fdd5f0c51be3f3c550119b77723d98e335" - integrity sha1-IOmW/dXwxRvj88VQEZt3cj2Y4zU= - -signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -sinon@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" - integrity sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw== - dependencies: - "@sinonjs/commons" "^1.8.1" - "@sinonjs/fake-timers" "^6.0.1" - "@sinonjs/samsam" "^5.3.1" - diff "^4.0.2" - nise "^4.1.0" - supports-color "^7.1.0" - -source-map-support@^0.5.17: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== - -split@~0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= - dependencies: - through "2" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -strip-ansi@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" - integrity sha1-32LBqpTtLxFOHQ8h/R1QSCt5pg4= - dependencies: - ansi-regex "^1.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" - integrity sha1-hbiGLzhEtabV7IRnqTWYFzo295Q= - dependencies: - first-chunk-stream "^1.0.0" - is-utf8 "^0.2.0" - -strip-json-comments@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -subarg@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= - dependencies: - minimist "^1.1.0" - -supervisor@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz" - -supports-color@8.1.1, supports-color@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -through@2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-node@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" - integrity sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg== - dependencies: - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -typescript@^4.2.4: - version "4.2.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz" - -uglify-js@^3.13.5: - version "3.13.5" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.5.tgz" - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unparse-args@1.0.1, unparse-args@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unparse-args/-/unparse-args-1.0.1.tgz#85906d556861045806f97533cd325ad100677078" - integrity sha1-hZBtVWhhBFgG+XUzzTJa0QBncHg= - dependencies: - shell-escape "~0.1.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-to-istanbul@^7.1.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -wcwidth.js@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth.js/-/wcwidth.js-1.0.1.tgz#44ad20db7d28dbb0a538604637e905de030f2996" - integrity sha512-LfinnEPQ7qBU4VWQpUsPi2GO3DsMsW/JMPBSi/FdvsutiCFcyQ66qBJIRJ9Lc3zNueiFnhioeJSdqlAkdONO8g== - -wcwidth@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -which@2.0.2, which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - dependencies: - isexe "^2.0.0" - -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -workerpool@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" - integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2, yargs-parser@^20.2.7: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@16.2.0, yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yarn@^1.22.10: - version "1.22.10" - resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/fake-timers@^7.0.4": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.0.tgz#8f13af27d842cbf51ad4502e05562fe9391d084e" + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sinonjs/samsam@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" + dependencies: + "@sinonjs/commons" "^1.6.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + +"@types/chai@^4.2.18": + version "4.2.18" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.18.tgz#0c8e298dbff8205e2266606c1ea5fbdba29b46e4" + +"@types/debug@^4.1.5": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" + +"@types/fs-extra@^9.0.11": + version "9.0.11" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.23": + version "26.0.23" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7" + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/lodash@^4.14.169": + version "4.14.170" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.170.tgz#0d67711d4bf7f4ca5147e9091b847479b87925d6" + +"@types/nearley@^2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@types/nearley/-/nearley-2.11.1.tgz#6ac3f57c00ca28071a1774ec72d2e45750f21420" + +"@types/node@*", "@types/node@^15.3.0": + version "15.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.0.tgz#f0ddca5a61e52627c9dcb771a6039d44694597bc" + +"@types/sinon@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.0.tgz#eecc3847af03d45ffe53d55aaaaf6ecb28b5e584" + dependencies: + "@sinonjs/fake-timers" "^7.0.4" + +"@types/uglify-js@^3.13.0": + version "3.13.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" + dependencies: + source-map "^0.6.1" + +"@types/uuid@^8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + dependencies: + "@types/yargs-parser" "*" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + +ansi-regex@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + +ansi-state@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ansi-state/-/ansi-state-1.0.5.tgz#0aeda248409664ac16b589121ac831cd6f721aa7" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +c8@^7.7.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.7.2.tgz#30ff37b8125d96cab3eb065895a0b68dbc495a0f" + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.0.2" + rimraf "^3.0.0" + test-exclude "^6.0.0" + v8-to-istanbul "^7.1.0" + yargs "^16.2.0" + yargs-parser "^20.2.7" + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + +chai@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + +columnify@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.3.2.tgz#61bd578a9269ae6fd949ce36fff589f3702c7867" + dependencies: + strip-ansi "^2.0.0" + wcwidth "^1.0.0" + +columns@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/columns/-/columns-0.8.0.tgz#c272fd81a18704423b2a3842e99d1920a577edd9" + dependencies: + ansi-state "~1.0.5" + heartbeats "~3.1.0" + split "~0.3.2" + strip-bom "~1.0.0" + wcwidth.js "~1.0.0" + +commander@^2.19.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +convert-source-map@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + dependencies: + safe-buffer "~5.1.1" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + dependencies: + cross-spawn "^7.0.1" + +cross-spawn@^7.0.0, cross-spawn@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@4.3.1, debug@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + dependencies: + type-detect "^4.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + +diff@^4.0.1, diff@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + +event-transmitter@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/event-transmitter/-/event-transmitter-2.0.0.tgz#7d58aeb72abb47c1e7eab0d7bf78033c0de33493" + dependencies: + readable-stream "2.2.3" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + +glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + dependencies: + is-glob "^4.0.1" + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + 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" + +glob@^7.1.3, glob@^7.1.4: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + 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" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + +heartbeats@~3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/heartbeats/-/heartbeats-3.1.5.tgz#99be8b2392b9075cc9aebebb5831616bceac160e" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@~2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + dependencies: + argparse "^2.0.1" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +just-extend@^4.0.2: + version "4.2.1" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + +keypress@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.2.1.tgz#1e80454250018dbad4c3fe94497d6e67b6269c77" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + dependencies: + p-locate "^5.0.0" + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + dependencies: + chalk "^4.0.0" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + dependencies: + semver "^6.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + +mocha-lcov-reporter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384" + +mocha@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +moo@^0.5.0, moo@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + +multiview@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/multiview/-/multiview-3.0.1.tgz#ecd7cc36b55a3a782a9615fc06b1ef74392cca1b" + dependencies: + columns "0.8.0" + event-transmitter "2.0.0" + keypress "0.2.1" + protogram "1.1.3" + protogram-help "1.0.2" + tree-kill "^1.2.2" + unparse-args "1.0.1" + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + +nearley@^2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + +nise@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" + dependencies: + "@sinonjs/commons" "^1.7.0" + "@sinonjs/fake-timers" "^6.0.0" + "@sinonjs/text-encoding" "^0.7.1" + just-extend "^4.0.2" + path-to-regexp "^1.7.0" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + dependencies: + p-limit "^3.0.2" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + dependencies: + isarray "0.0.1" + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + +pkginfo@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +protogram-help@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/protogram-help/-/protogram-help-1.0.2.tgz#fb49cacff85fe80edb3568ac6eac78af0b032a19" + dependencies: + columnify "~1.3.2" + pkginfo "~0.3.0" + +protogram@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/protogram/-/protogram-1.1.3.tgz#95f1df709c43310d62c13942baa09b753a688cf1" + dependencies: + subarg "~1.0.0" + unparse-args "~1.0.1" + +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + dependencies: + safe-buffer "^5.1.0" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + +readable-stream@2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + dependencies: + picomatch "^2.2.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + dependencies: + glob "^7.1.3" + +safe-buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + dependencies: + randombytes "^2.1.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + +shell-escape@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.1.0.tgz#20e996fdd5f0c51be3f3c550119b77723d98e335" + +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + +sinon@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" + dependencies: + "@sinonjs/commons" "^1.8.1" + "@sinonjs/fake-timers" "^6.0.1" + "@sinonjs/samsam" "^5.3.1" + diff "^4.0.2" + nise "^4.1.0" + supports-color "^7.1.0" + +source-map-support@^0.5.17: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + +split@~0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +strip-ansi@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" + dependencies: + ansi-regex "^1.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + dependencies: + ansi-regex "^5.0.0" + +strip-bom@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + +subarg@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + +supervisor@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/supervisor/-/supervisor-0.12.0.tgz#de7e6337015b291851c10f3538c4a7f04917ecc1" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + dependencies: + has-flag "^4.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + dependencies: + has-flag "^4.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + dependencies: + is-number "^7.0.0" + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + +ts-node@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" + dependencies: + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + +typescript@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961" + +uglify-js@^3.13.5: + version "3.13.7" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.7.tgz#25468a3b39b1c875df03f0937b2b7036a93f3fee" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + +unparse-args@1.0.1, unparse-args@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unparse-args/-/unparse-args-1.0.1.tgz#85906d556861045806f97533cd325ad100677078" + dependencies: + shell-escape "~0.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + +v8-to-istanbul@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +wcwidth.js@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth.js/-/wcwidth.js-1.0.1.tgz#44ad20db7d28dbb0a538604637e905de030f2996" + +wcwidth@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + dependencies: + defaults "^1.0.3" + +which@2.0.2, which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + dependencies: + string-width "^1.0.2 || 2" + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + +yargs-parser@^20.2.2, yargs-parser@^20.2.7: + version "20.2.7" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yarn@^1.22.10: + version "1.22.10" + resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.10.tgz#c99daa06257c80f8fa2c3f1490724e394c26b18c" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 54db1823f4fd79e9447868b195b3ef5c920733c1 Mon Sep 17 00:00:00 2001 From: Valerie Date: Sun, 23 May 2021 22:12:27 -0400 Subject: [PATCH 21/21] update name --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 200534f..21a01cf 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "vogue", + "name": "vogue-runtime", "version": "0.1.0", "main": "index.js", "license": "MIT",