feat: extensions check + resolver
This commit is contained in:
parent
abc9e4e1d4
commit
e1382771cf
@ -17,7 +17,7 @@
|
||||
v-expansion-panel-header(disable-icon-rotate)
|
||||
span {{ext.title}}
|
||||
template(v-slot:actions)
|
||||
v-chip(label, color='success', small, v-if='ext.installed') Installed
|
||||
v-chip(label, color='success', small, v-if='ext.isInstalled') Installed
|
||||
v-chip(label, color='warning', small, v-else) Not Installed
|
||||
v-expansion-panel-content.pa-0
|
||||
v-card(flat, :class='$vuetify.theme.dark ? `grey darken-3` : `grey lighten-5`', tile)
|
||||
@ -25,18 +25,15 @@
|
||||
.body-2 {{ext.description}}
|
||||
v-divider.my-4
|
||||
.body-2
|
||||
strong.mr-3 Supported Platforms:
|
||||
v-chip.mr-1(label, small, :color='ext.platforms[`linux-amd64`] ? `success` : `error`') Linux (x64)
|
||||
v-chip.mr-1(label, small, :color='ext.platforms[`linux-arm64`] ? `success` : `error`') Linux (arm64)
|
||||
v-chip.mr-1(label, small, :color='ext.platforms[`linux-armv7`] ? `success` : `error`') Linux (armv7)
|
||||
v-chip.mr-1(label, small, :color='ext.platforms.macos ? `success` : `error`') MacOS
|
||||
v-chip.mr-1(label, small, :color='ext.platforms.windows ? `success` : `error`') Windows
|
||||
strong.mr-2 This extensions is
|
||||
v-chip.mr-2(v-if='ext.isCompatible', label, outlined, small, color='success') compatible
|
||||
v-chip.mr-2(v-else, label, small, color='error') not compatible
|
||||
strong with your host.
|
||||
v-card-chin
|
||||
v-spacer
|
||||
v-btn(disabled)
|
||||
v-icon(left) mdi-plus
|
||||
span Install
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -46,122 +43,70 @@ import gql from 'graphql-tag'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
config: {},
|
||||
extensions: [
|
||||
{
|
||||
key: 'git',
|
||||
title: 'Git',
|
||||
description: 'Distributed version control system. Required for the Git storage module.',
|
||||
platforms: {
|
||||
'linux-amd64': true,
|
||||
'linux-arm64': true,
|
||||
'linux-armv7': true,
|
||||
'macos': true,
|
||||
'windows': true
|
||||
},
|
||||
installed: true
|
||||
},
|
||||
{
|
||||
key: 'pandoc',
|
||||
title: 'Pandoc',
|
||||
description: 'Convert between markup formats. Required for converting from other formats such as MediaWiki, AsciiDoc, Textile and other wikis.',
|
||||
platforms: {
|
||||
'linux-amd64': true,
|
||||
'linux-arm64': false,
|
||||
'linux-armv7': false,
|
||||
'macos': true,
|
||||
'windows': true
|
||||
},
|
||||
installed: false
|
||||
},
|
||||
{
|
||||
key: 'puppeteer',
|
||||
title: 'Puppeteer',
|
||||
description: 'Headless chromium browser for server-side rendering. Required for generating PDF versions of pages and render content elements on the server (e.g. Mermaid diagrams)',
|
||||
platforms: {
|
||||
'linux-amd64': true,
|
||||
'linux-arm64': false,
|
||||
'linux-armv7': false,
|
||||
'macos': true,
|
||||
'windows': true
|
||||
},
|
||||
installed: false
|
||||
},
|
||||
{
|
||||
key: 'sharp',
|
||||
title: 'Sharp',
|
||||
description: 'Process and transform images. Required to generate thumbnails of uploaded images and perform transformations.',
|
||||
platforms: {
|
||||
'linux-amd64': true,
|
||||
'linux-arm64': false,
|
||||
'linux-armv7': false,
|
||||
'macos': true,
|
||||
'windows': true
|
||||
},
|
||||
installed: false
|
||||
}
|
||||
]
|
||||
extensions: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
methods: {
|
||||
async save () {
|
||||
try {
|
||||
await this.$apollo.mutate({
|
||||
mutation: gql`
|
||||
mutation (
|
||||
$host: String!
|
||||
) {
|
||||
site {
|
||||
updateConfig(
|
||||
host: $host
|
||||
) {
|
||||
responseResult {
|
||||
succeeded
|
||||
errorCode
|
||||
slug
|
||||
message
|
||||
}
|
||||
}
|
||||
}
|
||||
// try {
|
||||
// await this.$apollo.mutate({
|
||||
// mutation: gql`
|
||||
// mutation (
|
||||
// $host: String!
|
||||
// ) {
|
||||
// site {
|
||||
// updateConfig(
|
||||
// host: $host
|
||||
// ) {
|
||||
// responseResult {
|
||||
// succeeded
|
||||
// errorCode
|
||||
// slug
|
||||
// message
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// `,
|
||||
// variables: {
|
||||
// host: _.get(this.config, 'host', '')
|
||||
// },
|
||||
// watchLoading (isLoading) {
|
||||
// this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-extensions-update')
|
||||
// }
|
||||
// })
|
||||
// this.$store.commit('showNotification', {
|
||||
// style: 'success',
|
||||
// message: 'Configuration saved successfully.',
|
||||
// icon: 'check'
|
||||
// })
|
||||
// } catch (err) {
|
||||
// this.$store.commit('pushGraphError', err)
|
||||
// }
|
||||
}
|
||||
},
|
||||
apollo: {
|
||||
extensions: {
|
||||
query: gql`
|
||||
{
|
||||
system {
|
||||
extensions {
|
||||
key
|
||||
title
|
||||
description
|
||||
isInstalled
|
||||
isCompatible
|
||||
}
|
||||
`,
|
||||
variables: {
|
||||
host: _.get(this.config, 'host', '')
|
||||
},
|
||||
watchLoading (isLoading) {
|
||||
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-site-update')
|
||||
}
|
||||
})
|
||||
this.$store.commit('showNotification', {
|
||||
style: 'success',
|
||||
message: 'Configuration saved successfully.',
|
||||
icon: 'check'
|
||||
})
|
||||
} catch (err) {
|
||||
this.$store.commit('pushGraphError', err)
|
||||
}
|
||||
`,
|
||||
fetchPolicy: 'network-only',
|
||||
update: (data) => _.cloneDeep(data.system.extensions),
|
||||
watchLoading (isLoading) {
|
||||
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-extensions-refresh')
|
||||
}
|
||||
}
|
||||
}
|
||||
// apollo: {
|
||||
// config: {
|
||||
// query: gql`
|
||||
// {
|
||||
// site {
|
||||
// config {
|
||||
// host
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// `,
|
||||
// fetchPolicy: 'network-only',
|
||||
// update: (data) => _.cloneDeep(data.site.config),
|
||||
// watchLoading (isLoading) {
|
||||
// this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'admin-site-refresh')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
|
||||
|
@ -19,7 +19,8 @@ const state = {
|
||||
view: false,
|
||||
post: false,
|
||||
manage: false
|
||||
}
|
||||
},
|
||||
commentsCount: 0
|
||||
}
|
||||
|
||||
export default {
|
||||
|
@ -103,10 +103,10 @@
|
||||
dark
|
||||
style='min-width: 50px; justify-content: center;'
|
||||
)
|
||||
span 334
|
||||
span {{commentsCount}}
|
||||
.d-flex
|
||||
v-btn.text-none(
|
||||
@click='goToComments'
|
||||
@click='goToComments()'
|
||||
:color='$vuetify.theme.dark ? `pink` : `pink darken-3`'
|
||||
outlined
|
||||
style='flex: 1 1 100%;'
|
||||
@ -441,6 +441,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
isAuthenticated: get('user/authenticated'),
|
||||
commentsCount: get('page/commentsCount'),
|
||||
rating: {
|
||||
get () {
|
||||
return 3.5
|
||||
|
@ -57,6 +57,7 @@
|
||||
"cheerio": "1.0.0-rc.3",
|
||||
"chokidar": "3.4.0",
|
||||
"clean-css": "4.2.3",
|
||||
"command-exists": "1.2.9",
|
||||
"compression": "1.7.4",
|
||||
"connect-session-knex": "1.6.0",
|
||||
"cookie-parser": "1.4.5",
|
||||
@ -162,7 +163,6 @@
|
||||
"scim-query-filter-parser": "2.0.4",
|
||||
"semver": "7.3.2",
|
||||
"serve-favicon": "2.5.0",
|
||||
"sharp": "0.25.2",
|
||||
"simple-git": "2.4.0",
|
||||
"solr-node": "1.2.1",
|
||||
"sqlite3": "4.2.0",
|
||||
|
21
server/core/extensions.js
Normal file
21
server/core/extensions.js
Normal file
@ -0,0 +1,21 @@
|
||||
const fs = require('fs-extra')
|
||||
const path = require('path')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
module.exports = {
|
||||
ext: {},
|
||||
async init () {
|
||||
const extDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/extensions'))
|
||||
WIKI.logger.info(`Checking for installed optional extensions...`)
|
||||
for (let dir of extDirs) {
|
||||
WIKI.extensions.ext[dir] = require(path.join(WIKI.SERVERPATH, 'modules/extensions', dir, 'ext.js'))
|
||||
const isInstalled = await WIKI.extensions.ext[dir].check()
|
||||
if (isInstalled) {
|
||||
WIKI.logger.info(`Optional extension ${dir} is installed. [ OK ]`)
|
||||
} else {
|
||||
WIKI.logger.info(`Optional extension ${dir} was not found on this system. [ SKIPPED ]`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -40,6 +40,7 @@ module.exports = {
|
||||
inbound: new EventEmitter(),
|
||||
outbound: new EventEmitter()
|
||||
}
|
||||
WIKI.extensions = require('./extensions')
|
||||
} catch (err) {
|
||||
WIKI.logger.error(err)
|
||||
process.exit(1)
|
||||
@ -76,6 +77,8 @@ module.exports = {
|
||||
await WIKI.models.searchEngines.refreshSearchEnginesFromDisk()
|
||||
await WIKI.models.storage.refreshTargetsFromDisk()
|
||||
|
||||
await WIKI.extensions.init()
|
||||
|
||||
await WIKI.auth.activateStrategies()
|
||||
await WIKI.models.commentProviders.initProvider()
|
||||
await WIKI.models.searchEngines.initEngine()
|
||||
|
@ -34,7 +34,14 @@ module.exports = {
|
||||
result.push({ key, value })
|
||||
}, [])
|
||||
},
|
||||
async info() { return {} }
|
||||
async info () { return {} },
|
||||
async extensions () {
|
||||
const exts = Object.values(WIKI.extensions.ext).map(ext => _.pick(ext, ['key', 'title', 'description', 'isInstalled']))
|
||||
for (let ext of exts) {
|
||||
ext.isCompatible = await WIKI.extensions.ext[ext.key].isCompatible()
|
||||
}
|
||||
return exts
|
||||
}
|
||||
},
|
||||
SystemMutation: {
|
||||
async updateFlags (obj, args, context) {
|
||||
|
@ -17,6 +17,7 @@ extend type Mutation {
|
||||
type SystemQuery {
|
||||
flags: [SystemFlag] @auth(requires: ["manage:system"])
|
||||
info: SystemInfo
|
||||
extensions: [SystemExtension]! @auth(requires: ["manage:system"])
|
||||
}
|
||||
|
||||
# -----------------------------------------------
|
||||
@ -112,3 +113,11 @@ type SystemImportUsersResponseFailed {
|
||||
email: String
|
||||
error: String
|
||||
}
|
||||
|
||||
type SystemExtension {
|
||||
key: String!
|
||||
title: String!
|
||||
description: String!
|
||||
isInstalled: Boolean!
|
||||
isCompatible: Boolean!
|
||||
}
|
||||
|
@ -45,9 +45,9 @@ module.exports = class CommentProvider extends Model {
|
||||
const dbProviders = await WIKI.models.commentProviders.query()
|
||||
|
||||
// -> Fetch definitions from disk
|
||||
const authDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/comments'))
|
||||
const commentDirs = await fs.readdir(path.join(WIKI.SERVERPATH, 'modules/comments'))
|
||||
let diskProviders = []
|
||||
for (let dir of authDirs) {
|
||||
for (let dir of commentDirs) {
|
||||
const def = await fs.readFile(path.join(WIKI.SERVERPATH, 'modules/comments', dir, 'definition.yml'), 'utf8')
|
||||
diskProviders.push(yaml.safeLoad(def))
|
||||
}
|
||||
|
20
server/modules/extensions/git/ext.js
Normal file
20
server/modules/extensions/git/ext.js
Normal file
@ -0,0 +1,20 @@
|
||||
const cmdExists = require('command-exists')
|
||||
|
||||
module.exports = {
|
||||
key: 'git',
|
||||
title: 'Git',
|
||||
description: 'Distributed version control system. Required for the Git storage module.',
|
||||
isInstalled: false,
|
||||
async isCompatible () {
|
||||
return true
|
||||
},
|
||||
async check () {
|
||||
try {
|
||||
await cmdExists('git')
|
||||
this.isInstalled = true
|
||||
} catch (err) {
|
||||
this.isInstalled = false
|
||||
}
|
||||
return this.isInstalled
|
||||
}
|
||||
}
|
21
server/modules/extensions/pandoc/ext.js
Normal file
21
server/modules/extensions/pandoc/ext.js
Normal file
@ -0,0 +1,21 @@
|
||||
const cmdExists = require('command-exists')
|
||||
const os = require('os')
|
||||
|
||||
module.exports = {
|
||||
key: 'pandoc',
|
||||
title: 'Pandoc',
|
||||
description: 'Convert between markup formats. Required for converting from other formats such as MediaWiki, AsciiDoc, Textile and other wikis.',
|
||||
async isCompatible () {
|
||||
return os.arch() === 'x64'
|
||||
},
|
||||
isInstalled: false,
|
||||
async check () {
|
||||
try {
|
||||
await cmdExists('pandoc')
|
||||
this.isInstalled = true
|
||||
} catch (err) {
|
||||
this.isInstalled = false
|
||||
}
|
||||
return this.isInstalled
|
||||
}
|
||||
}
|
21
server/modules/extensions/puppeteer/ext.js
Normal file
21
server/modules/extensions/puppeteer/ext.js
Normal file
@ -0,0 +1,21 @@
|
||||
const cmdExists = require('command-exists')
|
||||
const os = require('os')
|
||||
|
||||
module.exports = {
|
||||
key: 'puppeteer',
|
||||
title: 'Puppeteer',
|
||||
description: 'Headless chromium browser for server-side rendering. Required for generating PDF versions of pages and render content elements on the server (e.g. Mermaid diagrams)',
|
||||
async isCompatible () {
|
||||
return os.arch() === 'x64'
|
||||
},
|
||||
isInstalled: false,
|
||||
async check () {
|
||||
try {
|
||||
await cmdExists('pandoc')
|
||||
this.isInstalled = true
|
||||
} catch (err) {
|
||||
this.isInstalled = false
|
||||
}
|
||||
return this.isInstalled
|
||||
}
|
||||
}
|
19
server/modules/extensions/sharp/ext.js
Normal file
19
server/modules/extensions/sharp/ext.js
Normal file
@ -0,0 +1,19 @@
|
||||
const fs = require('fs-extra')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
module.exports = {
|
||||
key: 'sharp',
|
||||
title: 'Sharp',
|
||||
description: 'Process and transform images. Required to generate thumbnails of uploaded images and perform transformations.',
|
||||
async isCompatible () {
|
||||
return os.arch() === 'x64'
|
||||
},
|
||||
isInstalled: false,
|
||||
async check () {
|
||||
this.isInstalled = await fs.pathExists(path.join(WIKI.ROOTPATH, 'node_modules/sharp'))
|
||||
return this.isInstalled
|
||||
}
|
||||
}
|
146
yarn.lock
146
yarn.lock
@ -4874,11 +4874,6 @@ chownr@^1.1.1:
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6"
|
||||
integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==
|
||||
|
||||
chownr@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
chrome-trace-event@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
|
||||
@ -5151,7 +5146,7 @@ color@^2.0.1:
|
||||
color-convert "^1.9.1"
|
||||
color-string "^1.5.2"
|
||||
|
||||
color@^3.0.0, color@^3.1.2:
|
||||
color@^3.0.0:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
|
||||
integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
|
||||
@ -5189,6 +5184,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
command-exists@1.2.9:
|
||||
version "1.2.9"
|
||||
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
|
||||
integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
|
||||
|
||||
commander@2:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
@ -7193,11 +7193,6 @@ expand-brackets@^2.1.4:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
expand-template@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
|
||||
integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
|
||||
|
||||
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
|
||||
@ -7704,13 +7699,6 @@ fs-minipass@^1.2.5:
|
||||
dependencies:
|
||||
minipass "^2.2.1"
|
||||
|
||||
fs-minipass@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
|
||||
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
fs-readdir-recursive@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
|
||||
@ -7833,11 +7821,6 @@ getpass@^0.1.1:
|
||||
dependencies:
|
||||
assert-plus "^1.0.0"
|
||||
|
||||
github-from-package@0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
|
||||
integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
|
||||
|
||||
glob-parent@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
|
||||
@ -10581,13 +10564,6 @@ minipass@^2.2.1, minipass@^2.3.5:
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.0"
|
||||
|
||||
minipass@^3.0.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
|
||||
integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minizlib@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
|
||||
@ -10595,14 +10571,6 @@ minizlib@^1.2.1:
|
||||
dependencies:
|
||||
minipass "^2.2.1"
|
||||
|
||||
minizlib@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3"
|
||||
integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
yallist "^4.0.0"
|
||||
|
||||
mississippi@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
|
||||
@ -10651,7 +10619,7 @@ mkdirp@^0.5.3:
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
mkdirp@^1.0.3, mkdirp@^1.0.4, mkdirp@~1.0.3:
|
||||
mkdirp@^1.0.4, mkdirp@~1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
@ -10817,11 +10785,6 @@ nanomatch@^1.2.9:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
|
||||
integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
|
||||
|
||||
native-duplexpair@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0"
|
||||
@ -10897,18 +10860,6 @@ node-2fa@1.1.2:
|
||||
notp "^2.0.3"
|
||||
thirty-two "0.0.2"
|
||||
|
||||
node-abi@^2.7.0:
|
||||
version "2.16.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.16.0.tgz#7df94e9c0a7a189f4197ab84bac8089ef5894992"
|
||||
integrity sha512-+sa0XNlWDA6T+bDLmkCUYn6W5k5W6BPRL6mqzSCs6H/xUgtl4D5x2fORKDzopKiU6wsyn/+wXlRXwXeSp+mtoA==
|
||||
dependencies:
|
||||
semver "^5.4.1"
|
||||
|
||||
node-addon-api@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.0.tgz#f9afb8d777a91525244b01775ea0ddbe1125483b"
|
||||
integrity sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==
|
||||
|
||||
node-cache@5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.0.tgz#266786c28dcec0fd34385ee29c383e6d6f1aa5de"
|
||||
@ -11060,11 +11011,6 @@ nodemailer@6.4.6:
|
||||
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.4.6.tgz#d37f504f6560b36616f646a606894fe18819107f"
|
||||
integrity sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA==
|
||||
|
||||
noop-logger@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
|
||||
integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
|
||||
|
||||
nopt@1.0.10:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
|
||||
@ -11162,7 +11108,7 @@ npm-run-path@^4.0.0:
|
||||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2:
|
||||
npmlog@^4.0.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
||||
@ -13207,27 +13153,6 @@ postgres-interval@^1.1.0:
|
||||
dependencies:
|
||||
xtend "^4.0.0"
|
||||
|
||||
prebuild-install@^5.3.3:
|
||||
version "5.3.3"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.3.tgz#ef4052baac60d465f5ba6bf003c9c1de79b9da8e"
|
||||
integrity sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==
|
||||
dependencies:
|
||||
detect-libc "^1.0.3"
|
||||
expand-template "^2.0.3"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.0"
|
||||
mkdirp "^0.5.1"
|
||||
napi-build-utils "^1.0.1"
|
||||
node-abi "^2.7.0"
|
||||
noop-logger "^0.1.1"
|
||||
npmlog "^4.0.1"
|
||||
pump "^3.0.0"
|
||||
rc "^1.2.7"
|
||||
simple-get "^3.0.3"
|
||||
tar-fs "^2.0.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
which-pm-runs "^1.0.0"
|
||||
|
||||
precond@0.2:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
|
||||
@ -14553,7 +14478,7 @@ semver@7.0.0:
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
||||
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
||||
|
||||
semver@7.3.2, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2:
|
||||
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==
|
||||
@ -14658,21 +14583,6 @@ shallow-clone@^3.0.0:
|
||||
dependencies:
|
||||
kind-of "^6.0.2"
|
||||
|
||||
sharp@0.25.2:
|
||||
version "0.25.2"
|
||||
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.25.2.tgz#f9003d73be50e9265e98f79f04fe53d8c66a3967"
|
||||
integrity sha512-l1GN0kFNtJr3U9i9pt7a+vo2Ij0xv4tTKDIPx8W6G9WELhPwrMyZZJKAAQNBSI785XB4uZfS5Wpz8C9jWV4AFQ==
|
||||
dependencies:
|
||||
color "^3.1.2"
|
||||
detect-libc "^1.0.3"
|
||||
node-addon-api "^2.0.0"
|
||||
npmlog "^4.1.2"
|
||||
prebuild-install "^5.3.3"
|
||||
semver "^7.1.3"
|
||||
simple-get "^3.1.0"
|
||||
tar "^6.0.1"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
@ -14717,20 +14627,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
||||
|
||||
simple-concat@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
|
||||
integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
|
||||
|
||||
simple-get@^3.0.3, simple-get@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
|
||||
integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
|
||||
dependencies:
|
||||
decompress-response "^4.2.0"
|
||||
once "^1.3.1"
|
||||
simple-concat "^1.0.0"
|
||||
|
||||
simple-git@2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-2.4.0.tgz#b7fe438ed9b818dd6f5f3ec240f2611a499d60d4"
|
||||
@ -15397,7 +15293,7 @@ tapable@^1.0.0, tapable@^1.1.3:
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
|
||||
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
|
||||
|
||||
tar-fs@2.1.0, tar-fs@^2.0.0:
|
||||
tar-fs@2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5"
|
||||
integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==
|
||||
@ -15431,18 +15327,6 @@ tar@^4:
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.3"
|
||||
|
||||
tar@^6.0.1:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
|
||||
integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
minipass "^3.0.0"
|
||||
minizlib "^2.1.0"
|
||||
mkdirp "^1.0.3"
|
||||
yallist "^4.0.0"
|
||||
|
||||
tarn@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/tarn/-/tarn-1.1.5.tgz#7be88622e951738b9fa3fb77477309242cdddc2d"
|
||||
@ -16630,11 +16514,6 @@ which-module@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
|
||||
|
||||
which-pm-runs@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
|
||||
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
|
||||
|
||||
which@^1.2.14, which@^1.2.9, which@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||
@ -16948,11 +16827,6 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
|
||||
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||
|
||||
yargs-parser@^13.1.0:
|
||||
version "13.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
|
||||
|
Loading…
Reference in New Issue
Block a user