Browse Source

fix: mssql initial migration crash

pull/662/head
Nicolas Giard 6 years ago
parent
commit
92d0925d51
18 changed files with 254 additions and 176 deletions
  1. 2
      client/components/admin/admin-general.vue
  2. 9
      client/components/admin/admin-system.vue
  3. 3
      config.sample.yml
  4. 2
      dev/build/Dockerfile
  5. 2
      dev/docker/Dockerfile
  6. 37
      package.json
  7. 2
      server/core/db.js
  8. 24
      server/db/migrations/2.0.0.js
  9. 31
      server/graph/resolvers/system.js
  10. 2
      server/models/authentication.js
  11. 2
      server/models/editors.js
  12. 2
      server/models/locales.js
  13. 2
      server/models/loggers.js
  14. 2
      server/models/renderers.js
  15. 2
      server/models/searchEngines.js
  16. 2
      server/models/settings.js
  17. 2
      server/models/storage.js
  18. 302
      yarn.lock

2
client/components/admin/admin-general.vue

@ -125,7 +125,7 @@ export default {
metaRobots: ['Index', 'Follow', 'No Index', 'No Follow'],
useSquareLogo: false,
displayMascot: true,
featurePageRatings: false,
featurePageRatings: true,
featurePersonalWiki: true
}
},

9
client/components/admin/admin-system.vue

