mirror of
https://github.com/requarks/wiki.git
synced 2026-10-12 22:01:58 -05:00
feat: login screen UI + server code cleanup
This commit is contained in:
67 files changed
+1085
-1856
No files matched your search
+1
-1
@@ -8,7 +8,7 @@ trim_trailing_whitespace = true
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{jade,pug,md}]
|
||||
[*.{pug,md}]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[Makefile]
|
||||
|
||||
@@ -47,7 +47,7 @@ store.commit('user/REFRESH_AUTH')
|
||||
// Initialize Apollo Client (GraphQL)
|
||||
// ====================================
|
||||
|
||||
const graphQLEndpoint = window.location.protocol + '//' + window.location.host + '/graphql'
|
||||
const graphQLEndpoint = window.location.protocol + '//' + window.location.host + '/_graphql'
|
||||
|
||||
const graphQLLink = ApolloLink.from([
|
||||
new ErrorLink(({ graphQLErrors, networkError }) => {
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
/* eslint-disable import/first */
|
||||
import Vue from 'vue'
|
||||
import Vuetify from 'vuetify/lib'
|
||||
import boot from './modules/boot'
|
||||
/* eslint-enable import/first */
|
||||
|
||||
window.WIKI = null
|
||||
window.boot = boot
|
||||
|
||||
Vue.use(Vuetify)
|
||||
|
||||
Vue.component('setup', () => import(/* webpackMode: "eager" */ './components/setup.vue'))
|
||||
|
||||
let bootstrap = () => {
|
||||
window.WIKI = new Vue({
|
||||
el: '#root',
|
||||
vuetify: new Vuetify()
|
||||
})
|
||||
}
|
||||
|
||||
window.boot.onDOMReady(bootstrap)
|
||||
+23
-15
@@ -662,26 +662,34 @@ export default {
|
||||
apollo: {
|
||||
strategies: {
|
||||
query: gql`
|
||||
{
|
||||
authentication {
|
||||
activeStrategies(enabledOnly: true) {
|
||||
query loginFetchSiteStrategies(
|
||||
$siteId: UUID
|
||||
) {
|
||||
authStrategies(
|
||||
siteId: $siteId
|
||||
enabledOnly: true
|
||||
) {
|
||||
key
|
||||
strategy {
|
||||
key
|
||||
strategy {
|
||||
key
|
||||
logo
|
||||
color
|
||||
icon
|
||||
useForm
|
||||
usernameType
|
||||
}
|
||||
displayName
|
||||
order
|
||||
selfRegistration
|
||||
logo
|
||||
color
|
||||
icon
|
||||
useForm
|
||||
usernameType
|
||||
}
|
||||
displayName
|
||||
order
|
||||
selfRegistration
|
||||
}
|
||||
}
|
||||
`,
|
||||
update: (data) => _.sortBy(data.authentication.activeStrategies, ['order']),
|
||||
variables () {
|
||||
return {
|
||||
siteId: siteConfig.id
|
||||
}
|
||||
},
|
||||
update: (data) => _.sortBy(data.authStrategies, ['order']),
|
||||
watchLoading (isLoading) {
|
||||
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'login-strategies-refresh')
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
require('./scss/legacy.scss')
|
||||
require('./scss/fonts/default.scss')
|
||||
|
||||
window.WIKI = null
|
||||
@@ -1,11 +0,0 @@
|
||||
require('core-js/stable')
|
||||
require('regenerator-runtime/runtime')
|
||||
|
||||
/* eslint-disable no-unused-expressions */
|
||||
|
||||
require('./scss/app.scss')
|
||||
import(/* webpackChunkName: "mdi" */ '@mdi/font/css/materialdesignicons.css')
|
||||
|
||||
require('./helpers/compatibility.js')
|
||||
|
||||
require('./client-setup.js')
|
||||
+1
-1
@@ -60,7 +60,7 @@ const init = {
|
||||
},
|
||||
async reload() {
|
||||
console.warn(chalk.yellow('--- Gracefully stopping server...'))
|
||||
await global.WIKI.kernel.shutdown()
|
||||
await global.WIKI.kernel.shutdown(true)
|
||||
|
||||
console.warn(chalk.yellow('--- Purging node modules cache...'))
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ html(lang=siteConfig.lang)
|
||||
|
||||
//- Site Properties
|
||||
script.
|
||||
var siteId = "!{siteId}"
|
||||
var siteConfig = !{JSON.stringify(siteConfig)}
|
||||
var siteLangs = !{JSON.stringify(langs)}
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(charset='UTF-8')
|
||||
meta(name='viewport', content='user-scalable=yes, width=device-width, initial-scale=1, maximum-scale=5')
|
||||
meta(name='theme-color', content='#1976d2')
|
||||
meta(name='msapplication-TileColor', content='#1976d2')
|
||||
meta(name='msapplication-TileImage', content='/_assets/favicons/mstile-150x150.png')
|
||||
title Wiki.js Setup
|
||||
|
||||
//- Favicon
|
||||
link(rel='apple-touch-icon', sizes='180x180', href='/_assets/favicons/apple-touch-icon.png')
|
||||
link(rel='icon', type='image/png', sizes='192x192', href='/_assets/favicons/android-chrome-192x192.png')
|
||||
link(rel='icon', type='image/png', sizes='32x32', href='/_assets/favicons/favicon-32x32.png')
|
||||
link(rel='icon', type='image/png', sizes='16x16', href='/_assets/favicons/favicon-16x16.png')
|
||||
link(rel='mask-icon', href='/_assets/favicons/safari-pinned-tab.svg', color='#1976d2')
|
||||
link(rel='manifest', href='/_assets/manifest.json')
|
||||
|
||||
//- Site Lang
|
||||
script.
|
||||
var siteConfig = !{JSON.stringify({ title: config.title })}
|
||||
|
||||
//- Dev Mode Warning
|
||||
if devMode
|
||||
script.
|
||||
siteConfig.devMode = true
|
||||
|
||||
//- CSS
|
||||
<% for (var index in htmlWebpackPlugin.files.css) { %>
|
||||
link(
|
||||
type='text/css'
|
||||
rel='stylesheet'
|
||||
href='<%= htmlWebpackPlugin.files.css[index] %>'
|
||||
)
|
||||
<% } %>
|
||||
|
||||
//- JS
|
||||
<% for (var index in htmlWebpackPlugin.files.js) { %>
|
||||
script(
|
||||
type='text/javascript'
|
||||
src='<%= htmlWebpackPlugin.files.js[index] %>'
|
||||
)
|
||||
<% } %>
|
||||
|
||||
body
|
||||
#root
|
||||
setup(telemetry-id=telemetryClientID, wiki-version=packageObj.version)
|
||||
@@ -24,9 +24,7 @@ fs.emptyDirSync(path.join(process.cwd(), 'assets-legacy'))
|
||||
module.exports = {
|
||||
mode: 'development',
|
||||
entry: {
|
||||
app: ['./client/index-app.js', 'webpack-hot-middleware/client'],
|
||||
legacy: ['./client/index-legacy.js', 'webpack-hot-middleware/client'],
|
||||
setup: ['./client/index-setup.js', 'webpack-hot-middleware/client']
|
||||
app: ['./client/index-app.js', 'webpack-hot-middleware/client']
|
||||
},
|
||||
output: {
|
||||
path: path.join(process.cwd(), 'assets-legacy'),
|
||||
@@ -197,25 +195,10 @@ module.exports = {
|
||||
]
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/master.pug',
|
||||
filename: '../server/views/master.pug',
|
||||
template: 'dev/templates/base.pug',
|
||||
filename: '../server/views/base.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['setup', 'legacy']
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/legacy.pug',
|
||||
filename: '../server/views/legacy/master.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['setup', 'app']
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/setup.pug',
|
||||
filename: '../server/views/setup.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['app', 'legacy']
|
||||
inject: false
|
||||
}),
|
||||
new HtmlWebpackPugPlugin(),
|
||||
new WebpackBarPlugin({
|
||||
|
||||
@@ -29,9 +29,7 @@ fs.emptyDirSync(path.join(process.cwd(), 'assets-legacy'))
|
||||
module.exports = {
|
||||
mode: 'production',
|
||||
entry: {
|
||||
app: './client/index-app.js',
|
||||
legacy: './client/index-legacy.js',
|
||||
setup: './client/index-setup.js'
|
||||
app: './client/index-app.js'
|
||||
},
|
||||
output: {
|
||||
path: path.join(process.cwd(), 'assets-legacy'),
|
||||
@@ -208,25 +206,10 @@ module.exports = {
|
||||
chunkFilename: 'css/[name].[chunkhash].css'
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/master.pug',
|
||||
filename: '../server/views/master.pug',
|
||||
template: 'dev/templates/base.pug',
|
||||
filename: '../server/views/base.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['setup', 'legacy']
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/legacy.pug',
|
||||
filename: '../server/views/legacy/master.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['setup', 'app']
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
template: 'dev/templates/setup.pug',
|
||||
filename: '../server/views/setup.pug',
|
||||
hash: false,
|
||||
inject: false,
|
||||
excludeChunks: ['app', 'legacy']
|
||||
inject: false
|
||||
}),
|
||||
new HtmlWebpackPugPlugin(),
|
||||
new ScriptExtHtmlWebpackPlugin({
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
"scripts": {
|
||||
"start": "node server",
|
||||
"dev": "nodemon server",
|
||||
"legacy:dev": "node dev",
|
||||
"legacy:dev": "NODE_OPTIONS=--openssl-legacy-provider node dev",
|
||||
"legacy:build": "NODE_OPTIONS=--openssl-legacy-provider webpack --profile --config dev/webpack/webpack.prod.js",
|
||||
"test": "eslint --format codeframe --ext .js,.vue . && pug-lint server/views && jest",
|
||||
"cypress:open": "cypress open"
|
||||
|
||||
+15
-28
@@ -24,14 +24,13 @@ module.exports = {
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
this.bootMaster()
|
||||
this.bootWeb()
|
||||
},
|
||||
/**
|
||||
* Pre-Master Boot Sequence
|
||||
* Pre-Web Boot Sequence
|
||||
*/
|
||||
async preBootMaster() {
|
||||
async preBootWeb() {
|
||||
try {
|
||||
await this.initTelemetry()
|
||||
WIKI.sideloader = await require('./sideloader').init()
|
||||
WIKI.cache = require('./cache').init()
|
||||
WIKI.scheduler = require('./scheduler').init()
|
||||
@@ -48,22 +47,22 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Boot Master Process
|
||||
* Boot Web Process
|
||||
*/
|
||||
async bootMaster() {
|
||||
async bootWeb() {
|
||||
try {
|
||||
await this.preBootMaster()
|
||||
await require('../master')()
|
||||
this.postBootMaster()
|
||||
await this.preBootWeb()
|
||||
await require('../web')()
|
||||
this.postBootWeb()
|
||||
} catch (err) {
|
||||
WIKI.logger.error(err)
|
||||
process.exit(1)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Post-Master Boot Sequence
|
||||
* Post-Web Boot Sequence
|
||||
*/
|
||||
async postBootMaster() {
|
||||
async postBootWeb() {
|
||||
await WIKI.models.analytics.refreshProvidersFromDisk()
|
||||
await WIKI.models.authentication.refreshStrategiesFromDisk()
|
||||
await WIKI.models.commentProviders.refreshProvidersFromDisk()
|
||||
@@ -74,30 +73,16 @@ module.exports = {
|
||||
|
||||
await WIKI.auth.activateStrategies()
|
||||
await WIKI.models.commentProviders.initProvider()
|
||||
await WIKI.models.sites.reloadCache()
|
||||
await WIKI.models.storage.initTargets()
|
||||
// WIKI.scheduler.start()
|
||||
|
||||
await WIKI.models.subscribeToNotifications()
|
||||
},
|
||||
/**
|
||||
* Init Telemetry
|
||||
*/
|
||||
async initTelemetry() {
|
||||
require('./telemetry').init()
|
||||
|
||||
process.on('unhandledRejection', (err) => {
|
||||
WIKI.logger.warn(err)
|
||||
WIKI.telemetry.sendError(err)
|
||||
})
|
||||
process.on('uncaughtException', (err) => {
|
||||
WIKI.logger.warn(err)
|
||||
WIKI.telemetry.sendError(err)
|
||||
})
|
||||
},
|
||||
/**
|
||||
* Graceful shutdown
|
||||
*/
|
||||
async shutdown () {
|
||||
async shutdown (devMode = false) {
|
||||
if (WIKI.servers) {
|
||||
await WIKI.servers.stopServers()
|
||||
}
|
||||
@@ -113,6 +98,8 @@ module.exports = {
|
||||
if (WIKI.asar) {
|
||||
await WIKI.asar.unload()
|
||||
}
|
||||
process.exit(0)
|
||||
if (!devMode) {
|
||||
process.exit(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ module.exports = {
|
||||
minimumVersionRequired: '3.0.0-beta.0',
|
||||
minimumNodeRequired: '18.0.0'
|
||||
},
|
||||
init() {
|
||||
init () {
|
||||
// Clear content cache
|
||||
fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))
|
||||
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
const _ = require('lodash')
|
||||
const { createApolloFetch } = require('apollo-fetch')
|
||||
const { v4: uuid } = require('uuid')
|
||||
const os = require('os')
|
||||
const fs = require('fs-extra')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
module.exports = {
|
||||
enabled: false,
|
||||
init() {
|
||||
WIKI.telemetry = this
|
||||
|
||||
if (_.get(WIKI.config, 'telemetry.isEnabled', false) === true && WIKI.config.offline !== true) {
|
||||
this.enabled = true
|
||||
this.sendInstanceEvent('STARTUP')
|
||||
}
|
||||
},
|
||||
sendError(err) {
|
||||
// TODO
|
||||
},
|
||||
sendEvent(eventCategory, eventAction, eventLabel) {
|
||||
// TODO
|
||||
},
|
||||
async sendInstanceEvent(eventType) {
|
||||
if (WIKI.devMode || !this.enabled) { return }
|
||||
|
||||
try {
|
||||
const apollo = createApolloFetch({
|
||||
uri: WIKI.config.graphEndpoint
|
||||
})
|
||||
|
||||
// Platform detection
|
||||
let platform = 'LINUX'
|
||||
let isDockerized = false
|
||||
let osname = `${os.type()} ${os.release()}`
|
||||
switch (os.platform()) {
|
||||
case 'win32':
|
||||
platform = 'WINDOWS'
|
||||
break
|
||||
case 'darwin':
|
||||
platform = 'MACOS'
|
||||
break
|
||||
default:
|
||||
platform = 'LINUX'
|
||||
isDockerized = await fs.pathExists('/.dockerenv')
|
||||
if (isDockerized) {
|
||||
osname = 'Docker'
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
// DB Version detection
|
||||
let dbVersion = 'Unknown'
|
||||
switch (WIKI.config.db.type) {
|
||||
case 'mariadb':
|
||||
case 'mysql':
|
||||
const resultMYSQL = await WIKI.models.knex.raw('SELECT VERSION() as version;')
|
||||
dbVersion = _.get(resultMYSQL, '[0][0].version', 'Unknown')
|
||||
break
|
||||
case 'mssql':
|
||||
const resultMSSQL = await WIKI.models.knex.raw('SELECT @@VERSION as version;')
|
||||
dbVersion = _.get(resultMSSQL, '[0].version', 'Unknown')
|
||||
break
|
||||
case 'postgres':
|
||||
dbVersion = _.get(WIKI.models, 'knex.client.version', 'Unknown')
|
||||
break
|
||||
case 'sqlite':
|
||||
dbVersion = _.get(WIKI.models, 'knex.client.driver.VERSION', 'Unknown')
|
||||
break
|
||||
}
|
||||
|
||||
let arch = os.arch().toUpperCase()
|
||||
if (['ARM', 'ARM64', 'X32', 'X64'].indexOf(arch) < 0) {
|
||||
arch = 'OTHER'
|
||||
}
|
||||
|
||||
// Send Event
|
||||
const respStrings = await apollo({
|
||||
query: `mutation (
|
||||
$version: String!
|
||||
$platform: TelemetryPlatform!
|
||||
$os: String!
|
||||
$architecture: TelemetryArchitecture!
|
||||
$dbType: TelemetryDBType!
|
||||
$dbVersion: String!
|
||||
$nodeVersion: String!
|
||||
$cpuCores: Int!
|
||||
$ramMBytes: Int!,
|
||||
$clientId: String!,
|
||||
$event: TelemetryInstanceEvent!
|
||||
) {
|
||||
telemetry {
|
||||
instance(
|
||||
version: $version
|
||||
platform: $platform
|
||||
os: $os
|
||||
architecture: $architecture
|
||||
dbType: $dbType
|
||||
dbVersion: $dbVersion
|
||||
nodeVersion: $nodeVersion
|
||||
cpuCores: $cpuCores
|
||||
ramMBytes: $ramMBytes
|
||||
clientId: $clientId
|
||||
event: $event
|
||||
) {
|
||||
responseResult {
|
||||
succeeded
|
||||
errorCode
|
||||
slug
|
||||
message
|
||||
}
|
||||
}
|
||||
}
|
||||
}`,
|
||||
variables: {
|
||||
version: WIKI.version,
|
||||
platform,
|
||||
os: osname,
|
||||
architecture: arch,
|
||||
dbType: WIKI.config.db.type.toUpperCase(),
|
||||
dbVersion,
|
||||
nodeVersion: process.version.substr(1),
|
||||
cpuCores: os.cpus().length,
|
||||
ramMBytes: Math.round(os.totalmem() / 1024 / 1024),
|
||||
clientId: WIKI.config.telemetry.clientId,
|
||||
event: eventType
|
||||
}
|
||||
})
|
||||
const telemetryResponse = _.get(respStrings, 'data.telemetry.instance.responseResult', { succeeded: false, message: 'Unexpected Error' })
|
||||
if (!telemetryResponse.succeeded) {
|
||||
WIKI.logger.warn('Failed to send instance telemetry: ' + telemetryResponse.message)
|
||||
} else {
|
||||
WIKI.logger.info('Telemetry is active: [ OK ]')
|
||||
}
|
||||
} catch (err) {
|
||||
WIKI.logger.warn(err)
|
||||
}
|
||||
},
|
||||
generateClientId() {
|
||||
_.set(WIKI.config, 'telemetry.clientId', uuid())
|
||||
return WIKI.config.telemetry.clientId
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,7 @@ module.exports = {
|
||||
// }), ['title', 'key'])
|
||||
return _.sortBy(WIKI.storage.defs.map(md => {
|
||||
const dbTarget = dbTargets.find(tg => tg.module === md.key)
|
||||
console.info(md.actions)
|
||||
return {
|
||||
id: dbTarget?.id ?? uuid(),
|
||||
isEnabled: dbTarget?.isEnabled ?? false,
|
||||
@@ -62,12 +63,12 @@ module.exports = {
|
||||
setup: {
|
||||
handler: md?.setup?.handler,
|
||||
state: dbTarget?.state?.setup ?? 'notconfigured',
|
||||
values: md.setup?.handler
|
||||
? _.transform(md.setup.defaultValues,
|
||||
values: md.setup?.handler ?
|
||||
_.transform(md.setup.defaultValues,
|
||||
(r, v, k) => {
|
||||
r[k] = dbTarget?.config?.[k] ?? v
|
||||
}, {})
|
||||
: {}
|
||||
}, {}) :
|
||||
{}
|
||||
},
|
||||
config: _.transform(md.props, (r, v, k) => {
|
||||
const cfValue = dbTarget?.config?.[k] ?? v.default
|
||||
|
||||
@@ -8,6 +8,7 @@ extend type Query {
|
||||
apiState: Boolean
|
||||
|
||||
authStrategies(
|
||||
siteId: UUID
|
||||
enabledOnly: Boolean
|
||||
): [AuthenticationStrategy]
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ let WIKI = {
|
||||
Error: require('./helpers/error'),
|
||||
configSvc: require('./core/config'),
|
||||
kernel: require('./core/kernel'),
|
||||
sites: {},
|
||||
sitesMappings: {},
|
||||
startedAt: DateTime.utc(),
|
||||
storage: {
|
||||
defs: [],
|
||||
|
||||
@@ -28,6 +28,28 @@ module.exports = class Site extends Model {
|
||||
return ['config']
|
||||
}
|
||||
|
||||
static async getSiteByHostname ({ hostname, forceReload = false }) {
|
||||
if (forceReload) {
|
||||
await WIKI.models.sites.reloadCache()
|
||||
}
|
||||
const siteId = WIKI.sitesMappings[hostname] || WIKI.sitesMappings['*']
|
||||
if (siteId) {
|
||||
return WIKI.sites[siteId]
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
static async reloadCache () {
|
||||
WIKI.logger.info('Reloading site configurations...')
|
||||
const sites = await WIKI.models.sites.query().orderBy('id')
|
||||
WIKI.sites = _.keyBy(sites, 'id')
|
||||
WIKI.sitesMappings = {}
|
||||
for (const site of sites) {
|
||||
WIKI.sitesMappings[site.hostname] = site.id
|
||||
}
|
||||
WIKI.logger.info(`Loaded ${sites.length} site configurations [ OK ]`)
|
||||
}
|
||||
|
||||
static async createSite (hostname, config) {
|
||||
const newSite = await WIKI.models.sites.query().insertAndFetch({
|
||||
hostname,
|
||||
|
||||
-450
@@ -1,450 +0,0 @@
|
||||
const path = require('path')
|
||||
const { v4: uuid } = require('uuid')
|
||||
const bodyParser = require('body-parser')
|
||||
const compression = require('compression')
|
||||
const express = require('express')
|
||||
const favicon = require('serve-favicon')
|
||||
const http = require('http')
|
||||
const Promise = require('bluebird')
|
||||
const fs = require('fs-extra')
|
||||
const _ = require('lodash')
|
||||
const crypto = Promise.promisifyAll(require('crypto'))
|
||||
const pem2jwk = require('pem-jwk').pem2jwk
|
||||
const semver = require('semver')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
module.exports = () => {
|
||||
WIKI.config.site = {
|
||||
path: '',
|
||||
title: 'Wiki.js'
|
||||
}
|
||||
|
||||
WIKI.system = require('./core/system')
|
||||
|
||||
// ----------------------------------------
|
||||
// Define Express App
|
||||
// ----------------------------------------
|
||||
|
||||
let app = express()
|
||||
app.use(compression())
|
||||
|
||||
// ----------------------------------------
|
||||
// Public Assets
|
||||
// ----------------------------------------
|
||||
|
||||
app.use(favicon(path.join(WIKI.ROOTPATH, 'assets', 'favicon.ico')))
|
||||
app.use('/_assets', express.static(path.join(WIKI.ROOTPATH, 'assets')))
|
||||
|
||||
// ----------------------------------------
|
||||
// View Engine Setup
|
||||
// ----------------------------------------
|
||||
|
||||
app.set('views', path.join(WIKI.SERVERPATH, 'views'))
|
||||
app.set('view engine', 'pug')
|
||||
|
||||
app.use(bodyParser.json())
|
||||
app.use(bodyParser.urlencoded({ extended: false }))
|
||||
|
||||
app.locals.config = WIKI.config
|
||||
app.locals.data = WIKI.data
|
||||
app.locals._ = require('lodash')
|
||||
app.locals.devMode = WIKI.devMode
|
||||
|
||||
// ----------------------------------------
|
||||
// HMR (Dev Mode Only)
|
||||
// ----------------------------------------
|
||||
|
||||
if (global.DEV) {
|
||||
app.use(global.WP_DEV.devMiddleware)
|
||||
app.use(global.WP_DEV.hotMiddleware)
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Controllers
|
||||
// ----------------------------------------
|
||||
|
||||
app.get('*', async (req, res) => {
|
||||
let packageObj = await fs.readJson(path.join(WIKI.ROOTPATH, 'package.json'))
|
||||
res.render('setup', { packageObj })
|
||||
})
|
||||
|
||||
/**
|
||||
* Finalize
|
||||
*/
|
||||
app.post('/finalize', async (req, res) => {
|
||||
try {
|
||||
// Set config
|
||||
_.set(WIKI.config, 'auth', {
|
||||
audience: 'urn:wiki.js',
|
||||
tokenExpiration: '30m',
|
||||
tokenRenewal: '14d'
|
||||
})
|
||||
_.set(WIKI.config, 'company', '')
|
||||
_.set(WIKI.config, 'features', {
|
||||
featurePageRatings: true,
|
||||
featurePageComments: true,
|
||||
featurePersonalWikis: true
|
||||
})
|
||||
_.set(WIKI.config, 'graphEndpoint', 'https://graph.requarks.io')
|
||||
_.set(WIKI.config, 'host', req.body.siteUrl)
|
||||
_.set(WIKI.config, 'lang', {
|
||||
code: 'en',
|
||||
autoUpdate: true,
|
||||
namespacing: false,
|
||||
namespaces: []
|
||||
})
|
||||
_.set(WIKI.config, 'logo', {
|
||||
hasLogo: false,
|
||||
logoIsSquare: false
|
||||
})
|
||||
_.set(WIKI.config, 'mail', {
|
||||
senderName: '',
|
||||
senderEmail: '',
|
||||
host: '',
|
||||
port: 465,
|
||||
secure: true,
|
||||
verifySSL: true,
|
||||
user: '',
|
||||
pass: '',
|
||||
useDKIM: false,
|
||||
dkimDomainName: '',
|
||||
dkimKeySelector: '',
|
||||
dkimPrivateKey: ''
|
||||
})
|
||||
_.set(WIKI.config, 'seo', {
|
||||
description: '',
|
||||
robots: ['index', 'follow'],
|
||||
analyticsService: '',
|
||||
analyticsId: ''
|
||||
})
|
||||
_.set(WIKI.config, 'sessionSecret', (await crypto.randomBytesAsync(32)).toString('hex'))
|
||||
_.set(WIKI.config, 'telemetry', {
|
||||
isEnabled: req.body.telemetry === true,
|
||||
clientId: uuid()
|
||||
})
|
||||
_.set(WIKI.config, 'theming', {
|
||||
theme: 'default',
|
||||
darkMode: false,
|
||||
iconset: 'mdi',
|
||||
injectCSS: '',
|
||||
injectHead: '',
|
||||
injectBody: ''
|
||||
})
|
||||
_.set(WIKI.config, 'title', 'Wiki.js')
|
||||
|
||||
// Init Telemetry
|
||||
WIKI.kernel.initTelemetry()
|
||||
// WIKI.telemetry.sendEvent('setup', 'install-start')
|
||||
|
||||
// Basic checks
|
||||
if (!semver.satisfies(process.version, '>=10.12')) {
|
||||
throw new Error('Node.js 10.12.x or later required!')
|
||||
}
|
||||
|
||||
// Create directory structure
|
||||
WIKI.logger.info('Creating data directories...')
|
||||
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath))
|
||||
await fs.emptyDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'cache'))
|
||||
await fs.ensureDir(path.resolve(WIKI.ROOTPATH, WIKI.config.dataPath, 'uploads'))
|
||||
|
||||
// Generate certificates
|
||||
WIKI.logger.info('Generating certificates...')
|
||||
const certs = crypto.generateKeyPairSync('rsa', {
|
||||
modulusLength: 2048,
|
||||
publicKeyEncoding: {
|
||||
type: 'pkcs1',
|
||||
format: 'pem'
|
||||
},
|
||||
privateKeyEncoding: {
|
||||
type: 'pkcs1',
|
||||
format: 'pem',
|
||||
cipher: 'aes-256-cbc',
|
||||
passphrase: WIKI.config.sessionSecret
|
||||
}
|
||||
})
|
||||
|
||||
_.set(WIKI.config, 'certs', {
|
||||
jwk: pem2jwk(certs.publicKey),
|
||||
public: certs.publicKey,
|
||||
private: certs.privateKey
|
||||
})
|
||||
|
||||
// Save config to DB
|
||||
WIKI.logger.info('Persisting config to DB...')
|
||||
await WIKI.configSvc.saveToDb([
|
||||
'auth',
|
||||
'certs',
|
||||
'company',
|
||||
'features',
|
||||
'graphEndpoint',
|
||||
'host',
|
||||
'lang',
|
||||
'logo',
|
||||
'mail',
|
||||
'seo',
|
||||
'sessionSecret',
|
||||
'telemetry',
|
||||
'theming',
|
||||
'uploads',
|
||||
'title'
|
||||
], false)
|
||||
|
||||
// Truncate tables (reset from previous failed install)
|
||||
await WIKI.models.locales.query().where('code', '!=', 'x').del()
|
||||
await WIKI.models.navigation.query().truncate()
|
||||
switch (WIKI.config.db.type) {
|
||||
case 'postgres':
|
||||
await WIKI.models.knex.raw('TRUNCATE groups, users CASCADE')
|
||||
break
|
||||
case 'mysql':
|
||||
case 'mariadb':
|
||||
await WIKI.models.groups.query().where('id', '>', 0).del()
|
||||
await WIKI.models.users.query().where('id', '>', 0).del()
|
||||
await WIKI.models.knex.raw('ALTER TABLE `groups` AUTO_INCREMENT = 1')
|
||||
await WIKI.models.knex.raw('ALTER TABLE `users` AUTO_INCREMENT = 1')
|
||||
break
|
||||
case 'mssql':
|
||||
await WIKI.models.groups.query().del()
|
||||
await WIKI.models.users.query().del()
|
||||
await WIKI.models.knex.raw(`
|
||||
IF EXISTS (SELECT * FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'groups' AND last_value IS NOT NULL)
|
||||
DBCC CHECKIDENT ([groups], RESEED, 0)
|
||||
`)
|
||||
await WIKI.models.knex.raw(`
|
||||
IF EXISTS (SELECT * FROM sys.identity_columns WHERE OBJECT_NAME(OBJECT_ID) = 'users' AND last_value IS NOT NULL)
|
||||
DBCC CHECKIDENT ([users], RESEED, 0)
|
||||
`)
|
||||
break
|
||||
case 'sqlite':
|
||||
await WIKI.models.groups.query().truncate()
|
||||
await WIKI.models.users.query().truncate()
|
||||
break
|
||||
}
|
||||
|
||||
// Create default locale
|
||||
WIKI.logger.info('Installing default locale...')
|
||||
await WIKI.models.locales.query().insert({
|
||||
code: 'en',
|
||||
strings: {},
|
||||
isRTL: false,
|
||||
name: 'English',
|
||||
nativeName: 'English'
|
||||
})
|
||||
|
||||
// Create default groups
|
||||
|
||||
WIKI.logger.info('Creating default groups...')
|
||||
const adminGroup = await WIKI.models.groups.query().insert({
|
||||
name: 'Administrators',
|
||||
permissions: JSON.stringify(['manage:system']),
|
||||
pageRules: JSON.stringify([]),
|
||||
isSystem: true
|
||||
})
|
||||
const guestGroup = await WIKI.models.groups.query().insert({
|
||||
name: 'Guests',
|
||||
permissions: JSON.stringify(['read:pages', 'read:assets', 'read:comments']),
|
||||
pageRules: JSON.stringify([
|
||||
{ id: 'guest', roles: ['read:pages', 'read:assets', 'read:comments'], match: 'START', deny: false, path: '', locales: [] }
|
||||
]),
|
||||
isSystem: true
|
||||
})
|
||||
if (adminGroup.id !== 1 || guestGroup.id !== 2) {
|
||||
throw new Error('Incorrect groups auto-increment configuration! Should start at 0 and increment by 1. Contact your database administrator.')
|
||||
}
|
||||
|
||||
// Load local authentication strategy
|
||||
await WIKI.models.authentication.query().insert({
|
||||
key: 'local',
|
||||
config: {},
|
||||
selfRegistration: false,
|
||||
isEnabled: true,
|
||||
domainWhitelist: {v: []},
|
||||
autoEnrollGroups: {v: []},
|
||||
order: 0,
|
||||
strategyKey: 'local',
|
||||
displayName: 'Local'
|
||||
})
|
||||
|
||||
// Load editors + enable default
|
||||
await WIKI.models.editors.refreshEditorsFromDisk()
|
||||
await WIKI.models.editors.query().patch({ isEnabled: true }).where('key', 'markdown')
|
||||
|
||||
// Load loggers
|
||||
await WIKI.models.loggers.refreshLoggersFromDisk()
|
||||
|
||||
// Load renderers
|
||||
await WIKI.models.renderers.refreshRenderersFromDisk()
|
||||
|
||||
// Load search engines + enable default
|
||||
await WIKI.models.searchEngines.refreshSearchEnginesFromDisk()
|
||||
await WIKI.models.searchEngines.query().patch({ isEnabled: true }).where('key', 'db')
|
||||
|
||||
// WIKI.telemetry.sendEvent('setup', 'install-loadedmodules')
|
||||
|
||||
// Load storage targets
|
||||
await WIKI.models.storage.refreshTargetsFromDisk()
|
||||
|
||||
// Create root administrator
|
||||
WIKI.logger.info('Creating root administrator...')
|
||||
const adminUser = await WIKI.models.users.query().insert({
|
||||
email: req.body.adminEmail.toLowerCase(),
|
||||
provider: 'local',
|
||||
password: req.body.adminPassword,
|
||||
name: 'Administrator',
|
||||
locale: 'en',
|
||||
defaultEditor: 'markdown',
|
||||
tfaIsActive: false,
|
||||
isActive: true,
|
||||
isVerified: true
|
||||
})
|
||||
await adminUser.$relatedQuery('groups').relate(adminGroup.id)
|
||||
|
||||
// Create Guest account
|
||||
WIKI.logger.info('Creating guest account...')
|
||||
const guestUser = await WIKI.models.users.query().insert({
|
||||
provider: 'local',
|
||||
email: 'guest@example.com',
|
||||
name: 'Guest',
|
||||
password: '',
|
||||
locale: 'en',
|
||||
defaultEditor: 'markdown',
|
||||
tfaIsActive: false,
|
||||
isSystem: true,
|
||||
isActive: true,
|
||||
isVerified: true
|
||||
})
|
||||
await guestUser.$relatedQuery('groups').relate(guestGroup.id)
|
||||
if (adminUser.id !== 1 || guestUser.id !== 2) {
|
||||
throw new Error('Incorrect users auto-increment configuration! Should start at 0 and increment by 1. Contact your database administrator.')
|
||||
}
|
||||
|
||||
// Create site nav
|
||||
|
||||
WIKI.logger.info('Creating default site navigation')
|
||||
await WIKI.models.navigation.query().insert({
|
||||
key: 'site',
|
||||
config: [
|
||||
{
|
||||
locale: 'en',
|
||||
items: [
|
||||
{
|
||||
id: uuid(),
|
||||
icon: 'mdi-home',
|
||||
kind: 'link',
|
||||
label: 'Home',
|
||||
target: '/',
|
||||
targetType: 'home',
|
||||
visibilityMode: 'all',
|
||||
visibilityGroups: null
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
})
|
||||
|
||||
WIKI.logger.info('Setup is complete!')
|
||||
// WIKI.telemetry.sendEvent('setup', 'install-completed')
|
||||
res.json({
|
||||
ok: true,
|
||||
redirectPath: '/',
|
||||
redirectPort: WIKI.config.port
|
||||
}).end()
|
||||
|
||||
if (WIKI.config.telemetry.isEnabled) {
|
||||
await WIKI.telemetry.sendInstanceEvent('INSTALL')
|
||||
}
|
||||
|
||||
WIKI.config.setup = false
|
||||
|
||||
WIKI.logger.info('Stopping Setup...')
|
||||
WIKI.server.destroy(() => {
|
||||
WIKI.logger.info('Setup stopped. Starting Wiki.js...')
|
||||
_.delay(() => {
|
||||
WIKI.kernel.bootMaster()
|
||||
}, 1000)
|
||||
})
|
||||
} catch (err) {
|
||||
try {
|
||||
await WIKI.models.knex('settings').truncate()
|
||||
} catch (err) {}
|
||||
WIKI.telemetry.sendError(err)
|
||||
res.json({ ok: false, error: err.message })
|
||||
}
|
||||
})
|
||||
|
||||
// ----------------------------------------
|
||||
// Error handling
|
||||
// ----------------------------------------
|
||||
|
||||
app.use(function (req, res, next) {
|
||||
const err = new Error('Not Found')
|
||||
err.status = 404
|
||||
next(err)
|
||||
})
|
||||
|
||||
app.use(function (err, req, res, next) {
|
||||
res.status(err.status || 500)
|
||||
res.send({
|
||||
message: err.message,
|
||||
error: WIKI.IS_DEBUG ? err : {}
|
||||
})
|
||||
WIKI.logger.error(err.message)
|
||||
WIKI.telemetry.sendError(err)
|
||||
})
|
||||
|
||||
// ----------------------------------------
|
||||
// Start HTTP server
|
||||
// ----------------------------------------
|
||||
|
||||
WIKI.logger.info(`Starting HTTP server on port ${WIKI.config.port}...`)
|
||||
|
||||
app.set('port', WIKI.config.port)
|
||||
|
||||
WIKI.logger.info(`HTTP Server on port: [ ${WIKI.config.port} ]`)
|
||||
WIKI.server = http.createServer(app)
|
||||
WIKI.server.listen(WIKI.config.port, WIKI.config.bindIP)
|
||||
|
||||
var openConnections = []
|
||||
|
||||
WIKI.server.on('connection', (conn) => {
|
||||
let key = conn.remoteAddress + ':' + conn.remotePort
|
||||
openConnections[key] = conn
|
||||
conn.on('close', () => {
|
||||
openConnections.splice(key, 1)
|
||||
})
|
||||
})
|
||||
|
||||
WIKI.server.destroy = (cb) => {
|
||||
WIKI.server.close(cb)
|
||||
for (let key in openConnections) {
|
||||
openConnections[key].destroy()
|
||||
}
|
||||
}
|
||||
|
||||
WIKI.server.on('error', (error) => {
|
||||
if (error.syscall !== 'listen') {
|
||||
throw error
|
||||
}
|
||||
|
||||
switch (error.code) {
|
||||
case 'EACCES':
|
||||
WIKI.logger.error('Listening on port ' + WIKI.config.port + ' requires elevated privileges!')
|
||||
return process.exit(1)
|
||||
case 'EADDRINUSE':
|
||||
WIKI.logger.error('Port ' + WIKI.config.port + ' is already in use!')
|
||||
return process.exit(1)
|
||||
default:
|
||||
throw error
|
||||
}
|
||||
})
|
||||
|
||||
WIKI.server.on('listening', () => {
|
||||
WIKI.logger.info('HTTP Server: [ RUNNING ]')
|
||||
WIKI.logger.info('🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻🔻')
|
||||
WIKI.logger.info('')
|
||||
WIKI.logger.info(`Browse to http://YOUR-SERVER-IP:${WIKI.config.port}/ to complete setup!`)
|
||||
WIKI.logger.info('')
|
||||
WIKI.logger.info('🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺🔺')
|
||||
})
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
name: Default
|
||||
author: requarks.io
|
||||
site: https://wiki.requarks.io/
|
||||
version: 1.0.0
|
||||
requirements:
|
||||
minimum: '>= 2.0.0'
|
||||
maximum: '< 3.0.0'
|
||||
props:
|
||||
accentColor:
|
||||
type: String
|
||||
title: Accent Color
|
||||
hint: Color used in the sidebar navigation and other elements.
|
||||
order: 1
|
||||
default: blue darken-2
|
||||
control: color-material
|
||||
tocPosition:
|
||||
type: String
|
||||
title: Table of Contents Position
|
||||
hint: Select whether the table of contents is shown on the left, right or not at all.
|
||||
order: 2
|
||||
default: left
|
||||
enum:
|
||||
- left
|
||||
- right
|
||||
- hidden
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB |
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
doctype html
|
||||
html
|
||||
html(lang=siteConfig.lang)
|
||||
head
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge')
|
||||
meta(charset='UTF-8')
|
||||
@@ -21,12 +21,23 @@ html
|
||||
|
||||
//- Favicon
|
||||
link(rel='apple-touch-icon', sizes='180x180', href='/_assets/favicons/apple-touch-icon.png')
|
||||
link(rel='icon', type='image/png', sizes='192x192', href='/_assets/favicons/android-icon-192x192.png')
|
||||
link(rel='icon', type='image/png', sizes='192x192', href='/_assets/favicons/android-chrome-192x192.png')
|
||||
link(rel='icon', type='image/png', sizes='32x32', href='/_assets/favicons/favicon-32x32.png')
|
||||
link(rel='icon', type='image/png', sizes='16x16', href='/_assets/favicons/favicon-16x16.png')
|
||||
link(rel='mask-icon', href='/_assets/favicons/safari-pinned-tab.svg', color='#1976d2')
|
||||
link(rel='manifest', href='/_assets/manifest.json')
|
||||
|
||||
//- Site Properties
|
||||
script.
|
||||
var siteId = "!{siteId}"
|
||||
var siteConfig = !{JSON.stringify(siteConfig)}
|
||||
var siteLangs = !{JSON.stringify(langs)}
|
||||
|
||||
//- Dev Mode Warning
|
||||
if devMode
|
||||
script.
|
||||
siteConfig.devMode = true
|
||||
|
||||
//- Icon Set
|
||||
if config.theming.iconset === 'fa'
|
||||
link(
|
||||
@@ -42,26 +53,24 @@ html
|
||||
)
|
||||
|
||||
//- CSS
|
||||
<% for (var index in htmlWebpackPlugin.files.css) { %>
|
||||
link(
|
||||
type='text/css'
|
||||
rel='stylesheet'
|
||||
href='<%= htmlWebpackPlugin.files.css[index] %>'
|
||||
)
|
||||
<% } %>
|
||||
|
||||
script(
|
||||
crossorigin='anonymous'
|
||||
src='https://polyfill.io/v3/polyfill.min.js?features=EventSource'
|
||||
)
|
||||
|
||||
|
||||
//- JS
|
||||
<% for (var index in htmlWebpackPlugin.files.js) { %>
|
||||
|
||||
|
||||
script(
|
||||
type='text/javascript'
|
||||
src='<%= htmlWebpackPlugin.files.js[index] %>'
|
||||
src='/_assets-legacy/js/runtime.js'
|
||||
)
|
||||
<% } %>
|
||||
|
||||
|
||||
|
||||
script(
|
||||
type='text/javascript'
|
||||
src='/_assets-legacy/js/app.js'
|
||||
)
|
||||
|
||||
|
||||
|
||||
!= analyticsCode.head
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block head
|
||||
if injectCode.css
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block head
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
extends master.pug
|
||||
|
||||
block body
|
||||
#root
|
||||
.login-deprecated!= t('outdatedBrowserWarning', { modernBrowser: '<a href="https://bestvpn.org/outdatedbrowser/en" rel="nofollow">' + t('modernBrowser') + '</a>', interpolation: { escapeValue: false } })
|
||||
.login
|
||||
.login-dialog
|
||||
if err
|
||||
.login-error= err.message
|
||||
form(method='post', action='/login')
|
||||
h1= config.title
|
||||
select(name='strategy')
|
||||
each str in formStrategies
|
||||
option(value=str.key, selected)= str.title
|
||||
input(type='text', name='user', placeholder=t('auth:fields.emailUser'))
|
||||
input(type='password', name='pass', placeholder=t('auth:fields.password'))
|
||||
button(type='submit')= t('auth:actions.login')
|
||||
if socialStrategies.length
|
||||
.login-social
|
||||
h2= t('auth:orLoginUsingStrategy')
|
||||
each str in socialStrategies
|
||||
a.login-social-icon(href='/login/' + str.key, class=str.color)
|
||||
!= str.icon
|
||||
@@ -1,60 +0,0 @@
|
||||
extends master.pug
|
||||
|
||||
block head
|
||||
if injectCode.css
|
||||
style(type='text/css')!= injectCode.css
|
||||
if injectCode.head
|
||||
!= injectCode.head
|
||||
|
||||
block body
|
||||
#root
|
||||
.header
|
||||
span.header-title= siteConfig.title
|
||||
span.header-deprecated!= t('outdatedBrowserWarning', { modernBrowser: '<a href="https://bestvpn.org/outdatedbrowser/en" rel="nofollow">' + t('modernBrowser') + '</a>', interpolation: { escapeValue: false } })
|
||||
span.header-login
|
||||
if !isAuthenticated
|
||||
a(href='/login', title='Login')
|
||||
i.mdi.mdi-account-circle
|
||||
else
|
||||
a(href='/logout', title='Logout')
|
||||
i.mdi.mdi-logout
|
||||
.main
|
||||
.sidebar
|
||||
each navItem in sidebar
|
||||
if navItem.k === 'link'
|
||||
a.sidebar-link(href=navItem.t)
|
||||
i.mdi(class=navItem.c)
|
||||
span= navItem.l
|
||||
else if navItem.k === 'divider'
|
||||
.sidebar-divider
|
||||
else if navItem.k === 'header'
|
||||
.sidebar-title= navItem.l
|
||||
.main-container
|
||||
.page-header
|
||||
.page-header-left
|
||||
h1= page.title
|
||||
h2= page.description
|
||||
//- .page-header-right
|
||||
//- .page-header-right-title Last edited by
|
||||
//- .page-header-right-author= page.authorName
|
||||
//- .page-header-right-updated= page.updatedAt
|
||||
.page-contents.v-content
|
||||
.contents
|
||||
div!= page.render
|
||||
if page.toc.length
|
||||
.toc
|
||||
.toc-title= t('page.toc')
|
||||
each tocItem, tocIdx in page.toc
|
||||
a.toc-tile(href=tocItem.anchor)
|
||||
i.mdi.mdi-chevron-right
|
||||
span= tocItem.title
|
||||
if tocIdx < page.toc.length - 1 || tocItem.children.length
|
||||
.toc-divider
|
||||
each tocSubItem in tocItem.children
|
||||
a.toc-tile.inset(href=tocSubItem.anchor)
|
||||
i.mdi.mdi-chevron-right
|
||||
span= tocSubItem.title
|
||||
if tocIdx < page.toc.length - 1
|
||||
.toc-divider.inset
|
||||
if injectCode.body
|
||||
!= injectCode.body
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block head
|
||||
if injectCode.css
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block head
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends master.pug
|
||||
extends base.pug
|
||||
|
||||
block body
|
||||
#root.is-fullscreen
|
||||
|
||||
@@ -149,15 +149,20 @@ module.exports = async () => {
|
||||
// ----------------------------------------
|
||||
|
||||
app.use(async (req, res, next) => {
|
||||
const currentSite = await WIKI.models.sites.getSiteByHostname({ hostname: req.hostname })
|
||||
if (!currentSite) {
|
||||
return res.status(404).send('Site Not Found')
|
||||
}
|
||||
|
||||
res.locals.siteConfig = {
|
||||
title: WIKI.config.title,
|
||||
theme: WIKI.config.theming.theme,
|
||||
darkMode: WIKI.config.theming.darkMode,
|
||||
lang: WIKI.config.lang.code,
|
||||
rtl: WIKI.config.lang.rtl,
|
||||
company: WIKI.config.company,
|
||||
contentLicense: WIKI.config.contentLicense,
|
||||
logoUrl: WIKI.config.logoUrl
|
||||
id: currentSite.id,
|
||||
title: currentSite.config.title,
|
||||
darkMode: currentSite.config.theme.dark,
|
||||
lang: currentSite.config.locale,
|
||||
rtl: false, // TODO: handle RTL
|
||||
company: currentSite.config.company,
|
||||
contentLicense: currentSite.config.contentLicense,
|
||||
logoUrl: currentSite.config.logoUrl
|
||||
}
|
||||
res.locals.langs = await WIKI.models.locales.getNavLocales({ cache: true })
|
||||
res.locals.analyticsCode = await WIKI.models.analytics.getCode({ cache: true })
|
||||
@@ -68,6 +68,7 @@ module.exports = {
|
||||
'prefer-promise-reject-errors': 'off',
|
||||
|
||||
'no-unused-vars': 'off',
|
||||
'vue/multi-word-component-names': 'off',
|
||||
|
||||
// allow debugger during development only
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
|
||||
<title>Wiki.js</title>
|
||||
<!--preload-links-->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Rubik:wght@300..900&display=swap" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
@keyframes initspinner {
|
||||
to { transform: rotate(360deg); }
|
||||
|
||||
+14
-15
@@ -11,28 +11,28 @@
|
||||
"lint": "eslint --ext .js,.vue ./"
|
||||
},
|
||||
"dependencies": {
|
||||
"@apollo/client": "3.6.8",
|
||||
"@apollo/client": "3.6.9",
|
||||
"@codemirror/autocomplete": "6.0.2",
|
||||
"@codemirror/basic-setup": "0.20.0",
|
||||
"@codemirror/closebrackets": "0.19.2",
|
||||
"@codemirror/commands": "6.0.0",
|
||||
"@codemirror/commands": "6.0.1",
|
||||
"@codemirror/comment": "0.19.1",
|
||||
"@codemirror/fold": "0.19.4",
|
||||
"@codemirror/gutter": "0.19.9",
|
||||
"@codemirror/highlight": "0.19.8",
|
||||
"@codemirror/history": "0.19.2",
|
||||
"@codemirror/lang-css": "6.0.0",
|
||||
"@codemirror/lang-html": "6.0.0",
|
||||
"@codemirror/lang-javascript": "6.0.0",
|
||||
"@codemirror/lang-html": "6.1.0",
|
||||
"@codemirror/lang-javascript": "6.0.1",
|
||||
"@codemirror/lang-json": "6.0.0",
|
||||
"@codemirror/lang-markdown": "6.0.0",
|
||||
"@codemirror/matchbrackets": "0.19.4",
|
||||
"@codemirror/search": "6.0.0",
|
||||
"@codemirror/state": "6.0.1",
|
||||
"@codemirror/tooltip": "0.19.16",
|
||||
"@codemirror/view": "6.0.1",
|
||||
"@codemirror/view": "6.0.2",
|
||||
"@lezer/common": "1.0.0",
|
||||
"@quasar/extras": "1.14.0",
|
||||
"@quasar/extras": "1.14.2",
|
||||
"@tiptap/core": "2.0.0-beta.176",
|
||||
"@tiptap/extension-code-block": "2.0.0-beta.37",
|
||||
"@tiptap/extension-code-block-lowlight": "2.0.0-beta.68",
|
||||
@@ -59,24 +59,23 @@
|
||||
"@tiptap/vue-3": "2.0.0-beta.91",
|
||||
"@vue/apollo-option": "4.0.0-alpha.17",
|
||||
"apollo-upload-client": "17.0.0",
|
||||
"browser-fs-access": "0.29.6",
|
||||
"browser-fs-access": "0.30.2",
|
||||
"clipboard": "2.0.11",
|
||||
"codemirror": "6.0.0",
|
||||
"filesize": "9.0.9",
|
||||
"codemirror": "6.0.1",
|
||||
"filesize": "9.0.11",
|
||||
"filesize-parser": "1.5.0",
|
||||
"graphql": "16.5.0",
|
||||
"graphql-tag": "2.12.6",
|
||||
"js-cookie": "3.0.1",
|
||||
"jwt-decode": "3.1.2",
|
||||
"lodash": "4.17.21",
|
||||
"lodash-es": "4.17.21",
|
||||
"luxon": "2.4.0",
|
||||
"pinia": "2.0.14",
|
||||
"pug": "3.0.2",
|
||||
"quasar": "2.7.3",
|
||||
"quasar": "2.7.4",
|
||||
"tippy.js": "6.3.7",
|
||||
"uuid": "8.3.2",
|
||||
"v-network-graph": "0.5.19",
|
||||
"v-network-graph": "0.6.3",
|
||||
"vue": "3.2.37",
|
||||
"vue-codemirror": "6.0.0",
|
||||
"vue-i18n": "9.1.10",
|
||||
@@ -86,10 +85,10 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@intlify/vite-plugin-vue-i18n": "3.4.0",
|
||||
"@quasar/app-vite": "1.0.2",
|
||||
"@quasar/app-vite": "1.0.4",
|
||||
"@types/lodash": "4.14.182",
|
||||
"autoprefixer": "10.4.7",
|
||||
"eslint": "8.18.0",
|
||||
"browserlist": "latest",
|
||||
"eslint": "8.19.0",
|
||||
"eslint-config-standard": "17.0.0",
|
||||
"eslint-plugin-import": "2.26.0",
|
||||
"eslint-plugin-n": "15.2.3",
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ module.exports = configure(function (/* ctx */) {
|
||||
vueRouterMode: 'history', // available values: 'hash', 'history'
|
||||
// vueRouterBase,
|
||||
// vueDevtools,
|
||||
vueOptionsAPI: true,
|
||||
// vueOptionsAPI: true,
|
||||
|
||||
rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
|
||||
|
||||
|
||||
+28
-13
@@ -1,18 +1,33 @@
|
||||
<template>
|
||||
<router-view />
|
||||
<template lang="pug">
|
||||
router-view
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { defineComponent, nextTick, onMounted } from 'vue'
|
||||
<script setup>
|
||||
import { nextTick, onMounted } from 'vue'
|
||||
import { useSiteStore } from 'src/stores/site'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'App',
|
||||
setup () {
|
||||
onMounted(() => {
|
||||
nextTick(() => {
|
||||
document.querySelector('.init-loading').remove()
|
||||
})
|
||||
})
|
||||
}
|
||||
/* global siteConfig */
|
||||
|
||||
// STORES
|
||||
|
||||
const siteStore = useSiteStore()
|
||||
|
||||
// INIT SITE STORE
|
||||
|
||||
if (typeof siteConfig !== 'undefined') {
|
||||
siteStore.$patch({
|
||||
id: siteConfig.id,
|
||||
title: siteConfig.title
|
||||
})
|
||||
} else {
|
||||
siteStore.loadSite(window.location.hostname)
|
||||
}
|
||||
|
||||
// MOUNTED
|
||||
|
||||
onMounted(async () => {
|
||||
nextTick(() => {
|
||||
document.querySelector('.init-loading').remove()
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@@ -494,9 +494,8 @@ q-layout(view='hHh lpR fFf', container)
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import { DateTime } from 'luxon'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import some from 'lodash/some'
|
||||
import { v4 as uuid } from 'uuid'
|
||||
import { cloneDeep, some } from 'lodash-es'
|
||||
import { fileOpen } from 'browser-fs-access'
|
||||
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -119,7 +119,7 @@ q-card.icon-picker(flat, style='width: 400px;')
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import find from 'lodash/find'
|
||||
import { find } from 'lodash-es'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
||||
@@ -161,8 +161,7 @@ q-card.page-datatmpl-dialog(style='width: 1100px; max-width: 1100px;')
|
||||
<script>
|
||||
import { get, sync } from 'vuex-pathify'
|
||||
import { v4 as uuid } from 'uuid'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import sortBy from 'lodash/sortBy'
|
||||
import { cloneDeep, sortBy } from 'lodash-es'
|
||||
import draggable from 'vuedraggable'
|
||||
|
||||
export default {
|
||||
|
||||
@@ -114,8 +114,7 @@ q-card.page-relation-dialog(style='width: 500px;')
|
||||
|
||||
<script>
|
||||
import { v4 as uuid } from 'uuid'
|
||||
import find from 'lodash/find'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import { cloneDeep, find } from 'lodash-es'
|
||||
|
||||
import IconPickerDialog from './IconPickerDialog.vue'
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ q-dialog(ref='dialogRef', @hide='onDialogHide')
|
||||
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import { cloneDeep } from 'lodash-es'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useDialogPluginComponent, useQuasar } from 'quasar'
|
||||
import { reactive, ref } from 'vue'
|
||||
|
||||
@@ -69,7 +69,7 @@ q-dialog(ref='dialogRef', @hide='onDialogHide')
|
||||
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import sampleSize from 'lodash/sampleSize'
|
||||
import { sampleSize } from 'lodash-es'
|
||||
import zxcvbn from 'zxcvbn'
|
||||
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -161,9 +161,8 @@ q-dialog(ref='dialogRef', @hide='onDialogHide')
|
||||
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import sampleSize from 'lodash/sampleSize'
|
||||
import { cloneDeep, sampleSize } from 'lodash-es'
|
||||
import zxcvbn from 'zxcvbn'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useDialogPluginComponent, useQuasar } from 'quasar'
|
||||
import { computed, onMounted, reactive, ref } from 'vue'
|
||||
|
||||
@@ -488,12 +488,7 @@ q-layout(view='hHh lpR fFf', container)
|
||||
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import some from 'lodash/some'
|
||||
import find from 'lodash/find'
|
||||
import findKey from 'lodash/findKey'
|
||||
import _get from 'lodash/get'
|
||||
import map from 'lodash/map'
|
||||
import { cloneDeep, find, findKey, map, some } from 'lodash-es'
|
||||
import { DateTime } from 'luxon'
|
||||
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
@@ -194,7 +194,7 @@ q-dialog(ref='dialogRef', @hide='onDialogHide')
|
||||
|
||||
<script setup>
|
||||
import gql from 'graphql-tag'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import { cloneDeep } from 'lodash-es'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useDialogPluginComponent, useQuasar } from 'quasar'
|
||||
import { computed, onMounted, reactive, ref } from 'vue'
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ body::-webkit-scrollbar-thumb {
|
||||
}
|
||||
|
||||
.font-poppins {
|
||||
font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
font-family: $font-poppins;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
@@ -117,7 +117,7 @@ body::-webkit-scrollbar-thumb {
|
||||
// BUTTONS
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
body.desktop .acrylic-btn {
|
||||
#app .acrylic-btn {
|
||||
.q-focus-helper {
|
||||
background-color: currentColor;
|
||||
opacity: .1;
|
||||
|
||||
@@ -30,3 +30,7 @@ $dark-6: #070a0d;
|
||||
$dark-5: #0d1117;
|
||||
$dark-4: #161b22;
|
||||
$dark-3: #1e232a;
|
||||
|
||||
// -- FONTS --
|
||||
|
||||
$font-poppins: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
@@ -300,7 +300,7 @@
|
||||
"admin.login.logoutRedirect": "Logout Redirect",
|
||||
"admin.login.logoutRedirectHint": "Optionally redirect the user to a specific page when he/she logouts. This can be overridden at the group level.",
|
||||
"admin.login.providers": "Login Providers",
|
||||
"admin.login.providersVisbleWarning": "Note that you can always temporarily show all hidden providers by adding ?all to the url. This is useful to login as local admin while hiding it from normal users.",
|
||||
"admin.login.providersVisbleWarning": "Note that you can always temporarily show all hidden providers by adding ?all=1 to the url. This is useful to login as local admin while hiding it from normal users.",
|
||||
"admin.login.subtitle": "Configure the login user experience of your wiki site",
|
||||
"admin.login.title": "Login",
|
||||
"admin.login.welcomeRedirect": "First-time Login Redirect",
|
||||
@@ -671,7 +671,7 @@
|
||||
"admin.theme.bodyHtmlInjectionHint": "HTML code to be injected just before the closing body tag.",
|
||||
"admin.theme.codeInjection": "Code Injection",
|
||||
"admin.theme.cssOverride": "CSS Override",
|
||||
"admin.theme.cssOverrideHint": "CSS code to inject after system default CSS. Consider using custom themes if you have a large amount of css code. Injecting too much CSS code will result in poor page load performance! CSS will automatically be minified.",
|
||||
"admin.theme.cssOverrideHint": "CSS code to inject after system default CSS. Injecting too much CSS code can result in poor page load performance! CSS will automatically be minified.",
|
||||
"admin.theme.cssOverrideWarning": "{caution} When adding styles for page content, you must scope them to the {cssClass} class. Omitting this could break the layout of the editor!",
|
||||
"admin.theme.cssOverrideWarningCaution": "CAUTION:",
|
||||
"admin.theme.darkMode": "Dark Mode",
|
||||
|
||||
@@ -79,7 +79,7 @@ q-layout.admin(view='hHh Lpr lff')
|
||||
q-item-section(avatar)
|
||||
q-icon(name='img:/_assets/icons/fluent-comments.svg')
|
||||
q-item-section {{ t('admin.comments.title') }}
|
||||
q-item(:to='`/_admin/` + adminStore.currentSiteId + `/editors`', v-ripple, active-class='bg-primary text-white')
|
||||
q-item(:to='`/_admin/` + adminStore.currentSiteId + `/editors`', v-ripple, active-class='bg-primary text-white', disabled)
|
||||
q-item-section(avatar)
|
||||
q-icon(name='img:/_assets/icons/fluent-cashbook.svg')
|
||||
q-item-section {{ t('admin.editors.title') }}
|
||||
|
||||
@@ -4,45 +4,78 @@ q-layout(view='hHh lpr lff')
|
||||
router-view
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script setup>
|
||||
|
||||
export default {
|
||||
name: 'AuthLayout',
|
||||
data () {
|
||||
return {
|
||||
bgUrl: '_assets/bg/login-v3.jpg'
|
||||
// bgUrl: 'https://docs.requarks.io/_assets/img/splash/1.jpg'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.auth {
|
||||
background-color: #FFF;
|
||||
background-size: cover;
|
||||
background-position: center center;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-family: 'Rubik', sans-serif;
|
||||
|
||||
&-box {
|
||||
background-color: rgba(255,255,255,.25);
|
||||
backdrop-filter: blur(5px);
|
||||
-webkit-backdrop-filter: blur(5px);
|
||||
padding: 32px;
|
||||
border-radius: 8px;
|
||||
width: 500px;
|
||||
max-width: 95vw;
|
||||
@at-root .body--dark & {
|
||||
background-color: $dark-6;
|
||||
}
|
||||
|
||||
@at-root .no-backdropfilter & {
|
||||
background-color: rgba(255,255,255,.95);
|
||||
&-content {
|
||||
flex: 1 0 100%;
|
||||
width: 100%;
|
||||
max-width: 500px;
|
||||
padding: 3rem 4rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: stretch;
|
||||
|
||||
@media (max-width: $breakpoint-xs-max) {
|
||||
padding: 1rem 2rem;
|
||||
max-width: 100vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: $breakpoint-md-max) {
|
||||
margin-left: 0;
|
||||
&-logo {
|
||||
img {
|
||||
height: 72px;
|
||||
}
|
||||
}
|
||||
|
||||
&-site-title {
|
||||
font-size: 1.875rem;
|
||||
line-height: 2.25rem;
|
||||
font-weight: 700;
|
||||
margin: 0;
|
||||
color: $blue-grey-9;
|
||||
|
||||
@at-root .body--dark & {
|
||||
color: $blue-grey-1;
|
||||
}
|
||||
}
|
||||
|
||||
&-strategies {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(45%, 1fr));
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
&-bg {
|
||||
flex: 1;
|
||||
flex-basis: 0;
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,23 +32,30 @@ q-page.admin-navigation
|
||||
)
|
||||
q-separator(inset)
|
||||
.row.q-pa-md.q-col-gutter-md
|
||||
.col-6
|
||||
//- v-container(fluid, grid-list-lg)
|
||||
//- v-layout(row wrap)
|
||||
//- v-flex(xs12)
|
||||
//- .admin-header
|
||||
//- img.animated.fadeInUp(src='/_assets/svg/icon-triangle-arrow.svg', alt='Navigation', style='width: 80px;')
|
||||
//- .admin-header-title
|
||||
//- .headline.primary--text.animated.fadeInLeft {{$t('navigation.title')}}
|
||||
//- .subtitle-1.grey--text.animated.fadeInLeft.wait-p4s {{$t('navigation.subtitle')}}
|
||||
//- v-spacer
|
||||
//- v-btn.animated.fadeInDown.wait-p3s(icon, outlined, color='grey', href='https://docs.requarks.io/navigation', target='_blank')
|
||||
//- v-icon mdi-help-circle
|
||||
//- v-btn.mx-3.animated.fadeInDown.wait-p2s.mr-3(icon, outlined, color='grey', @click='refresh')
|
||||
//- v-icon mdi-refresh
|
||||
//- v-btn.animated.fadeInDown(color='success', depressed, @click='save', large)
|
||||
//- v-icon(left) mdi-check
|
||||
//- span {{$t('common.actions.apply')}}
|
||||
.col-auto
|
||||
q-card.q-mt-sm {{t('admin.navigation.mode')}}
|
||||
|
||||
q-card.bg-dark.q-mt-sm
|
||||
q-list(
|
||||
style='min-width: 350px;'
|
||||
padding
|
||||
dark
|
||||
)
|
||||
q-item
|
||||
q-item-section
|
||||
q-select(
|
||||
dark
|
||||
outlined
|
||||
option-value='value'
|
||||
option-label='text'
|
||||
emit-value
|
||||
map-options
|
||||
dense
|
||||
options-dense
|
||||
:label='t(`admin.navigation.mode`)'
|
||||
:aria-label='t(`admin.navigation.mode`)'
|
||||
)
|
||||
|
||||
//- v-container.pa-0.mt-3(fluid, grid-list-lg)
|
||||
//- v-row(dense)
|
||||
//- v-col(cols='3')
|
||||
|
||||
@@ -165,14 +165,7 @@ q-page.admin-mail
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import concat from 'lodash/concat'
|
||||
import filter from 'lodash/filter'
|
||||
import find from 'lodash/find'
|
||||
import findIndex from 'lodash/findIndex'
|
||||
import reduce from 'lodash/reduce'
|
||||
import reverse from 'lodash/reverse'
|
||||
import sortBy from 'lodash/sortBy'
|
||||
import { cloneDeep, concat, filter, find, findIndex, reduce, reverse, sortBy } from 'lodash-es'
|
||||
import { DepGraph } from 'dependency-graph'
|
||||
import gql from 'graphql-tag'
|
||||
|
||||
|
||||
+499
-564
File diff suppressed because it is too large.
Load diff
@@ -8,13 +8,13 @@ const routes = [
|
||||
// { path: 'n/:editor?', component: () => import('../pages/Index.vue') }
|
||||
// ]
|
||||
// },
|
||||
// {
|
||||
// path: '/login',
|
||||
// component: () => import('../layouts/AuthLayout.vue'),
|
||||
// children: [
|
||||
// { path: '', component: () => import('../pages/Login.vue') }
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
path: '/login',
|
||||
component: () => import('../layouts/AuthLayout.vue'),
|
||||
children: [
|
||||
{ path: '', component: () => import('../pages/Login.vue') }
|
||||
]
|
||||
},
|
||||
// {
|
||||
// path: '/p',
|
||||
// component: () => import('../layouts/ProfileLayout.vue'),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import gql from 'graphql-tag'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import { cloneDeep } from 'lodash-es'
|
||||
|
||||
/* global APOLLO_CLIENT */
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import gql from 'graphql-tag'
|
||||
import clone from 'lodash/clone'
|
||||
import { clone } from 'lodash-es'
|
||||
|
||||
export const useSiteStore = defineStore('site', {
|
||||
state: () => ({
|
||||
|
||||
+292
-259
@@ -5,9 +5,9 @@ __metadata:
|
||||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"@apollo/client@npm:3.6.8":
|
||||
version: 3.6.8
|
||||
resolution: "@apollo/client@npm:3.6.8"
|
||||
"@apollo/client@npm:3.6.9":
|
||||
version: 3.6.9
|
||||
resolution: "@apollo/client@npm:3.6.9"
|
||||
dependencies:
|
||||
"@graphql-typed-document-node/core": ^3.1.1
|
||||
"@wry/context": ^0.6.0
|
||||
@@ -33,7 +33,7 @@ __metadata:
|
||||
optional: true
|
||||
subscriptions-transport-ws:
|
||||
optional: true
|
||||
checksum: c29dd3f68952cf17229b72d39188e0d93ea672ae1e1615f90b1d95ba7553c6a03bc16dede7c13b23c60e9863d7ff183f56d62b233a761127000f544a490f63f7
|
||||
checksum: a3c037ef3465cb5d736d8495c9c2dcb9741e39d9c102f147b479af1923c5913f710981a311d1098b9969ebe87769b749c22274decb5977ad0619032e7ac2cf26
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -130,7 +130,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/commands@npm:6.0.0, @codemirror/commands@npm:6.x, @codemirror/commands@npm:^6.0.0":
|
||||
"@codemirror/commands@npm:6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "@codemirror/commands@npm:6.0.1"
|
||||
dependencies:
|
||||
"@codemirror/language": ^6.0.0
|
||||
"@codemirror/state": ^6.0.0
|
||||
"@codemirror/view": ^6.0.0
|
||||
"@lezer/common": ^1.0.0
|
||||
checksum: 7b3b73596c13d256b267aa7e2a0dd1fb297426918e9e42135faa4280cc220ff66b0d4743cd6214b6ed2111eccf3c125d1f197fc8585c48c45b386210d53673dd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/commands@npm:6.x, @codemirror/commands@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "@codemirror/commands@npm:6.0.0"
|
||||
dependencies:
|
||||
@@ -225,7 +237,22 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/lang-html@npm:6.0.0, @codemirror/lang-html@npm:^6.0.0":
|
||||
"@codemirror/lang-html@npm:6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@codemirror/lang-html@npm:6.1.0"
|
||||
dependencies:
|
||||
"@codemirror/autocomplete": ^6.0.0
|
||||
"@codemirror/lang-css": ^6.0.0
|
||||
"@codemirror/lang-javascript": ^6.0.0
|
||||
"@codemirror/language": ^6.0.0
|
||||
"@codemirror/state": ^6.0.0
|
||||
"@lezer/common": ^1.0.0
|
||||
"@lezer/html": ^1.0.0
|
||||
checksum: 7a526c9b626d034d6b340d1dfe44061e5e3af87c875709a69de830ed102ce32b71ed733ba0ff02b78388371497907970e163ec84f0ae90a58a807122a17348e0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/lang-html@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "@codemirror/lang-html@npm:6.0.0"
|
||||
dependencies:
|
||||
@@ -240,7 +267,22 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/lang-javascript@npm:6.0.0, @codemirror/lang-javascript@npm:^6.0.0":
|
||||
"@codemirror/lang-javascript@npm:6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "@codemirror/lang-javascript@npm:6.0.1"
|
||||
dependencies:
|
||||
"@codemirror/autocomplete": ^6.0.0
|
||||
"@codemirror/language": ^6.0.0
|
||||
"@codemirror/lint": ^6.0.0
|
||||
"@codemirror/state": ^6.0.0
|
||||
"@codemirror/view": ^6.0.0
|
||||
"@lezer/common": ^1.0.0
|
||||
"@lezer/javascript": ^1.0.0
|
||||
checksum: 630573877ec3f2fdaedf3c7bf3bf9a8a7645f76bde52ad2d4c51cb1e173b49ccda5d7944f98521ff5f723ec12ae196c03a9f044fe91e50a5bf615d3b867966cf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/lang-javascript@npm:^6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "@codemirror/lang-javascript@npm:6.0.0"
|
||||
dependencies:
|
||||
@@ -424,7 +466,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/view@npm:6.0.1, @codemirror/view@npm:6.x, @codemirror/view@npm:^6.0.0":
|
||||
"@codemirror/view@npm:6.0.2":
|
||||
version: 6.0.2
|
||||
resolution: "@codemirror/view@npm:6.0.2"
|
||||
dependencies:
|
||||
"@codemirror/state": ^6.0.0
|
||||
style-mod: ^4.0.0
|
||||
w3c-keyname: ^2.2.4
|
||||
checksum: a9dbc2b97cb1aa8d88bd0cdcc9560660c89ecff93fd86b6ecdda920a6bd22b0e1ccf72c010ac743d7daf4185a03c78bafecd9860e336585bbcca0b93dde55566
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@codemirror/view@npm:6.x, @codemirror/view@npm:^6.0.0":
|
||||
version: 6.0.1
|
||||
resolution: "@codemirror/view@npm:6.0.1"
|
||||
dependencies:
|
||||
@@ -830,9 +883,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quasar/app-vite@npm:1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "@quasar/app-vite@npm:1.0.2"
|
||||
"@quasar/app-vite@npm:1.0.4":
|
||||
version: 1.0.4
|
||||
resolution: "@quasar/app-vite@npm:1.0.4"
|
||||
dependencies:
|
||||
"@quasar/fastclick": 1.1.5
|
||||
"@quasar/vite-plugin": ^1.0.9
|
||||
@@ -848,7 +901,7 @@ __metadata:
|
||||
cross-spawn: ^7.0.3
|
||||
dot-prop: 6.0.1
|
||||
elementtree: 0.1.7
|
||||
esbuild: 0.14.29
|
||||
esbuild: 0.14.47
|
||||
express: ^4.17.3
|
||||
fast-glob: 3.2.11
|
||||
fs-extra: ^10.0.1
|
||||
@@ -868,7 +921,7 @@ __metadata:
|
||||
semver: ^7.3.5
|
||||
serialize-javascript: ^6.0.0
|
||||
table: ^6.8.0
|
||||
vite: 2.9.1
|
||||
vite: 2.9.13
|
||||
webpack-merge: ^5.8.0
|
||||
peerDependencies:
|
||||
electron-builder: ^22.0.0
|
||||
@@ -895,14 +948,14 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
quasar: bin/quasar
|
||||
checksum: b6fac0061299605f9c77a0ab683298e476c4b606bdafe87ca3db871e88a65017e8079703df0300191b4f7a9b5b067cde7935913041ac546c98b1dc0309d3fec9
|
||||
checksum: 531e1a640602f71947caa10595076c10a1ff2b80b676c641f088399245b66cd2851d8c365fc7cdeda71bf214b33fa14600fdfb22cf40d37be7ab7a7622052744
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quasar/extras@npm:1.14.0":
|
||||
version: 1.14.0
|
||||
resolution: "@quasar/extras@npm:1.14.0"
|
||||
checksum: 60eacf3995172a11c59af6266461f665219488e33e85ab99fb293365fdd95e3dda5427a5ab548b7a5058ee0e3f5d4a6045ad8feeb99e1b0ad9b37f1cbd8d2100
|
||||
"@quasar/extras@npm:1.14.2":
|
||||
version: 1.14.2
|
||||
resolution: "@quasar/extras@npm:1.14.2"
|
||||
checksum: 600305d8fb641eca6990ef1527ce544c35835a4af088b58263851b70df444d6890e134dc01cb7da3f256ec8b5ae369ce2d5c29ddadff2452fff6e080e0411905
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1896,6 +1949,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-styles@npm:^3.2.1":
|
||||
version: 3.2.1
|
||||
resolution: "ansi-styles@npm:3.2.1"
|
||||
dependencies:
|
||||
color-convert: ^1.9.0
|
||||
checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
|
||||
version: 4.3.0
|
||||
resolution: "ansi-styles@npm:4.3.0"
|
||||
@@ -2043,24 +2105,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"autoprefixer@npm:10.4.7":
|
||||
version: 10.4.7
|
||||
resolution: "autoprefixer@npm:10.4.7"
|
||||
dependencies:
|
||||
browserslist: ^4.20.3
|
||||
caniuse-lite: ^1.0.30001335
|
||||
fraction.js: ^4.2.0
|
||||
normalize-range: ^0.1.2
|
||||
picocolors: ^1.0.0
|
||||
postcss-value-parser: ^4.2.0
|
||||
peerDependencies:
|
||||
postcss: ^8.1.0
|
||||
bin:
|
||||
autoprefixer: bin/autoprefixer
|
||||
checksum: 0e55d0d19806c672ec0c79cc23c27cf77e90edf2600670735266ba33ec5294458f404baaa2f7cd4cfe359cf7a97b3c86f01886bdbdc129a4f2f76ca5977a91af
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"babel-walk@npm:3.0.0-canary-5":
|
||||
version: 3.0.0-canary-5
|
||||
resolution: "babel-walk@npm:3.0.0-canary-5"
|
||||
@@ -2155,25 +2199,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"browser-fs-access@npm:0.29.6":
|
||||
version: 0.29.6
|
||||
resolution: "browser-fs-access@npm:0.29.6"
|
||||
checksum: 9ee904e3a62cd92b60de1aa3121b5d46c2700e1ee09e14d27681563c9772181c6d219a4f80865856b707a3e68b09bd0c20821f06490096311fa1a0b91d2d53a8
|
||||
"browser-fs-access@npm:0.30.2":
|
||||
version: 0.30.2
|
||||
resolution: "browser-fs-access@npm:0.30.2"
|
||||
checksum: 4fa53ebe2e5ea5fb2df39f2ce78ae67cf3b0710877f123d57d8a9f7be171e27b8c8413079fe023612aa05d27549c38ff68a94f694750fd766cf9ecd80067d822
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"browserslist@npm:^4.20.3":
|
||||
version: 4.20.3
|
||||
resolution: "browserslist@npm:4.20.3"
|
||||
"browserlist@npm:latest":
|
||||
version: 1.0.1
|
||||
resolution: "browserlist@npm:1.0.1"
|
||||
dependencies:
|
||||
caniuse-lite: ^1.0.30001332
|
||||
electron-to-chromium: ^1.4.118
|
||||
escalade: ^3.1.1
|
||||
node-releases: ^2.0.3
|
||||
picocolors: ^1.0.0
|
||||
chalk: ^2.4.1
|
||||
bin:
|
||||
browserslist: cli.js
|
||||
checksum: 1e4b719ac2ca0fe235218a606e8b8ef16b8809e0973b924158c39fbc435a0b0fe43437ea52dd6ef5ad2efcb83fcb07431244e472270177814217f7c563651f7d
|
||||
browserlist: ./cli.js
|
||||
checksum: db4dc273b59637f4e716676978d2c8a2431fb021860ec8ea9552eebe24bff67e955630d42c3995a9b03c1606819b18fb032ab943103b54b830933ec4d695e516
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2270,17 +2310,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:^1.0.30001332":
|
||||
version: 1.0.30001334
|
||||
resolution: "caniuse-lite@npm:1.0.30001334"
|
||||
checksum: 1a1c783942d53ca37dc3dbdd7c4a6f7994996d0bfd178d4f4cdd714c6b09d9d9f48a3a2452e009e8203aba4b7a2da43f3d9d88060668a46fc237dbe0d39358a3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:^1.0.30001335":
|
||||
version: 1.0.30001341
|
||||
resolution: "caniuse-lite@npm:1.0.30001341"
|
||||
checksum: 7262b093fb0bf49dbc5328418f5ce4e3dbb0b13e39c015f986ba1807634c123ac214efc94df7d095a336f57f86852b4b63ee61838f18dcc3a4a35f87b390c8f5
|
||||
"chalk@npm:^2.4.1":
|
||||
version: 2.4.2
|
||||
resolution: "chalk@npm:2.4.2"
|
||||
dependencies:
|
||||
ansi-styles: ^3.2.1
|
||||
escape-string-regexp: ^1.0.5
|
||||
supports-color: ^5.3.0
|
||||
checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2422,9 +2459,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"codemirror@npm:6.0.0":
|
||||
version: 6.0.0
|
||||
resolution: "codemirror@npm:6.0.0"
|
||||
"codemirror@npm:6.0.1":
|
||||
version: 6.0.1
|
||||
resolution: "codemirror@npm:6.0.1"
|
||||
dependencies:
|
||||
"@codemirror/autocomplete": ^6.0.0
|
||||
"@codemirror/commands": ^6.0.0
|
||||
@@ -2433,7 +2470,16 @@ __metadata:
|
||||
"@codemirror/search": ^6.0.0
|
||||
"@codemirror/state": ^6.0.0
|
||||
"@codemirror/view": ^6.0.0
|
||||
checksum: 42fb2b5ac5d4b8616a733de5efd7913764c1d13dcc27f732af5ed5e98f657a53ab5549437b53d73ed89d004423141ee65612a5e54c451538ef6d75afed4cd3e2
|
||||
checksum: 1a78f7077ac5801bdbff162aa0c61bf2b974603c7e9a477198c3ce50c789af674a061d7c293c58b73807eda345c2b5228c38ad2aabb9319d552d5486f785cbef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:^1.9.0":
|
||||
version: 1.9.3
|
||||
resolution: "color-convert@npm:1.9.3"
|
||||
dependencies:
|
||||
color-name: 1.1.3
|
||||
checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2446,6 +2492,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-name@npm:1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "color-name@npm:1.1.3"
|
||||
checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-name@npm:~1.1.4":
|
||||
version: 1.1.4
|
||||
resolution: "color-name@npm:1.1.4"
|
||||
@@ -2789,13 +2842,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"electron-to-chromium@npm:^1.4.118":
|
||||
version: 1.4.137
|
||||
resolution: "electron-to-chromium@npm:1.4.137"
|
||||
checksum: 639d7b94906efafcf363519c3698eecc44be46755a6a5cdc9088954329978866cc93fbd57e08b97290599b68d5226243d21de9fa50be416b8a5d3fa8fd42c3a0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"elementtree@npm:0.1.7":
|
||||
version: 0.1.7
|
||||
resolution: "elementtree@npm:0.1.7"
|
||||
@@ -2890,13 +2936,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-android-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-android-64@npm:0.14.29"
|
||||
conditions: os=android & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-android-64@npm:0.14.34":
|
||||
version: 0.14.34
|
||||
resolution: "esbuild-android-64@npm:0.14.34"
|
||||
@@ -2904,10 +2943,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-android-arm64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-android-arm64@npm:0.14.29"
|
||||
conditions: os=android & cpu=arm64
|
||||
"esbuild-android-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-android-64@npm:0.14.47"
|
||||
conditions: os=android & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2918,10 +2957,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-darwin-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-darwin-64@npm:0.14.29"
|
||||
conditions: os=darwin & cpu=x64
|
||||
"esbuild-android-arm64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-android-arm64@npm:0.14.47"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2932,10 +2971,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-darwin-arm64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-darwin-arm64@npm:0.14.29"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
"esbuild-darwin-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-darwin-64@npm:0.14.47"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2946,10 +2985,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-freebsd-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-freebsd-64@npm:0.14.29"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
"esbuild-darwin-arm64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-darwin-arm64@npm:0.14.47"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2960,10 +2999,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-freebsd-arm64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-freebsd-arm64@npm:0.14.29"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
"esbuild-freebsd-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-freebsd-64@npm:0.14.47"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2974,10 +3013,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-32@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-32@npm:0.14.29"
|
||||
conditions: os=linux & cpu=ia32
|
||||
"esbuild-freebsd-arm64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-freebsd-arm64@npm:0.14.47"
|
||||
conditions: os=freebsd & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -2988,10 +3027,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-64@npm:0.14.29"
|
||||
conditions: os=linux & cpu=x64
|
||||
"esbuild-linux-32@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-32@npm:0.14.47"
|
||||
conditions: os=linux & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3002,10 +3041,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-arm64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-arm64@npm:0.14.29"
|
||||
conditions: os=linux & cpu=arm64
|
||||
"esbuild-linux-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-64@npm:0.14.47"
|
||||
conditions: os=linux & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3016,10 +3055,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-arm@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-arm@npm:0.14.29"
|
||||
conditions: os=linux & cpu=arm
|
||||
"esbuild-linux-arm64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-arm64@npm:0.14.47"
|
||||
conditions: os=linux & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3030,10 +3069,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-mips64le@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-mips64le@npm:0.14.29"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
"esbuild-linux-arm@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-arm@npm:0.14.47"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3044,10 +3083,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-ppc64le@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-ppc64le@npm:0.14.29"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
"esbuild-linux-mips64le@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-mips64le@npm:0.14.47"
|
||||
conditions: os=linux & cpu=mips64el
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3058,10 +3097,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-riscv64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-riscv64@npm:0.14.29"
|
||||
conditions: os=linux & cpu=riscv64
|
||||
"esbuild-linux-ppc64le@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-ppc64le@npm:0.14.47"
|
||||
conditions: os=linux & cpu=ppc64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3072,10 +3111,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-linux-s390x@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-linux-s390x@npm:0.14.29"
|
||||
conditions: os=linux & cpu=s390x
|
||||
"esbuild-linux-riscv64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-riscv64@npm:0.14.47"
|
||||
conditions: os=linux & cpu=riscv64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3086,10 +3125,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-netbsd-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-netbsd-64@npm:0.14.29"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
"esbuild-linux-s390x@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-linux-s390x@npm:0.14.47"
|
||||
conditions: os=linux & cpu=s390x
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3100,10 +3139,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-openbsd-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-openbsd-64@npm:0.14.29"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
"esbuild-netbsd-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-netbsd-64@npm:0.14.47"
|
||||
conditions: os=netbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3114,10 +3153,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-sunos-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-sunos-64@npm:0.14.29"
|
||||
conditions: os=sunos & cpu=x64
|
||||
"esbuild-openbsd-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-openbsd-64@npm:0.14.47"
|
||||
conditions: os=openbsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3128,10 +3167,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-32@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-windows-32@npm:0.14.29"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
"esbuild-sunos-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-sunos-64@npm:0.14.47"
|
||||
conditions: os=sunos & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3142,10 +3181,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-windows-64@npm:0.14.29"
|
||||
conditions: os=win32 & cpu=x64
|
||||
"esbuild-windows-32@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-windows-32@npm:0.14.47"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3156,10 +3195,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild-windows-arm64@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild-windows-arm64@npm:0.14.29"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
"esbuild-windows-64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-windows-64@npm:0.14.47"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3170,30 +3209,37 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild@npm:0.14.29":
|
||||
version: 0.14.29
|
||||
resolution: "esbuild@npm:0.14.29"
|
||||
"esbuild-windows-arm64@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild-windows-arm64@npm:0.14.47"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"esbuild@npm:0.14.47":
|
||||
version: 0.14.47
|
||||
resolution: "esbuild@npm:0.14.47"
|
||||
dependencies:
|
||||
esbuild-android-64: 0.14.29
|
||||
esbuild-android-arm64: 0.14.29
|
||||
esbuild-darwin-64: 0.14.29
|
||||
esbuild-darwin-arm64: 0.14.29
|
||||
esbuild-freebsd-64: 0.14.29
|
||||
esbuild-freebsd-arm64: 0.14.29
|
||||
esbuild-linux-32: 0.14.29
|
||||
esbuild-linux-64: 0.14.29
|
||||
esbuild-linux-arm: 0.14.29
|
||||
esbuild-linux-arm64: 0.14.29
|
||||
esbuild-linux-mips64le: 0.14.29
|
||||
esbuild-linux-ppc64le: 0.14.29
|
||||
esbuild-linux-riscv64: 0.14.29
|
||||
esbuild-linux-s390x: 0.14.29
|
||||
esbuild-netbsd-64: 0.14.29
|
||||
esbuild-openbsd-64: 0.14.29
|
||||
esbuild-sunos-64: 0.14.29
|
||||
esbuild-windows-32: 0.14.29
|
||||
esbuild-windows-64: 0.14.29
|
||||
esbuild-windows-arm64: 0.14.29
|
||||
esbuild-android-64: 0.14.47
|
||||
esbuild-android-arm64: 0.14.47
|
||||
esbuild-darwin-64: 0.14.47
|
||||
esbuild-darwin-arm64: 0.14.47
|
||||
esbuild-freebsd-64: 0.14.47
|
||||
esbuild-freebsd-arm64: 0.14.47
|
||||
esbuild-linux-32: 0.14.47
|
||||
esbuild-linux-64: 0.14.47
|
||||
esbuild-linux-arm: 0.14.47
|
||||
esbuild-linux-arm64: 0.14.47
|
||||
esbuild-linux-mips64le: 0.14.47
|
||||
esbuild-linux-ppc64le: 0.14.47
|
||||
esbuild-linux-riscv64: 0.14.47
|
||||
esbuild-linux-s390x: 0.14.47
|
||||
esbuild-netbsd-64: 0.14.47
|
||||
esbuild-openbsd-64: 0.14.47
|
||||
esbuild-sunos-64: 0.14.47
|
||||
esbuild-windows-32: 0.14.47
|
||||
esbuild-windows-64: 0.14.47
|
||||
esbuild-windows-arm64: 0.14.47
|
||||
dependenciesMeta:
|
||||
esbuild-android-64:
|
||||
optional: true
|
||||
@@ -3237,7 +3283,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
esbuild: bin/esbuild
|
||||
checksum: 3066b9f5bc33b56c22fa1b14f6fd6b7cee292858b042d5f9051c87e57472a134045e653526612ea75fa4dfed3ed767b80c35165b819b4f29d92bf2e69c5fe37d
|
||||
checksum: 77a8bff8c3fe52dc9d2823448843b0f53c9a9f3701e3637a54e396270c9ca04cc46a4b08ef86cbaa8d202854e02c790f61683bfa75ebff540b1e24414f536e91
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3502,9 +3548,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:8.18.0":
|
||||
version: 8.18.0
|
||||
resolution: "eslint@npm:8.18.0"
|
||||
"eslint@npm:8.19.0":
|
||||
version: 8.19.0
|
||||
resolution: "eslint@npm:8.19.0"
|
||||
dependencies:
|
||||
"@eslint/eslintrc": ^1.3.0
|
||||
"@humanwhocodes/config-array": ^0.9.2
|
||||
@@ -3543,7 +3589,7 @@ __metadata:
|
||||
v8-compile-cache: ^2.0.3
|
||||
bin:
|
||||
eslint: bin/eslint.js
|
||||
checksum: d9b4b7488a9cee97608343cbb5ac652d3f316436f95ef0800cd9497c1c6f877b655a3275817989c02f1ff0d5dfd1959c5092af9251c7e3fcf60659da37752a10
|
||||
checksum: 0bc9df1a3a09dcd5a781ec728f280aa8af3ab19c2d1f14e2668b5ee5b8b1fb0e72dde5c3acf738e7f4281685fb24ec149b6154255470b06cf41de76350bca7a4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3748,10 +3794,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"filesize@npm:9.0.9":
|
||||
version: 9.0.9
|
||||
resolution: "filesize@npm:9.0.9"
|
||||
checksum: 2901b5eb3abd9d553ca52fafcebb159c60d7c11489d58703feb8850afd3dba7f619cfce61450bab52b846c12f9c4f3cb7be591985eada5af3eea82b04a23faf9
|
||||
"filesize@npm:9.0.11":
|
||||
version: 9.0.11
|
||||
resolution: "filesize@npm:9.0.11"
|
||||
checksum: 7e8a9f9a4089e3ee29de64c241b50db8db4008351ace959873cb950bac0c2e1e09f4b45f42eaed8acd589a895dde978ed199e7a9982902fa06ca0be48e5ea92d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3819,13 +3865,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fraction.js@npm:^4.2.0":
|
||||
version: 4.2.0
|
||||
resolution: "fraction.js@npm:4.2.0"
|
||||
checksum: 8c76a6e21dedea87109d6171a0ac77afa14205794a565d71cb10d2925f629a3922da61bf45ea52dbc30bce4d8636dc0a27213a88cbd600eab047d82f9a3a94c5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fresh@npm:0.5.2":
|
||||
version: 0.5.2
|
||||
resolution: "fresh@npm:0.5.2"
|
||||
@@ -4040,6 +4079,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"has-flag@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "has-flag@npm:3.0.0"
|
||||
checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"has-flag@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "has-flag@npm:4.0.0"
|
||||
@@ -4791,7 +4837,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash@npm:4.17.21, lodash@npm:^4.17.10, lodash@npm:^4.17.20, lodash@npm:^4.17.21":
|
||||
"lodash@npm:^4.17.10, lodash@npm:^4.17.20, lodash@npm:^4.17.21":
|
||||
version: 4.17.21
|
||||
resolution: "lodash@npm:4.17.21"
|
||||
checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
|
||||
@@ -5117,12 +5163,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nanoid@npm:^3.3.3":
|
||||
version: 3.3.3
|
||||
resolution: "nanoid@npm:3.3.3"
|
||||
"nanoid@npm:^3.3.4":
|
||||
version: 3.3.4
|
||||
resolution: "nanoid@npm:3.3.4"
|
||||
bin:
|
||||
nanoid: bin/nanoid.cjs
|
||||
checksum: ada019402a07464a694553c61d2dca8a4353645a7d92f2830f0d487fedff403678a0bee5323a46522752b2eab95a0bc3da98b6cccaa7c0c55cd9975130e6d6f0
|
||||
checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5169,13 +5215,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-releases@npm:^2.0.3":
|
||||
version: 2.0.4
|
||||
resolution: "node-releases@npm:2.0.4"
|
||||
checksum: b32d6c2032c7b169ae3938b416fc50f123f5bd577d54a79b2ae201febf27b22846b01c803dd35ac8689afe840f8ba4e5f7154723db629b80f359836b6707b92f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nopt@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "nopt@npm:5.0.0"
|
||||
@@ -5194,13 +5233,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"normalize-range@npm:^0.1.2":
|
||||
version: 0.1.2
|
||||
resolution: "normalize-range@npm:0.1.2"
|
||||
checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"npmlog@npm:^6.0.0":
|
||||
version: 6.0.2
|
||||
resolution: "npmlog@npm:6.0.2"
|
||||
@@ -5515,24 +5547,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-value-parser@npm:^4.2.0":
|
||||
version: 4.2.0
|
||||
resolution: "postcss-value-parser@npm:4.2.0"
|
||||
checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:*":
|
||||
version: 8.4.13
|
||||
resolution: "postcss@npm:8.4.13"
|
||||
dependencies:
|
||||
nanoid: ^3.3.3
|
||||
picocolors: ^1.0.0
|
||||
source-map-js: ^1.0.2
|
||||
checksum: 514fb3552805a5d039a2d6b4df3e73f657001716ca93c0d57e6067b0473abdea70276d80afc96005c9aaff82ed5d98062bd97724d3f47ca400fba0b5e9e436ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:^8.1.10, postcss@npm:^8.4.12, postcss@npm:^8.4.4":
|
||||
version: 8.4.12
|
||||
resolution: "postcss@npm:8.4.12"
|
||||
@@ -5544,6 +5558,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:^8.4.13":
|
||||
version: 8.4.14
|
||||
resolution: "postcss@npm:8.4.14"
|
||||
dependencies:
|
||||
nanoid: ^3.3.4
|
||||
picocolors: ^1.0.0
|
||||
source-map-js: ^1.0.2
|
||||
checksum: fe58766ff32e4becf65a7d57678995cfd239df6deed2fe0557f038b47c94e4132e7e5f68b5aa820c13adfec32e523b693efaeb65798efb995ce49ccd83953816
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prelude-ls@npm:^1.2.1":
|
||||
version: 1.2.1
|
||||
resolution: "prelude-ls@npm:1.2.1"
|
||||
@@ -5870,10 +5895,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"quasar@npm:2.7.3":
|
||||
version: 2.7.3
|
||||
resolution: "quasar@npm:2.7.3"
|
||||
checksum: 42ae066c7a7e477731e3063bfa6b097bc89a670dac4781dd3e72d3c16e0db61a909f09eea21ef342592953fd6167f80a4c9add20722d4df0229616d3a86f5810
|
||||
"quasar@npm:2.7.4":
|
||||
version: 2.7.4
|
||||
resolution: "quasar@npm:2.7.4"
|
||||
checksum: f527377c1f789f013a37aa9db023aa5c1680ed31c13eb05baa07f13c74ee2ddf97e5d1dac996cce4ecb9b8e5b4fd3101d115b458f10dede1776b7fc0c7adf7bf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6487,6 +6512,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"supports-color@npm:^5.3.0":
|
||||
version: 5.5.0
|
||||
resolution: "supports-color@npm:5.5.0"
|
||||
dependencies:
|
||||
has-flag: ^3.0.0
|
||||
checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"supports-color@npm:^7.1.0":
|
||||
version: 7.2.0
|
||||
resolution: "supports-color@npm:7.2.0"
|
||||
@@ -6783,30 +6817,30 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "ux@workspace:."
|
||||
dependencies:
|
||||
"@apollo/client": 3.6.8
|
||||
"@apollo/client": 3.6.9
|
||||
"@codemirror/autocomplete": 6.0.2
|
||||
"@codemirror/basic-setup": 0.20.0
|
||||
"@codemirror/closebrackets": 0.19.2
|
||||
"@codemirror/commands": 6.0.0
|
||||
"@codemirror/commands": 6.0.1
|
||||
"@codemirror/comment": 0.19.1
|
||||
"@codemirror/fold": 0.19.4
|
||||
"@codemirror/gutter": 0.19.9
|
||||
"@codemirror/highlight": 0.19.8
|
||||
"@codemirror/history": 0.19.2
|
||||
"@codemirror/lang-css": 6.0.0
|
||||
"@codemirror/lang-html": 6.0.0
|
||||
"@codemirror/lang-javascript": 6.0.0
|
||||
"@codemirror/lang-html": 6.1.0
|
||||
"@codemirror/lang-javascript": 6.0.1
|
||||
"@codemirror/lang-json": 6.0.0
|
||||
"@codemirror/lang-markdown": 6.0.0
|
||||
"@codemirror/matchbrackets": 0.19.4
|
||||
"@codemirror/search": 6.0.0
|
||||
"@codemirror/state": 6.0.1
|
||||
"@codemirror/tooltip": 0.19.16
|
||||
"@codemirror/view": 6.0.1
|
||||
"@codemirror/view": 6.0.2
|
||||
"@intlify/vite-plugin-vue-i18n": 3.4.0
|
||||
"@lezer/common": 1.0.0
|
||||
"@quasar/app-vite": 1.0.2
|
||||
"@quasar/extras": 1.14.0
|
||||
"@quasar/app-vite": 1.0.4
|
||||
"@quasar/extras": 1.14.2
|
||||
"@tiptap/core": 2.0.0-beta.176
|
||||
"@tiptap/extension-code-block": 2.0.0-beta.37
|
||||
"@tiptap/extension-code-block-lowlight": 2.0.0-beta.68
|
||||
@@ -6834,31 +6868,30 @@ __metadata:
|
||||
"@types/lodash": 4.14.182
|
||||
"@vue/apollo-option": 4.0.0-alpha.17
|
||||
apollo-upload-client: 17.0.0
|
||||
autoprefixer: 10.4.7
|
||||
browser-fs-access: 0.29.6
|
||||
browser-fs-access: 0.30.2
|
||||
browserlist: latest
|
||||
clipboard: 2.0.11
|
||||
codemirror: 6.0.0
|
||||
eslint: 8.18.0
|
||||
codemirror: 6.0.1
|
||||
eslint: 8.19.0
|
||||
eslint-config-standard: 17.0.0
|
||||
eslint-plugin-import: 2.26.0
|
||||
eslint-plugin-n: 15.2.3
|
||||
eslint-plugin-promise: 6.0.0
|
||||
eslint-plugin-vue: 9.1.1
|
||||
filesize: 9.0.9
|
||||
filesize: 9.0.11
|
||||
filesize-parser: 1.5.0
|
||||
graphql: 16.5.0
|
||||
graphql-tag: 2.12.6
|
||||
js-cookie: 3.0.1
|
||||
jwt-decode: 3.1.2
|
||||
lodash: 4.17.21
|
||||
lodash-es: 4.17.21
|
||||
luxon: 2.4.0
|
||||
pinia: 2.0.14
|
||||
pug: 3.0.2
|
||||
quasar: 2.7.3
|
||||
quasar: 2.7.4
|
||||
tippy.js: 6.3.7
|
||||
uuid: 8.3.2
|
||||
v-network-graph: 0.5.19
|
||||
v-network-graph: 0.6.3
|
||||
vue: 3.2.37
|
||||
vue-codemirror: 6.0.0
|
||||
vue-i18n: 9.1.10
|
||||
@@ -6868,16 +6901,16 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"v-network-graph@npm:0.5.19":
|
||||
version: 0.5.19
|
||||
resolution: "v-network-graph@npm:0.5.19"
|
||||
"v-network-graph@npm:0.6.3":
|
||||
version: 0.6.3
|
||||
resolution: "v-network-graph@npm:0.6.3"
|
||||
dependencies:
|
||||
"@dash14/svg-pan-zoom": ^3.6.8
|
||||
mitt: ^3.0.0
|
||||
peerDependencies:
|
||||
d3-force: ^3.0.0
|
||||
vue: ^3.2.31
|
||||
checksum: 98be123d78cd68454bd2d64a13678031c8b7cdea8610698d4211bf5b56e740df5fc367a75c23e823417385e08609c9b48785e4116aff2046208344f636a3f5a1
|
||||
checksum: cecae746aaf6fd0f480b0a251b4d50dab89a16e88420c7ffd2de0fe5c5fb32a72cb19f94c3b6a19a4e83110fa0a136635c148b5231988c29e807dadb877f691a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -6924,13 +6957,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:2.9.1":
|
||||
version: 2.9.1
|
||||
resolution: "vite@npm:2.9.1"
|
||||
"vite@npm:2.9.13":
|
||||
version: 2.9.13
|
||||
resolution: "vite@npm:2.9.13"
|
||||
dependencies:
|
||||
esbuild: ^0.14.27
|
||||
fsevents: ~2.3.2
|
||||
postcss: ^8.4.12
|
||||
postcss: ^8.4.13
|
||||
resolve: ^1.22.0
|
||||
rollup: ^2.59.0
|
||||
peerDependencies:
|
||||
@@ -6949,7 +6982,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 0f0ac9337fa5c17faa4a59831a2df17475563b23a6162e86b2b60b19835ca1277f3249ea7a6608880354b39caf05779e9bad1e3b1f5b27010deced224aae47ea
|
||||
checksum: a5e501b920a448c352e9b3836019dea56c523535f8e8540160708c2e164d84da6655ae39abbba1e2888092f5c6cd03dd06279852422359b51be601914645f49f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in new issue
Block a user