@mcp-fe/mcp-worker 0.0.11 → 0.0.13

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.
Files changed (38) hide show
  1. package/README.md +57 -6
  2. package/index.js +353 -155
  3. package/mcp-service-worker.js +28101 -29
  4. package/mcp-shared-worker.js +28146 -45
  5. package/package.json +1 -1
  6. package/src/index.d.ts +5 -0
  7. package/src/index.d.ts.map +1 -0
  8. package/src/lib/database.d.ts.map +1 -0
  9. package/{lib → src/lib}/mcp-controller.d.ts +11 -0
  10. package/src/lib/mcp-controller.d.ts.map +1 -0
  11. package/{lib → src/lib}/mcp-server.d.ts +4 -0
  12. package/src/lib/mcp-server.d.ts.map +1 -0
  13. package/src/lib/websocket-transport.d.ts.map +1 -0
  14. package/src/lib/worker-client.d.ts +69 -0
  15. package/src/lib/worker-client.d.ts.map +1 -0
  16. package/src/mcp-service-worker.d.ts.map +1 -0
  17. package/src/mcp-shared-worker.d.ts.map +1 -0
  18. package/database.js +0 -49
  19. package/database.js.map +0 -1
  20. package/index.d.ts +0 -3
  21. package/index.d.ts.map +0 -1
  22. package/index.js.map +0 -1
  23. package/lib/database.d.ts.map +0 -1
  24. package/lib/mcp-controller.d.ts.map +0 -1
  25. package/lib/mcp-server.d.ts.map +0 -1
  26. package/lib/websocket-transport.d.ts.map +0 -1
  27. package/lib/worker-client.d.ts +0 -20
  28. package/lib/worker-client.d.ts.map +0 -1
  29. package/mcp-controller.js +0 -10565
  30. package/mcp-controller.js.map +0 -1
  31. package/mcp-service-worker.d.ts.map +0 -1
  32. package/mcp-service-worker.js.map +0 -1
  33. package/mcp-shared-worker.d.ts.map +0 -1
  34. package/mcp-shared-worker.js.map +0 -1
  35. /package/{lib → src/lib}/database.d.ts +0 -0
  36. /package/{lib → src/lib}/websocket-transport.d.ts +0 -0
  37. /package/{mcp-service-worker.d.ts → src/mcp-service-worker.d.ts} +0 -0
  38. /package/{mcp-shared-worker.d.ts → src/mcp-shared-worker.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-fe/mcp-worker",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./index.js",
package/src/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import { WorkerClient } from './lib/worker-client';
2
+ export { type WorkerClientInitOptions } from './lib/worker-client';
3
+ export { queryEvents, type UserEvent } from './lib/database';
4
+ export declare const workerClient: WorkerClient;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAO,qBAAqB,CAAC;AAElD,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG7D,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/lib/database.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,wBAAsB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBnD;AAGD,wBAAsB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5E;AAGD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqC9E"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * MCP Controller
3
+ *
4
+ * Encapsulates the shared WebSocket / MCP server / storage logic used by
5
+ * both SharedWorker and ServiceWorker implementations.
6
+ */
1
7
  import { queryEvents, UserEvent } from './database';
2
8
  export type BroadcastFn = (message: unknown) => void;
3
9
  export declare class MCPController {
@@ -18,5 +24,10 @@ export declare class MCPController {
18
24
  handleGetEvents(): Promise<ReturnType<typeof queryEvents>>;
19
25
  getConnectionStatus(): boolean;
20
26
  dispose(): void;
27
+ /**
28
+ * Factory helper to create an MCPController instance. Use this instead of
29
+ * replicating controller creation logic in callers.
30
+ */
31
+ static create(backendUrl: string, broadcastFn: BroadcastFn, requireAuth?: boolean): MCPController;
21
32
  }
22
33
  //# sourceMappingURL=mcp-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-controller.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/lib/mcp-controller.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAc,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOhE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAErD,qBAAa,aAAa;IAQZ,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,WAAW;IAP3D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,WAAW,CAAU;gBAET,UAAU,EAAE,MAAM,EAAU,WAAW,EAAE,WAAW,EAAE,WAAW,UAAO;IAI5F,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAOR,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyGvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBlC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAIhE,mBAAmB,IAAI,OAAO;IAI9B,OAAO,IAAI,IAAI;IAYtB;;;OAGG;WACW,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,UAAO,GAAG,aAAa;CAGtG"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * MCP Server setup and request handlers
3
+ * Uses @modelcontextprotocol/sdk for type safety and validation
4
+ */
1
5
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
6
  export declare const mcpServer: Server<{
3
7
  method: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/lib/mcp-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAMlE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-transport.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/lib/websocket-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAMtC,OAAO,CAAC,EAAE;IAJtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAE1B,EAAE,EAAE,SAAS;IAE3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * WorkerClient — adapter for communicating with a worker process.
3
+ *
4
+ * Responsibilities
5
+ * - Chooses the transport: prefers a SharedWorker and falls back to a ServiceWorker.
6
+ * - Provides a request/response API (MessageChannel) and a fire-and-forget post API.
7
+ * - Tracks connection status and exposes a subscription API for CONNECTION_STATUS updates.
8
+ * - Buffers an auth token (SET_AUTH_TOKEN) when no worker is available and sends it when a
9
+ * worker becomes active.
10
+ *
11
+ * Public API
12
+ * - async init(registration?: ServiceWorkerRegistration): Promise<void>
13
+ * Initializes the client. If a ServiceWorkerRegistration is provided, it will be used directly.
14
+ *
15
+ * - async request<T = any>(type: string, payload?: Record<string, unknown>, timeoutMs = 5000): Promise<T>
16
+ * Sends a request expecting a reply via MessageChannel. Rejects on timeout, missing worker,
17
+ * or a worker-reported error.
18
+ *
19
+ * - async post(type: string, payload?: Record<string, unknown>): Promise<void>
20
+ * Fire-and-forget message. If type === 'SET_AUTH_TOKEN' and no worker is available, the token
21
+ * is queued and sent after initialization.
22
+ *
23
+ * - getConnectionStatus(): Promise<boolean>
24
+ * Attempts to obtain the current connection status (uses GET_CONNECTION_STATUS request with a
25
+ * short timeout) and returns a boolean.
26
+ *
27
+ * - onConnectionStatus(cb: (connected: boolean) => void): void
28
+ * - offConnectionStatus(cb: (connected: boolean) => void): void
29
+ * Subscribe/unsubscribe to connection status updates.
30
+ *
31
+ * Error model and edge cases
32
+ * - init may throw if neither SharedWorker nor ServiceWorker is supported or registration fails.
33
+ * - request may reject due to timeout, no worker registered, missing active ServiceWorker, or a
34
+ * worker-reported error payload.
35
+ * - post does not throw for transient postMessage failures; SET_AUTH_TOKEN is queued instead.
36
+ * - Concurrent init calls are serialized via an internal mutex (initPromise).
37
+ *
38
+ */
39
+ export type WorkerClientInitOptions = {
40
+ /** URL to the SharedWorker script (optional) */
41
+ sharedWorkerUrl?: string;
42
+ /** URL to the ServiceWorker script (optional) */
43
+ serviceWorkerUrl?: string;
44
+ /** Backend WebSocket URL to configure inside the worker (optional) */
45
+ backendWsUrl?: string;
46
+ };
47
+ export declare class WorkerClient {
48
+ private sharedWorkerUrl;
49
+ private serviceWorkerUrl;
50
+ private backendWsUrl;
51
+ private serviceWorkerRegistration;
52
+ private sharedWorker;
53
+ private sharedWorkerPort;
54
+ private workerType;
55
+ private pendingAuthToken;
56
+ private connectionStatusCallbacks;
57
+ private initPromise;
58
+ init(registrationOrOptions?: ServiceWorkerRegistration | WorkerClientInitOptions): Promise<void>;
59
+ private initSharedWorker;
60
+ private initServiceWorkerFallback;
61
+ request<T = unknown>(type: string, payload?: Record<string, unknown>, timeoutMs?: number): Promise<T>;
62
+ post(type: string, payload?: Record<string, unknown>): Promise<void>;
63
+ private sendAuthTokenToServiceWorker;
64
+ onConnectionStatus(cb: (connected: boolean) => void): void;
65
+ offConnectionStatus(cb: (connected: boolean) => void): void;
66
+ getConnectionStatus(): Promise<boolean>;
67
+ setAuthToken(token: string): void;
68
+ }
69
+ //# sourceMappingURL=worker-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/lib/worker-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAMH,MAAM,MAAM,uBAAuB,GAAG;IACpC,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qBAAa,YAAY;IAEvB,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,YAAY,CAAwC;IAE5D,OAAO,CAAC,yBAAyB,CAA0C;IAC3E,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,yBAAyB,CACrB;IAGZ,OAAO,CAAC,WAAW,CAA8B;IAIpC,IAAI,CACf,qBAAqB,CAAC,EAAE,yBAAyB,GAAG,uBAAuB,GAC1E,OAAO,CAAC,IAAI,CAAC;YAkEF,gBAAgB;YAwFhB,yBAAyB;IA8C1B,OAAO,CAAC,CAAC,GAAG,OAAO,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,SAAO,GACf,OAAO,CAAC,CAAC,CAAC;IAsFA,IAAI,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAkDhB,OAAO,CAAC,4BAA4B;IAmC7B,kBAAkB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI1D,mBAAmB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIrD,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAe7C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAoBzC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-service-worker.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/mcp-service-worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-shared-worker.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/mcp-shared-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/database.js DELETED
@@ -1,49 +0,0 @@
1
- const y = "user-activity-db";
2
- const i = "user-events";
3
- async function p() {
4
- return new Promise((e, d) => {
5
- const r = indexedDB.open(y, 1);
6
- r.onerror = () => d(r.error), r.onsuccess = () => e(r.result), r.onupgradeneeded = (a) => {
7
- const c = a.target.result;
8
- if (!c.objectStoreNames.contains(i)) {
9
- const o = c.createObjectStore(i, { keyPath: "id" });
10
- o.createIndex("timestamp", "timestamp", { unique: !1 }), o.createIndex("type", "type", { unique: !1 }), o.createIndex("path", "path", { unique: !1 });
11
- }
12
- };
13
- });
14
- }
15
- async function b(e) {
16
- const a = (await p()).transaction([i], "readwrite").objectStore(i), c = {
17
- ...e,
18
- id: `${e.timestamp}-${Math.random().toString(36).substr(2, 9)}`
19
- };
20
- await new Promise((m, n) => {
21
- const t = a.add(c);
22
- t.onsuccess = () => m(), t.onerror = () => n(t.error);
23
- });
24
- const o = a.count();
25
- o.onsuccess = () => {
26
- if (o.result > 1e3) {
27
- const n = a.index("timestamp").getAll();
28
- n.onsuccess = () => {
29
- const t = n.result;
30
- t.sort((u, l) => u.timestamp - l.timestamp), t.slice(0, t.length - 1e3).forEach((u) => a.delete(u.id));
31
- };
32
- }
33
- };
34
- }
35
- async function h(e) {
36
- const c = (await p()).transaction([i], "readonly").objectStore(i).index("timestamp");
37
- return new Promise((o, m) => {
38
- const n = c.getAll();
39
- n.onsuccess = () => {
40
- let t = n.result;
41
- e?.type && (t = t.filter((s) => s.type === e.type)), e?.startTime && (t = t.filter((s) => s.timestamp >= e.startTime)), e?.endTime && (t = t.filter((s) => s.timestamp <= e.endTime)), e?.path && (t = t.filter((s) => s.path?.includes(e.path))), t.sort((s, u) => u.timestamp - s.timestamp), e?.limit && (t = t.slice(0, e.limit)), o(t);
42
- }, n.onerror = () => m(n.error);
43
- });
44
- }
45
- export {
46
- h as q,
47
- b as s
48
- };
49
- //# sourceMappingURL=database.js.map
package/database.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.js","sources":["../../../libs/mcp-worker/src/lib/database.ts"],"sourcesContent":["/**\n * IndexedDB operations for storing and querying user events\n */\n\nconst DB_NAME = 'user-activity-db'\nconst DB_VERSION = 1\nconst STORE_NAME = 'user-events'\n\nexport interface UserEvent {\n id: string\n type: 'navigation' | 'click' | 'input' | 'custom'\n timestamp: number\n path?: string\n from?: string\n to?: string\n element?: string\n elementId?: string\n elementClass?: string\n elementText?: string\n metadata?: Record<string, unknown>\n}\n\nexport interface EventFilters {\n type?: string\n startTime?: number\n endTime?: number\n path?: string\n limit?: number\n}\n\n// Initialize IndexedDB\nexport async function initDB(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n const request = indexedDB.open(DB_NAME, DB_VERSION)\n\n request.onerror = () => reject(request.error)\n request.onsuccess = () => resolve(request.result)\n\n request.onupgradeneeded = (event) => {\n const db = (event.target as IDBOpenDBRequest).result\n if (!db.objectStoreNames.contains(STORE_NAME)) {\n const store = db.createObjectStore(STORE_NAME, { keyPath: 'id' })\n store.createIndex('timestamp', 'timestamp', { unique: false })\n store.createIndex('type', 'type', { unique: false })\n store.createIndex('path', 'path', { unique: false })\n }\n }\n })\n}\n\n// Store event in IndexedDB\nexport async function storeEvent(event: Omit<UserEvent, 'id'>): Promise<void> {\n const db = await initDB()\n const transaction = db.transaction([STORE_NAME], 'readwrite')\n const store = transaction.objectStore(STORE_NAME)\n\n const eventWithId: UserEvent = {\n ...event,\n id: `${event.timestamp}-${Math.random().toString(36).substr(2, 9)}`,\n }\n\n await new Promise<void>((resolve, reject) => {\n const request = store.add(eventWithId)\n request.onsuccess = () => resolve()\n request.onerror = () => reject(request.error)\n })\n\n // Clean up old events (keep last 1000 events)\n const countRequest = store.count()\n countRequest.onsuccess = () => {\n if (countRequest.result > 1000) {\n const index = store.index('timestamp')\n const getAllRequest = index.getAll()\n getAllRequest.onsuccess = () => {\n const events = getAllRequest.result as UserEvent[]\n events.sort((a, b) => a.timestamp - b.timestamp)\n const toDelete = events.slice(0, events.length - 1000)\n toDelete.forEach((event) => store.delete(event.id))\n }\n }\n }\n}\n\n// Query events from IndexedDB\nexport async function queryEvents(filters?: EventFilters): Promise<UserEvent[]> {\n const db = await initDB()\n const transaction = db.transaction([STORE_NAME], 'readonly')\n const store = transaction.objectStore(STORE_NAME)\n const index = store.index('timestamp')\n\n return new Promise((resolve, reject) => {\n const request = index.getAll()\n request.onsuccess = () => {\n let events = request.result as UserEvent[]\n\n // Apply filters\n if (filters?.type) {\n events = events.filter((e) => e.type === filters.type)\n }\n if (filters?.startTime) {\n events = events.filter((e) => e.timestamp >= filters.startTime!)\n }\n if (filters?.endTime) {\n events = events.filter((e) => e.timestamp <= filters.endTime!)\n }\n if (filters?.path) {\n events = events.filter((e) => e.path?.includes(filters.path!))\n }\n\n // Sort by timestamp descending (newest first)\n events.sort((a, b) => b.timestamp - a.timestamp)\n\n // Apply limit\n if (filters?.limit) {\n events = events.slice(0, filters.limit)\n }\n\n resolve(events)\n }\n request.onerror = () => reject(request.error)\n })\n}\n"],"names":["DB_NAME","STORE_NAME","initDB","resolve","reject","request","event","db","store","storeEvent","eventWithId","countRequest","getAllRequest","events","a","b","queryEvents","filters","index","e"],"mappings":"AAIA,MAAMA,IAAU;AAEhB,MAAMC,IAAa;AAyBnB,eAAsBC,IAA+B;AACnD,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AACtC,UAAMC,IAAU,UAAU,KAAKL,GAAS,CAAU;AAElD,IAAAK,EAAQ,UAAU,MAAMD,EAAOC,EAAQ,KAAK,GAC5CA,EAAQ,YAAY,MAAMF,EAAQE,EAAQ,MAAM,GAEhDA,EAAQ,kBAAkB,CAACC,MAAU;AACnC,YAAMC,IAAMD,EAAM,OAA4B;AAC9C,UAAI,CAACC,EAAG,iBAAiB,SAASN,CAAU,GAAG;AAC7C,cAAMO,IAAQD,EAAG,kBAAkBN,GAAY,EAAE,SAAS,MAAM;AAChE,QAAAO,EAAM,YAAY,aAAa,aAAa,EAAE,QAAQ,IAAO,GAC7DA,EAAM,YAAY,QAAQ,QAAQ,EAAE,QAAQ,IAAO,GACnDA,EAAM,YAAY,QAAQ,QAAQ,EAAE,QAAQ,IAAO;AAAA,MACrD;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAGA,eAAsBC,EAAWH,GAA6C;AAG5E,QAAME,KAFK,MAAMN,EAAA,GACM,YAAY,CAACD,CAAU,GAAG,WAAW,EAClC,YAAYA,CAAU,GAE1CS,IAAyB;AAAA,IAC7B,GAAGJ;AAAA,IACH,IAAI,GAAGA,EAAM,SAAS,IAAI,KAAK,SAAS,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAAA,EAAA;AAGnE,QAAM,IAAI,QAAc,CAACH,GAASC,MAAW;AAC3C,UAAMC,IAAUG,EAAM,IAAIE,CAAW;AACrC,IAAAL,EAAQ,YAAY,MAAMF,EAAA,GAC1BE,EAAQ,UAAU,MAAMD,EAAOC,EAAQ,KAAK;AAAA,EAC9C,CAAC;AAGD,QAAMM,IAAeH,EAAM,MAAA;AAC3B,EAAAG,EAAa,YAAY,MAAM;AAC7B,QAAIA,EAAa,SAAS,KAAM;AAE9B,YAAMC,IADQJ,EAAM,MAAM,WAAW,EACT,OAAA;AAC5B,MAAAI,EAAc,YAAY,MAAM;AAC9B,cAAMC,IAASD,EAAc;AAC7B,QAAAC,EAAO,KAAK,CAACC,GAAGC,MAAMD,EAAE,YAAYC,EAAE,SAAS,GAC9BF,EAAO,MAAM,GAAGA,EAAO,SAAS,GAAI,EAC5C,QAAQ,CAACP,MAAUE,EAAM,OAAOF,EAAM,EAAE,CAAC;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AACF;AAGA,eAAsBU,EAAYC,GAA8C;AAI9E,QAAMC,KAHK,MAAMhB,EAAA,GACM,YAAY,CAACD,CAAU,GAAG,UAAU,EACjC,YAAYA,CAAU,EAC5B,MAAM,WAAW;AAErC,SAAO,IAAI,QAAQ,CAACE,GAASC,MAAW;AACtC,UAAMC,IAAUa,EAAM,OAAA;AACtB,IAAAb,EAAQ,YAAY,MAAM;AACxB,UAAIQ,IAASR,EAAQ;AAGrB,MAAIY,GAAS,SACXJ,IAASA,EAAO,OAAO,CAACM,MAAMA,EAAE,SAASF,EAAQ,IAAI,IAEnDA,GAAS,cACXJ,IAASA,EAAO,OAAO,CAACM,MAAMA,EAAE,aAAaF,EAAQ,SAAU,IAE7DA,GAAS,YACXJ,IAASA,EAAO,OAAO,CAACM,MAAMA,EAAE,aAAaF,EAAQ,OAAQ,IAE3DA,GAAS,SACXJ,IAASA,EAAO,OAAO,CAACM,MAAMA,EAAE,MAAM,SAASF,EAAQ,IAAK,CAAC,IAI/DJ,EAAO,KAAK,CAACC,GAAGC,MAAMA,EAAE,YAAYD,EAAE,SAAS,GAG3CG,GAAS,UACXJ,IAASA,EAAO,MAAM,GAAGI,EAAQ,KAAK,IAGxCd,EAAQU,CAAM;AAAA,IAChB,GACAR,EAAQ,UAAU,MAAMD,EAAOC,EAAQ,KAAK;AAAA,EAC9C,CAAC;AACH;"}
package/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './lib/worker-client';
2
- export { queryEvents, type UserEvent } from './lib/database';
3
- //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/mcp-worker/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../libs/mcp-worker/src/lib/worker-client.ts"],"sourcesContent":["type WorkerType = 'shared' | 'service';\n\nexport class WorkerClient {\n private serviceWorkerRegistration: ServiceWorkerRegistration | null = null;\n private sharedWorker: SharedWorker | null = null;\n private sharedWorkerPort: MessagePort | null = null;\n private workerType: WorkerType | null = null;\n private pendingAuthToken: string | null = null;\n // connection status subscribers\n private connectionStatusCallbacks: Set<(connected: boolean) => void> = new Set();\n private serviceWorkerMessageHandler: ((ev: MessageEvent) => void) | null = null;\n\n // Mutex/promise to prevent concurrent init runs\n private initPromise: Promise<void> | null = null;\n\n // Initialize and choose worker implementation (prefer SharedWorker)\n public async init(registration?: ServiceWorkerRegistration): Promise<void> {\n // If an init is already in progress, wait for it and optionally retry if caller provided a registration\n if (this.initPromise) {\n return this.initPromise.then(async () => {\n if (registration && this.workerType !== 'service') {\n // retry once with provided registration after current init finished\n await this.init(registration);\n }\n });\n }\n\n // Start initialization and store the promise as a mutex\n this.initPromise = (async () => {\n try {\n // If an explicit ServiceWorker registration is provided, use it\n if (registration) {\n this.serviceWorkerRegistration = registration;\n this.workerType = 'service';\n console.log('[WorkerClient] Using ServiceWorker (explicit registration)');\n // send pending token if exists\n if (this.pendingAuthToken) {\n this.sendAuthTokenToServiceWorker(this.pendingAuthToken);\n this.pendingAuthToken = null;\n }\n return;\n }\n\n // Try SharedWorker first\n if (typeof SharedWorker !== 'undefined') {\n try {\n this.sharedWorker = new SharedWorker('/mcp-shared-worker.js', { type: 'module' });\n this.sharedWorkerPort = this.sharedWorker.port;\n this.sharedWorkerPort.start();\n\n if (this.pendingAuthToken && this.sharedWorkerPort) {\n try {\n this.sharedWorkerPort.postMessage({ type: 'SET_AUTH_TOKEN', token: this.pendingAuthToken });\n } catch (err) {\n console.warn('[WorkerClient] Immediate postMessage to SharedWorker failed (will retry after init):', err);\n }\n }\n\n this.sharedWorker.onerror = (event: ErrorEvent) => {\n console.error('[WorkerClient] SharedWorker error:', event.message || event.error || event);\n if (this.workerType !== 'shared') {\n this.initServiceWorkerFallback().catch((err) => {\n console.error('[WorkerClient] Failed to initialize ServiceWorker fallback:', err);\n });\n }\n };\n\n await new Promise<void>((resolve, reject) => {\n let resolved = false;\n const timeout = setTimeout(() => {\n if (!resolved) {\n const p = this.sharedWorkerPort;\n if (p) p.onmessage = null;\n reject(new Error('SharedWorker initialization timeout'));\n }\n }, 2000);\n\n const p = this.sharedWorkerPort;\n if (!p) {\n clearTimeout(timeout);\n return reject(new Error('SharedWorker port not available'));\n }\n\n p.onmessage = (ev: MessageEvent) => {\n try {\n const data = ev.data;\n if (data && data.type === 'CONNECTION_STATUS') {\n clearTimeout(timeout);\n resolved = true;\n this.workerType = 'shared';\n p.onmessage = null;\n resolve();\n }\n } catch {\n // ignore parse/handler errors\n }\n };\n });\n\n const portAfterInit = this.sharedWorkerPort;\n if (this.pendingAuthToken && portAfterInit) {\n try {\n portAfterInit.postMessage({ type: 'SET_AUTH_TOKEN', token: this.pendingAuthToken });\n this.pendingAuthToken = null;\n } catch (e) {\n console.error('[WorkerClient] Failed to send pending auth token to SharedWorker:', e);\n }\n }\n\n if (portAfterInit) {\n portAfterInit.onmessage = (ev: MessageEvent) => {\n try {\n const data = ev.data;\n if (data && data.type === 'CONNECTION_STATUS') {\n const connected = !!data.connected;\n this.connectionStatusCallbacks.forEach((cb) => {\n try { cb(connected); } catch (e) { /* ignore callback errors */ }\n });\n }\n } catch {\n // ignore\n }\n };\n }\n\n console.log('[WorkerClient] Using SharedWorker');\n return;\n } catch (error) {\n console.warn('[WorkerClient] SharedWorker not available, falling back to ServiceWorker:', error);\n }\n }\n\n // If SharedWorker isn't supported or failed, use service worker\n console.log(\"this should not be called\");\n await this.initServiceWorkerFallback();\n\n // Send pending token if any\n if (this.pendingAuthToken && this.workerType === 'service') {\n this.sendAuthTokenToServiceWorker(this.pendingAuthToken);\n this.pendingAuthToken = null;\n }\n } finally {\n // Clear the mutex so future init calls can proceed\n this.initPromise = null;\n }\n })();\n\n return this.initPromise;\n }\n\n private async initServiceWorkerFallback(): Promise<void> {\n console.log(\"initServiceWorkerFallback called\");\n if ('serviceWorker' in navigator) {\n try {\n const existingRegistration = await navigator.serviceWorker.getRegistration();\n if (existingRegistration) {\n this.serviceWorkerRegistration = existingRegistration;\n this.workerType = 'service';\n console.log('[WorkerClient] Using existing ServiceWorker registration');\n return;\n }\n\n const reg = await navigator.serviceWorker.register('/mcp-service-worker.js');\n this.serviceWorkerRegistration = reg;\n this.workerType = 'service';\n console.log('[WorkerClient] Using ServiceWorker (fallback)');\n if (this.serviceWorkerMessageHandler) {\n navigator.serviceWorker.removeEventListener('message', this.serviceWorkerMessageHandler);\n this.serviceWorkerMessageHandler = null;\n }\n this.serviceWorkerMessageHandler = (ev: MessageEvent) => {\n try {\n const data = ev.data;\n if (data && data.type === 'CONNECTION_STATUS') {\n const connected = !!data.connected;\n this.connectionStatusCallbacks.forEach((cb) => {\n try { cb(connected); } catch (e) { /* ignore callback errors */ }\n });\n }\n } catch {\n // ignore\n }\n };\n navigator.serviceWorker.addEventListener('message', this.serviceWorkerMessageHandler);\n } catch (error) {\n console.error('[WorkerClient] Failed to register ServiceWorker:', error);\n throw error;\n }\n } else {\n throw new Error('Neither SharedWorker nor ServiceWorker is supported');\n }\n }\n\n // Low-level request that expects a reply via MessageChannel\n public async request<T = any>(type: string, payload?: Record<string, unknown>, timeoutMs = 5000): Promise<T> {\n // If using shared worker\n if (this.workerType === 'shared' && this.sharedWorkerPort) {\n return new Promise<T>((resolve, reject) => {\n const mc = new MessageChannel();\n const timer = setTimeout(() => {\n mc.port1.onmessage = null;\n reject(new Error('Request timeout'));\n }, timeoutMs);\n\n mc.port1.onmessage = (ev: MessageEvent) => {\n clearTimeout(timer);\n if (ev.data && ev.data.success) {\n resolve(ev.data as T);\n } else if (ev.data && ev.data.success === false) {\n reject(new Error(ev.data.error || 'Worker error'));\n } else {\n resolve(ev.data as T);\n }\n };\n\n try {\n const port = this.sharedWorkerPort;\n if (!port) {\n clearTimeout(timer);\n return reject(new Error('SharedWorker port not available'));\n }\n port.postMessage({ type, ...(payload || {}) }, [mc.port2]);\n } catch (e) {\n clearTimeout(timer);\n reject(e instanceof Error ? e : new Error(String(e)));\n }\n });\n }\n\n // If using service worker\n if (this.workerType === 'service' && this.serviceWorkerRegistration) {\n // Ensure service worker active\n const reg = this.serviceWorkerRegistration;\n if (!reg) throw new Error('Service worker registration missing');\n if (!reg.active) {\n await navigator.serviceWorker.ready;\n if (!reg.active) {\n throw new Error('Service worker not active');\n }\n }\n\n return new Promise<T>((resolve, reject) => {\n const mc = new MessageChannel();\n const timer = setTimeout(() => {\n mc.port1.onmessage = null;\n reject(new Error('Request timeout'));\n }, timeoutMs);\n\n mc.port1.onmessage = (ev: MessageEvent) => {\n clearTimeout(timer);\n if (ev.data && ev.data.success) {\n resolve(ev.data as T);\n } else if (ev.data && ev.data.success === false) {\n reject(new Error(ev.data.error || 'Worker error'));\n } else {\n resolve(ev.data as T);\n }\n };\n\n try {\n const active = reg.active;\n if (!active) {\n clearTimeout(timer);\n return reject(new Error('Service worker active instance not available'));\n }\n active.postMessage({ type, ...(payload || {}) }, [mc.port2]);\n } catch (e) {\n clearTimeout(timer);\n reject(e instanceof Error ? e : new Error(String(e)));\n }\n });\n }\n\n // No worker available\n throw new Error('No worker registered');\n }\n\n // Fire-and-forget postMessage (no response expected)\n public async post(type: string, payload?: Record<string, unknown>): Promise<void> {\n if (this.workerType === 'shared' && this.sharedWorkerPort) {\n try {\n this.sharedWorkerPort.postMessage({ type, ...(payload || {}) });\n } catch (e) {\n console.error('[WorkerClient] Failed to post to SharedWorker:', e);\n }\n return;\n }\n\n if (this.workerType === 'service' && this.serviceWorkerRegistration?.active) {\n try {\n this.serviceWorkerRegistration.active.postMessage({ type, ...(payload || {}) });\n } catch (e) {\n console.error('[WorkerClient] Failed to post to ServiceWorker (active):', e);\n }\n return;\n }\n\n if ('serviceWorker' in navigator && navigator.serviceWorker.controller) {\n try {\n navigator.serviceWorker.controller.postMessage({ type, ...(payload || {}) });\n } catch (e) {\n console.error('[WorkerClient] Failed to post to ServiceWorker.controller:', e);\n }\n return;\n }\n\n // If no worker yet, queue token if SET_AUTH_TOKEN\n if (type === 'SET_AUTH_TOKEN' && payload) {\n const token = (payload as any)['token'];\n if (typeof token === 'string') this.pendingAuthToken = token;\n }\n }\n\n private sendAuthTokenToServiceWorker(token: string): void {\n if (this.serviceWorkerRegistration?.active) {\n try {\n this.serviceWorkerRegistration.active.postMessage({ type: 'SET_AUTH_TOKEN', token });\n } catch (e) {\n console.error('[WorkerClient] Failed to send auth token to ServiceWorker:', e);\n }\n } else if ('serviceWorker' in navigator && navigator.serviceWorker.controller) {\n try {\n navigator.serviceWorker.controller.postMessage({ type: 'SET_AUTH_TOKEN', token });\n } catch (e) {\n console.error('[WorkerClient] Failed to send auth token to ServiceWorker.controller:', e);\n }\n } else {\n // keep as pending\n this.pendingAuthToken = token;\n }\n }\n\n // Subscription API for consumers to listen for connection status updates\n public onConnectionStatus(cb: (connected: boolean) => void): void {\n this.connectionStatusCallbacks.add(cb);\n }\n\n public offConnectionStatus(cb: (connected: boolean) => void): void {\n this.connectionStatusCallbacks.delete(cb);\n }\n\n public async getConnectionStatus(): Promise<boolean> {\n try {\n const res = await this.request('GET_CONNECTION_STATUS', undefined, 2000);\n if (res && typeof res === 'object' && 'connected' in (res as any)) return !!(res as any).connected;\n return !!(res as any).connected;\n } catch {\n return false;\n }\n }\n\n public setAuthToken(token: string): void {\n this.pendingAuthToken = token;\n // Try to send immediately if possible\n if (this.workerType === 'shared' && this.sharedWorkerPort) {\n try {\n this.sharedWorkerPort.postMessage({ type: 'SET_AUTH_TOKEN', token });\n this.pendingAuthToken = null;\n } catch (e) {\n console.error('[WorkerClient] Failed to set auth token on SharedWorker:', e);\n }\n } else if (this.workerType === 'service') {\n this.sendAuthTokenToServiceWorker(token);\n this.pendingAuthToken = null;\n } else {\n // queued and will be sent when init finishes\n }\n }\n}\n"],"names":["WorkerClient","registration","err","event","resolve","reject","resolved","timeout","p","ev","data","portAfterInit","e","connected","cb","error","existingRegistration","reg","type","payload","timeoutMs","mc","timer","port","active","token","res"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/lib/database.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,wBAAsB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAiBnD;AAGD,wBAAsB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5E;AAGD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqC9E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-controller.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/lib/mcp-controller.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAc,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOhE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAErD,qBAAa,aAAa;IAQZ,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,WAAW;IAP3D,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,WAAW,CAAU;gBAET,UAAU,EAAE,MAAM,EAAU,WAAW,EAAE,WAAW,EAAE,WAAW,UAAO;IAI5F,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAOR,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyGvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBlC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAIhE,mBAAmB,IAAI,OAAO;IAI9B,OAAO,IAAI,IAAI;CAWvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/lib/mcp-server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAMlE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"websocket-transport.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/lib/websocket-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAMtC,OAAO,CAAC,EAAE;IAJtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAE1B,EAAE,EAAE,SAAS;IAE3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -1,20 +0,0 @@
1
- export declare class WorkerClient {
2
- private serviceWorkerRegistration;
3
- private sharedWorker;
4
- private sharedWorkerPort;
5
- private workerType;
6
- private pendingAuthToken;
7
- private connectionStatusCallbacks;
8
- private serviceWorkerMessageHandler;
9
- private initPromise;
10
- init(registration?: ServiceWorkerRegistration): Promise<void>;
11
- private initServiceWorkerFallback;
12
- request<T = any>(type: string, payload?: Record<string, unknown>, timeoutMs?: number): Promise<T>;
13
- post(type: string, payload?: Record<string, unknown>): Promise<void>;
14
- private sendAuthTokenToServiceWorker;
15
- onConnectionStatus(cb: (connected: boolean) => void): void;
16
- offConnectionStatus(cb: (connected: boolean) => void): void;
17
- getConnectionStatus(): Promise<boolean>;
18
- setAuthToken(token: string): void;
19
- }
20
- //# sourceMappingURL=worker-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../libs/mcp-worker/src/lib/worker-client.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,OAAO,CAAC,yBAAyB,CAA0C;IAC3E,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,yBAAyB,CAAgD;IACjF,OAAO,CAAC,2BAA2B,CAA6C;IAGhF,OAAO,CAAC,WAAW,CAA8B;IAGpC,IAAI,CAAC,YAAY,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsI5D,yBAAyB;IA4C1B,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAoF/F,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCjF,OAAO,CAAC,4BAA4B;IAoB7B,kBAAkB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI1D,mBAAmB,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIrD,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7C,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAiBzC"}