@mcp-fe/mcp-worker 0.2.0 → 0.2.2

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.js CHANGED
@@ -823,78 +823,87 @@ var WorkerClient = class _WorkerClient {
823
823
  }
824
824
  }
825
825
  async initServiceWorkerFallback() {
826
- if ("serviceWorker" in navigator) {
827
- try {
828
- const existingRegistration = await navigator.serviceWorker.getRegistration();
829
- if (existingRegistration) {
830
- this.serviceWorkerRegistration = existingRegistration;
831
- this.workerType = "service";
832
- logger.info(
833
- "[WorkerClient] Using existing ServiceWorker registration"
834
- );
835
- return;
836
- }
826
+ if (!("serviceWorker" in navigator)) {
827
+ throw new Error("Neither SharedWorker nor ServiceWorker is supported");
828
+ }
829
+ try {
830
+ const existingRegistration = await navigator.serviceWorker.getRegistration();
831
+ if (existingRegistration) {
832
+ this.serviceWorkerRegistration = existingRegistration;
833
+ this.workerType = "service";
834
+ logger.info("[WorkerClient] Using existing ServiceWorker registration");
835
+ } else {
837
836
  this.serviceWorkerRegistration = await navigator.serviceWorker.register(
838
837
  this.serviceWorkerUrl
839
838
  );
840
839
  this.workerType = "service";
841
- if ("serviceWorker" in navigator) {
842
- navigator.serviceWorker.addEventListener(
843
- "message",
844
- (ev) => {
845
- try {
846
- const data = ev.data;
847
- if (data && data.type === "CALL_TOOL") {
848
- const targetTabId = data.targetTabId;
849
- if (targetTabId && targetTabId !== this.tabId) {
850
- logger.log(
851
- `[WorkerClient] Ignoring CALL_TOOL (not for this tab): ${data.toolName}`,
852
- { targetTabId, myTabId: this.tabId }
853
- );
854
- return;
855
- }
856
- this.handleToolCall(
857
- data.toolName,
858
- data.args,
859
- data.callId
860
- ).catch((error) => {
861
- logger.error(
862
- "[WorkerClient] Failed to handle tool call:",
863
- error
864
- );
865
- });
840
+ logger.info("[WorkerClient] Using MCP ServiceWorker (fallback)");
841
+ }
842
+ navigator.serviceWorker.addEventListener(
843
+ "message",
844
+ (ev) => {
845
+ try {
846
+ const data = ev.data;
847
+ if (data && data.type === "CONNECTION_STATUS") {
848
+ const connected = !!data.connected;
849
+ this.connectionStatusCallbacks.forEach((cb) => {
850
+ try {
851
+ cb(connected);
852
+ } catch {
866
853
  }
867
- } catch (error) {
854
+ });
855
+ } else if (data && data.type === "CALL_TOOL") {
856
+ const targetTabId = data.targetTabId;
857
+ if (targetTabId && targetTabId !== this.tabId) {
858
+ logger.log(
859
+ `[WorkerClient] Ignoring CALL_TOOL (not for this tab): ${data.toolName}`,
860
+ { targetTabId, myTabId: this.tabId }
861
+ );
862
+ return;
863
+ }
864
+ this.handleToolCall(
865
+ data.toolName,
866
+ data.args,
867
+ data.callId
868
+ ).catch((error) => {
868
869
  logger.error(
869
- "[WorkerClient] Error processing ServiceWorker message:",
870
+ "[WorkerClient] Failed to handle tool call:",
870
871
  error
871
872
  );
872
- }
873
+ });
873
874
  }
874
- );
875
- }
876
- logger.info("[WorkerClient] Using MCP ServiceWorker (fallback)");
877
- try {
878
- const initMsg = {
879
- type: "INIT",
880
- backendUrl: this.backendWsUrl
881
- };
882
- if (this.pendingAuthToken)
883
- initMsg["token"] = this.pendingAuthToken;
884
- if (this.serviceWorkerRegistration.active) {
885
- this.serviceWorkerRegistration.active.postMessage(initMsg);
886
- } else if ("serviceWorker" in navigator && navigator.serviceWorker.controller) {
887
- navigator.serviceWorker.controller.postMessage(initMsg);
875
+ } catch (error) {
876
+ logger.error(
877
+ "[WorkerClient] Error processing ServiceWorker message:",
878
+ error
879
+ );
888
880
  }
881
+ }
882
+ );
883
+ try {
884
+ const initMsg = {
885
+ type: "INIT",
886
+ backendUrl: this.backendWsUrl
887
+ };
888
+ if (this.pendingAuthToken)
889
+ initMsg["token"] = this.pendingAuthToken;
890
+ const sendInit = (worker) => {
891
+ worker.postMessage(initMsg);
889
892
  this.pendingAuthToken = null;
890
- } catch {
893
+ };
894
+ if (this.serviceWorkerRegistration.active) {
895
+ sendInit(this.serviceWorkerRegistration.active);
896
+ } else {
897
+ navigator.serviceWorker.ready.then((reg) => {
898
+ if (reg.active)
899
+ sendInit(reg.active);
900
+ });
891
901
  }
892
- } catch (error) {
893
- logger.error("[WorkerClient] Failed to register ServiceWorker:", error);
894
- throw error;
902
+ } catch {
895
903
  }
896
- } else {
897
- throw new Error("Neither SharedWorker nor ServiceWorker is supported");
904
+ } catch (error) {
905
+ logger.error("[WorkerClient] Failed to register ServiceWorker:", error);
906
+ throw error;
898
907
  }
899
908
  }
900
909
  // Low-level request that expects a reply via MessageChannel
@@ -21357,14 +21357,24 @@ var MCPController = class _MCPController {
21357
21357
  this.socket = null;
21358
21358
  }
21359
21359
  return new Promise((resolve) => {
21360
- const url2 = this.authToken ? `${this.backendUrl}?token=${this.authToken}` : this.backendUrl;
21361
- this.socket = new WebSocket(url2);
21360
+ this.socket = new WebSocket(this.backendUrl);
21362
21361
  this.socket.onopen = async () => {
21363
21362
  logger.log("[MCPController] Connected to backend MCP server");
21364
21363
  this.reconnectAttempts = 0;
21365
21364
  this.isReconnectingForToken = false;
21366
21365
  try {
21367
21366
  if (this.socket) {
21367
+ if (this.authToken) {
21368
+ try {
21369
+ await this.performAuthHandshake(this.socket, this.authToken);
21370
+ } catch (error2) {
21371
+ logger.error("[MCPController] Auth handshake failed:", error2);
21372
+ this.broadcastFn({ type: "CONNECTION_STATUS", connected: false });
21373
+ this.socket.close(4001, "Authentication failed");
21374
+ resolve();
21375
+ return;
21376
+ }
21377
+ }
21368
21378
  this.transport = new WebSocketTransport(this.socket);
21369
21379
  if (typeof this.transport.start === "function") {
21370
21380
  try {
@@ -21667,6 +21677,37 @@ var MCPController = class _MCPController {
21667
21677
  }
21668
21678
  return true;
21669
21679
  }
21680
+ /**
21681
+ * Sends AUTH message and waits for AUTH_OK before MCP transport is started.
21682
+ * Token is never sent in the URL — only in this initial payload message.
21683
+ */
21684
+ performAuthHandshake(socket, token) {
21685
+ return new Promise((resolve, reject) => {
21686
+ const timeout = setTimeout(() => {
21687
+ socket.removeEventListener("message", handleMessage);
21688
+ reject(new Error("Authentication timeout"));
21689
+ }, 1e4);
21690
+ const handleMessage = (event) => {
21691
+ let msg;
21692
+ try {
21693
+ msg = JSON.parse(event.data);
21694
+ } catch {
21695
+ return;
21696
+ }
21697
+ if (msg.type === "AUTH_OK") {
21698
+ clearTimeout(timeout);
21699
+ socket.removeEventListener("message", handleMessage);
21700
+ resolve();
21701
+ } else if (msg.type === "AUTH_ERROR") {
21702
+ clearTimeout(timeout);
21703
+ socket.removeEventListener("message", handleMessage);
21704
+ reject(new Error(msg.message || "Authentication rejected by server"));
21705
+ }
21706
+ };
21707
+ socket.addEventListener("message", handleMessage);
21708
+ socket.send(JSON.stringify({ type: "AUTH", token }));
21709
+ });
21710
+ }
21670
21711
  getConnectionStatus() {
21671
21712
  return this.socket?.readyState === WebSocket.OPEN;
21672
21713
  }
@@ -21357,14 +21357,24 @@ var MCPController = class _MCPController {
21357
21357
  this.socket = null;
21358
21358
  }
21359
21359
  return new Promise((resolve) => {
21360
- const url2 = this.authToken ? `${this.backendUrl}?token=${this.authToken}` : this.backendUrl;
21361
- this.socket = new WebSocket(url2);
21360
+ this.socket = new WebSocket(this.backendUrl);
21362
21361
  this.socket.onopen = async () => {
21363
21362
  logger.log("[MCPController] Connected to backend MCP server");
21364
21363
  this.reconnectAttempts = 0;
21365
21364
  this.isReconnectingForToken = false;
21366
21365
  try {
21367
21366
  if (this.socket) {
21367
+ if (this.authToken) {
21368
+ try {
21369
+ await this.performAuthHandshake(this.socket, this.authToken);
21370
+ } catch (error2) {
21371
+ logger.error("[MCPController] Auth handshake failed:", error2);
21372
+ this.broadcastFn({ type: "CONNECTION_STATUS", connected: false });
21373
+ this.socket.close(4001, "Authentication failed");
21374
+ resolve();
21375
+ return;
21376
+ }
21377
+ }
21368
21378
  this.transport = new WebSocketTransport(this.socket);
21369
21379
  if (typeof this.transport.start === "function") {
21370
21380
  try {
@@ -21667,6 +21677,37 @@ var MCPController = class _MCPController {
21667
21677
  }
21668
21678
  return true;
21669
21679
  }
21680
+ /**
21681
+ * Sends AUTH message and waits for AUTH_OK before MCP transport is started.
21682
+ * Token is never sent in the URL — only in this initial payload message.
21683
+ */
21684
+ performAuthHandshake(socket, token) {
21685
+ return new Promise((resolve, reject) => {
21686
+ const timeout = setTimeout(() => {
21687
+ socket.removeEventListener("message", handleMessage);
21688
+ reject(new Error("Authentication timeout"));
21689
+ }, 1e4);
21690
+ const handleMessage = (event) => {
21691
+ let msg;
21692
+ try {
21693
+ msg = JSON.parse(event.data);
21694
+ } catch {
21695
+ return;
21696
+ }
21697
+ if (msg.type === "AUTH_OK") {
21698
+ clearTimeout(timeout);
21699
+ socket.removeEventListener("message", handleMessage);
21700
+ resolve();
21701
+ } else if (msg.type === "AUTH_ERROR") {
21702
+ clearTimeout(timeout);
21703
+ socket.removeEventListener("message", handleMessage);
21704
+ reject(new Error(msg.message || "Authentication rejected by server"));
21705
+ }
21706
+ };
21707
+ socket.addEventListener("message", handleMessage);
21708
+ socket.send(JSON.stringify({ type: "AUTH", token }));
21709
+ });
21710
+ }
21670
21711
  getConnectionStatus() {
21671
21712
  return this.socket?.readyState === WebSocket.OPEN;
21672
21713
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-fe/mcp-worker",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://mcp-fe.ai",
6
6
  "repository": {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/client/worker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/client/worker-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAMzB,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;IACtB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,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;IAGjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAyB;IAG9C,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAmB;;IA+B7D;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAWnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAOpB;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAIzB;;;OAGG;IACI,UAAU,IAAI;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf;IAQD;;;OAGG;WACW,UAAU,IAAI,IAAI;IAShC;;;OAGG;IACH,OAAO,CAAC,eAAe;IA2CV,IAAI,CACf,qBAAqB,CAAC,EAAE,yBAAyB,GAAG,uBAAuB,GAC1E,OAAO,CAAC,IAAI,CAAC;IAiGhB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;YACW,iBAAiB;IA4D/B;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAEhC;YAEa,gBAAgB;YAqHhB,yBAAyB;IAoG1B,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;IAuKA,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;IAqBxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACU,YAAY,CACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;OAGG;YACW,oBAAoB;IA6BlC;;;;OAIG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0B3D;;;OAGG;IACI,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CACR,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,KACrD,IAAI,GACR,MAAM,IAAI;IAIb;;OAEG;IACI,WAAW,CAChB,QAAQ,EAAE,MAAM,GACf;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAIrD;;OAEG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAClC,CAAC,cAAc,GAAG;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,GACF,IAAI;IAIR;;OAEG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQlD;;OAEG;WACW,iBAAiB,IAAI,OAAO;IAI1C;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAInC;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgC/C;;OAEG;IACI,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3D;;OAEG;IACI,wBAAwB,IAAI,MAAM,EAAE;IAI3C;;;OAGG;YACW,cAAc;IAiC5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAmC3B"}
@@ -64,6 +64,11 @@ export declare class MCPController {
64
64
  private handleRegisterToolInternal;
65
65
  handleToolCallResult(callId: string, result: ToolCallResult): void;
66
66
  handleUnregisterTool(toolName: string, tabId?: string): Promise<boolean>;
67
+ /**
68
+ * Sends AUTH message and waits for AUTH_OK before MCP transport is started.
69
+ * Token is never sent in the URL — only in this initial payload message.
70
+ */
71
+ private performAuthHandshake;
67
72
  getConnectionStatus(): boolean;
68
73
  dispose(): void;
69
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-controller.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/worker/mcp-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAWjD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAapE;AAED,qBAAa,aAAa;IAmCtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IAnCrB,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;IAC7B,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,wBAAwB,CAIxB;IAER,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,UAAU,CAAoB;IAGtC,OAAO,CAAC,gBAAgB,CAUpB;gBAGM,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EAChC,WAAW,UAAO;IAOpB;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAmB7D;;;OAGG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW9D,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAOR,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmIvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgClC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAIvE;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAoB1B,kBAAkB,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;YACW,0BAA0B;IAsJjC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAyD5D,oBAAoB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;IA6CZ,mBAAmB,IAAI,OAAO;IAI9B,OAAO,IAAI,IAAI;IAYtB;;;OAGG;WACW,MAAM,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,WAAW,UAAO,GACjB,aAAa;CAGjB"}
1
+ {"version":3,"file":"mcp-controller.d.ts","sourceRoot":"","sources":["../../../../../libs/mcp-worker/src/worker/mcp-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAWjD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChD,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAapE;AAED,qBAAa,aAAa;IAmCtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IAnCrB,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;IAC7B,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,wBAAwB,CAIxB;IAER,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,UAAU,CAAoB;IAGtC,OAAO,CAAC,gBAAgB,CAUpB;gBAGM,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EAChC,WAAW,UAAO;IAOpB;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAmB7D;;;OAGG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAW9D,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAOR,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA8IvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgClC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAIvE;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAoB1B,kBAAkB,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;YACW,0BAA0B;IAsJjC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAyD5D,oBAAoB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC;IA6CnB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA+BrB,mBAAmB,IAAI,OAAO;IAI9B,OAAO,IAAI,IAAI;IAYtB;;;OAGG;WACW,MAAM,CAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,WAAW,EACxB,WAAW,UAAO,GACjB,aAAa;CAGjB"}