From 434da3ce209a3056249ba95e59e29759f86b2d8e Mon Sep 17 00:00:00 2001 From: Timo Hocker Date: Sun, 17 May 2020 16:59:34 +0200 Subject: [PATCH] update --- .eslintrc.js | 20 ++- LICENSE | 2 +- README.md | 113 ++++++++++++++++ jenkins.js | 7 + lib/.eslintrc.js | 22 +-- lib/Persistent.ts | 7 + lib/interfaces/Assignable.ts | 7 + lib/interfaces/Serializable.ts | 7 + lib/interfaces/index.ts | 7 + package.json | 17 ++- yarn.lock | 240 ++++++++++++++++----------------- 11 files changed, 294 insertions(+), 155 deletions(-) create mode 100644 README.md diff --git a/.eslintrc.js b/.eslintrc.js index 54e37b9..f97aae2 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,23 +2,21 @@ * Copyright (C) Sapphirecode - All Rights Reserved * This file is part of Modelling which is released under MIT. * See file 'LICENSE' for full license details. - * Created by Timo Hocker , May 2020 + * Created by Timo Hocker , May 2020 */ +'use strict'; + module.exports = { env: { commonjs: true, - es6: true, - node: true + es6: true, + node: true }, - extends: [ - '@sapphirecode' - ], + extends: [ '@sapphirecode' ], globals: { - Atomics: 'readonly', + Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, - parserOptions: { - ecmaVersion: 2018 - } -} + parserOptions: { ecmaVersion: 2018 } +}; diff --git a/LICENSE b/LICENSE index 08ed695..50704b2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -MIT License Copyright (c) 2020 Timo Hocker +MIT License Copyright (c) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md new file mode 100644 index 0000000..407c5f9 --- /dev/null +++ b/README.md @@ -0,0 +1,113 @@ +# @sapphirecode/modelling + +version: 1.0.x + +base classes for controlling data + +## Installation + +npm: + +> npm i --save @sapphirecode/modelling + +yarn: + +> yarn add @sapphirecode/modelling + +## Usage + +### Classes + +#### Persistent + +Persistent allows easy data transfer between classes that extend Persistent, as +long as they have overlapping properties. + +to create a persistent type, create a class that extends Persistent and in the +constructor, define all properties you want to store. + +Property types can be string, boolean, number or array + +```js +import { Persistent } from '@sapphirecode/modelling'; + +class Foo extends Persistent { + public constructor() { + super(); + this.properties.foo = 'string'; + this.properties.baz = 'boolean'; + } +} + +class Bar extends Persistent { + public constructor() { + super(); + this.properties.bar = 'string'; + this.properties.baz = 'boolean'; + } +} + +const f = new Foo(); +f.set('foo','bar'); +f.set('baz', true); + +const b = new Bar(); +b.assign(f); // f.assign_to(b) will do the same +// now the property 'baz' of b will also be true +console.log(b.serialize()); // Persistent also implements Serializable +``` + +Methods: + +- assign, assign_to, assign_object: (implementation of Assignable) +- to_object: return data as plain object +- serialize: return data as json string (Implementation of Serializable) +- set(key, value): set property to a specific value +- get(key): get a property + +#### DatabaseModel + +Extends Persistent and has the abstract methods read, write, delete and +define_properties to allow working with databases + +in define_properties, set all the properties you need, id is automatically added +and has to be a number. + +read, write and delete specify the actions needed to interact with the database +itself + +#### ControlModel + +The ControlModel is there to verify incoming data and modify it if needed. It +also extends Persistent. + +The method define_properties lets you define the data you will store. + +verify is meant to check and modify data. + +update should be called when data was modified, by default it just calls verify, +but can also be used to report updates to other components + +### Interfaces + +#### Assignable + +Base interface of Persistent + +Methods: + +- assign(b): assign data of another assingable object (b) +- assign_to(b): assing data to b +- assign_object(obj): assign data of plain object obj + +#### Serializable + +Interface to allow serialization of different data structures + +Methods: + +- serialize: serialize into a string + +## License + +MIT © Timo Hocker diff --git a/jenkins.js b/jenkins.js index 865de5a..f082df5 100644 --- a/jenkins.js +++ b/jenkins.js @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of Modelling which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + 'use strict'; const https = require ('https'); diff --git a/lib/.eslintrc.js b/lib/.eslintrc.js index 9a67019..c40fbff 100644 --- a/lib/.eslintrc.js +++ b/lib/.eslintrc.js @@ -2,23 +2,23 @@ * Copyright (C) Sapphirecode - All Rights Reserved * This file is part of Modelling which is released under MIT. * See file 'LICENSE' for full license details. - * Created by Timo Hocker , May 2020 + * Created by Timo Hocker , May 2020 */ +/* eslint-disable */ + +'use strict'; + module.exports = { env: { commonjs: true, - es6: true, - node: true + es6: true, + node: true }, - extends: [ - '@sapphirecode/eslint-config-ts' - ], + extends: [ '@sapphirecode/eslint-config-ts' ], globals: { - Atomics: 'readonly', + Atomics: 'readonly', SharedArrayBuffer: 'readonly' }, - parserOptions: { - ecmaVersion: 2018 - } -} + parserOptions: { ecmaVersion: 2018 } +}; diff --git a/lib/Persistent.ts b/lib/Persistent.ts index 668f767..f03bf51 100644 --- a/lib/Persistent.ts +++ b/lib/Persistent.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of Modelling which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + import { copy_object } from '@sapphirecode/utilities'; import { Assignable, Serializable } from './interfaces'; diff --git a/lib/interfaces/Assignable.ts b/lib/interfaces/Assignable.ts index 614d1b2..b06c3c4 100644 --- a/lib/interfaces/Assignable.ts +++ b/lib/interfaces/Assignable.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of Modelling which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + export interface Assignable { assign (a: Assignable): void; assign_to (a: Assignable): void; diff --git a/lib/interfaces/Serializable.ts b/lib/interfaces/Serializable.ts index 7d5a8d3..8c7a1c3 100644 --- a/lib/interfaces/Serializable.ts +++ b/lib/interfaces/Serializable.ts @@ -1,3 +1,10 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of Modelling which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + export interface Serializable { serialize(): string; } diff --git a/lib/interfaces/index.ts b/lib/interfaces/index.ts index c1ce87b..dd76448 100644 --- a/lib/interfaces/index.ts +++ b/lib/interfaces/index.ts @@ -1,2 +1,9 @@ +/* + * Copyright (C) Sapphirecode - All Rights Reserved + * This file is part of Modelling which is released under MIT. + * See file 'LICENSE' for full license details. + * Created by Timo Hocker , May 2020 + */ + export { Assignable } from './Assignable'; export { Serializable } from './Serializable'; diff --git a/package.json b/package.json index ae01bd0..87697d3 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,17 @@ "name": "@sapphirecode/modelling", "version": "1.0.0", "main": "dist/index.js", - "author": "Timo Hocker ", + "author": "Timo Hocker ", "license": "MIT", + "description": "base classes for controlling data", + "repository": { + "type": "git", + "url": "git@git.scode.ovh:timo/modelling" + }, "devDependencies": { - "@sapphirecode/eslint-config-ts": "^1.0.27", - "eslint": "^6.8.0", - "typescript": "^3.8.3" + "@sapphirecode/eslint-config-ts": "^1.1.4", + "eslint": "^7.0.0", + "typescript": "^3.9.2" }, "scripts": { "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.vue,.mjs", @@ -20,6 +25,6 @@ "LICENSE" ], "dependencies": { - "@sapphirecode/utilities": "^1.0.39" + "@sapphirecode/utilities": "^1.3.2" } -} +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c992cbf..a6af285 100644 --- a/yarn.lock +++ b/yarn.lock @@ -38,36 +38,36 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.19.tgz#2173ccb92469aaf62031fa9499d21b16d07f9b57" integrity sha512-IpgPxHrNxZiMNUSXqR1l/gePKPkfAmIKoDRP9hp7OwjU29ZR8WCJsOJ8iBKgw0Qk+pFwR+8Y1cy8ImLY6e9m4A== -"@sapphirecode/eslint-config-es6@^1.0.1": - version "1.0.37" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-es6/-/eslint-config-es6-1.0.37.tgz#c54a99bb9de225e866cb7a9b57f1b9342047ed2c" - integrity sha512-gCWF5usY0rvILzuiWPg9qYs8lc+/vUGSM3AETFEtp8njDc4mDdUU3GO7dzOwCDk68CUjgPIH8iPEFkybOflNBw== +"@sapphirecode/eslint-config-es6@^1.1.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-es6/-/eslint-config-es6-1.1.3.tgz#351688d2f0eb71dccde4fabb7995b3f8702f3060" + integrity sha512-D0GAlflDFOqcCLWdzlrlp//eBzyuBQuUVDW0UT2LedwvFJvOHpRtA2xCuG4VHEoozD66OSlqWHixVC3aUkeJoA== dependencies: - "@sapphirecode/eslint-config" "^2.0.1" - eslint-plugin-import "^2.20.1" + "@sapphirecode/eslint-config" "^2.1.2" + eslint-plugin-import "^2.20.2" -"@sapphirecode/eslint-config-ts@^1.0.27": - version "1.0.45" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-ts/-/eslint-config-ts-1.0.45.tgz#f6207b1154e873416ff6d2857ffd9023c3440979" - integrity sha512-HUi1i+lpltT72Bsr1QGWsh375gk0WDO0zsCUhWV+UeFejTs1K3lcSGgFw6oEPu+6/Kwwaia+UqMm1bSG46fbbA== +"@sapphirecode/eslint-config-ts@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config-ts/-/eslint-config-ts-1.1.4.tgz#7dad2797599d12e2bf5303f777c635347bba8e02" + integrity sha512-stQgigU/udvQqOUseTNjAEo8enRcImz1OpDlXkHAHlRpU/m2JwBC+8ikkjuUw5x4MROjxBxXYxWPOoUUML2jLQ== dependencies: - "@sapphirecode/eslint-config-es6" "^1.0.1" - "@typescript-eslint/eslint-plugin" "^2.26.0" - "@typescript-eslint/parser" "^2.26.0" + "@sapphirecode/eslint-config-es6" "^1.1.1" + "@typescript-eslint/eslint-plugin" "^2.33.0" + "@typescript-eslint/parser" "^2.33.0" eslint-plugin-tsdoc "^0.2.4" -"@sapphirecode/eslint-config@^2.0.1": - version "2.0.25" - resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config/-/eslint-config-2.0.25.tgz#c323e81faadba23dbe2edfe2c6e97497d0a44d25" - integrity sha512-SIu/n6KrNkk4zdKWSnPVNijdayiwbxNwBNWP29s3M3wHRR9DsgCED4gMQjbyQa+Ny4cfm2J6n3fuovjSB3Xryw== +"@sapphirecode/eslint-config@^2.1.2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@sapphirecode/eslint-config/-/eslint-config-2.1.4.tgz#0c1f53fcb7ce0a4296786dfc58036fa7a20cab46" + integrity sha512-PUPQUvvMQGnSRnYrXd/nMGKu2dj2TTzBGPa6Czt5RAAj4oG00a+5I1TVm10Ds55apmSFdHdW79+E+MUVmy7IMQ== dependencies: - eslint-plugin-node "^11.0.0" + eslint-plugin-node "^11.1.0" eslint-plugin-sort-requires-by-path "^1.0.2" -"@sapphirecode/utilities@^1.0.39": - version "1.0.40" - resolved "https://registry.yarnpkg.com/@sapphirecode/utilities/-/utilities-1.0.40.tgz#20f464408117d6e9d95cb1d1612b6f8489c91ee5" - integrity sha512-XD4p2cYyVu3CIMN2JUmg4YLgsC6dmD3UIEhYi3+UVuXhaYe7ZpZllKOcb8VxJTn5erbMkehoWuFJaYn77KE29g== +"@sapphirecode/utilities@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@sapphirecode/utilities/-/utilities-1.3.2.tgz#8e91f29ffba22e5b70e4ac7ad64138d3eb02334a" + integrity sha512-7itUduEGL7swjkHvXYZJiRgjt788GkwifWbCImGTsAHHZi1I8dPeqPkvLkuTNBre7kc9VMcSnISnAlHXoQF1yA== "@types/color-name@^1.1.1": version "1.1.1" @@ -84,7 +84,7 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== -"@typescript-eslint/eslint-plugin@^2.26.0": +"@typescript-eslint/eslint-plugin@^2.33.0": version "2.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.33.0.tgz#d6c8319d5011b4783bb3d2dadf105d8bdd499bd5" integrity sha512-QV6P32Btu1sCI/kTqjTNI/8OpCYyvlGjW5vD8MpTIg+HGE5S88HtT1G+880M4bXlvXj/NjsJJG0aGcVh0DdbeQ== @@ -104,7 +104,7 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.26.0": +"@typescript-eslint/parser@^2.33.0": version "2.33.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.33.0.tgz#395c0ef229ebef883608f8632a34f0acf02b9bdd" integrity sha512-AUtmwUUhJoH6yrtxZMHbRUEMsC2G6z5NSxg9KsROOGqNXasM71I8P2NihtumlWTUCRld70vqIZ6Pm4E5PAziEA== @@ -236,7 +236,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^2.0.0, chalk@^2.1.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== @@ -253,6 +253,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" + integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -304,16 +312,14 @@ contains-path@^0.1.0: resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== +cross-spawn@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" debug@^2.6.9: version "2.6.9" @@ -329,7 +335,7 @@ debug@^4.0.1, debug@^4.1.1: dependencies: ms "^2.1.1" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -428,7 +434,7 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.20.1: +eslint-plugin-import@^2.20.2: version "2.20.2" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== @@ -446,7 +452,7 @@ eslint-plugin-import@^2.20.1: read-pkg-up "^2.0.0" resolve "^1.12.0" -eslint-plugin-node@^11.0.0: +eslint-plugin-node@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== @@ -479,13 +485,6 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" @@ -498,22 +497,22 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.0.0.tgz#c35dfd04a4372110bd78c69a8d79864273919a08" + integrity sha512-qY1cwdOxMONHJfGqw52UOpZDeqXy8xmD0u8CT6jIstil72jkhURC704W8CFyTPDPllz4z4lu0Ql1+07PG/XdIg== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.3" + eslint-utils "^2.0.0" eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + espree "^7.0.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -526,25 +525,24 @@ eslint@^6.8.0: is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" + levn "^0.4.1" lodash "^4.17.14" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" @@ -555,7 +553,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -608,7 +606,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -877,13 +875,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + prelude-ls "^1.2.1" + type-check "~0.4.0" load-json-file@^2.0.0: version "2.0.0" @@ -952,11 +950,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -1011,17 +1004,17 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" os-tmpdir@~1.0.2: version "1.0.2" @@ -1071,10 +1064,10 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +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== path-parse@^1.0.6: version "1.0.6" @@ -1100,10 +1093,10 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== progress@^2.0.0: version "2.0.3" @@ -1132,12 +1125,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -1193,32 +1181,32 @@ rxjs@^6.5.3: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +"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.1.0, semver@^6.1.2: +semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: +semver@^7.2.1, semver@^7.3.2: version "7.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +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 "^1.0.0" + shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +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== signal-exit@^3.0.2: version "3.0.3" @@ -1317,7 +1305,7 @@ string.prototype.trimstart@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" -strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -1336,7 +1324,7 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -1394,12 +1382,12 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@^0.11.0: version "0.11.0" @@ -1411,7 +1399,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -typescript@^3.8.3: +typescript@^3.9.2: version "3.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9" integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== @@ -1436,14 +1424,14 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +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" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==