@lensmcp/vite-plugin 1.1.0 → 1.2.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 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 './lib/event-mappers.js';
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;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,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
- export { envelopeToEvent } from './lib/event-mappers.js';
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 a tiny WebSocket so the injected @lensmcp/client-runtime
18
- * can post browser events back into the LensMCP event bus.
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. Exported so it can be exercised over a
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;
@@ -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;AAMlD,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAkB,MAAM,YAAY,CAAC;AAMzF,UAAU,SAAS;IACjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE,kBAAuB,EAChC,IAAI,GAAE,SAAc,GACnB,MAAM,GAAG,kBAAkB,CA+K7B;AAqCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CASvE"}
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 { envelopeToEvent } from './event-mappers.js';
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 a tiny WebSocket so the injected @lensmcp/client-runtime
12
- * can post browser events back into the LensMCP event bus.
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 wss;
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
- const port = options.wsPort ?? (await findFreePort());
57
- wssPort = port;
58
- wss = new WebSocketServer({ host: wsHost, port });
59
- wss.on('connection', (socket) => {
60
- socket.on('message', (raw) => {
61
- handleClientEnvelope(raw.toString(), deps);
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
- publish(deps, viteErrorToEvent(data, deps.sessionId));
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
- publish(deps, {
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
- publish(deps, {
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 (wss) {
180
- await new Promise((res) => wss?.close(() => res()));
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. Exported so it can be exercised over a
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
- let env;
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 Vite plugin's WebSocket. Kept intentionally narrow the
4
- * client runtime *only* emits these envelopes, never anything else.
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;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CACzB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAChH;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9H;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAK7D;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CACJ,GAAG;IACF,0GAA0G;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,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"}
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.1.0",
3
+ "version": "1.2.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/core": "1.1.0",
19
- "@lensmcp/protocol-types": "1.1.0",
20
- "@lensmcp/react-instrumentation": "1.1.0",
21
- "@lensmcp/valtio-instrumentation": "1.1.0",
22
- "tslib": "^2.3.0",
23
- "ws": "^8.21.0"
18
+ "@lensmcp/bridge": "1.1.0",
19
+ "@lensmcp/core": "1.2.0",
20
+ "@lensmcp/protocol-types": "1.2.0",
21
+ "@lensmcp/react-instrumentation": "1.2.0",
22
+ "@lensmcp/valtio-instrumentation": "1.2.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"