@ -97,11 +97,13 @@
v-avatar.indigo.darken-1(size='40')
icon-database(fillColor='#FFFFFF')
v-list-tile-content
v-list-tile-title {{ info.dbVersion }}
v-list-tile-title(v-html='dbVersion')
v-list-tile-sub-title {{ info.dbHost }}
</template>
<script>
import _ from 'lodash'
import IconCube from 'mdi/cube'
import IconDatabase from 'mdi/database'
import IconNodeJs from 'mdi/nodejs'
@ -119,6 +121,11 @@ export default {
info: {}
}
},
computed: {
dbVersion() {
return _.get(this.info, 'dbVersion', '').replace(/(?:\r\n|\r|\n)/g, '<br />')
}
},
methods: {
async refresh() {
await this.$apollo.queries.info.refetch()

3
config.sample.yml

@ -22,7 +22,8 @@ bindIP: 0.0.0.0
# ---------------------------------------------------------------------
# Supported Database Engines:
# - postgres = PostgreSQL 9.5 or later
# - mysql = MySQL 5.7.8 / MariaDB 10.2.7 or later
# - mysql = MySQL 5.7.8
# - mariadb = MariaDB 10.2.7 or later
# - mssql = MS SQL Server 2012 or later
# - sqlite = SQLite 3.9 or later

2
dev/build/Dockerfile

@ -1,4 +1,4 @@
FROM node:8-alpine
FROM node:10-alpine
LABEL maintainer="requarks.io"
RUN apk update && \

2
dev/docker/Dockerfile

@ -1,7 +1,7 @@
# -- DEV DOCKERFILE --
# -- DO NOT USE IN PRODUCTION! --
FROM node:8-alpine
FROM node:10-alpine
LABEL maintainer "requarks.io"
RUN apk update && \

37
package.json

@ -39,11 +39,11 @@
},
"homepage": "https://github.com/Requarks/wiki#readme",
"engines": {
"node": ">=8.11"
"node": ">=10.10"
},
"dependencies": {
"apollo-server": "2.0.6",
"apollo-server-express": "2.0.5",
"apollo-server": "2.0.7",
"apollo-server-express": "2.0.6",
"auto-load": "3.0.1",
"axios": "0.18.0",
"bcryptjs-then": "1.0.1",
@ -72,15 +72,16 @@
"follow-redirects": "1.5.7",
"fs-extra": "7.0.0",
"getos": "3.1.0",
"graphql": "14.0.0",
"graphql": "14.0.2",
"graphql-list-fields": "2.0.2",
"graphql-tools": "3.1.1",
"i18next": "11.6.0",
"i18next": "11.7.0",
"i18next-express-middleware": "1.3.2",
"i18next-localstorage-cache": "1.1.1",
"i18next-node-fs-backend": "2.0.0",
"i18next-node-fs-backend": "2.1.0",
"image-size": "0.6.3",
"ioredis": "4.0.0",
"js-binary": "1.2.0",
"js-yaml": "3.12.0",
"jsonwebtoken": "8.3.0",
"klaw": "3.0.0",
@ -136,7 +137,7 @@
"pm2": "3.0.4",
"pug": "2.0.3",
"qr-image": "3.2.0",
"raven": "2.6.3",
"raven": "2.6.4",
"read-chunk": "3.0.0",
"remove-markdown": "0.3.0",
"request": "2.88.0",
@ -148,8 +149,8 @@
"uuid": "3.3.2",
"validator": "10.7.1",
"validator-as-promised": "1.0.2",
"winston": "3.0.0",
"yargs": "12.0.1"
"winston": "3.1.0",
"yargs": "12.0.2"
},
"devDependencies": {
"@babel/cli": "^7.0.0",
@ -176,13 +177,13 @@
"apollo-link-error": "1.1.0",
"apollo-link-http": "1.5.4",
"apollo-link-persisted-queries": "0.2.1",
"autoprefixer": "9.1.3",
"autoprefixer": "9.1.5",
"babel-eslint": "9.0.0",
"babel-jest": "23.4.2",
"babel-loader": "^8.0.0",
"babel-plugin-graphql-tag": "1.6.0",
"babel-plugin-lodash": "3.3.4",
"babel-plugin-transform-imports": "1.5.0",
"babel-plugin-transform-imports": "1.5.1",
"brace": "0.11.1",
"cache-loader": "1.2.2",
"chart.js": "2.7.2",
@ -197,7 +198,7 @@
"eslint-config-standard": "12.0.0",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-node": "7.0.1",
"eslint-plugin-promise": "4.0.0",
"eslint-plugin-promise": "4.0.1",
"eslint-plugin-standard": "4.0.0",
"eslint-plugin-vue": "4.7.1",
"file-loader": "2.0.0",
@ -226,8 +227,8 @@
"pug-loader": "2.4.0",
"pug-plain-loader": "1.0.0",
"raw-loader": "0.5.1",
"react": "16.4.2",
"react-dom": "16.4.2",
"react": "16.5.0",
"react-dom": "16.5.0",
"sass-loader": "7.1.0",
"sass-resources-loader": "1.3.3",
"script-ext-html-webpack-plugin": "2.0.1",
@ -240,7 +241,7 @@
"vee-validate": "2.1.0-beta.8",
"velocity-animate": "1.5.2",
"vue": "2.5.17",
"vue-apollo": "3.0.0-beta.21",
"vue-apollo": "3.0.0-beta.24",
"vue-chartjs": "3.4.0",
"vue-clipboards": "1.2.4",
"vue-codemirror": "4.0.5",
@ -255,7 +256,7 @@
"vue-tour": "1.0.1",
"vue-tree-navigation": "3.0.1",
"vuedraggable": "2.16.0",
"vuetify": "1.2.1",
"vuetify": "1.2.3",
"vuex": "3.0.1",
"vuex-pathify": "1.1.3",
"vuex-persistedstate": "2.5.4",
@ -266,8 +267,8 @@
"webpack-hot-middleware": "2.23.1",
"webpack-merge": "4.1.4",
"whatwg-fetch": "2.0.4",
"write-file-webpack-plugin": "4.3.2",
"xterm": "3.6.0"
"write-file-webpack-plugin": "4.4.0",
"xterm": "3.7.0"
},
"browserslist": [
"> 1%",

2
server/core/db.js

@ -34,6 +34,7 @@ module.exports = {
case 'postgres':
dbClient = 'pg'
break
case 'mariadb':
case 'mysql':
dbClient = 'mysql2'
break
@ -52,6 +53,7 @@ module.exports = {
this.knex = Knex({
client: dbClient,
useNullAsDefault: true,
asyncStackTraces: WIKI.IS_DEBUG,
connection: dbConfig,
pool: {
async afterCreate(conn, done) {

24
server/db/migrations/2.0.0.js

@ -25,8 +25,7 @@ exports.up = knex => {
})
// AUTHENTICATION ----------------------
.createTable('authentication', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.json('config').notNullable()
table.boolean('selfRegistration').notNullable().defaultTo(false)
@ -42,8 +41,7 @@ exports.up = knex => {
})
// EDITORS -----------------------------
.createTable('editors', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.json('config').notNullable()
})
@ -56,8 +54,7 @@ exports.up = knex => {
})
// LOCALES -----------------------------
.createTable('locales', table => {
table.increments('id').primary()
table.string('code', 2).notNullable().unique()
table.string('code', 2).notNullable().primary()
table.json('strings')
table.boolean('isRTL').notNullable().defaultTo(false)
table.string('name').notNullable()
@ -67,8 +64,7 @@ exports.up = knex => {
})
// LOGGING ----------------------------
.createTable('loggers', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.string('level').notNullable().defaultTo('warn')
table.json('config')
@ -106,29 +102,25 @@ exports.up = knex => {
})
// RENDERERS ---------------------------
.createTable('renderers', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.json('config')
})
// SEARCH ------------------------------
.createTable('searchEngines', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.json('config')
})
// SETTINGS ----------------------------
.createTable('settings', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.json('value')
table.string('updatedAt').notNullable()
})
// STORAGE -----------------------------
.createTable('storage', table => {
table.increments('id').primary()
table.string('key').notNullable().unique()
table.string('key').notNullable().primary()
table.boolean('isEnabled').notNullable().defaultTo(false)
table.string('mode', ['sync', 'push', 'pull']).notNullable().defaultTo('push')
table.json('config')

31
server/graph/resolvers/system.js

@ -8,7 +8,8 @@ const path = require('path')
/* global WIKI */
const dbTypes = {
mysql: 'MySQL / MariaDB',
mysql: 'MySQL',
mariadb: 'MariaDB',
postgres: 'PostgreSQL',
sqlite: 'SQLite',
mssql: 'MS SQL Server'
@ -35,11 +36,33 @@ module.exports = {
dbType() {
return _.get(dbTypes, WIKI.config.db.type, 'Unknown DB')
},
dbVersion() {
return _.get(WIKI.models, 'knex.client.version', 'Unknown version')
async dbVersion() {
let version = 'Unknown Version'
switch (WIKI.config.db.type) {
case 'mariadb':
case 'mysql':
const resultMYSQL = await WIKI.models.knex.raw('SELECT VERSION() as version;')
version = _.get(resultMYSQL, '[0][0].version', 'Unknown Version')
break
case 'mssql':
const resultMSSQL = await WIKI.models.knex.raw('SELECT @@VERSION as version;')
version = _.get(resultMSSQL, '[0].version', 'Unknown Version')
break
case 'postgres':
version = _.get(WIKI.models, 'knex.client.version', 'Unknown Version')
break
case 'sqlite':
version = _.get(WIKI.models, 'knex.client.driver.VERSION', 'Unknown Version')
break
}
return version
},
dbHost() {
return WIKI.config.db.host
if (WIKI.config.db.type === 'sqlite') {
return WIKI.config.db.storage
} else {
return WIKI.config.db.host
}
},
latestVersion() {
return '2.0.0' // TODO

2
server/models/authentication.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class Authentication extends Model {
static get tableName() { return 'authentication' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class Authentication extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
config: {type: 'object'},

2
server/models/editors.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class Editor extends Model {
static get tableName() { return 'editors' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class Editor extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
config: {type: 'object'}

2
server/models/locales.js

@ -5,6 +5,7 @@ const Model = require('objection').Model
*/
module.exports = class User extends Model {
static get tableName() { return 'locales' }
static get idColumn() { return 'code' }
static get jsonSchema () {
return {
@ -12,7 +13,6 @@ module.exports = class User extends Model {
required: ['code', 'name'],
properties: {
id: {type: 'integer'},
code: {type: 'string'},
strings: {type: 'object'},
isRTL: {type: 'boolean', default: false},

2
server/models/loggers.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class Logger extends Model {
static get tableName() { return 'loggers' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class Logger extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
level: {type: 'string'},

2
server/models/renderers.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class Renderer extends Model {
static get tableName() { return 'renderers' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class Renderer extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
config: {type: 'object'}

2
server/models/searchEngines.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class SearchEngine extends Model {
static get tableName() { return 'searchEngines' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class SearchEngine extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
level: {type: 'string'},

2
server/models/settings.js

@ -8,6 +8,7 @@ const _ = require('lodash')
*/
module.exports = class Setting extends Model {
static get tableName() { return 'settings' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -15,7 +16,6 @@ module.exports = class Setting extends Model {
required: ['key', 'value'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
value: {type: 'object'},
createdAt: {type: 'string'},

2
server/models/storage.js

@ -12,6 +12,7 @@ const commonHelper = require('../helpers/common')
*/
module.exports = class Storage extends Model {
static get tableName() { return 'storage' }
static get idColumn() { return 'key' }
static get jsonSchema () {
return {
@ -19,7 +20,6 @@ module.exports = class Storage extends Model {
required: ['key', 'isEnabled'],
properties: {
id: {type: 'integer'},
key: {type: 'string'},
isEnabled: {type: 'boolean'},
mode: {type: 'string'},

302
yarn.lock

@ -1594,9 +1594,9 @@ apollo-engine-reporting-protobuf@0.0.1:
dependencies:
protobufjs "^6.8.6"
apollo-engine-reporting@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.3.tgz#7ab09c0bd5fc023769d722b8472cd5f92f4e4034"
apollo-engine-reporting@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.4.tgz#b2d6318febde9a1a64b518736d4695e81f069ba1"
dependencies:
apollo-engine-reporting-protobuf "0.0.1"
apollo-server-env "2.0.3"
@ -1719,15 +1719,15 @@ apollo-server-caching@^2.0.0-rc.6:
version "2.0.0-rc.6"
resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-2.0.0-rc.6.tgz#31a672f52254ea399a84053e40c2b5c54e12296a"
apollo-server-core@2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.0.5.tgz#b0e2b6b46ad9485f17f40b3242ff070b46ddb6c7"
apollo-server-core@2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.0.6.tgz#ce49d9616729c482a7d10a9285af3db564ae2c5a"
dependencies:
"@apollographql/apollo-upload-server" "^5.0.3"
"@types/ws" "^5.1.2"
apollo-cache-control "0.2.3"
apollo-datasource "0.1.3"
apollo-engine-reporting "0.0.3"
apollo-engine-reporting "0.0.4"
apollo-server-caching "0.1.2"
apollo-server-env "2.0.3"
apollo-server-errors "2.0.2"
@ -1786,9 +1786,9 @@ apollo-server-errors@^2.0.0-rc.6:
version "2.0.0-rc.6"
resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.0.0-rc.6.tgz#28bc420ddda040073b49c68c8604ae7bb9180ed6"
apollo-server-express@2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.0.5.tgz#a576191df808d7e5ecf23665afae28fe78291372"
apollo-server-express@2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.0.6.tgz#31288f47479e4f18828823f46e059218e5e12203"
dependencies:
"@apollographql/apollo-upload-server" "^5.0.3"
"@apollographql/graphql-playground-html" "^1.6.0"
@ -1797,7 +1797,7 @@ apollo-server-express@2.0.5:
"@types/cors" "^2.8.4"
"@types/express" "4.16.0"
accepts "^1.3.5"
apollo-server-core "2.0.5"
apollo-server-core "2.0.6"
body-parser "^1.18.3"
cors "^2.8.4"
graphql-subscriptions "^0.5.8"
@ -1822,12 +1822,12 @@ apollo-server-express@^2.0.0-rc.5:
graphql-tools "^3.0.4"
type-is "^1.6.16"
apollo-server@2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.0.6.tgz#c4d79162dfac887399d0dddda5c26941d959b806"
apollo-server@2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/apollo-server/-/apollo-server-2.0.7.tgz#a16741c9f7c6b04aff3a079451ae8c4c2abe5382"
dependencies:
apollo-server-core "2.0.5"
apollo-server-express "2.0.5"
apollo-server-core "2.0.6"
apollo-server-express "2.0.6"
express "^4.0.0"
graphql-subscriptions "^0.5.8"
graphql-tools "^3.0.4"
@ -2057,12 +2057,12 @@ auto-load@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/auto-load/-/auto-load-3.0.1.tgz#fbdbc2ee26c123fe20b944df0a384228475ae22a"
autoprefixer@9.1.3:
version "9.1.3"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.3.tgz#bd5940ccb9d1bfa3508308659915f0a14394c8d5"
autoprefixer@9.1.5:
version "9.1.5"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671"
dependencies:
browserslist "^4.0.2"
caniuse-lite "^1.0.30000878"
browserslist "^4.1.0"
caniuse-lite "^1.0.30000884"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.2"
@ -2225,9 +2225,9 @@ babel-plugin-syntax-object-rest-spread@^6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
babel-plugin-transform-imports@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.0.tgz#3105082ab489b1cee162e42d2ffe7b8f7c685f2e"
babel-plugin-transform-imports@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-imports/-/babel-plugin-transform-imports-1.5.1.tgz#b3756696aea907719d0d63b0e67c88fba963adb0"
dependencies:
babel-types "^6.6.0"
is-valid-path "^0.1.1"
@ -2565,14 +2565,6 @@ browserslist@^4.0.0:
electron-to-chromium "^1.3.52"
node-releases "^1.0.0-alpha.10"
browserslist@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.0.2.tgz#294388f5844bb3ab15ef7394ca17f49bf7a4e6f1"
dependencies:
caniuse-lite "^1.0.30000876"
electron-to-chromium "^1.3.57"
node-releases "^1.0.0-alpha.11"
browserslist@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.0.tgz#81cbb8e52dfa09918f93c6e051d779cb7360785d"
@ -2802,14 +2794,14 @@ caniuse-lite@^1.0.30000864, caniuse-lite@^1.0.30000865:
version "1.0.30000874"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000874.tgz#a641b1f1c420d58d9b132920ef6ba87bbdcd2223"
caniuse-lite@^1.0.30000876:
version "1.0.30000877"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000877.tgz#f189673b86ecc06436520e3e391de6a13ca923b4"
caniuse-lite@^1.0.30000878:
version "1.0.30000883"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000883.tgz#597c1eabfb379bd9fbeaa778632762eb574706ac"
caniuse-lite@^1.0.30000884:
version "1.0.30000885"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
capture-stack-trace@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
@ -3143,7 +3135,7 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
color-convert@^0.5.0, color-convert@^0.5.3:
color-convert@^0.5.3:
version "0.5.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
@ -3170,12 +3162,12 @@ color-string@^1.4.0, color-string@^1.5.2:
color-name "^1.0.0"
simple-swizzle "^0.2.2"
color@0.8.x:
version "0.8.0"
resolved "https://registry.yarnpkg.com/color/-/color-0.8.0.tgz#890c07c3fd4e649537638911cf691e5458b6fca5"
color@3.0.x, color@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
dependencies:
color-convert "^0.5.0"
color-string "^0.3.0"
color-convert "^1.9.1"
color-string "^1.5.2"
color@^0.11.0:
version "0.11.4"
@ -3199,16 +3191,9 @@ color@^2.0.1:
color-convert "^1.9.1"
color-string "^1.5.2"
color@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
dependencies:
color-convert "^1.9.1"
color-string "^1.5.2"
colornames@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/colornames/-/colornames-0.0.2.tgz#d811fd6c84f59029499a8ac4436202935b92be31"
colornames@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
colors@^1.2.1:
version "1.3.0"
@ -3218,12 +3203,12 @@ colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
colorspace@1.0.x:
version "1.0.1"
resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.0.1.tgz#c99c796ed31128b9876a52e1ee5ee03a4a719749"
colorspace@1.1.x:
version "1.1.1"
resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972"
dependencies:
color "0.8.x"
text-hex "0.0.x"
color "3.0.x"
text-hex "1.0.x"
combined-stream@1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6:
version "1.0.6"
@ -4025,13 +4010,13 @@ detect-libc@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
diagnostics@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.0.tgz#e1090900b49523e8527be20f081275205f2ae36a"
diagnostics@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
dependencies:
colorspace "1.0.x"
colorspace "1.1.x"
enabled "1.0.x"
kuler "0.0.x"
kuler "1.0.x"
dicer@0.2.5:
version "0.2.5"
@ -4254,10 +4239,6 @@ electron-to-chromium@^1.3.52:
version "1.3.55"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.55.tgz#f150e10b20b77d9d41afcca312efe0c3b1a7fdce"
electron-to-chromium@^1.3.57:
version "1.3.58"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.58.tgz#8267a4000014e93986d9d18c65a8b4022ca75188"
electron-to-chromium@^1.3.61:
version "1.3.62"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz#2e8e2dc070c800ec8ce23ff9dfcceb585d6f9ed8"
@ -4450,9 +4431,9 @@ eslint-plugin-node@7.0.1:
resolve "^1.8.1"
semver "^5.5.0"
eslint-plugin-promise@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.0.tgz#bc15a4aa04fa6116113b6c47488c421821b758fc"
eslint-plugin-promise@4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
eslint-plugin-standard@4.0.0:
version "4.0.0"
@ -5621,9 +5602,9 @@ graphql-voyager@1.0.0-rc.19:
reselect "^3.0.1"
svg-pan-zoom "^3.5.2"
graphql@14.0.0:
version "14.0.0"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.0.tgz#4ee771c5266d08cb75df2d3ac41e8dd51ce3d599"
graphql@14.0.2:
version "14.0.2"
resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz#7dded337a4c3fd2d075692323384034b357f5650"
dependencies:
iterall "^1.2.2"
@ -5923,9 +5904,9 @@ i18next-localstorage-cache@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/i18next-localstorage-cache/-/i18next-localstorage-cache-1.1.1.tgz#575256cc35e8cb2d88148f754766fdd2d24bb1b7"
i18next-node-fs-backend@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/i18next-node-fs-backend/-/i18next-node-fs-backend-2.0.0.tgz#ea0fc2c38523bdf8da24be00b73e3ad36ce907e3"
i18next-node-fs-backend@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.0.tgz#b0ad55eb8671b4dedbd21fe434fb50e964a4ece2"
dependencies:
js-yaml "3.12.0"
json5 "2.0.0"
@ -5934,9 +5915,9 @@ i18next-xhr-backend@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/i18next-xhr-backend/-/i18next-xhr-backend-1.5.1.tgz#50282610780c6a696d880dfa7f4ac1d01e8c3ad5"
i18next@11.6.0:
version "11.6.0"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-11.6.0.tgz#e0047aa3e3a0080f6f318426f90597cbb0d6ddd5"
i18next@11.7.0:
version "11.7.0"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-11.7.0.tgz#caf2f3d512ca5b2f556f065f698f33d44ca311d7"
iconv-lite@0.4.19:
version "0.4.19"
@ -6116,6 +6097,10 @@ invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
ioredis@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.0.0.tgz#fabf1cf8724f14fd0885233cf2f4fbc6e1e59da2"
@ -6588,6 +6573,10 @@ js-base64@^2.1.8:
version "2.4.5"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92"
js-binary@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/js-binary/-/js-binary-1.2.0.tgz#59ecd73f936183c06a1ed72a811656ce6b84f65c"
js-cookie@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.0.tgz#1b2c279a6eece380a12168b92485265b35b1effb"
@ -6835,11 +6824,11 @@ knex@0.15.2:
uuid "^3.3.2"
v8flags "^3.1.1"
kuler@0.0.x:
version "0.0.0"
resolved "https://registry.yarnpkg.com/kuler/-/kuler-0.0.0.tgz#b66bb46b934e550f59d818848e0abba4f7f5553c"
kuler@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.0.tgz#904ad31c373b781695854d32be33818bf1d60250"
dependencies:
colornames "0.0.2"
colornames "^1.1.1"
last-call-webpack-plugin@^3.0.0:
version "3.0.0"
@ -6875,6 +6864,12 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
dependencies:
invert-kv "^2.0.0"
ldap-filter@0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
@ -7178,9 +7173,9 @@ log-update@2.3.x:
cli-cursor "^2.0.0"
wrap-ansi "^3.0.1"
logform@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/logform/-/logform-1.9.0.tgz#7e02f7d6b7f70dcc8ae56fcd2d060f9547afbac2"
logform@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/logform/-/logform-1.9.1.tgz#58b29d7b11c332456d7a217e17b48a13ad69d60a"
dependencies:
colors "^1.2.1"
fast-safe-stringify "^2.0.4"
@ -7269,6 +7264,12 @@ mamacro@^0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
map-age-cleaner@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74"
dependencies:
p-defer "^1.0.0"
map-cache@^0.2.0, map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@ -7410,6 +7411,14 @@ mem@^1.1.0:
dependencies:
mimic-fn "^1.0.0"
mem@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
dependencies:
map-age-cleaner "^0.1.1"
mimic-fn "^1.0.0"
p-is-promise "^1.1.0"
memcached@~0.2.4:
version "0.2.8"
resolved "https://registry.yarnpkg.com/memcached/-/memcached-0.2.8.tgz#ffbf9498cbc30779625b77e77770bd50dc525212"
@ -8275,6 +8284,14 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
os-locale@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620"
dependencies:
execa "^0.10.0"
lcid "^2.0.0"
mem "^4.0.0"
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@ -8294,10 +8311,18 @@ output-file-sync@^2.0.0:
is-plain-obj "^1.1.0"
mkdirp "^0.5.1"
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
p-is-promise@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
p-limit@^1.0.0, p-limit@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
@ -9701,6 +9726,13 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1:
loose-envify "^1.3.1"
object-assign "^4.1.1"
prop-types@^15.6.2:
version "15.6.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
dependencies:
loose-envify "^1.3.1"
object-assign "^4.1.1"
proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
@ -9984,15 +10016,15 @@ range-parser@^1.0.3, range-parser@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
raven@2.6.3:
version "2.6.3"
resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.3.tgz#207475a12809277ef54eaceafe2597ff65262ab4"
raven@2.6.4:
version "2.6.4"
resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3"
dependencies:
cookie "0.3.1"
md5 "^2.2.1"
stack-trace "0.0.10"
timed-out "4.0.1"
uuid "3.0.0"
uuid "3.3.2"
raw-body@2.3.2:
version "2.3.2"
@ -10032,14 +10064,14 @@ react-css-themr@^2.1.2:
hoist-non-react-statics "^1.2.0"
invariant "^2.2.1"
react-dom@16.4.2:
version "16.4.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.4.2.tgz#4afed569689f2c561d2b8da0b819669c38a0bda4"
react-dom@16.5.0:
version "16.5.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.0.tgz#57704e5718669374b182a17ea79a6d24922cb27d"
dependencies:
fbjs "^0.8.16"
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.0"
prop-types "^15.6.2"
schedule "^0.3.0"
react-modal@^2.3.3:
version "2.4.1"
@ -10085,14 +10117,14 @@ react-transition-group@^2.2.1:
loose-envify "^1.3.1"
prop-types "^15.6.1"
react@16.4.2:
version "16.4.2"
resolved "https://registry.yarnpkg.com/react/-/react-16.4.2.tgz#2cd90154e3a9d9dd8da2991149fdca3c260e129f"
react@16.5.0:
version "16.5.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.5.0.tgz#f2c1e754bf9751a549d9c6d9aca41905beb56575"
dependencies:
fbjs "^0.8.16"
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.0"
prop-types "^15.6.2"
schedule "^0.3.0"
read-cache@^1.0.0:
version "1.0.0"
@ -10697,6 +10729,12 @@ sax@>=0.1.1, sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
schedule@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.3.0.tgz#1be2ab2fc2e768536269ce7326efb478d6c045e8"
dependencies:
object-assign "^4.1.1"
schema-utils@^0.4.2, schema-utils@^0.4.4, schema-utils@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
@ -11441,9 +11479,9 @@ test-exclude@^4.2.1:
read-pkg-up "^1.0.1"
require-main-filename "^1.0.1"
text-hex@0.0.x:
version "0.0.0"
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-0.0.0.tgz#578fbc85a6a92636e42dd17b41d0218cce9eb2b3"
text-hex@1.0.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
text-table@^0.2.0:
version "0.2.0"
@ -11922,10 +11960,6 @@ utils-merge@1.0.1, utils-merge@1.x.x:
version "1.0.1"
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
uuid@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728"
uuid@3.3.2, uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
@ -12029,9 +12063,9 @@ void-elements@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
vue-apollo@3.0.0-beta.21:
version "3.0.0-beta.21"
resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.21.tgz#f84358c92462f28ce80dfafdd6b77038e6ab5329"
vue-apollo@3.0.0-beta.24:
version "3.0.0-beta.24"
resolved "https://registry.yarnpkg.com/vue-apollo/-/vue-apollo-3.0.0-beta.24.tgz#c688f65b69a74b0e2b85576c5c5bb5286458604e"
dependencies:
chalk "^2.4.1"
throttle-debounce "^2.0.0"
@ -12173,9 +12207,9 @@ vuedraggable@2.16.0:
dependencies:
sortablejs "^1.7.0"
vuetify@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-1.2.1.tgz#00fc9568bd7ceeaa906b5c339be5f6934411ffa9"
vuetify@1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-1.2.3.tgz#519bab56c31420892912c0c7dbd23e790c9287bb"
vuex-pathify@1.1.3:
version "1.1.3"
@ -12426,14 +12460,14 @@ winston-transport@^4.2.0:
readable-stream "^2.3.6"
triple-beam "^1.2.0"
winston@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.0.0.tgz#1f0b24a96586798bcf0cd149fb07ed47cb01a1b2"
winston@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz#80724376aef164e024f316100d5b178d78ac5331"
dependencies:
async "^2.6.0"
diagnostics "^1.0.1"
diagnostics "^1.1.1"
is-stream "^1.1.0"
logform "^1.9.0"
logform "^1.9.1"
one-time "0.0.4"
readable-stream "^2.3.6"
stack-trace "0.0.x"
@ -12487,7 +12521,7 @@ wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
write-file-atomic@^2.0.0:
write-file-atomic@^2.0.0, write-file-atomic@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
dependencies:
@ -12495,9 +12529,9 @@ write-file-atomic@^2.0.0:
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
write-file-webpack-plugin@4.3.2:
version "4.3.2"
resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.3.2.tgz#7b07b3be009be1da668edf46cfb8a357b404b912"
write-file-webpack-plugin@4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.4.0.tgz#344e1551156e015c759d455a0b002c3b54bcad2e"
dependencies:
chalk "^2.4.0"
debug "^3.1.0"
@ -12505,6 +12539,7 @@ write-file-webpack-plugin@4.3.2:
lodash "^4.17.5"
mkdirp "^0.5.1"
moment "^2.22.1"
write-file-atomic "^2.3.0"
write@^0.2.1:
version "0.2.1"
@ -12616,9 +12651,9 @@ xtend@^4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
xterm@3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.6.0.tgz#9b95cd23a338e5842343aec1a104f094c5153e7c"
xterm@3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-3.7.0.tgz#b3eb1335dc04b92abe361711731d3b661e13db17"
y18n@^3.2.1:
version "3.2.1"
@ -12662,7 +12697,24 @@ yargs-parser@^5.0.0:
dependencies:
camelcase "^3.0.0"
yargs@12.0.1, yargs@^12.0.1:
yargs@12.0.2:
version "12.0.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc"
dependencies:
cliui "^4.0.0"
decamelize "^2.0.0"
find-up "^3.0.0"
get-caller-file "^1.0.1"
os-locale "^3.0.0"
require-directory "^2.1.1"
require-main-filename "^1.0.1"
set-blocking "^2.0.0"
string-width "^2.0.0"
which-module "^2.0.0"
y18n "^3.2.1 || ^4.0.0"
yargs-parser "^10.1.0"
yargs@^12.0.1:
version "12.0.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.1.tgz#6432e56123bb4e7c3562115401e98374060261c2"
dependencies:

Loading…
Cancel
Save