diff --git a/.gitignore b/.gitignore
index 403adbc..0895cb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
.DS_Store
node_modules
-/dist
+frontend/dist
# local env files
@@ -21,3 +21,5 @@ pnpm-debug.log*
*.njsproj
*.sln
*.sw?
+
+/files
diff --git a/backend/lib/SocketTypes.js b/backend/lib/SocketTypes.js
new file mode 100644
index 0000000..2ec987a
--- /dev/null
+++ b/backend/lib/SocketTypes.js
@@ -0,0 +1,2 @@
+export const EDITOR_SESSION = 1
+export const TERMINAL_SESSION = 2
diff --git a/backend/package.json b/backend/package.json
index e8884dd..d2630ce 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -7,7 +7,10 @@
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
+ "lib0": "^0.2.42",
"node-pty": "^0.10.1",
- "ws": "^8.2.3"
+ "ws": "^8.2.3",
+ "y-protocols": "^1.0.5",
+ "yjs": "^13.5.18"
}
}
diff --git a/backend/src/containers.js b/backend/src/containers.js
index 543d9db..2623b77 100644
--- a/backend/src/containers.js
+++ b/backend/src/containers.js
@@ -28,7 +28,6 @@ export function getContainerShell (containerId, shell = 'sh') {
}
export function startContainer (image = 'alpine', cmd = ['sh', '-c', 'while true; do sleep 1d; done']) {
- console.log(['run', '-d', '-l', config.containerLabel, image, ...cmd])
return exec(config.containerBinary, ['run', '--rm', '-d', '-l', config.containerLabel, image, ...cmd])
}
diff --git a/backend/src/editor.js b/backend/src/editor.js
new file mode 100644
index 0000000..85c0722
--- /dev/null
+++ b/backend/src/editor.js
@@ -0,0 +1,229 @@
+// Mostly adopted from: https://github.com/yjs/y-websocket
+
+import * as awarenessProtocol from 'y-protocols/awareness.js'
+import * as syncProtocol from 'y-protocols/sync.js'
+import { Doc } from 'yjs'
+
+import { decoding, encoding, map } from 'lib0'
+
+import { readFile, stat, writeFile } from 'fs/promises'
+import { fileURLToPath } from 'url'
+import path from 'path'
+
+export async function upgrade (sessions, request, reqPath) {
+ // todo: check auth and project
+
+ // todo: check dir traversal
+ request.editorFile = `${path.dirname(fileURLToPath(import.meta.url))}/../../files/${reqPath[3]}`
+
+ return true
+}
+
+export async function connection (ws, req) {
+ ws.binaryType = 'arraybuffer'
+
+ // get doc, initialize if it does not exist yet
+ const doc = getYDoc(req.editorFile)
+ doc.conns.set(ws, new Set())
+
+ // listen and reply to events
+ ws.on('message', message => messageListener(ws, doc, new Uint8Array(message)))
+
+ // Check if connection is still alive
+ let pongReceived = true
+ const pingInterval = setInterval(() => {
+ if (!pongReceived) {
+ if (doc.conns.has(ws)) {
+ closeConn(doc, ws)
+ }
+ clearInterval(pingInterval)
+ } else if (doc.conns.has(ws)) {
+ pongReceived = false
+ try {
+ ws.ping()
+ } catch (e) {
+ closeConn(doc, ws)
+ clearInterval(pingInterval)
+ }
+ }
+ }, pingTimeout)
+
+ ws.on('close', () => {
+ closeConn(doc, ws)
+ clearInterval(pingInterval)
+ })
+
+ ws.on('pong', () => {
+ pongReceived = true
+ })
+
+ // put the following in a variables in a block so the interval handlers don't keep in in
+ // scope
+ {
+ // send sync step 1
+ const encoder = encoding.createEncoder()
+ encoding.writeVarUint(encoder, messageSync)
+ syncProtocol.writeSyncStep1(encoder, doc)
+ send(doc, ws, encoding.toUint8Array(encoder))
+ const awarenessStates = doc.awareness.getStates()
+ if (awarenessStates.size > 0) {
+ const encoder = encoding.createEncoder()
+ encoding.writeVarUint(encoder, messageAwareness)
+ encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(doc.awareness, Array.from(awarenessStates.keys())))
+ send(doc, ws, encoding.toUint8Array(encoder))
+ }
+ }
+
+ return true
+}
+
+const messageSync = 0
+const messageAwareness = 1
+
+const wsReadyStateConnecting = 0
+const wsReadyStateOpen = 1
+const wsReadyStateClosing = 2
+const wsReadyStateClosed = 3
+
+const pingTimeout = 30000
+
+const docs = new Map()
+
+class WSSharedDoc extends Doc {
+ /**
+ * @param {string} name
+ */
+ constructor (name) {
+ super({ gc: true })
+ this.name = name
+
+ this.conns = new Map()
+
+ this.awareness = new awarenessProtocol.Awareness(this)
+
+ this.awareness.setLocalState(null)
+
+ const awarenessChangeHandler = ({ added, updated, removed }, conn) => {
+ const changedClients = added.concat(updated, removed)
+ if (conn !== null) {
+ const connControlledIDs = this.conns.get(conn)
+
+ if (connControlledIDs !== undefined) {
+ added.forEach(clientID => connControlledIDs.add(clientID))
+ removed.forEach(clientID => connControlledIDs.delete(clientID))
+ }
+ }
+ // broadcast awareness update
+ const encoder = encoding.createEncoder()
+ encoding.writeVarUint(encoder, messageAwareness)
+ encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients))
+ const buff = encoding.toUint8Array(encoder)
+ this.conns.forEach((_, c) => {
+ send(this, c, buff)
+ })
+ }
+
+ this.awareness.on('update', awarenessChangeHandler)
+
+ this.on('update', updateHandler)
+ }
+}
+
+const updateHandler = (update, origin, doc) => {
+ const encoder = encoding.createEncoder()
+ encoding.writeVarUint(encoder, messageSync)
+ syncProtocol.writeUpdate(encoder, update)
+
+ const message = encoding.toUint8Array(encoder)
+ doc.conns.forEach((_, conn) => send(doc, conn, message))
+
+ writeUpdate(doc)
+}
+
+const debounce = (func, wait, immediate) => {
+ let timeout
+ return (...args) => {
+ let context = this
+ let later = () => {
+ timeout = null
+ if (!immediate) func.apply(context, args)
+ }
+ let callNow = immediate && !timeout
+ clearTimeout(timeout)
+ timeout = setTimeout(later, wait)
+ if (callNow) func.apply(context, args)
+ }
+}
+
+const writeUpdate = debounce(async doc => {
+ await writeFile(doc.name, doc.getText('monaco').toJSON())
+}, 2000)
+
+const getYDoc = file => map.setIfUndefined(docs, file, () => {
+
+ const doc = new WSSharedDoc(file)
+
+ doc.gc = true
+ docs.set(file, doc)
+
+ stat(file)
+ .then(() => {
+ return readFile(file, { encoding: 'utf8' })
+ })
+ .then(content => {
+ const text = doc.getText('monaco')
+ text.insert(0, content)
+ })
+ .catch(() => {
+ // new file
+ })
+
+ return doc
+})
+
+const messageListener = (conn, doc, message) => {
+ try {
+ const encoder = encoding.createEncoder()
+ const decoder = decoding.createDecoder(message)
+ const messageType = decoding.readVarUint(decoder)
+ switch (messageType) {
+ case messageSync:
+ encoding.writeVarUint(encoder, messageSync)
+ syncProtocol.readSyncMessage(decoder, encoder, doc, null)
+ if (encoding.length(encoder) > 1) {
+ send(doc, conn, encoding.toUint8Array(encoder))
+ }
+ break
+ case messageAwareness: {
+ awarenessProtocol.applyAwarenessUpdate(doc.awareness, decoding.readVarUint8Array(decoder), conn)
+ break
+ }
+ }
+ } catch (err) {
+ console.error(err)
+ doc.emit('error', [err])
+ }
+}
+
+const send = (doc, conn, m) => {
+ if (conn.readyState !== wsReadyStateConnecting && conn.readyState !== wsReadyStateOpen) {
+ console.log(conn.readyState)
+ closeConn(doc, conn)
+ }
+ try {
+ conn.send(m, err => { err != null && closeConn(doc, conn) })
+ } catch (e) {
+ closeConn(doc, conn)
+ }
+}
+
+const closeConn = (doc, conn) => {
+ if (doc.conns.has(conn)) {
+ const controlledIds = doc.conns.get(conn)
+ doc.conns.delete(conn)
+ awarenessProtocol.removeAwarenessStates(doc.awareness, Array.from(controlledIds), null)
+ docs.delete(doc.name)
+ }
+
+ conn.close()
+}
diff --git a/backend/src/shell.js b/backend/src/shell.js
new file mode 100644
index 0000000..5046226
--- /dev/null
+++ b/backend/src/shell.js
@@ -0,0 +1,45 @@
+import { containerExists, getContainerShell } from './containers.js'
+
+export async function upgrade(sessions, request, path) {
+ const [container, sessionId] = path.splice(2)
+ const session = sessions[sessionId]
+
+ if (session && session.container !== container) {
+ console.log('wrong session')
+ return false
+ }
+
+ if (!(await containerExists(container))) {
+ console.log('no container')
+ return false
+ }
+
+ if (!session) {
+ sessions[sessionId] = { container }
+ }
+
+ request.session = sessions[sessionId]
+
+ return true
+}
+
+export async function connection(ws, req) {
+ if (!req.session.term) {
+ req.session.term = getContainerShell(req.session.container)
+ }
+
+ ws.on('message', message => {
+ const decoded = message.toString()
+
+ req.session.term.write(decoded)
+ })
+
+ req.session.term.onData(data => {
+ ws.send(data)
+ })
+
+ req.session.term.onExit(exit => {
+ ws.send(`Process terminated with code ${exit.exitCode}`)
+ ws.close()
+ })
+}
diff --git a/backend/src/websocket.js b/backend/src/websocket.js
index 3572a92..cb798db 100644
--- a/backend/src/websocket.js
+++ b/backend/src/websocket.js
@@ -1,63 +1,47 @@
-import { containerExists, getContainerShell } from './containers.js'
import { WebSocketServer } from 'ws'
+import { EDITOR_SESSION, TERMINAL_SESSION } from '../lib/SocketTypes.js'
+import { upgrade as upgradeShell, connection as connectionShell } from './shell.js'
+import { upgrade as upgradeEditor, connection as connectionEditor } from './editor.js'
export default (server, sessions) => {
const wss = new WebSocketServer({ noServer: true })
server.on('upgrade', async (request, socket, head) => {
const forbidden = () => {
- socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
- socket.destroy();
+ socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n')
+ socket.destroy()
}
const path = request.url.substr(1).split('/')
- if (path.length !== 3 || path[0] !== 'ws') {
+ if (path.length < 1 || path[0] !== 'ws') {
return forbidden()
}
- const [_, container, sessionId] = path
- const session = sessions[sessionId]
+ if (path.length > 3 && path[1] === 'editor' && (await upgradeEditor(sessions, request, path))) {
+ // /ws/editor/:project/:path
+ request.type = EDITOR_SESSION
- if (session && session.container !== container) {
- console.log('wrong session')
+ } else if (path.length === 4 && path[1] === 'terminal' && (await upgradeShell(sessions, request, path))) {
+ // /ws/terminal/:container/:session
+ request.type = TERMINAL_SESSION
+
+ } else {
return forbidden()
}
- if (!(await containerExists(container))) {
- console.log('no container')
- return forbidden()
- }
-
- if (!session) {
- sessions[sessionId] = { container }
- }
-
- request.session = sessions[sessionId]
-
wss.handleUpgrade(request, socket, head, ws => {
- wss.emit('connection', ws, request);
- });
+ wss.emit('connection', ws, request)
+ })
})
- wss.on('connection', (ws, req) => {
- if (!req.session.term) {
- req.session.term = getContainerShell(req.session.container)
+ wss.on('connection', async (ws, req) => {
+ if (req.type === EDITOR_SESSION) {
+ await connectionEditor(ws, req)
}
- ws.on('message', message => {
- const decoded = message.toString()
-
- req.session.term.write(decoded)
- })
-
- req.session.term.onData(data => {
- ws.send(data)
- })
-
- req.session.term.onExit(exit => {
- ws.send(`Process terminated with code ${exit.exitCode}`)
- ws.close()
- })
+ if (req.type === TERMINAL_SESSION) {
+ await connectionShell(ws, req)
+ }
})
}
diff --git a/backend/yarn.lock b/backend/yarn.lock
index 519d204..74908f4 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -198,6 +198,18 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+isomorphic.js@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969"
+ integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA==
+
+lib0@^0.2.42:
+ version "0.2.42"
+ resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0"
+ integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q==
+ dependencies:
+ isomorphic.js "^0.2.4"
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -383,3 +395,17 @@ ws@^8.2.3:
version "8.2.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
+
+y-protocols@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e"
+ integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A==
+ dependencies:
+ lib0 "^0.2.42"
+
+yjs@^13.5.18:
+ version "13.5.18"
+ resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.18.tgz#4151f381b170726b69be26296fd84b2efdc82e6e"
+ integrity sha512-6LcTL8gRe12fy89OvXG6Xs/uhsl7iwE4Wh106H1NItkcqcUaY2waTje1NVWmOZNXHXWVAzdf/fBQqB4Phq9sGA==
+ dependencies:
+ lib0 "^0.2.42"
diff --git a/frontend/package.json b/frontend/package.json
index 9f2e092..4e2abf9 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -9,11 +9,15 @@
},
"dependencies": {
"core-js": "^3.6.5",
+ "monaco-editor": "^0.30.0",
"vue": "^3.0.0",
"vue-router": "^4.0.0-0",
"xterm": "^4.14.1",
"xterm-addon-attach": "^0.6.0",
- "xterm-addon-fit": "^0.5.0"
+ "xterm-addon-fit": "^0.5.0",
+ "y-monaco": "^0.1.2",
+ "y-websocket": "^1.3.17",
+ "yjs": "^13.5.18"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
@@ -28,7 +32,8 @@
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0",
- "eslint-plugin-vue": "^7.0.0"
+ "eslint-plugin-vue": "^7.0.0",
+ "monaco-editor-webpack-plugin": "^6.0.0"
},
"eslintConfig": {
"root": true,
diff --git a/frontend/src/components/Editor.vue b/frontend/src/components/Editor.vue
new file mode 100644
index 0000000..09d48f6
--- /dev/null
+++ b/frontend/src/components/Editor.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/components/WsTerm.vue b/frontend/src/components/WsTerm.vue
index 22915fc..69f5f41 100644
--- a/frontend/src/components/WsTerm.vue
+++ b/frontend/src/components/WsTerm.vue
@@ -19,7 +19,7 @@ export default {
},
setup (props) {
- const socket = new WebSocket(`ws://localhost:1234/ws/${props.container}/${props.session}`)
+ const socket = new WebSocket(`ws://localhost:1234/ws/shell/${props.container}/${props.session}`)
const renderEl = ref(null)
const term = new Terminal()
diff --git a/frontend/src/views/Dashboard.vue b/frontend/src/views/Dashboard.vue
index 585054d..192aa72 100644
--- a/frontend/src/views/Dashboard.vue
+++ b/frontend/src/views/Dashboard.vue
@@ -1,6 +1,8 @@
+
+
@@ -8,10 +10,11 @@
import ContainerList from '../components/ContainerList'
import { getContainers } from '../lib/api'
import { ref } from 'vue'
+import Editor from '../components/Editor'
export default {
name: 'Dashboard',
- components: { ContainerList },
+ components: { Editor, ContainerList },
setup () {
const containers = ref([])
diff --git a/frontend/vue.config.js b/frontend/vue.config.js
new file mode 100644
index 0000000..782bfad
--- /dev/null
+++ b/frontend/vue.config.js
@@ -0,0 +1,16 @@
+const MonacoEditorWebpackPlugin = require('monaco-editor-webpack-plugin')
+
+module.exports = {
+ configureWebpack: {
+ plugins: [
+ new MonacoEditorWebpackPlugin({
+ // https://github.com/Microsoft/monaco-editor-webpack-plugin#options
+ // Include a subset of languages support
+ // Some language extensions like typescript are so huge that may impact build performance
+ // e.g. Build full languages support with webpack 4.0 takes over 80 seconds
+ // Languages are loaded on demand at runtime
+ languages: ['javascript', 'css', 'html', 'typescript']
+ })
+ ]
+ }
+}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 85a3eea..8e9a407 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -252,14 +252,14 @@
js-tokens "^4.0.0"
"@babel/parser@^7.15.0", "@babel/parser@^7.16.0", "@babel/parser@^7.7.0":
- version "7.16.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.0.tgz#cf147d7ada0a3655e79bf4b08ee846f00a00a295"
- integrity sha512-TEHWXf0xxpi9wKVyBCmRcSSDjbJ/cl6LUdlbYUHEaNQUJGhreJbZrXT6sR4+fZLxVUJqNRB4KyOvjuy/D9009A==
+ version "7.16.2"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac"
+ integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0":
- version "7.16.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.0.tgz#efb7f147042aca34ce8156a055906a7abaadeaf0"
- integrity sha512-djyecbGMEh4rOb/Tc1M5bUW2Ih1IZRa9PoubnPOCzM+DRE89uGUHR1Y+3aDdTMW4drjGRZ2ol8dt1JUFg6hJLQ==
+ version "7.16.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183"
+ integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
@@ -1389,47 +1389,47 @@
semver "^6.1.0"
strip-ansi "^6.0.0"
-"@vue/compiler-core@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.20.tgz#af5a3c5237818835b0d0be837eb5885a8d21c160"
- integrity sha512-vcEXlKXoPwBXFP5aUTHN9GTZaDfwCofa9Yu9bbW2C5O/QSa9Esdt7OG4+0RRd3EHEMxUvEdj4RZrd/KpQeiJbA==
+"@vue/compiler-core@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.21.tgz#26566c32b2ad838199d471ef5df620a83846f24e"
+ integrity sha512-NhhiQZNG71KNq1h5pMW/fAXdTF7lJRaSI7LDm2edhHXVz1ROMICo8SreUmQnSf4Fet0UPBVqJ988eF4+936iDQ==
dependencies:
"@babel/parser" "^7.15.0"
- "@vue/shared" "3.2.20"
+ "@vue/shared" "3.2.21"
estree-walker "^2.0.2"
source-map "^0.6.1"
-"@vue/compiler-dom@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.20.tgz#8e0ef354449c0faf41519b00bfc2045eae01dcb5"
- integrity sha512-QnI77ec/JtV7R0YBbcVayYTDCRcI9OCbxiUQK6izVyqQO0658n0zQuoNwe+bYgtqnvGAIqTR3FShTd5y4oOjdg==
+"@vue/compiler-dom@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.21.tgz#d6f6c85364ef8888f9c4e9122bfba11e78fb398c"
+ integrity sha512-gsJD3DpYZSYquiA7UIPsMDSlAooYWDvHPq9VRsqzJEk2PZtFvLvHPb4aaMD8Ufd62xzYn32cnnkzsEOJhyGilA==
dependencies:
- "@vue/compiler-core" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-core" "3.2.21"
+ "@vue/shared" "3.2.21"
-"@vue/compiler-sfc@3.2.20", "@vue/compiler-sfc@^3.0.0":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.20.tgz#2d7668e76f066c566dd7c09c15c9acce4e876e0a"
- integrity sha512-03aZo+6tQKiFLfunHKSPZvdK4Jsn/ftRCyaro8AQIWkuxJbvSosbKK6HTTn+D2c3nPScG155akJoxKENw7rftQ==
+"@vue/compiler-sfc@3.2.21", "@vue/compiler-sfc@^3.0.0":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.21.tgz#42639ee49e725afb7d8f1d1940e75dc17a56002c"
+ integrity sha512-+yDlUSebKpz/ovxM2vLRRx7w/gVfY767pOfYTgbIhAs+ogvIV2BsIt4fpxlThnlCNChJ+yE0ERUNoROv2kEGEQ==
dependencies:
"@babel/parser" "^7.15.0"
- "@vue/compiler-core" "3.2.20"
- "@vue/compiler-dom" "3.2.20"
- "@vue/compiler-ssr" "3.2.20"
- "@vue/ref-transform" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-core" "3.2.21"
+ "@vue/compiler-dom" "3.2.21"
+ "@vue/compiler-ssr" "3.2.21"
+ "@vue/ref-transform" "3.2.21"
+ "@vue/shared" "3.2.21"
estree-walker "^2.0.2"
magic-string "^0.25.7"
postcss "^8.1.10"
source-map "^0.6.1"
-"@vue/compiler-ssr@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.20.tgz#9cceb6261d9932cb5568202610c1c28f86c5e521"
- integrity sha512-rzzVVYivm+EjbfiGQvNeyiYZWzr6Hkej97RZLZvcumacQlnKv9176Xo9rRyeWwFbBlxmtNdrVMslRXtipMXk2w==
+"@vue/compiler-ssr@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.21.tgz#37d124f89e8adef9fd56b85775de4b5310a0436e"
+ integrity sha512-eU+A0iWYy+1zAo2CRIJ0zSVlv1iuGAIbNRCnllSJ31pV1lX3jypJYzGbJlSRAbB7VP6E+tYveVT1Oq8JKewa3g==
dependencies:
- "@vue/compiler-dom" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-dom" "3.2.21"
+ "@vue/shared" "3.2.21"
"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
version "3.3.0"
@@ -1448,9 +1448,9 @@
prettier "^1.18.2 || ^2.0.0"
"@vue/devtools-api@^6.0.0-beta.18":
- version "6.0.0-beta.19"
- resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.19.tgz#f8e88059daa424515992426a0c7ea5cde07e99bf"
- integrity sha512-ObzQhgkoVeoyKv+e8+tB/jQBL2smtk/NmC9OmFK8UqdDpoOdv/Kf9pyDWL+IFyM7qLD2C75rszJujvGSPSpGlw==
+ version "6.0.0-beta.20"
+ resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.20.tgz#b5405c9a84fb44687d05e7c4c7854b1639141106"
+ integrity sha512-21u2jFOk8jbAneeGpDwZQ0W66RJa0IBDUyVl6SgKnn2cRFjLWzKj+ukXjpLhYr1KASyCe5E5U4jXwChVo0YUAw==
"@vue/eslint-config-standard@^5.1.2":
version "5.1.2"
@@ -1466,53 +1466,53 @@
resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab"
integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
-"@vue/reactivity@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.20.tgz#81fe1c368e7f20bc0ec1dec1045bbee253582de8"
- integrity sha512-nSmoLojUTk+H8HNTAkrUduB4+yIUBK2HPihJo2uXVSH4Spry6oqN6lFzE5zpLK+F27Sja+UqR9R1+/kIOsHV5w==
+"@vue/reactivity@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.21.tgz#073ad144192ed78a07e151e95a3baa515e4099a2"
+ integrity sha512-7C57zFm/5E3SSTUhVuYj1InDwuJ+GIVQ/z+H43C9sST85gIThGXVhksl1yWTAadf8Yz4T5lSbqi5Ds8U/ueWcw==
dependencies:
- "@vue/shared" "3.2.20"
+ "@vue/shared" "3.2.21"
-"@vue/ref-transform@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.20.tgz#2a59ec90caf8e5c7336776a0900bff0a8b81c090"
- integrity sha512-Y42d3PGlYZ1lXcF3dbd3+qU/C/a3wYEZ949fyOI5ptzkjDWlkfU6vn74fmOjsLjEcjs10BXK2qO99FqQIK2r1Q==
+"@vue/ref-transform@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.21.tgz#b0c554c9f640c3f005f77e676066aa0faba90984"
+ integrity sha512-uiEWWBsrGeun9O7dQExYWzXO3rHm/YdtFNXDVqCSoPypzOVxWxdiL+8hHeWzxMB58fVuV2sT80aUtIVyaBVZgQ==
dependencies:
"@babel/parser" "^7.15.0"
- "@vue/compiler-core" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-core" "3.2.21"
+ "@vue/shared" "3.2.21"
estree-walker "^2.0.2"
magic-string "^0.25.7"
-"@vue/runtime-core@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.20.tgz#8f63e956a3f88fb772541443c45a7701211012cb"
- integrity sha512-d1xfUGhZPfiZzAN7SatStD4vRtT8deJSXib2+Cz3x0brjMWKxe32asQc154FF1E2fFgMCHtnfd4A90bQEzV4GQ==
+"@vue/runtime-core@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.21.tgz#e12dac8c3893b7aebfc37e32066718d8aa686ac5"
+ integrity sha512-7oOxKaU0D2IunOAMOOHZgJVrHg63xwng8BZx3fbgmakqEIMwHhQcp+5GV1sOg/sWW7R4UhaRDIUCukO2GRVK2Q==
dependencies:
- "@vue/reactivity" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/reactivity" "3.2.21"
+ "@vue/shared" "3.2.21"
-"@vue/runtime-dom@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.20.tgz#8aa56ae6c30f9cd4a71ca0e9ec3c4bdc67148d15"
- integrity sha512-4TCvZMLhESWCFHFYgqN4QmMA/onnINAlUovhopjlS8ST27G1A8Z0tyxPzLoXLa+b5JrOpbMPheEMPvdKExTJig==
+"@vue/runtime-dom@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.21.tgz#33dd15bc85281e773177a30dc6931c294bd77aa1"
+ integrity sha512-apBdriD6QsI4ywbllY8kjr9/0scGuStDuvLbJULPQkFPtHzntd51bP5PQTQVAEIc9kwnTozmj6x6ZdX/cwo7xA==
dependencies:
- "@vue/runtime-core" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/runtime-core" "3.2.21"
+ "@vue/shared" "3.2.21"
csstype "^2.6.8"
-"@vue/server-renderer@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.20.tgz#705e07ae9425132b2b6227d308a51a13f4d4ec81"
- integrity sha512-viIbZGep9XabnrRcaxWIi00cOh1x21QYm2upIL5W0zqzTJ54VdTzpI+zi1osNp+VfRQDTHpV2U7H3Kn4ljYJvg==
+"@vue/server-renderer@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.21.tgz#887d0a44de76f72313cff2686a24c0315231d634"
+ integrity sha512-QBgYqVgI7XCSBCqGa4LduV9vpfQFdZBOodFmq5Txk5W/v1KrJ1LoOh2Q0RHiRgtoK/UR9uyvRVcYqOmwHkZNEg==
dependencies:
- "@vue/compiler-ssr" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-ssr" "3.2.21"
+ "@vue/shared" "3.2.21"
-"@vue/shared@3.2.20":
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.20.tgz#53746961f731a8ea666e3316271e944238dc31db"
- integrity sha512-FbpX+hD5BvXCQerEYO7jtAGHlhAkhTQ4KIV73kmLWNlawWhTiVuQxizgVb0BOkX5oG9cIRZ42EG++d/k/Efp0w==
+"@vue/shared@3.2.21":
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.21.tgz#4cd80c0e62cf65a7adab2449e86b6f0cb33a130b"
+ integrity sha512-5EQmIPK6gw4UVYUbM959B0uPsJ58+xoMESCZs3N89XyvJ9e+fX4pqEPrOGV8OroIk3SbEvJcC+eYc8BH9JQrHA==
"@vue/web-component-wrapper@^1.2.0":
version "1.3.0"
@@ -1674,6 +1674,28 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+abstract-leveldown@^6.2.1:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a"
+ integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==
+ dependencies:
+ buffer "^5.5.0"
+ immediate "^3.2.3"
+ level-concat-iterator "~2.0.0"
+ level-supports "~1.0.0"
+ xtend "~4.0.0"
+
+abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3:
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb"
+ integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==
+ dependencies:
+ buffer "^5.5.0"
+ immediate "^3.2.3"
+ level-concat-iterator "~2.0.0"
+ level-supports "~1.0.0"
+ xtend "~4.0.0"
+
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -1899,9 +1921,9 @@ asn1.js@^5.2.0:
safer-buffer "^2.1.0"
asn1@~0.2.3:
- version "0.2.4"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
- integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+ integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
dependencies:
safer-buffer "~2.1.0"
@@ -2036,7 +2058,7 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-js@^1.0.2:
+base64-js@^1.0.2, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
@@ -2248,13 +2270,13 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.17.5:
- version "4.17.5"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.5.tgz#c827bbe172a4c22b123f5e337533ceebadfdd559"
- integrity sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.17.6:
+ version "4.17.6"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.6.tgz#c76be33e7786b497f66cad25a73756c8b938985d"
+ integrity sha512-uPgz3vyRTlEiCv4ee9KlsKgo2V6qPk7Jsn0KAn2OBqbqKo3iNcPEC1Ti6J4dwnz+aIRfEEEuOzC9IBk8tXUomw==
dependencies:
- caniuse-lite "^1.0.30001271"
- electron-to-chromium "^1.3.878"
+ caniuse-lite "^1.0.30001274"
+ electron-to-chromium "^1.3.886"
escalade "^3.1.1"
node-releases "^2.0.1"
picocolors "^1.0.0"
@@ -2288,6 +2310,14 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
+buffer@^5.5.0, buffer@^5.6.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -2416,10 +2446,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001271:
- version "1.0.30001274"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001274.tgz#26ca36204d15b17601ba6fc35dbdad950a647cc7"
- integrity sha512-+Nkvv0fHyhISkiMIjnyjmf5YJcQ1IQHZN6U9TLUMroWR38FNwpsC51Gb68yueafX1V6ifOisInSgP9WJFS13ew==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001274:
+ version "1.0.30001278"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz#51cafc858df77d966b17f59b5839250b24417fff"
+ integrity sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg==
case-sensitive-paths-webpack-plugin@^2.3.0:
version "2.4.0"
@@ -2820,17 +2850,17 @@ copy-webpack-plugin@^5.1.1:
webpack-log "^2.0.0"
core-js-compat@^3.18.0, core-js-compat@^3.19.0, core-js-compat@^3.6.5:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.0.tgz#b3b93f93c8721b3ed52b91f12f964cc410967f8b"
- integrity sha512-R09rKZ56ccGBebjTLZHvzDxhz93YPT37gBm6qUhnwj3Kt7aCjjZWD1injyNbyeFHxNKfeZBSyds6O9n3MKq1sw==
+ version "3.19.1"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476"
+ integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==
dependencies:
- browserslist "^4.17.5"
+ browserslist "^4.17.6"
semver "7.0.0"
core-js@^3.6.5:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.0.tgz#9e40098a9bc326c7e81b486abbd5e12b9d275176"
- integrity sha512-L1TpFRWXZ76vH1yLM+z6KssLZrP8Z6GxxW4auoCj+XiViOzNPJCAuTIkn03BGdFe6Z5clX5t64wRIRypsZQrUg==
+ version "3.19.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.1.tgz#f6f173cae23e73a7d88fa23b6e9da329276c6641"
+ integrity sha512-Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==
core-util-is@1.0.2:
version "1.0.2"
@@ -3185,6 +3215,14 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
+deferred-leveldown@~5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058"
+ integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==
+ dependencies:
+ abstract-leveldown "~6.2.1"
+ inherits "^2.0.3"
+
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -3423,10 +3461,10 @@ ejs@^2.6.1:
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
-electron-to-chromium@^1.3.878:
- version "1.3.885"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.885.tgz#c8cec32fbc61364127849ae00f2395a1bae7c454"
- integrity sha512-JXKFJcVWrdHa09n4CNZYfYaK6EW5aAew7/wr3L1OnsD1L+JHL+RCtd7QgIsxUbFPeTwPlvnpqNNTOLkoefmtXg==
+electron-to-chromium@^1.3.886:
+ version "1.3.890"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.890.tgz#e7143b659f73dc4d0512d1ae4baeb0fb9e7bc835"
+ integrity sha512-VWlVXSkv0cA/OOehrEyqjUTHwV8YXCPTfPvbtoeU2aHR21vI4Ejh5aC4AxUwOmbLbBgb6Gd3URZahoCxtBqCYQ==
elliptic@^6.5.3:
version "6.5.4"
@@ -3466,6 +3504,16 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+encoding-down@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b"
+ integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==
+ dependencies:
+ abstract-leveldown "^6.2.1"
+ inherits "^2.0.3"
+ level-codec "^9.0.0"
+ level-errors "^2.0.0"
+
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -3496,7 +3544,7 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-errno@^0.1.3, errno@~0.1.7:
+errno@^0.1.3, errno@~0.1.1, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
@@ -3976,9 +4024,9 @@ extsprintf@1.3.0:
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
- integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+ integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
fast-deep-equal@^3.1.1:
version "3.1.3"
@@ -4733,7 +4781,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1:
dependencies:
postcss "^7.0.14"
-ieee754@^1.1.4:
+ieee754@^1.1.13, ieee754@^1.1.4:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -4754,9 +4802,14 @@ ignore@^4.0.3, ignore@^4.0.6:
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.1.1:
- version "5.1.8"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
- integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+ version "5.1.9"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb"
+ integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==
+
+immediate@^3.2.3:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266"
+ integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==
import-cwd@^2.0.0:
version "2.1.0"
@@ -5245,6 +5298,11 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+isomorphic.js@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969"
+ integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA==
+
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
@@ -5410,6 +5468,88 @@ launch-editor@^2.2.1:
chalk "^2.3.0"
shell-quote "^1.6.1"
+level-codec@^9.0.0:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc"
+ integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==
+ dependencies:
+ buffer "^5.6.0"
+
+level-concat-iterator@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263"
+ integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==
+
+level-errors@^2.0.0, level-errors@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8"
+ integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==
+ dependencies:
+ errno "~0.1.1"
+
+level-iterator-stream@~4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c"
+ integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+ xtend "^4.0.2"
+
+level-js@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55"
+ integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==
+ dependencies:
+ abstract-leveldown "~6.2.3"
+ buffer "^5.5.0"
+ inherits "^2.0.3"
+ ltgt "^2.1.2"
+
+level-packager@^5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939"
+ integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==
+ dependencies:
+ encoding-down "^6.3.0"
+ levelup "^4.3.2"
+
+level-supports@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d"
+ integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==
+ dependencies:
+ xtend "^4.0.2"
+
+level@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6"
+ integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==
+ dependencies:
+ level-js "^5.0.0"
+ level-packager "^5.1.0"
+ leveldown "^5.4.0"
+
+leveldown@^5.4.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98"
+ integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==
+ dependencies:
+ abstract-leveldown "~6.2.1"
+ napi-macros "~2.0.0"
+ node-gyp-build "~4.1.0"
+
+levelup@^4.3.2:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6"
+ integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==
+ dependencies:
+ deferred-leveldown "~5.3.0"
+ level-errors "~2.0.0"
+ level-iterator-stream "~4.0.0"
+ level-supports "~1.0.0"
+ xtend "~4.0.0"
+
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
@@ -5418,6 +5558,13 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lib0@^0.2.31, lib0@^0.2.35, lib0@^0.2.42:
+ version "0.2.42"
+ resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0"
+ integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q==
+ dependencies:
+ isomorphic.js "^0.2.4"
+
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
@@ -5456,9 +5603,9 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4
json5 "^1.0.1"
loader-utils@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.1.tgz#3b8d4386f42378d6434d32d7bc08e7a52d39575e"
- integrity sha512-g4miPa9uUrZz4iElkaVJgDFwKJGh8aQGM7pUL4ejXl6cu7kSb30seQOVGNMP6sW8j7DW77X68hJZ+GM7UGhXeQ==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
+ integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
@@ -5559,6 +5706,11 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
+ltgt@^2.1.2:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5"
+ integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=
+
magic-string@^0.25.7:
version "0.25.7"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
@@ -5718,9 +5870,9 @@ mime@1.6.0:
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
mime@^2.4.4:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
- integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
mimic-fn@^1.0.0:
version "1.2.0"
@@ -5802,6 +5954,18 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
+monaco-editor-webpack-plugin@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-6.0.0.tgz#628956ce1851afa2a5f6c88d0ecbb24e9a444898"
+ integrity sha512-vC886Mzpd2AkSM35XLkfQMjH+Ohz6RISVwhAejDUzZDheJAiz6G34lky1vyO8fZ702v7IrcKmsGwL1rRFnwvUA==
+ dependencies:
+ loader-utils "^2.0.0"
+
+monaco-editor@^0.30.0:
+ version "0.30.0"
+ resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.30.0.tgz#1c7f9ba1d18c21868ce3a5413ef56351f9df7933"
+ integrity sha512-/k++/ofRmwnwWTpOWYOMGVcqBrqrlt3MP0Mt/cRTQojW7A9fnekcvPQ2iIFA0YSZdPWPN9yYXrYq0xqiUuxT/A==
+
move-concurrently@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
@@ -5888,6 +6052,11 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
+napi-macros@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b"
+ integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==
+
natural-compare@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -5920,6 +6089,11 @@ node-forge@^0.10.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+node-gyp-build@~4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb"
+ integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==
+
node-ipc@^9.1.1:
version "9.2.1"
resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b"
@@ -7097,7 +7271,7 @@ read-pkg@^5.1.1:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.0.6, readable-stream@^3.6.0:
+readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -8532,9 +8706,9 @@ vue-hot-reload-api@^2.3.0:
integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
"vue-loader-v16@npm:vue-loader@^16.1.0":
- version "16.8.2"
- resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.2.tgz#78552d6558207a93f09e4fb68b068d44964eb740"
- integrity sha512-Nkq+z9mAsMEK+qkXgK+9Ia7D8w9uu9j4ut0IMT5coMfux3rCgIp1QBB1CYwY0M34A1nRMSONEaWXxAAw6xSl/Q==
+ version "16.8.3"
+ resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087"
+ integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==
dependencies:
chalk "^4.1.0"
hash-sum "^2.0.0"
@@ -8572,15 +8746,15 @@ vue-template-es2015-compiler@^1.9.0:
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue@^3.0.0:
- version "3.2.20"
- resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.20.tgz#940f8aa8bf3e3be78243ca582bad41fcd45ae3e6"
- integrity sha512-81JjEP4OGk9oO8+CU0h2nFPGgJBm9mNa3kdCX2k6FuRdrWrC+CNe+tOnuIeTg8EWwQuI+wwdra5Q7vSzp7p4Iw==
+ version "3.2.21"
+ resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.21.tgz#55f5665172d95cf97e806b9aad0a375180be23a1"
+ integrity sha512-jpy7ckXdyclfRzqLjL4mtq81AkzQleE54KjZsJg/9OorNVurAxdlU5XpD49GpjKdnftuffKUvx2C5jDOrgc/zg==
dependencies:
- "@vue/compiler-dom" "3.2.20"
- "@vue/compiler-sfc" "3.2.20"
- "@vue/runtime-dom" "3.2.20"
- "@vue/server-renderer" "3.2.20"
- "@vue/shared" "3.2.20"
+ "@vue/compiler-dom" "3.2.21"
+ "@vue/compiler-sfc" "3.2.21"
+ "@vue/runtime-dom" "3.2.21"
+ "@vue/server-renderer" "3.2.21"
+ "@vue/shared" "3.2.21"
watchpack-chokidar2@^2.0.1:
version "2.0.1"
@@ -8845,7 +9019,7 @@ ws@^6.0.0, ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
-xtend@^4.0.0, xtend@~4.0.1:
+xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -8861,9 +9035,43 @@ xterm-addon-fit@^0.5.0:
integrity sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ==
xterm@^4.14.1:
- version "4.14.1"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.14.1.tgz#6884cb8fb3b83353b1a98139ea23daedf8e35796"
- integrity sha512-jgzNg5BuGPwq5/M4dGnmbghZvHx2jaj+9crSEt15bV34Za49VziBmCu7zIy88zUKKiGTxeo7aVzirFSJArIMFw==
+ version "4.15.0"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.15.0.tgz#e52038507eba7e0d36d47f81e29fe548c82b9561"
+ integrity sha512-Ik1GoSq1yqKZQ2LF37RPS01kX9t4TP8gpamUYblD09yvWX5mEYuMK4CcqH6+plgiNEZduhTz/UrcaWs97gOlOw==
+
+y-leveldb@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.0.tgz#8b60c1af020252445875ebc70d52666017bcb038"
+ integrity sha512-sMuitVrsAUNh+0b66I42nAuW3lCmez171uP4k0ePcTAJ+c+Iw9w4Yq3wwiyrDMFXBEyQSjSF86Inc23wEvWnxw==
+ dependencies:
+ level "^6.0.1"
+ lib0 "^0.2.31"
+
+y-monaco@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/y-monaco/-/y-monaco-0.1.2.tgz#aa71e7acddcd1ab37e5e570aca1529a379f69ef6"
+ integrity sha512-8VkmPsSbj4JZlLW8/su1O4ULZEGeS22VAvAXawpHlh2BoyeNy5AIwSl5eam+soEuyWHpktQSmxYOBOvQuu6mpQ==
+ dependencies:
+ lib0 "^0.2.35"
+
+y-protocols@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e"
+ integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A==
+ dependencies:
+ lib0 "^0.2.42"
+
+y-websocket@^1.3.17:
+ version "1.3.17"
+ resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.3.17.tgz#d5465fe6d378df9f6bdd503f23d001e5b526db54"
+ integrity sha512-SswN7EosLDpnrWue45/yQjkTGSRkzxioFc/0WcyHNkudnknWToOBaIo2coWgnYZd9BP0XlNAc8pPhTGkDveQJQ==
+ dependencies:
+ lib0 "^0.2.42"
+ lodash.debounce "^4.0.8"
+ y-protocols "^1.0.5"
+ optionalDependencies:
+ ws "^6.2.1"
+ y-leveldb "^0.1.0"
y18n@^4.0.0:
version "4.0.3"
@@ -8932,6 +9140,13 @@ yargs@^16.0.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
+yjs@^13.5.18:
+ version "13.5.18"
+ resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.18.tgz#4151f381b170726b69be26296fd84b2efdc82e6e"
+ integrity sha512-6LcTL8gRe12fy89OvXG6Xs/uhsl7iwE4Wh106H1NItkcqcUaY2waTje1NVWmOZNXHXWVAzdf/fBQqB4Phq9sGA==
+ dependencies:
+ lib0 "^0.2.42"
+
yorkie@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9"