@lensmcp/vite-plugin 1.1.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +3 -1
- package/lib/plugin.d.ts +9 -3
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +29 -171
- package/lib/types.d.ts +4 -53
- package/lib/types.d.ts.map +1 -1
- package/package.json +7 -7
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { lensmcpVitePlugin, handleClientEnvelope } from './lib/plugin.js';
|
|
2
2
|
export type { LensmcpViteOptions, LensmcpViteRuntime, ClientEnvelope } from './lib/types.js';
|
|
3
|
-
export { envelopeToEvent } from '
|
|
3
|
+
export { envelopeToEvent } from '@lensmcp/bridge';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
|
package/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { lensmcpVitePlugin, handleClientEnvelope } from './lib/plugin.js';
|
|
2
|
-
|
|
2
|
+
// `envelopeToEvent` moved to @lensmcp/bridge when the bridge was decoupled
|
|
3
|
+
// from Vite; re-exported here for backwards compatibility.
|
|
4
|
+
export { envelopeToEvent } from '@lensmcp/bridge';
|
package/lib/plugin.d.ts
CHANGED
|
@@ -14,8 +14,9 @@ interface BoundDeps {
|
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Vite plugin that:
|
|
17
|
-
* 1. Stands up
|
|
18
|
-
*
|
|
17
|
+
* 1. Stands up the LensMCP browser-event bridge (`@lensmcp/bridge`) on an
|
|
18
|
+
* ephemeral WebSocket port so the injected @lensmcp/client-runtime can
|
|
19
|
+
* post browser events back into the LensMCP event bus.
|
|
19
20
|
* 2. Injects a `<script type="module" src="/@lensmcp/client-runtime">`
|
|
20
21
|
* into served HTML.
|
|
21
22
|
* 3. Resolves that virtual module to the bundled client runtime
|
|
@@ -23,12 +24,17 @@ interface BoundDeps {
|
|
|
23
24
|
* package import lands in Phase 2/3).
|
|
24
25
|
* 4. Emits HMR + module-graph events for the build reducer.
|
|
25
26
|
*
|
|
27
|
+
* Since the bridge was decoupled, this plugin is just ONE host adapter for
|
|
28
|
+
* it — webpack / Next.js / no-build hosts run the same bridge as a
|
|
29
|
+
* standalone sidecar (`lensmcp bridge`) on a fixed port instead.
|
|
30
|
+
*
|
|
26
31
|
* The plugin is *passive*: it never mutates app state or behaviour.
|
|
27
32
|
*/
|
|
28
33
|
export declare function lensmcpVitePlugin(options?: LensmcpViteOptions, deps?: BoundDeps): Plugin & LensmcpViteRuntime;
|
|
29
34
|
/**
|
|
30
35
|
* Parse one raw WebSocket message from the injected client runtime and
|
|
31
|
-
* publish the resulting event.
|
|
36
|
+
* publish the resulting event. Kept as a public export for backwards
|
|
37
|
+
* compatibility — it now delegates to `@lensmcp/bridge`. Exercised over a
|
|
32
38
|
* real WebSocket without booting Vite (see the react-bridge smoke).
|
|
33
39
|
*/
|
|
34
40
|
export declare function handleClientEnvelope(raw: string, deps: BoundDeps): void;
|
package/lib/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAElD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAKzE,UAAU,SAAS;IACjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAAuB,EAChC,IAAI,GAAE,SAAc,GACnB,MAAM,GAAG,kBAAkB,CAmL7B;AAqCD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAEvE"}
|
package/lib/plugin.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import { createServer as createNetServer, connect } from 'node:net';
|
|
2
|
-
import { createSocket } from 'node:dgram';
|
|
3
|
-
import { appendFileSync } from 'node:fs';
|
|
4
|
-
import { WebSocketServer } from 'ws';
|
|
5
1
|
import { fingerprint, ulid } from '@lensmcp/core';
|
|
6
|
-
import {
|
|
2
|
+
import { createBridgeServer, makePublisher, handleClientEnvelope as forwardClientEnvelope, } from '@lensmcp/bridge';
|
|
7
3
|
const CLIENT_VIRTUAL_ID = '/@lensmcp/client-runtime';
|
|
8
4
|
const RESOLVED_CLIENT_VIRTUAL_ID = '\0lensmcp-client-runtime';
|
|
9
5
|
/**
|
|
10
6
|
* Vite plugin that:
|
|
11
|
-
* 1. Stands up
|
|
12
|
-
*
|
|
7
|
+
* 1. Stands up the LensMCP browser-event bridge (`@lensmcp/bridge`) on an
|
|
8
|
+
* ephemeral WebSocket port so the injected @lensmcp/client-runtime can
|
|
9
|
+
* post browser events back into the LensMCP event bus.
|
|
13
10
|
* 2. Injects a `<script type="module" src="/@lensmcp/client-runtime">`
|
|
14
11
|
* into served HTML.
|
|
15
12
|
* 3. Resolves that virtual module to the bundled client runtime
|
|
@@ -17,6 +14,10 @@ const RESOLVED_CLIENT_VIRTUAL_ID = '\0lensmcp-client-runtime';
|
|
|
17
14
|
* package import lands in Phase 2/3).
|
|
18
15
|
* 4. Emits HMR + module-graph events for the build reducer.
|
|
19
16
|
*
|
|
17
|
+
* Since the bridge was decoupled, this plugin is just ONE host adapter for
|
|
18
|
+
* it — webpack / Next.js / no-build hosts run the same bridge as a
|
|
19
|
+
* standalone sidecar (`lensmcp bridge`) on a fixed port instead.
|
|
20
|
+
*
|
|
20
21
|
* The plugin is *passive*: it never mutates app state or behaviour.
|
|
21
22
|
*/
|
|
22
23
|
export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
@@ -24,7 +25,9 @@ export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
|
24
25
|
const wsHost = options.wsHost ?? '127.0.0.1';
|
|
25
26
|
const injectClient = options.injectClient ?? true;
|
|
26
27
|
let wssPort;
|
|
27
|
-
let
|
|
28
|
+
let bridge;
|
|
29
|
+
// Bus → env-sink → console publisher, shared by every hook below.
|
|
30
|
+
const publishEvent = makePublisher(deps);
|
|
28
31
|
const aliasValtio = options.aliasValtio ?? true;
|
|
29
32
|
const transformSource = options.transformSource ?? true;
|
|
30
33
|
return {
|
|
@@ -53,17 +56,19 @@ export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
|
53
56
|
async configureServer(server) {
|
|
54
57
|
if (!enabled)
|
|
55
58
|
return;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
// The bridge owns the WebSocket + envelope→event mapping; we just
|
|
60
|
+
// host it on an ephemeral port (or `options.wsPort` if pinned) and
|
|
61
|
+
// bake that port into the injected runtime at `load()` time.
|
|
62
|
+
bridge = await createBridgeServer({
|
|
63
|
+
host: wsHost,
|
|
64
|
+
port: options.wsPort ?? 0,
|
|
65
|
+
bus: deps.bus,
|
|
66
|
+
sessionId: deps.sessionId,
|
|
63
67
|
});
|
|
68
|
+
wssPort = bridge.port;
|
|
64
69
|
// Vite native error stream → our bus.
|
|
65
70
|
server.ws.on('vite:error', (data) => {
|
|
66
|
-
|
|
71
|
+
publishEvent(viteErrorToEvent(data, deps.sessionId));
|
|
67
72
|
});
|
|
68
73
|
},
|
|
69
74
|
resolveId(id) {
|
|
@@ -117,7 +122,7 @@ export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
|
117
122
|
const affected = ctx.modules
|
|
118
123
|
.map((m) => m.file ?? m.id ?? null)
|
|
119
124
|
.filter((f) => !!f);
|
|
120
|
-
|
|
125
|
+
publishEvent({
|
|
121
126
|
id: ulid(),
|
|
122
127
|
sessionId: deps.sessionId ?? 'pending',
|
|
123
128
|
timestamp: Date.now(),
|
|
@@ -162,7 +167,7 @@ export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
|
162
167
|
chunks.push({ name, sizeBytes, modules });
|
|
163
168
|
}
|
|
164
169
|
const report = { timestamp: Date.now(), totalBytes, chunks };
|
|
165
|
-
|
|
170
|
+
publishEvent({
|
|
166
171
|
id: ulid(),
|
|
167
172
|
sessionId: deps.sessionId ?? 'pending',
|
|
168
173
|
timestamp: Date.now(),
|
|
@@ -176,8 +181,9 @@ export function lensmcpVitePlugin(options = {}, deps = {}) {
|
|
|
176
181
|
});
|
|
177
182
|
},
|
|
178
183
|
async closeBundle() {
|
|
179
|
-
if (
|
|
180
|
-
await
|
|
184
|
+
if (bridge) {
|
|
185
|
+
await bridge.close();
|
|
186
|
+
bridge = undefined;
|
|
181
187
|
}
|
|
182
188
|
},
|
|
183
189
|
};
|
|
@@ -214,143 +220,12 @@ async function runLensmcpBabel(code, filename) {
|
|
|
214
220
|
}
|
|
215
221
|
/**
|
|
216
222
|
* Parse one raw WebSocket message from the injected client runtime and
|
|
217
|
-
* publish the resulting event.
|
|
223
|
+
* publish the resulting event. Kept as a public export for backwards
|
|
224
|
+
* compatibility — it now delegates to `@lensmcp/bridge`. Exercised over a
|
|
218
225
|
* real WebSocket without booting Vite (see the react-bridge smoke).
|
|
219
226
|
*/
|
|
220
227
|
export function handleClientEnvelope(raw, deps) {
|
|
221
|
-
|
|
222
|
-
try {
|
|
223
|
-
env = JSON.parse(raw);
|
|
224
|
-
}
|
|
225
|
-
catch {
|
|
226
|
-
return; // ignore malformed
|
|
227
|
-
}
|
|
228
|
-
if (!env || typeof env !== 'object' || !('kind' in env))
|
|
229
|
-
return;
|
|
230
|
-
publish(deps, envelopeToEvent(env, deps.sessionId));
|
|
231
|
-
}
|
|
232
|
-
function publish(deps, event) {
|
|
233
|
-
if (deps.bus) {
|
|
234
|
-
deps.bus.publish(event);
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
// Cross-process: the MCP server runs in a separate process during
|
|
238
|
-
// `agent-dev`, so when no in-process bus is bound we forward events
|
|
239
|
-
// over the same transport the NestJS sink uses (resolved from env).
|
|
240
|
-
// The server's `startEventIngest` republishes them onto its bus.
|
|
241
|
-
const sink = resolveEnvSink();
|
|
242
|
-
if (sink) {
|
|
243
|
-
sink(event);
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
if (event.severity === 'error' || event.severity === 'fatal') {
|
|
247
|
-
// Standalone fallback so the plugin is debuggable without a bus.
|
|
248
|
-
console.debug(`[lensmcp-vite] ${event.severity}: ${event.title}`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
let cachedEnvSink;
|
|
252
|
-
/**
|
|
253
|
-
* Resolve a cross-process event sink from env, mirroring
|
|
254
|
-
* `@lensmcp/nest-instrumentation`'s `defaultEventSink`:
|
|
255
|
-
* 1. `LENSMCP_EVENT_FILE` — append one JSON line per event.
|
|
256
|
-
* 2. `LENSMCP_UDS` — Unix domain socket, framed NDJSON, reconnecting.
|
|
257
|
-
* 3. `LENSMCP_IPC_SOCKET` (`host:port`) — one UDP datagram per event.
|
|
258
|
-
* Cached after first resolution; returns null when none is set.
|
|
259
|
-
*/
|
|
260
|
-
function resolveEnvSink() {
|
|
261
|
-
if (cachedEnvSink !== undefined)
|
|
262
|
-
return cachedEnvSink;
|
|
263
|
-
const filePath = process.env['LENSMCP_EVENT_FILE'];
|
|
264
|
-
if (filePath) {
|
|
265
|
-
cachedEnvSink = (event) => {
|
|
266
|
-
try {
|
|
267
|
-
appendFileSync(filePath, JSON.stringify(event) + '\n');
|
|
268
|
-
}
|
|
269
|
-
catch {
|
|
270
|
-
/* swallow */
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
return cachedEnvSink;
|
|
274
|
-
}
|
|
275
|
-
const udsPath = process.env['LENSMCP_UDS'];
|
|
276
|
-
if (udsPath) {
|
|
277
|
-
cachedEnvSink = udsEnvSink(udsPath);
|
|
278
|
-
return cachedEnvSink;
|
|
279
|
-
}
|
|
280
|
-
const socketPath = process.env['LENSMCP_IPC_SOCKET'];
|
|
281
|
-
if (socketPath) {
|
|
282
|
-
const [host, portStr] = socketPath.split(':');
|
|
283
|
-
const port = Number(portStr);
|
|
284
|
-
if (host && Number.isFinite(port)) {
|
|
285
|
-
const sock = createSocket('udp4');
|
|
286
|
-
sock.unref();
|
|
287
|
-
cachedEnvSink = (event) => {
|
|
288
|
-
try {
|
|
289
|
-
const buf = Buffer.from(JSON.stringify(event));
|
|
290
|
-
sock.send(buf, port, host, () => undefined);
|
|
291
|
-
}
|
|
292
|
-
catch {
|
|
293
|
-
/* swallow */
|
|
294
|
-
}
|
|
295
|
-
};
|
|
296
|
-
return cachedEnvSink;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
cachedEnvSink = null;
|
|
300
|
-
return null;
|
|
301
|
-
}
|
|
302
|
-
/** Reconnecting NDJSON client over a Unix domain socket (see session/uds.ts). */
|
|
303
|
-
function udsEnvSink(path) {
|
|
304
|
-
const queue = [];
|
|
305
|
-
let sock = null;
|
|
306
|
-
let connecting = false;
|
|
307
|
-
const flush = () => {
|
|
308
|
-
if (!sock || !sock.writable)
|
|
309
|
-
return;
|
|
310
|
-
while (queue.length > 0)
|
|
311
|
-
sock.write(queue.shift());
|
|
312
|
-
};
|
|
313
|
-
const open = () => {
|
|
314
|
-
if (connecting || sock)
|
|
315
|
-
return;
|
|
316
|
-
connecting = true;
|
|
317
|
-
const s = connect(path);
|
|
318
|
-
s.on('connect', () => {
|
|
319
|
-
connecting = false;
|
|
320
|
-
sock = s;
|
|
321
|
-
flush();
|
|
322
|
-
});
|
|
323
|
-
s.on('drain', flush);
|
|
324
|
-
s.on('error', () => {
|
|
325
|
-
connecting = false;
|
|
326
|
-
sock = null;
|
|
327
|
-
});
|
|
328
|
-
s.on('close', () => {
|
|
329
|
-
sock = null;
|
|
330
|
-
});
|
|
331
|
-
s.unref();
|
|
332
|
-
};
|
|
333
|
-
open();
|
|
334
|
-
return (event) => {
|
|
335
|
-
queue.push(JSON.stringify(event) + '\n');
|
|
336
|
-
while (queue.length > 10000)
|
|
337
|
-
queue.shift();
|
|
338
|
-
if (sock && sock.writable) {
|
|
339
|
-
flush();
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
// Dead socket (server restart) — drop it so open() reconnects.
|
|
343
|
-
if (sock) {
|
|
344
|
-
try {
|
|
345
|
-
sock.destroy();
|
|
346
|
-
}
|
|
347
|
-
catch {
|
|
348
|
-
/* ignore */
|
|
349
|
-
}
|
|
350
|
-
sock = null;
|
|
351
|
-
}
|
|
352
|
-
open();
|
|
353
|
-
};
|
|
228
|
+
forwardClientEnvelope(raw, makePublisher(deps), deps.sessionId);
|
|
354
229
|
}
|
|
355
230
|
function viteErrorToEvent(data, sessionId) {
|
|
356
231
|
const message = data.err?.message ?? 'Vite error';
|
|
@@ -368,23 +243,6 @@ function viteErrorToEvent(data, sessionId) {
|
|
|
368
243
|
message: stack,
|
|
369
244
|
};
|
|
370
245
|
}
|
|
371
|
-
function findFreePort() {
|
|
372
|
-
return new Promise((resolve, reject) => {
|
|
373
|
-
const s = createNetServer();
|
|
374
|
-
s.unref();
|
|
375
|
-
s.on('error', reject);
|
|
376
|
-
s.listen(0, () => {
|
|
377
|
-
const addr = s.address();
|
|
378
|
-
if (!addr) {
|
|
379
|
-
s.close();
|
|
380
|
-
reject(new Error('Could not allocate free port'));
|
|
381
|
-
return;
|
|
382
|
-
}
|
|
383
|
-
const port = addr.port;
|
|
384
|
-
s.close(() => resolve(port));
|
|
385
|
-
});
|
|
386
|
-
});
|
|
387
|
-
}
|
|
388
246
|
/**
|
|
389
247
|
* Minimal browser-side runtime that mirrors what `@lensmcp/client-runtime`
|
|
390
248
|
* will eventually own. Inlined here so Phase 1 has no cross-build
|
package/lib/types.d.ts
CHANGED
|
@@ -1,59 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The wire format used between the injected `@lensmcp/client-runtime`
|
|
3
|
-
* and the
|
|
4
|
-
*
|
|
3
|
+
* and the bridge's WebSocket. Now owned by `@lensmcp/bridge` (it became
|
|
4
|
+
* build-agnostic when the bridge was decoupled from Vite); re-exported
|
|
5
|
+
* here so existing `@lensmcp/vite-plugin` importers keep working.
|
|
5
6
|
*/
|
|
6
|
-
export type ClientEnvelope
|
|
7
|
-
kind: 'error';
|
|
8
|
-
at: number;
|
|
9
|
-
message: string;
|
|
10
|
-
stack?: string;
|
|
11
|
-
source?: string;
|
|
12
|
-
lineno?: number;
|
|
13
|
-
colno?: number;
|
|
14
|
-
} | {
|
|
15
|
-
kind: 'unhandledrejection';
|
|
16
|
-
at: number;
|
|
17
|
-
reason: string;
|
|
18
|
-
} | {
|
|
19
|
-
kind: 'console';
|
|
20
|
-
at: number;
|
|
21
|
-
level: 'log' | 'info' | 'warn' | 'error' | 'debug';
|
|
22
|
-
args: unknown[];
|
|
23
|
-
} | {
|
|
24
|
-
kind: 'fetch';
|
|
25
|
-
at: number;
|
|
26
|
-
method: string;
|
|
27
|
-
url: string;
|
|
28
|
-
status?: number;
|
|
29
|
-
durationMs?: number;
|
|
30
|
-
ok?: boolean;
|
|
31
|
-
error?: string;
|
|
32
|
-
} | {
|
|
33
|
-
kind: 'route';
|
|
34
|
-
at: number;
|
|
35
|
-
url: string;
|
|
36
|
-
from?: string;
|
|
37
|
-
} | {
|
|
38
|
-
kind: 'ready';
|
|
39
|
-
at: number;
|
|
40
|
-
userAgent: string;
|
|
41
|
-
url: string;
|
|
42
|
-
} | {
|
|
43
|
-
kind: 'publish';
|
|
44
|
-
at: number;
|
|
45
|
-
source: string;
|
|
46
|
-
category: string;
|
|
47
|
-
severity?: string;
|
|
48
|
-
title: string;
|
|
49
|
-
message?: string;
|
|
50
|
-
fingerprint?: string;
|
|
51
|
-
context?: Record<string, unknown>;
|
|
52
|
-
raw?: unknown;
|
|
53
|
-
}) & {
|
|
54
|
-
/** Per-tab identity stamped by the client runtime (sessionStorage is per-tab) — keys `browser://tabs`. */
|
|
55
|
-
tabId?: string;
|
|
56
|
-
};
|
|
7
|
+
export type { ClientEnvelope } from '@lensmcp/bridge';
|
|
57
8
|
export interface LensmcpViteOptions {
|
|
58
9
|
/** Whether the plugin should attach anything. Production: false. */
|
|
59
10
|
enabled?: boolean;
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;CAC9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lensmcp/vite-plugin",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@babel/core": "^7.0.0",
|
|
18
|
-
"@lensmcp/
|
|
19
|
-
"@lensmcp/
|
|
20
|
-
"@lensmcp/
|
|
21
|
-
"@lensmcp/
|
|
22
|
-
"
|
|
23
|
-
"
|
|
18
|
+
"@lensmcp/bridge": "1.4.0",
|
|
19
|
+
"@lensmcp/core": "1.4.0",
|
|
20
|
+
"@lensmcp/protocol-types": "1.4.0",
|
|
21
|
+
"@lensmcp/react-instrumentation": "1.4.0",
|
|
22
|
+
"@lensmcp/valtio-instrumentation": "1.4.0",
|
|
23
|
+
"tslib": "^2.3.0"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
|