Debug Ydoc/LS interaction without making code changes (#10687)

* Debug Ydoc without making code changes

Previously the log statements were guarded by a constant. Now log
statements are printed if YDOC_DEBUG=true env var is set during launch.

* debug LS RPCs

* bump vite to 5.3.5

* s/YDOC_DEBUG/YDOC_LS_DEBUG

* Address PR comment

* nit

* nit

* fix tests

* yet another linting problem
This commit is contained in:
Hubert Plociniczak 2024-08-06 19:53:36 +02:00 committed by GitHub
parent e47bdd3e17
commit 0c55ee50cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 91 additions and 77 deletions

View File

@ -8,3 +8,5 @@ ENSO_CLOUD_AMPLIFY_USER_POOL_ID=mars_AAAAAAAAA
ENSO_CLOUD_AMPLIFY_USER_POOL_WEB_CLIENT_ID=zzzzzzzzzzzzzzzzzzzzzzzzzz
ENSO_CLOUD_AMPLIFY_DOMAIN=somewhere.auth.mars.amazoncognito.com
ENSO_CLOUD_AMPLIFY_REGION=mars
ENSO_POLYGLOT_YDOC_SERVER=false
ENSO_YDOC_LS_DEBUG=false

View File

@ -89,7 +89,7 @@
"tailwindcss-animate": "1.0.7",
"tailwindcss-react-aria-components": "^1.1.1",
"typescript": "^5.5.3",
"vite": "^5.3.3",
"vite": "^5.3.5",
"vitest": "^1.3.1"
},
"overrides": {

View File

@ -148,7 +148,7 @@
"tsx": "^4.7.1",
"typescript": "^5.5.3",
"unbzip2-stream": "^1.4.3",
"vite": "^5.3.3",
"vite": "^5.3.5",
"vite-plugin-vue-devtools": "7.3.7",
"vitest": "^1.3.1",
"vue-react-wrapper": "^0.3.1",

View File

@ -32,7 +32,6 @@ import {
} from './util/net'
import type { Uuid } from './yjsModel'
const DEBUG_LOG_RPC = false
const RPC_TIMEOUT_MS = 15000
export enum ErrorCode {
@ -140,10 +139,12 @@ export class LanguageServer extends ObservableV2<Notifications & TransportEvents
private initializationScheduled = false
private shouldReconnect = true
private retainCount = 1
debug = false
constructor(
private clientID: Uuid,
private transport: ReconnectingTransportWithWebsocketEvents,
debug = false,
) {
super()
this.initialized = this.scheduleInitializationAfterConnect()
@ -176,6 +177,7 @@ export class LanguageServer extends ObservableV2<Notifications & TransportEvents
this.transport.off('close', onTransportClosed)
this.transport.close()
})
this.debug = debug
}
private scheduleInitializationAfterConnect() {
@ -232,7 +234,7 @@ export class LanguageServer extends ObservableV2<Notifications & TransportEvents
const uuid = uuidv4()
const now = performance.now()
try {
if (DEBUG_LOG_RPC) {
if (this.debug) {
console.log(`LS [${uuid}] ${method}:`)
console.dir(params)
}
@ -249,7 +251,7 @@ export class LanguageServer extends ObservableV2<Notifications & TransportEvents
return Err(new LsRpcError(error, method, params))
} else throw error
} finally {
if (DEBUG_LOG_RPC) {
if (this.debug) {
console.log(`LS [${uuid}] ${method} took ${performance.now() - now}ms`)
}
}

View File

@ -78,7 +78,7 @@ function resolveLsUrl(config: GuiConfig): LsUrls {
function createLsRpcConnection(clientId: Uuid, url: string, abort: AbortScope): LanguageServer {
const transport = createRpcTransport(url)
const connection = new LanguageServer(clientId, transport)
const connection = new LanguageServer(clientId, transport, false)
abort.onAbort(() => {
connection.stopReconnecting()
connection.release()

View File

@ -15,7 +15,8 @@ import { createGatewayServer } from './ydoc-server'
const projectManagerUrl = 'ws://127.0.0.1:30535'
const IS_CLOUD_BUILD = process.env.CLOUD_BUILD === 'true'
const POLYGLOT_YDOC_SERVER = process.env.POLYGLOT_YDOC_SERVER
const POLYGLOT_YDOC_SERVER = process.env.ENSO_POLYGLOT_YDOC_SERVER
const YDOC_LS_DEBUG = process.env.ENSO_YDOC_LS_DEBUG
await readEnvironmentFromFile()
@ -91,7 +92,7 @@ function gatewayServer(): Plugin {
name: 'gateway-server',
configureServer({ httpServer }) {
if (httpServer == null || POLYGLOT_YDOC_SERVER != undefined) return
createGatewayServer(httpServer, undefined)
createGatewayServer(httpServer, undefined, YDOC_LS_DEBUG === 'true')
},
}
}

View File

@ -20,12 +20,13 @@ import { setupGatewayClient } from './ydoc'
export async function createGatewayServer(
httpServer: Server | Http2SecureServer,
rustFFIPath: string | undefined,
debug: boolean,
) {
await initializeFFI(rustFFIPath)
const wss = new WebSocketServer({ noServer: true })
wss.on('connection', (ws: WebSocket, _request: IncomingMessage, data: ConnectionData) => {
ws.on('error', onWebSocketError)
setupGatewayClient(ws, data.lsUrl, data.doc)
setupGatewayClient(ws, data.lsUrl, data.doc, debug)
})
httpServer.on('upgrade', (request, socket, head) => {

View File

@ -14,10 +14,12 @@ declare global {
const YDOC_HOST: string | undefined
const YDOC_PORT: number | undefined
const YDOC_LS_DEBUG: boolean | undefined
}
const host = YDOC_HOST ?? 'localhost'
const port = YDOC_PORT ?? 1234
const debug = YDOC_LS_DEBUG ?? false
const wss = new WebSocketServer({ host, port })
@ -26,7 +28,7 @@ wss.onconnect = (socket, url) => {
const ls = url.searchParams.get('ls')
if (doc != null && ls != null) {
console.log('setupGatewayClient', ls, doc)
setupGatewayClient(socket, ls, doc)
setupGatewayClient(socket, ls, doc, debug)
} else {
console.log('Failed to authenticate user', ls, doc)
}

View File

@ -40,8 +40,6 @@ import { WSSharedDoc } from './ydoc'
const SOURCE_DIR = 'src'
const EXTENSION = '.enso'
const DEBUG_LOG_SYNC = false
export class LanguageServerSession {
clientId: Uuid
indexDoc: WSSharedDoc
@ -54,8 +52,9 @@ export class LanguageServerSession {
projectRootId: Uuid | null
authoritativeModules: Map<string, ModulePersistence>
clientScope: AbortScope
debug: boolean
constructor(url: string) {
constructor(url: string, debug: boolean) {
this.clientScope = new AbortScope()
this.clientId = random.uuidv4() as Uuid
this.docs = new Map()
@ -76,17 +75,18 @@ export class LanguageServerSession {
if (!persistence) continue
}
})
this.ls = new LanguageServer(this.clientId, new ReconnectingWebSocketTransport(this.url))
this.ls = new LanguageServer(this.clientId, new ReconnectingWebSocketTransport(this.url), debug)
this.clientScope.onAbort(() => this.ls.release())
this.setupClient()
this.debug = debug
}
static sessions = new Map<string, LanguageServerSession>()
static get(url: string): LanguageServerSession {
static get(url: string, debug: boolean): LanguageServerSession {
const session = map.setIfUndefined(
LanguageServerSession.sessions,
url,
() => new LanguageServerSession(url),
() => new LanguageServerSession(url, debug),
)
session.retain()
return session
@ -99,7 +99,7 @@ export class LanguageServerSession {
private setupClient() {
this.ls.on('file/event', async (event) => {
if (DEBUG_LOG_SYNC) {
if (this.debug) {
console.log('file/event', event)
}
const result = await this.handleFileEvent(event)
@ -328,7 +328,7 @@ class ModulePersistence extends ObservableV2<{ removed: () => void }> {
private setState(state: LsSyncState) {
if (this.state !== LsSyncState.Disposed) {
if (DEBUG_LOG_SYNC) {
if (this.ls.debug) {
console.debug('State change:', LsSyncState[this.state], '->', LsSyncState[state])
}
// This is SAFE. `this.state` is only `readonly` to ensure that this is the only place
@ -505,7 +505,7 @@ class ModulePersistence extends ObservableV2<{ removed: () => void }> {
const newVersion = computeTextChecksum(newContent)
if (DEBUG_LOG_SYNC) {
if (this.ls.debug) {
console.debug(' === changes === ')
console.debug('number of edits:', edits.length)
if (edits.length > 0) {

View File

@ -89,9 +89,10 @@ export class WSSharedDoc {
* will be assigned its own `DistributedProject` instance with a unique namespace of Yjs documents.
* @param docName The name of the document to synchronize. When the document name is `index`, the
* document is considered to be the root document of the `DistributedProject` data model.
* @param debug Print debug logs if true.
*/
export function setupGatewayClient(ws: WebSocket, lsUrl: string, docName: string) {
const lsSession = LanguageServerSession.get(lsUrl)
export function setupGatewayClient(ws: WebSocket, lsUrl: string, docName: string, debug: boolean) {
const lsSession = LanguageServerSession.get(lsUrl, debug)
const wsDoc = lsSession.getYDoc(docName)
if (wsDoc == null) {
console.error(`Document '${docName}' not found in language server session '${lsUrl}'.`)

View File

@ -52,7 +52,7 @@
"sharp": "^0.31.2",
"to-ico": "^1.1.5",
"tsx": "^4.7.1",
"vite": "^5.3.3"
"vite": "^5.3.5"
},
"//": [
"vite is required for the watch script",

View File

@ -150,7 +150,11 @@ export class Server {
: rustFFIWasmName == null ? null
: path.join(assets, rustFFIWasmName)
if (server && rustFFIWasmPath != null) {
await ydocServer.createGatewayServer(server, rustFFIWasmPath)
await ydocServer.createGatewayServer(
server,
rustFFIWasmPath,
process.env.ENSO_YDOC_LS_DEBUG === 'true',
)
} else {
logger.warn('YDocs server is not run, new GUI may not work properly!')
}

View File

@ -135,6 +135,7 @@ public final class Ydoc implements AutoCloseable {
var bindings = ctx.getBindings("js");
bindings.putMember("YDOC_HOST", hostname);
bindings.putMember("YDOC_PORT", port);
bindings.putMember("YDOC_LS_DEBUG", "false");
ctx.eval(ydocJs);

View File

@ -148,7 +148,7 @@ importers:
version: 0.0.8(vitest@1.6.0(@types/node@20.11.21)(jsdom@24.1.0)(lightningcss@1.25.1))
'@modyfi/vite-plugin-yaml':
specifier: ^1.0.4
version: 1.1.0(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
version: 1.1.0(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@playwright/test':
specifier: ^1.40.0
version: 1.45.0
@ -181,7 +181,7 @@ importers:
version: 7.15.0(eslint@8.57.0)(typescript@5.5.3)
'@vitejs/plugin-react':
specifier: ^4.2.1
version: 4.3.1(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
version: 4.3.1(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
chalk:
specifier: ^5.3.0
version: 5.3.0
@ -225,8 +225,8 @@ importers:
specifier: ^5.5.3
version: 5.5.3
vite:
specifier: ^5.3.3
version: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
specifier: ^5.3.5
version: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vitest:
specifier: ^1.3.1
version: 1.6.0(@types/node@20.11.21)(jsdom@24.1.0)(lightningcss@1.25.1)
@ -419,7 +419,7 @@ importers:
version: 8.57.0
'@histoire/plugin-vue':
specifier: ^0.17.12
version: 0.17.17(histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)))(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
version: 0.17.17(histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)))(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
'@open-rpc/server-js':
specifier: ^1.9.4
version: 1.9.5
@ -470,10 +470,10 @@ importers:
version: 8.5.10
'@vitejs/plugin-react':
specifier: ^4.0.4
version: 4.3.1(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
version: 4.3.1(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@vitejs/plugin-vue':
specifier: ^5.0.4
version: 5.0.5(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
version: 5.0.5(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
'@vitest/coverage-v8':
specifier: ^1.3.1
version: 1.6.0(vitest@1.6.0(@types/node@20.11.21)(jsdom@24.1.0)(lightningcss@1.25.1))
@ -518,7 +518,7 @@ importers:
version: 4.11.0
histoire:
specifier: ^0.17.2
version: 0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
version: 0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
jsdom:
specifier: ^24.1.0
version: 24.1.0
@ -559,11 +559,11 @@ importers:
specifier: ^1.4.3
version: 1.4.3
vite:
specifier: ^5.3.3
version: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
specifier: ^5.3.5
version: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vite-plugin-vue-devtools:
specifier: 7.3.7
version: 7.3.7(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
version: 7.3.7(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
vitest:
specifier: ^1.3.1
version: 1.6.0(@types/node@20.11.21)(jsdom@24.1.0)(lightningcss@1.25.1)
@ -680,8 +680,8 @@ importers:
specifier: ^4.7.1
version: 4.16.0
vite:
specifier: ^5.3.3
version: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
specifier: ^5.3.5
version: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
app/ide-desktop/common:
dependencies:
@ -6972,8 +6972,8 @@ packages:
peerDependencies:
vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0
vite@5.3.3:
resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==}
vite@5.3.5:
resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@ -8370,10 +8370,10 @@ snapshots:
dependencies:
tslib: 2.6.3
'@histoire/app@0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))':
'@histoire/app@0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))':
dependencies:
'@histoire/controls': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/controls': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/vendors': 0.17.17
'@types/flexsearch': 0.7.6
flexsearch: 0.7.21
@ -8381,7 +8381,7 @@ snapshots:
transitivePeerDependencies:
- vite
'@histoire/controls@0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))':
'@histoire/controls@0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))':
dependencies:
'@codemirror/commands': 6.6.0
'@codemirror/lang-json': 6.0.1
@ -8390,26 +8390,26 @@ snapshots:
'@codemirror/state': 6.4.1
'@codemirror/theme-one-dark': 6.1.2
'@codemirror/view': 6.28.3
'@histoire/shared': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/vendors': 0.17.17
transitivePeerDependencies:
- vite
'@histoire/plugin-vue@0.17.17(histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)))(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
'@histoire/plugin-vue@0.17.17(histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)))(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
'@histoire/controls': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/controls': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/vendors': 0.17.17
change-case: 4.1.2
globby: 13.2.2
histoire: 0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
histoire: 0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
launch-editor: 2.8.0
pathe: 1.1.2
vue: 3.4.31(typescript@5.5.3)
transitivePeerDependencies:
- vite
'@histoire/shared@0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))':
'@histoire/shared@0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))':
dependencies:
'@histoire/vendors': 0.17.17
'@types/fs-extra': 9.0.13
@ -8417,7 +8417,7 @@ snapshots:
chokidar: 3.6.0
pathe: 1.1.2
picocolors: 1.0.1
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
'@histoire/vendors@0.17.17': {}
@ -8623,12 +8623,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@modyfi/vite-plugin-yaml@1.1.0(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))':
'@modyfi/vite-plugin-yaml@1.1.0(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))':
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@4.18.1)
js-yaml: 4.1.0
tosource: 2.0.0-alpha.3
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- rollup
@ -10216,20 +10216,20 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-react@4.3.1(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))':
'@vitejs/plugin-react@4.3.1(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))':
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- supports-color
'@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
'@vitejs/plugin-vue@5.0.5(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vue: 3.4.31(typescript@5.5.3)
'@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.11.21)(jsdom@24.1.0)(lightningcss@1.25.1))':
@ -10355,14 +10355,14 @@ snapshots:
'@vue/devtools-api@6.6.3': {}
'@vue/devtools-core@7.3.7(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
'@vue/devtools-core@7.3.7(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))':
dependencies:
'@vue/devtools-kit': 7.3.7
'@vue/devtools-shared': 7.3.7
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
vite-hot-client: 0.2.3(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
vite-hot-client: 0.2.3(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
vue: 3.4.31(typescript@5.5.3)
transitivePeerDependencies:
- vite
@ -12418,12 +12418,12 @@ snapshots:
capital-case: 1.0.4
tslib: 2.6.3
histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)):
histoire@0.17.17(@types/node@20.11.21)(lightningcss@1.25.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)):
dependencies:
'@akryum/tinypool': 0.3.1
'@histoire/app': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/controls': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/app': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/controls': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/shared': 0.17.17(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
'@histoire/vendors': 0.17.17
'@types/flexsearch': 0.7.6
'@types/markdown-it': 12.2.3
@ -12450,7 +12450,7 @@ snapshots:
sade: 1.8.1
shiki-es: 0.2.0
sirv: 2.0.4
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vite-node: 0.34.7(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- '@types/node'
@ -14896,9 +14896,9 @@ snapshots:
extsprintf: 1.4.1
optional: true
vite-hot-client@0.2.3(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)):
vite-hot-client@0.2.3(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)):
dependencies:
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vite-node@0.34.7(@types/node@20.11.21)(lightningcss@1.25.1):
dependencies:
@ -14907,7 +14907,7 @@ snapshots:
mlly: 1.7.1
pathe: 1.1.2
picocolors: 1.0.1
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- '@types/node'
- less
@ -14924,7 +14924,7 @@ snapshots:
debug: 4.3.5
pathe: 1.1.2
picocolors: 1.0.1
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- '@types/node'
- less
@ -14935,7 +14935,7 @@ snapshots:
- supports-color
- terser
vite-plugin-inspect@0.8.4(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)):
vite-plugin-inspect@0.8.4(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0(rollup@4.18.1)
@ -14946,28 +14946,28 @@ snapshots:
perfect-debounce: 1.0.0
picocolors: 1.0.1
sirv: 2.0.4
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- rollup
- supports-color
vite-plugin-vue-devtools@7.3.7(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3)):
vite-plugin-vue-devtools@7.3.7(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3)):
dependencies:
'@vue/devtools-core': 7.3.7(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
'@vue/devtools-core': 7.3.7(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))(vue@3.4.31(typescript@5.5.3))
'@vue/devtools-kit': 7.3.7
'@vue/devtools-shared': 7.3.7
execa: 8.0.1
sirv: 2.0.4
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite-plugin-inspect: 0.8.4(rollup@4.18.1)(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
vite-plugin-vue-inspector: 5.1.3(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1))
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vite-plugin-inspect: 0.8.4(rollup@4.18.1)(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
vite-plugin-vue-inspector: 5.1.3(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1))
transitivePeerDependencies:
- '@nuxt/kit'
- rollup
- supports-color
- vue
vite-plugin-vue-inspector@5.1.3(vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)):
vite-plugin-vue-inspector@5.1.3(vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)):
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.7)
@ -14978,11 +14978,11 @@ snapshots:
'@vue/compiler-dom': 3.4.31
kolorist: 1.8.0
magic-string: 0.30.10
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
transitivePeerDependencies:
- supports-color
vite@5.3.3(@types/node@20.11.21)(lightningcss@1.25.1):
vite@5.3.5(@types/node@20.11.21)(lightningcss@1.25.1):
dependencies:
esbuild: 0.21.5
postcss: 8.4.39
@ -15011,7 +15011,7 @@ snapshots:
strip-literal: 2.1.0
tinybench: 2.8.0
tinypool: 0.8.4
vite: 5.3.3(@types/node@20.11.21)(lightningcss@1.25.1)
vite: 5.3.5(@types/node@20.11.21)(lightningcss@1.25.1)
vite-node: 1.6.0(@types/node@20.11.21)(lightningcss@1.25.1)
why-is-node-running: 2.2.2
optionalDependencies: