@opentabs-dev/browser-extension 0.0.45 → 0.0.47

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 (34) hide show
  1. package/dist/background.js +6 -3
  2. package/dist/resource-prompt-dispatch.d.ts.map +1 -1
  3. package/dist/resource-prompt-dispatch.js +4 -2
  4. package/dist/resource-prompt-dispatch.js.map +1 -1
  5. package/dist/side-panel/App.d.ts.map +1 -1
  6. package/dist/side-panel/App.js +55 -8
  7. package/dist/side-panel/App.js.map +1 -1
  8. package/dist/side-panel/bridge.d.ts +3 -1
  9. package/dist/side-panel/bridge.d.ts.map +1 -1
  10. package/dist/side-panel/bridge.js +3 -1
  11. package/dist/side-panel/bridge.js.map +1 -1
  12. package/dist/side-panel/components/BrowserToolsCard.d.ts.map +1 -1
  13. package/dist/side-panel/components/BrowserToolsCard.js +3 -4
  14. package/dist/side-panel/components/BrowserToolsCard.js.map +1 -1
  15. package/dist/side-panel/components/PluginCard.d.ts +2 -1
  16. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  17. package/dist/side-panel/components/PluginCard.js +3 -3
  18. package/dist/side-panel/components/PluginCard.js.map +1 -1
  19. package/dist/side-panel/components/PluginList.d.ts +2 -1
  20. package/dist/side-panel/components/PluginList.d.ts.map +1 -1
  21. package/dist/side-panel/components/PluginList.js +2 -2
  22. package/dist/side-panel/components/PluginList.js.map +1 -1
  23. package/dist/side-panel/components/SearchResults.d.ts +2 -1
  24. package/dist/side-panel/components/SearchResults.d.ts.map +1 -1
  25. package/dist/side-panel/components/SearchResults.js +3 -5
  26. package/dist/side-panel/components/SearchResults.js.map +1 -1
  27. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
  28. package/dist/side-panel/hooks/useServerNotifications.js +3 -1
  29. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
  30. package/dist/side-panel/side-panel.js +404 -285
  31. package/dist/tool-dispatch.d.ts.map +1 -1
  32. package/dist/tool-dispatch.js +2 -1
  33. package/dist/tool-dispatch.js.map +1 -1
  34. package/package.json +1 -1
@@ -58540,6 +58540,9 @@ var setBrowserToolEnabled = (tool, enabled) => sendRequest("config.setBrowserToo
58540
58540
  tool,
58541
58541
  enabled
58542
58542
  });
58543
+ var setAllBrowserToolsEnabled = (enabled) => sendRequest("config.setAllBrowserToolsEnabled", {
58544
+ enabled
58545
+ });
58543
58546
  var searchPlugins = (query) => sendRequest("plugin.search", {
58544
58547
  query
58545
58548
  });
@@ -71618,8 +71621,7 @@ var BrowserToolsCard = (t0) => {
71618
71621
  enabled: checked
71619
71622
  }));
71620
71623
  });
71621
- const promises = tools.filter((t_1) => t_1.enabled !== checked).map((t_2) => setBrowserToolEnabled(t_2.name, checked));
71622
- Promise.all(promises).catch(() => {
71624
+ setAllBrowserToolsEnabled(checked).catch(() => {
71623
71625
  if (toggleCounter.current === myVersion) {
71624
71626
  onToolsChange(() => preToggleRef.current);
71625
71627
  }
@@ -71631,10 +71633,10 @@ var BrowserToolsCard = (t0) => {
71631
71633
  const newEnabled = !currentEnabled;
71632
71634
  onToolsChange((prev_0) => {
71633
71635
  preToggleRef.current = prev_0;
71634
- return prev_0.map((t_3) => t_3.name === toolName ? {
71635
- ...t_3,
71636
+ return prev_0.map((t_1) => t_1.name === toolName ? {
71637
+ ...t_1,
71636
71638
  enabled: newEnabled
71637
- } : t_3);
71639
+ } : t_1);
71638
71640
  });
71639
71641
  setBrowserToolEnabled(toolName, newEnabled).catch(() => {
71640
71642
  if (toggleCounter.current === myVersion_0) {
@@ -71644,7 +71646,7 @@ var BrowserToolsCard = (t0) => {
71644
71646
  });
71645
71647
  };
71646
71648
  const filterLower = toolFilter?.toLowerCase() ?? "";
71647
- const visibleTools = filterLower ? tools.filter((t_4) => toDisplayName(t_4.name).toLowerCase().includes(filterLower) || t_4.name.toLowerCase().includes(filterLower) || t_4.description.toLowerCase().includes(filterLower)) : tools;
71649
+ const visibleTools = filterLower ? tools.filter((t_2) => toDisplayName(t_2.name).toLowerCase().includes(filterLower) || t_2.name.toLowerCase().includes(filterLower) || t_2.description.toLowerCase().includes(filterLower)) : tools;
71648
71650
  let t4;
71649
71651
  if ($[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
71650
71652
  t4 = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", {
@@ -71660,14 +71662,14 @@ var BrowserToolsCard = (t0) => {
71660
71662
  let t5;
71661
71663
  if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
71662
71664
  t5 = /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(Trigger22, {
71663
- className: "font-head flex flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180",
71665
+ className: "font-head flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg.chevron]:rotate-180",
71664
71666
  children: [t4, /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", {
71665
71667
  className: "font-head text-foreground flex min-w-0 flex-1 items-center gap-1.5 truncate text-sm",
71666
- children: ["Browser Tools", /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Badge2, {
71668
+ children: ["Browser", /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Badge2, {
71667
71669
  variant: "default",
71668
71670
  size: "sm",
71669
71671
  className: "align-middle",
71670
- children: "BUILT-IN"
71672
+ children: "CORE"
71671
71673
  })]
71672
71674
  }), /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ChevronDown, {
71673
71675
  className: "chevron h-4 w-4 shrink-0 transition-transform duration-200"
@@ -75243,7 +75245,7 @@ function _temp26(e_0) {
75243
75245
  var import_react19 = __toESM(require_react(), 1);
75244
75246
  var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
75245
75247
  var PluginCard = (t0) => {
75246
- const $ = (0, import_compiler_runtime25.c)(45);
75248
+ const $ = (0, import_compiler_runtime25.c)(47);
75247
75249
  const {
75248
75250
  plugin,
75249
75251
  activeTools,
@@ -75252,7 +75254,8 @@ var PluginCard = (t0) => {
75252
75254
  onUpdate,
75253
75255
  onRemove,
75254
75256
  updatingPlugin,
75255
- removingPlugin
75257
+ removingPlugin,
75258
+ actionError
75256
75259
  } = t0;
75257
75260
  const [toggleError, setToggleError] = (0, import_react19.useState)(null);
75258
75261
  const errorTimerRef = (0, import_react19.useRef)(void 0);
@@ -75444,7 +75447,7 @@ var PluginCard = (t0) => {
75444
75447
  let t14;
75445
75448
  if ($[30] !== t12 || $[31] !== t9) {
75446
75449
  t14 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Trigger22, {
75447
- className: "font-head flex flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg]:rotate-180",
75450
+ className: "font-head flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2 focus:outline-hidden [&[data-state=open]>svg]:rotate-180",
75448
75451
  children: [t9, t12, t13]
75449
75452
  });
75450
75453
  $[30] = t12;
@@ -75488,13 +75491,25 @@ var PluginCard = (t0) => {
75488
75491
  } else {
75489
75492
  t20 = $[40];
75490
75493
  }
75491
- const t21 = AccordionComponent;
75492
- const t22 = "border-border border-t";
75493
- const t23 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75494
+ let t21;
75495
+ if ($[41] !== actionError) {
75496
+ t21 = actionError && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(AlertComponent, {
75497
+ status: "error",
75498
+ className: "mx-3 mb-1 px-2 py-1 text-[11px]",
75499
+ children: actionError
75500
+ });
75501
+ $[41] = actionError;
75502
+ $[42] = t21;
75503
+ } else {
75504
+ t21 = $[42];
75505
+ }
75506
+ const t22 = AccordionComponent;
75507
+ const t23 = "border-border border-t";
75508
+ const t24 = toolFilter && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", {
75494
75509
  className: "text-muted-foreground mb-1 px-3 pt-2 text-xs",
75495
75510
  children: [visibleTools.length, " of ", pluginTools.length, " tools"]
75496
75511
  });
75497
- const t24 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToolRow, {
75512
+ const t25 = visibleTools.map((tool) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToolRow, {
75498
75513
  name: tool.name,
75499
75514
  displayName: tool.displayName,
75500
75515
  description: tool.description,
@@ -75503,18 +75518,18 @@ var PluginCard = (t0) => {
75503
75518
  active: activeTools.has(`${plugin.name}:${tool.name}`),
75504
75519
  onToggle: () => handleToggleTool(tool.name, tool.enabled)
75505
75520
  }, tool.name));
75506
- let t25;
75507
- if ($[41] !== t21.Content || $[42] !== t23 || $[43] !== t24) {
75508
- t25 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(t21.Content, {
75509
- className: t22,
75510
- children: [t23, t24]
75521
+ let t26;
75522
+ if ($[43] !== t22.Content || $[44] !== t24 || $[45] !== t25) {
75523
+ t26 = /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(t22.Content, {
75524
+ className: t23,
75525
+ children: [t24, t25]
75511
75526
  });
75512
- $[41] = t21.Content;
75513
- $[42] = t23;
75514
- $[43] = t24;
75515
- $[44] = t25;
75527
+ $[43] = t22.Content;
75528
+ $[44] = t24;
75529
+ $[45] = t25;
75530
+ $[46] = t26;
75516
75531
  } else {
75517
- t25 = $[44];
75532
+ t26 = $[46];
75518
75533
  }
75519
75534
  return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(AccordionComponent.Item, {
75520
75535
  value: t4,
@@ -75532,7 +75547,7 @@ var PluginCard = (t0) => {
75532
75547
  "aria-label": `Toggle all tools for ${plugin.name}`
75533
75548
  })
75534
75549
  })]
75535
- }), t20, t25]
75550
+ }), t20, t21, t26]
75536
75551
  });
75537
75552
  };
75538
75553
  function _temp10(t) {
@@ -75554,7 +75569,7 @@ function _temp52(e_0) {
75554
75569
  // src/side-panel/components/PluginList.tsx
75555
75570
  var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
75556
75571
  var PluginList = (t0) => {
75557
- const $ = (0, import_compiler_runtime26.c)(31);
75572
+ const $ = (0, import_compiler_runtime26.c)(33);
75558
75573
  const {
75559
75574
  plugins,
75560
75575
  failedPlugins,
@@ -75563,7 +75578,8 @@ var PluginList = (t0) => {
75563
75578
  toolFilter,
75564
75579
  onUpdate,
75565
75580
  onRemove,
75566
- removingPlugins
75581
+ removingPlugins,
75582
+ pluginErrors
75567
75583
  } = t0;
75568
75584
  let filterLower;
75569
75585
  let t1;
@@ -75615,9 +75631,9 @@ var PluginList = (t0) => {
75615
75631
  t3 = $[10];
75616
75632
  }
75617
75633
  let t4;
75618
- if ($[11] !== activeTools || $[12] !== onRemove || $[13] !== onUpdate || $[14] !== removingPlugins || $[15] !== setPlugins || $[16] !== toolFilter || $[17] !== visiblePlugins) {
75634
+ if ($[11] !== activeTools || $[12] !== onRemove || $[13] !== onUpdate || $[14] !== pluginErrors || $[15] !== removingPlugins || $[16] !== setPlugins || $[17] !== toolFilter || $[18] !== visiblePlugins) {
75619
75635
  let t52;
75620
- if ($[19] !== activeTools || $[20] !== onRemove || $[21] !== onUpdate || $[22] !== removingPlugins || $[23] !== setPlugins || $[24] !== toolFilter) {
75636
+ if ($[20] !== activeTools || $[21] !== onRemove || $[22] !== onUpdate || $[23] !== pluginErrors || $[24] !== removingPlugins || $[25] !== setPlugins || $[26] !== toolFilter) {
75621
75637
  t52 = (plugin) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PluginCard, {
75622
75638
  plugin,
75623
75639
  activeTools,
@@ -75625,52 +75641,55 @@ var PluginList = (t0) => {
75625
75641
  toolFilter,
75626
75642
  onUpdate: onUpdate ? () => onUpdate(plugin.name) : void 0,
75627
75643
  onRemove: onRemove ? () => onRemove(plugin.name) : void 0,
75628
- removingPlugin: removingPlugins?.has(plugin.name)
75644
+ removingPlugin: removingPlugins?.has(plugin.name),
75645
+ actionError: pluginErrors?.get(plugin.name) ?? null
75629
75646
  }, plugin.name);
75630
- $[19] = activeTools;
75631
- $[20] = onRemove;
75632
- $[21] = onUpdate;
75633
- $[22] = removingPlugins;
75634
- $[23] = setPlugins;
75635
- $[24] = toolFilter;
75636
- $[25] = t52;
75647
+ $[20] = activeTools;
75648
+ $[21] = onRemove;
75649
+ $[22] = onUpdate;
75650
+ $[23] = pluginErrors;
75651
+ $[24] = removingPlugins;
75652
+ $[25] = setPlugins;
75653
+ $[26] = toolFilter;
75654
+ $[27] = t52;
75637
75655
  } else {
75638
- t52 = $[25];
75656
+ t52 = $[27];
75639
75657
  }
75640
75658
  t4 = visiblePlugins.map(t52);
75641
75659
  $[11] = activeTools;
75642
75660
  $[12] = onRemove;
75643
75661
  $[13] = onUpdate;
75644
- $[14] = removingPlugins;
75645
- $[15] = setPlugins;
75646
- $[16] = toolFilter;
75647
- $[17] = visiblePlugins;
75648
- $[18] = t4;
75662
+ $[14] = pluginErrors;
75663
+ $[15] = removingPlugins;
75664
+ $[16] = setPlugins;
75665
+ $[17] = toolFilter;
75666
+ $[18] = visiblePlugins;
75667
+ $[19] = t4;
75649
75668
  } else {
75650
- t4 = $[18];
75669
+ t4 = $[19];
75651
75670
  }
75652
75671
  let t5;
75653
- if ($[26] !== t4) {
75672
+ if ($[28] !== t4) {
75654
75673
  t5 = /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(AccordionComponent, {
75655
75674
  type: "multiple",
75656
75675
  className: "space-y-2",
75657
75676
  children: t4
75658
75677
  });
75659
- $[26] = t4;
75660
- $[27] = t5;
75678
+ $[28] = t4;
75679
+ $[29] = t5;
75661
75680
  } else {
75662
- t5 = $[27];
75681
+ t5 = $[29];
75663
75682
  }
75664
75683
  let t6;
75665
- if ($[28] !== t3 || $[29] !== t5) {
75684
+ if ($[30] !== t3 || $[31] !== t5) {
75666
75685
  t6 = /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, {
75667
75686
  children: [t3, t5]
75668
75687
  });
75669
- $[28] = t3;
75670
- $[29] = t5;
75671
- $[30] = t6;
75688
+ $[30] = t3;
75689
+ $[31] = t5;
75690
+ $[32] = t6;
75672
75691
  } else {
75673
- t6 = $[30];
75692
+ t6 = $[32];
75674
75693
  }
75675
75694
  return t6;
75676
75695
  };
@@ -75959,7 +75978,7 @@ var SectionHeader = (t0) => {
75959
75978
  };
75960
75979
  var matchesBrowserTool = (tool, filterLower) => toDisplayName(tool.name).toLowerCase().includes(filterLower) || tool.name.toLowerCase().includes(filterLower) || tool.description.toLowerCase().includes(filterLower);
75961
75980
  var SearchResults = (t0) => {
75962
- const $ = (0, import_compiler_runtime29.c)(50);
75981
+ const $ = (0, import_compiler_runtime29.c)(52);
75963
75982
  const {
75964
75983
  plugins,
75965
75984
  browserTools,
@@ -75975,6 +75994,7 @@ var SearchResults = (t0) => {
75975
75994
  onUpdate,
75976
75995
  onRemove,
75977
75996
  removingPlugins,
75997
+ pluginErrors,
75978
75998
  serverVersion
75979
75999
  } = t0;
75980
76000
  let installedMatches;
@@ -75982,7 +76002,7 @@ var SearchResults = (t0) => {
75982
76002
  if ($[0] !== browserTools || $[1] !== plugins || $[2] !== toolFilter) {
75983
76003
  const filterLower = toolFilter.toLowerCase();
75984
76004
  installedMatches = filterLower ? plugins.filter((p) => matchesPlugin(p, filterLower)) : plugins;
75985
- t1 = browserTools.length > 0 && (!filterLower || "browser tools".includes(filterLower) || browserTools.some((t) => matchesBrowserTool(t, filterLower)));
76005
+ t1 = browserTools.length > 0 && (!filterLower || "browser".includes(filterLower) || browserTools.some((t) => matchesBrowserTool(t, filterLower)));
75986
76006
  $[0] = browserTools;
75987
76007
  $[1] = plugins;
75988
76008
  $[2] = toolFilter;
@@ -76006,20 +76026,20 @@ var SearchResults = (t0) => {
76006
76026
  let t3;
76007
76027
  let t4;
76008
76028
  let t5;
76009
- if ($[7] !== activeTools || $[8] !== browserTools || $[9] !== hasBrowserToolMatches || $[10] !== installErrors || $[11] !== installedMatches || $[12] !== installedShortNames || $[13] !== installingPlugins || $[14] !== npmResults || $[15] !== npmSearching || $[16] !== onInstall || $[17] !== onRemove || $[18] !== onUpdate || $[19] !== removingPlugins || $[20] !== serverVersion || $[21] !== setBrowserTools || $[22] !== setPlugins || $[23] !== toolFilter) {
76029
+ if ($[7] !== activeTools || $[8] !== browserTools || $[9] !== hasBrowserToolMatches || $[10] !== installErrors || $[11] !== installedMatches || $[12] !== installedShortNames || $[13] !== installingPlugins || $[14] !== npmResults || $[15] !== npmSearching || $[16] !== onInstall || $[17] !== onRemove || $[18] !== onUpdate || $[19] !== pluginErrors || $[20] !== removingPlugins || $[21] !== serverVersion || $[22] !== setBrowserTools || $[23] !== setPlugins || $[24] !== toolFilter) {
76010
76030
  let t62;
76011
- if ($[28] !== installedShortNames) {
76031
+ if ($[29] !== installedShortNames) {
76012
76032
  t62 = (r2) => !installedShortNames.has(extractShortName(r2.name));
76013
- $[28] = installedShortNames;
76014
- $[29] = t62;
76033
+ $[29] = installedShortNames;
76034
+ $[30] = t62;
76015
76035
  } else {
76016
- t62 = $[29];
76036
+ t62 = $[30];
76017
76037
  }
76018
76038
  const availableResults = npmResults.filter(t62);
76019
76039
  const hasInstalledResults = installedMatches.length > 0 || hasBrowserToolMatches;
76020
76040
  showNoResults = toolFilter && !hasInstalledResults && !npmSearching && availableResults.length === 0;
76021
76041
  t3 = "space-y-4";
76022
- if ($[30] !== activeTools || $[31] !== browserTools || $[32] !== hasBrowserToolMatches || $[33] !== hasInstalledResults || $[34] !== installedMatches || $[35] !== onRemove || $[36] !== onUpdate || $[37] !== removingPlugins || $[38] !== serverVersion || $[39] !== setBrowserTools || $[40] !== setPlugins || $[41] !== toolFilter) {
76042
+ if ($[31] !== activeTools || $[32] !== browserTools || $[33] !== hasBrowserToolMatches || $[34] !== hasInstalledResults || $[35] !== installedMatches || $[36] !== onRemove || $[37] !== onUpdate || $[38] !== pluginErrors || $[39] !== removingPlugins || $[40] !== serverVersion || $[41] !== setBrowserTools || $[42] !== setPlugins || $[43] !== toolFilter) {
76023
76043
  t4 = hasInstalledResults && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", {
76024
76044
  children: [/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SectionHeader, {
76025
76045
  children: "Installed"
@@ -76041,24 +76061,26 @@ var SearchResults = (t0) => {
76041
76061
  toolFilter: "",
76042
76062
  onUpdate,
76043
76063
  onRemove,
76044
- removingPlugins
76064
+ removingPlugins,
76065
+ pluginErrors
76045
76066
  })]
76046
76067
  });
76047
- $[30] = activeTools;
76048
- $[31] = browserTools;
76049
- $[32] = hasBrowserToolMatches;
76050
- $[33] = hasInstalledResults;
76051
- $[34] = installedMatches;
76052
- $[35] = onRemove;
76053
- $[36] = onUpdate;
76054
- $[37] = removingPlugins;
76055
- $[38] = serverVersion;
76056
- $[39] = setBrowserTools;
76057
- $[40] = setPlugins;
76058
- $[41] = toolFilter;
76059
- $[42] = t4;
76068
+ $[31] = activeTools;
76069
+ $[32] = browserTools;
76070
+ $[33] = hasBrowserToolMatches;
76071
+ $[34] = hasInstalledResults;
76072
+ $[35] = installedMatches;
76073
+ $[36] = onRemove;
76074
+ $[37] = onUpdate;
76075
+ $[38] = pluginErrors;
76076
+ $[39] = removingPlugins;
76077
+ $[40] = serverVersion;
76078
+ $[41] = setBrowserTools;
76079
+ $[42] = setPlugins;
76080
+ $[43] = toolFilter;
76081
+ $[44] = t4;
76060
76082
  } else {
76061
- t4 = $[42];
76083
+ t4 = $[44];
76062
76084
  }
76063
76085
  t5 = toolFilter && (npmSearching ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", {
76064
76086
  className: "flex justify-center py-4",
@@ -76090,45 +76112,46 @@ var SearchResults = (t0) => {
76090
76112
  $[16] = onInstall;
76091
76113
  $[17] = onRemove;
76092
76114
  $[18] = onUpdate;
76093
- $[19] = removingPlugins;
76094
- $[20] = serverVersion;
76095
- $[21] = setBrowserTools;
76096
- $[22] = setPlugins;
76097
- $[23] = toolFilter;
76098
- $[24] = showNoResults;
76099
- $[25] = t3;
76100
- $[26] = t4;
76101
- $[27] = t5;
76115
+ $[19] = pluginErrors;
76116
+ $[20] = removingPlugins;
76117
+ $[21] = serverVersion;
76118
+ $[22] = setBrowserTools;
76119
+ $[23] = setPlugins;
76120
+ $[24] = toolFilter;
76121
+ $[25] = showNoResults;
76122
+ $[26] = t3;
76123
+ $[27] = t4;
76124
+ $[28] = t5;
76102
76125
  } else {
76103
- showNoResults = $[24];
76104
- t3 = $[25];
76105
- t4 = $[26];
76106
- t5 = $[27];
76126
+ showNoResults = $[25];
76127
+ t3 = $[26];
76128
+ t4 = $[27];
76129
+ t5 = $[28];
76107
76130
  }
76108
76131
  let t6;
76109
- if ($[43] !== showNoResults) {
76132
+ if ($[45] !== showNoResults) {
76110
76133
  t6 = showNoResults && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", {
76111
76134
  className: "text-muted-foreground py-8 text-center text-sm",
76112
76135
  children: "No results"
76113
76136
  });
76114
- $[43] = showNoResults;
76115
- $[44] = t6;
76137
+ $[45] = showNoResults;
76138
+ $[46] = t6;
76116
76139
  } else {
76117
- t6 = $[44];
76140
+ t6 = $[46];
76118
76141
  }
76119
76142
  let t7;
76120
- if ($[45] !== t3 || $[46] !== t4 || $[47] !== t5 || $[48] !== t6) {
76143
+ if ($[47] !== t3 || $[48] !== t4 || $[49] !== t5 || $[50] !== t6) {
76121
76144
  t7 = /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", {
76122
76145
  className: t3,
76123
76146
  children: [t4, t5, t6]
76124
76147
  });
76125
- $[45] = t3;
76126
- $[46] = t4;
76127
- $[47] = t5;
76128
- $[48] = t6;
76129
- $[49] = t7;
76148
+ $[47] = t3;
76149
+ $[48] = t4;
76150
+ $[49] = t5;
76151
+ $[50] = t6;
76152
+ $[51] = t7;
76130
76153
  } else {
76131
- t7 = $[49];
76154
+ t7 = $[51];
76132
76155
  }
76133
76156
  return t7;
76134
76157
  };
@@ -76214,7 +76237,7 @@ var useServerNotifications = (t0) => {
76214
76237
  id: params.id,
76215
76238
  tool: params.tool,
76216
76239
  domain: typeof params.domain === "string" ? params.domain : null,
76217
- tabId: typeof params.tabId === "number" ? params.tabId : void 0,
76240
+ tabId: typeof params.tabId === "number" && Number.isInteger(params.tabId) && params.tabId > 0 ? params.tabId : void 0,
76218
76241
  paramsPreview: typeof params.paramsPreview === "string" ? params.paramsPreview : "",
76219
76242
  timeoutMs: params.timeoutMs,
76220
76243
  receivedAt: Date.now()
@@ -76307,7 +76330,7 @@ function _temp13() {
76307
76330
  var import_react22 = __toESM(require_react(), 1);
76308
76331
  var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
76309
76332
  var App = () => {
76310
- const $ = (0, import_compiler_runtime31.c)(60);
76333
+ const $ = (0, import_compiler_runtime31.c)(68);
76311
76334
  const [connected, setConnected] = (0, import_react22.useState)(false);
76312
76335
  const [disconnectReason, setDisconnectReason] = (0, import_react22.useState)();
76313
76336
  let t0;
@@ -76386,7 +76409,6 @@ var App = () => {
76386
76409
  t8 = $[8];
76387
76410
  }
76388
76411
  const [installErrors, setInstallErrors] = (0, import_react22.useState)(t8);
76389
- const lastFetchRef = (0, import_react22.useRef)(0);
76390
76412
  let t9;
76391
76413
  if ($[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76392
76414
  t9 = /* @__PURE__ */ new Map();
@@ -76394,50 +76416,125 @@ var App = () => {
76394
76416
  } else {
76395
76417
  t9 = $[9];
76396
76418
  }
76397
- const pendingTabStates = (0, import_react22.useRef)(t9);
76419
+ const [pluginErrors, setPluginErrors] = (0, import_react22.useState)(t9);
76420
+ const lastFetchRef = (0, import_react22.useRef)(0);
76421
+ let t10;
76422
+ if ($[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76423
+ t10 = /* @__PURE__ */ new Map();
76424
+ $[10] = t10;
76425
+ } else {
76426
+ t10 = $[10];
76427
+ }
76428
+ const pluginErrorTimers = (0, import_react22.useRef)(t10);
76429
+ let t11;
76430
+ if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76431
+ t11 = /* @__PURE__ */ new Map();
76432
+ $[11] = t11;
76433
+ } else {
76434
+ t11 = $[11];
76435
+ }
76436
+ const pendingTabStates = (0, import_react22.useRef)(t11);
76398
76437
  const npmSearchTimer = (0, import_react22.useRef)(void 0);
76438
+ const npmSearchCounter = (0, import_react22.useRef)(0);
76399
76439
  const connectedRef = (0, import_react22.useRef)(connected);
76400
76440
  const loadingRef = (0, import_react22.useRef)(loading);
76401
76441
  const pluginsRef = (0, import_react22.useRef)(plugins);
76402
76442
  const [pluginsLoaded, setPluginsLoaded] = (0, import_react22.useState)(false);
76403
- let t10;
76404
- let t11;
76405
- if ($[10] !== connected || $[11] !== loading || $[12] !== plugins) {
76406
- t10 = () => {
76443
+ let t12;
76444
+ let t13;
76445
+ if ($[12] !== connected || $[13] !== loading || $[14] !== plugins) {
76446
+ t12 = () => {
76407
76447
  connectedRef.current = connected;
76408
76448
  loadingRef.current = loading;
76409
76449
  pluginsRef.current = plugins;
76410
76450
  };
76411
- t11 = [connected, loading, plugins];
76412
- $[10] = connected;
76413
- $[11] = loading;
76414
- $[12] = plugins;
76415
- $[13] = t10;
76416
- $[14] = t11;
76451
+ t13 = [connected, loading, plugins];
76452
+ $[12] = connected;
76453
+ $[13] = loading;
76454
+ $[14] = plugins;
76455
+ $[15] = t12;
76456
+ $[16] = t13;
76417
76457
  } else {
76418
- t10 = $[13];
76419
- t11 = $[14];
76458
+ t12 = $[15];
76459
+ t13 = $[16];
76420
76460
  }
76421
- (0, import_react22.useEffect)(t10, t11);
76422
- let t12;
76423
- if ($[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76424
- t12 = {
76461
+ (0, import_react22.useEffect)(t12, t13);
76462
+ let t14;
76463
+ if ($[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76464
+ t14 = {
76425
76465
  setPlugins,
76426
76466
  setActiveTools,
76427
76467
  setPendingConfirmations,
76428
76468
  pendingTabStates
76429
76469
  };
76430
- $[15] = t12;
76470
+ $[17] = t14;
76431
76471
  } else {
76432
- t12 = $[15];
76472
+ t14 = $[17];
76433
76473
  }
76434
76474
  const {
76435
76475
  handleNotification,
76436
76476
  clearConfirmationTimeout
76437
- } = useServerNotifications(t12);
76438
- let t13;
76439
- if ($[16] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76440
- t13 = (query) => {
76477
+ } = useServerNotifications(t14);
76478
+ let t15;
76479
+ let t16;
76480
+ if ($[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76481
+ t15 = () => () => {
76482
+ for (const timer of pluginErrorTimers.current.values()) {
76483
+ clearTimeout(timer);
76484
+ }
76485
+ };
76486
+ t16 = [];
76487
+ $[18] = t15;
76488
+ $[19] = t16;
76489
+ } else {
76490
+ t15 = $[18];
76491
+ t16 = $[19];
76492
+ }
76493
+ (0, import_react22.useEffect)(t15, t16);
76494
+ let t17;
76495
+ if ($[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76496
+ t17 = (pluginName, message) => {
76497
+ const existing = pluginErrorTimers.current.get(pluginName);
76498
+ if (existing) {
76499
+ clearTimeout(existing);
76500
+ }
76501
+ setPluginErrors((prev) => new Map(prev).set(pluginName, message));
76502
+ pluginErrorTimers.current.set(pluginName, setTimeout(() => {
76503
+ setPluginErrors((prev_0) => {
76504
+ const next = new Map(prev_0);
76505
+ next.delete(pluginName);
76506
+ return next;
76507
+ });
76508
+ pluginErrorTimers.current.delete(pluginName);
76509
+ }, ERROR_DISPLAY_DURATION_MS));
76510
+ };
76511
+ $[20] = t17;
76512
+ } else {
76513
+ t17 = $[20];
76514
+ }
76515
+ const showPluginError = t17;
76516
+ let t18;
76517
+ if ($[21] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76518
+ t18 = (pluginName_0) => {
76519
+ const existing_0 = pluginErrorTimers.current.get(pluginName_0);
76520
+ if (existing_0) {
76521
+ clearTimeout(existing_0);
76522
+ pluginErrorTimers.current.delete(pluginName_0);
76523
+ }
76524
+ setPluginErrors((prev_1) => {
76525
+ const next_0 = new Map(prev_1);
76526
+ next_0.delete(pluginName_0);
76527
+ return next_0;
76528
+ });
76529
+ };
76530
+ $[21] = t18;
76531
+ } else {
76532
+ t18 = $[21];
76533
+ }
76534
+ const clearPluginError = t18;
76535
+ let t19;
76536
+ if ($[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76537
+ t19 = (query) => {
76441
76538
  setSearchQuery(query);
76442
76539
  clearTimeout(npmSearchTimer.current);
76443
76540
  if (!query.trim()) {
@@ -76446,79 +76543,100 @@ var App = () => {
76446
76543
  return;
76447
76544
  }
76448
76545
  setNpmSearching(true);
76546
+ const searchId = npmSearchCounter.current = npmSearchCounter.current + 1;
76449
76547
  npmSearchTimer.current = setTimeout(() => {
76450
76548
  searchPlugins(query).then((result) => {
76451
- setNpmResults(result.results);
76549
+ if (npmSearchCounter.current === searchId) {
76550
+ setNpmResults(result.results);
76551
+ }
76452
76552
  }).catch(() => {
76453
- setNpmResults([]);
76553
+ if (npmSearchCounter.current === searchId) {
76554
+ setNpmResults([]);
76555
+ }
76454
76556
  }).finally(() => {
76455
- setNpmSearching(false);
76557
+ if (npmSearchCounter.current === searchId) {
76558
+ setNpmSearching(false);
76559
+ }
76456
76560
  });
76457
76561
  }, 400);
76458
76562
  };
76459
- $[16] = t13;
76563
+ $[22] = t19;
76460
76564
  } else {
76461
- t13 = $[16];
76565
+ t19 = $[22];
76462
76566
  }
76463
- const handleSearchChange = t13;
76464
- let t14;
76465
- if ($[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76466
- t14 = (name) => {
76467
- setInstallingPlugins((prev) => new Set(prev).add(name));
76468
- setInstallErrors((prev_0) => {
76469
- const next = new Map(prev_0);
76470
- next.delete(name);
76471
- return next;
76567
+ const handleSearchChange = t19;
76568
+ let t20;
76569
+ if ($[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76570
+ t20 = (name) => {
76571
+ setInstallingPlugins((prev_2) => new Set(prev_2).add(name));
76572
+ setInstallErrors((prev_3) => {
76573
+ const next_1 = new Map(prev_3);
76574
+ next_1.delete(name);
76575
+ return next_1;
76472
76576
  });
76473
76577
  installPlugin(name).then(() => {
76474
- setInstallingPlugins((prev_1) => {
76475
- const next_0 = new Set(prev_1);
76476
- next_0.delete(name);
76477
- return next_0;
76578
+ setInstallingPlugins((prev_4) => {
76579
+ const next_2 = new Set(prev_4);
76580
+ next_2.delete(name);
76581
+ return next_2;
76478
76582
  });
76479
76583
  handleSearchChange("");
76480
76584
  }).catch((err) => {
76481
- setInstallingPlugins((prev_2) => {
76482
- const next_1 = new Set(prev_2);
76483
- next_1.delete(name);
76484
- return next_1;
76585
+ setInstallingPlugins((prev_5) => {
76586
+ const next_3 = new Set(prev_5);
76587
+ next_3.delete(name);
76588
+ return next_3;
76485
76589
  });
76486
- setInstallErrors((prev_3) => new Map(prev_3).set(name, err instanceof Error ? err.message : String(err)));
76590
+ setInstallErrors((prev_6) => new Map(prev_6).set(name, err instanceof Error ? err.message : String(err)));
76487
76591
  });
76488
76592
  };
76489
- $[17] = t14;
76593
+ $[23] = t20;
76490
76594
  } else {
76491
- t14 = $[17];
76595
+ t20 = $[23];
76492
76596
  }
76493
- const handleInstall = t14;
76494
- let t15;
76495
- if ($[18] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76496
- t15 = (pluginName) => {
76497
- setRemovingPlugins((prev_4) => new Set(prev_4).add(pluginName));
76498
- removePlugin(pluginName).then(() => {
76499
- setRemovingPlugins((prev_5) => {
76500
- const next_2 = new Set(prev_5);
76501
- next_2.delete(pluginName);
76502
- return next_2;
76597
+ const handleInstall = t20;
76598
+ let t21;
76599
+ if ($[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76600
+ t21 = (pluginName_1) => {
76601
+ clearPluginError(pluginName_1);
76602
+ setRemovingPlugins((prev_7) => new Set(prev_7).add(pluginName_1));
76603
+ removePlugin(pluginName_1).then(() => {
76604
+ setRemovingPlugins((prev_8) => {
76605
+ const next_4 = new Set(prev_8);
76606
+ next_4.delete(pluginName_1);
76607
+ return next_4;
76503
76608
  });
76504
- }).catch(() => {
76505
- setRemovingPlugins((prev_6) => {
76506
- const next_3 = new Set(prev_6);
76507
- next_3.delete(pluginName);
76508
- return next_3;
76609
+ }).catch((err_0) => {
76610
+ setRemovingPlugins((prev_9) => {
76611
+ const next_5 = new Set(prev_9);
76612
+ next_5.delete(pluginName_1);
76613
+ return next_5;
76509
76614
  });
76615
+ showPluginError(pluginName_1, err_0 instanceof Error ? err_0.message : String(err_0));
76510
76616
  });
76511
76617
  };
76512
- $[18] = t15;
76618
+ $[24] = t21;
76513
76619
  } else {
76514
- t15 = $[18];
76620
+ t21 = $[24];
76621
+ }
76622
+ const handleRemove = t21;
76623
+ let t22;
76624
+ if ($[25] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76625
+ t22 = (pluginName_2) => {
76626
+ clearPluginError(pluginName_2);
76627
+ updatePlugin(pluginName_2).catch((err_1) => {
76628
+ showPluginError(pluginName_2, err_1 instanceof Error ? err_1.message : String(err_1));
76629
+ });
76630
+ };
76631
+ $[25] = t22;
76632
+ } else {
76633
+ t22 = $[25];
76515
76634
  }
76516
- const handleRemove = t15;
76517
- const handleUpdate = _temp28;
76518
- let t16;
76519
- let t17;
76520
- if ($[19] !== handleNotification) {
76521
- t16 = () => {
76635
+ const handleUpdate = t22;
76636
+ let t23;
76637
+ let t24;
76638
+ if ($[26] !== handleNotification) {
76639
+ t23 = () => {
76522
76640
  const loadPlugins = () => {
76523
76641
  const now = Date.now();
76524
76642
  if (now - lastFetchRef.current < 200) {
@@ -76542,16 +76660,16 @@ var App = () => {
76542
76660
  setFailedPlugins(result_0.failedPlugins ?? []);
76543
76661
  setBrowserTools(result_0.browserTools ?? []);
76544
76662
  setServerVersion(result_0.serverVersion);
76545
- setActiveTools((prev_7) => {
76546
- const next_4 = /* @__PURE__ */ new Set();
76547
- for (const key of prev_7) {
76663
+ setActiveTools((prev_10) => {
76664
+ const next_6 = /* @__PURE__ */ new Set();
76665
+ for (const key of prev_10) {
76548
76666
  if (key.startsWith("browser:") || updatedPlugins.some((p_0) => key.startsWith(p_0.name + ":"))) {
76549
- next_4.add(key);
76667
+ next_6.add(key);
76550
76668
  }
76551
76669
  }
76552
- return next_4;
76670
+ return next_6;
76553
76671
  });
76554
- }).catch(_temp36);
76672
+ }).catch(_temp14);
76555
76673
  };
76556
76674
  getConnectionState().then(async (result_1) => {
76557
76675
  setConnected(result_1.connected);
@@ -76563,8 +76681,8 @@ var App = () => {
76563
76681
  }).catch(() => {
76564
76682
  setLoading(false);
76565
76683
  });
76566
- const listener = (message, _sender, sendResponse) => {
76567
- if (message.type === "sp:getState") {
76684
+ const listener = (message_0, _sender, sendResponse) => {
76685
+ if (message_0.type === "sp:getState") {
76568
76686
  const rootEl2 = document.getElementById("root");
76569
76687
  const html = rootEl2 ? rootEl2.innerHTML.slice(0, 5e4) : "";
76570
76688
  const currentPlugins = pluginsRef.current;
@@ -76573,16 +76691,16 @@ var App = () => {
76573
76691
  connected: connectedRef.current,
76574
76692
  loading: loadingRef.current,
76575
76693
  pluginCount: currentPlugins.length,
76576
- plugins: currentPlugins.map(_temp43)
76694
+ plugins: currentPlugins.map(_temp28)
76577
76695
  },
76578
76696
  html
76579
76697
  });
76580
76698
  return true;
76581
76699
  }
76582
- if (message.type === "sp:connectionState") {
76583
- const isConnected = message.data.connected;
76700
+ if (message_0.type === "sp:connectionState") {
76701
+ const isConnected = message_0.data.connected;
76584
76702
  setConnected(isConnected);
76585
- setDisconnectReason(isConnected ? void 0 : message.data.disconnectReason);
76703
+ setDisconnectReason(isConnected ? void 0 : message_0.data.disconnectReason);
76586
76704
  if (isConnected) {
76587
76705
  loadPlugins();
76588
76706
  } else {
@@ -76604,8 +76722,8 @@ var App = () => {
76604
76722
  });
76605
76723
  return true;
76606
76724
  }
76607
- if (message.type === "sp:serverMessage") {
76608
- const data = message.data;
76725
+ if (message_0.type === "sp:serverMessage") {
76726
+ const data = message_0.data;
76609
76727
  if (handleServerResponse(data)) {
76610
76728
  sendResponse({
76611
76729
  ok: true
@@ -76625,8 +76743,8 @@ var App = () => {
76625
76743
  });
76626
76744
  return true;
76627
76745
  }
76628
- if (message.type === "ws:message") {
76629
- const wsData = message.data;
76746
+ if (message_0.type === "ws:message") {
76747
+ const wsData = message_0.data;
76630
76748
  if (wsData?.method === "sync.full") {
76631
76749
  loadPlugins();
76632
76750
  }
@@ -76635,68 +76753,71 @@ var App = () => {
76635
76753
  return false;
76636
76754
  };
76637
76755
  chrome.runtime.onMessage.addListener(listener);
76638
- return () => chrome.runtime.onMessage.removeListener(listener);
76756
+ return () => {
76757
+ clearTimeout(npmSearchTimer.current);
76758
+ chrome.runtime.onMessage.removeListener(listener);
76759
+ };
76639
76760
  };
76640
- t17 = [handleNotification];
76641
- $[19] = handleNotification;
76642
- $[20] = t16;
76643
- $[21] = t17;
76761
+ t24 = [handleNotification];
76762
+ $[26] = handleNotification;
76763
+ $[27] = t23;
76764
+ $[28] = t24;
76644
76765
  } else {
76645
- t16 = $[20];
76646
- t17 = $[21];
76766
+ t23 = $[27];
76767
+ t24 = $[28];
76647
76768
  }
76648
- (0, import_react22.useEffect)(t16, t17);
76649
- let t18;
76650
- if ($[22] !== clearConfirmationTimeout) {
76651
- t18 = (id, decision, scope) => {
76769
+ (0, import_react22.useEffect)(t23, t24);
76770
+ let t25;
76771
+ if ($[29] !== clearConfirmationTimeout) {
76772
+ t25 = (id, decision, scope) => {
76652
76773
  clearConfirmationTimeout(id);
76653
76774
  sendConfirmationResponse(id, decision, scope);
76654
- setPendingConfirmations((prev_8) => prev_8.filter((c) => c.id !== id));
76775
+ setPendingConfirmations((prev_11) => prev_11.filter((c) => c.id !== id));
76655
76776
  };
76656
- $[22] = clearConfirmationTimeout;
76657
- $[23] = t18;
76777
+ $[29] = clearConfirmationTimeout;
76778
+ $[30] = t25;
76658
76779
  } else {
76659
- t18 = $[23];
76780
+ t25 = $[30];
76660
76781
  }
76661
- const handleConfirmationRespond = t18;
76662
- let t19;
76663
- if ($[24] !== clearConfirmationTimeout || $[25] !== pendingConfirmations) {
76664
- t19 = () => {
76782
+ const handleConfirmationRespond = t25;
76783
+ let t26;
76784
+ if ($[31] !== clearConfirmationTimeout || $[32] !== pendingConfirmations) {
76785
+ t26 = () => {
76665
76786
  for (const c_0 of pendingConfirmations) {
76666
76787
  clearConfirmationTimeout(c_0.id);
76667
76788
  sendConfirmationResponse(c_0.id, "deny");
76668
76789
  }
76669
76790
  setPendingConfirmations([]);
76670
76791
  };
76671
- $[24] = clearConfirmationTimeout;
76672
- $[25] = pendingConfirmations;
76673
- $[26] = t19;
76792
+ $[31] = clearConfirmationTimeout;
76793
+ $[32] = pendingConfirmations;
76794
+ $[33] = t26;
76674
76795
  } else {
76675
- t19 = $[26];
76796
+ t26 = $[33];
76676
76797
  }
76677
- const handleDenyAll = t19;
76798
+ const handleDenyAll = t26;
76678
76799
  const hasContent = plugins.length > 0 || failedPlugins.length > 0 || browserTools.length > 0;
76679
76800
  const showPlugins = !loading && connected && (hasContent || !!searchQuery);
76680
76801
  const showSearchBar = connected && !loading;
76681
76802
  const showNoPlugins = pluginsLoaded && !hasContent && !searchQuery;
76682
- let t20;
76683
- if ($[27] !== connected || $[28] !== handleConfirmationRespond || $[29] !== handleDenyAll || $[30] !== pendingConfirmations) {
76684
- t20 = connected && pendingConfirmations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ConfirmationDialog, {
76803
+ let t27;
76804
+ if ($[34] !== connected || $[35] !== handleConfirmationRespond || $[36] !== handleDenyAll || $[37] !== pendingConfirmations) {
76805
+ t27 = connected && pendingConfirmations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ConfirmationDialog, {
76685
76806
  confirmations: pendingConfirmations,
76686
76807
  onRespond: handleConfirmationRespond,
76687
76808
  onDenyAll: handleDenyAll
76688
76809
  });
76689
- $[27] = connected;
76690
- $[28] = handleConfirmationRespond;
76691
- $[29] = handleDenyAll;
76692
- $[30] = pendingConfirmations;
76693
- $[31] = t20;
76810
+ $[34] = connected;
76811
+ $[35] = handleConfirmationRespond;
76812
+ $[36] = handleDenyAll;
76813
+ $[37] = pendingConfirmations;
76814
+ $[38] = t27;
76694
76815
  } else {
76695
- t20 = $[31];
76816
+ t27 = $[38];
76696
76817
  }
76697
- let t21;
76698
- if ($[32] !== searchQuery || $[33] !== showSearchBar) {
76699
- t21 = showSearchBar && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", {
76818
+ let t28;
76819
+ if ($[39] !== searchQuery || $[40] !== showSearchBar) {
76820
+ t28 = showSearchBar && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", {
76700
76821
  className: "pt-4 pr-5 pb-2 pl-4",
76701
76822
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", {
76702
76823
  className: "relative",
@@ -76717,16 +76838,16 @@ var App = () => {
76717
76838
  })]
76718
76839
  })
76719
76840
  });
76720
- $[32] = searchQuery;
76721
- $[33] = showSearchBar;
76722
- $[34] = t21;
76841
+ $[39] = searchQuery;
76842
+ $[40] = showSearchBar;
76843
+ $[41] = t28;
76723
76844
  } else {
76724
- t21 = $[34];
76845
+ t28 = $[41];
76725
76846
  }
76726
- const t22 = `flex-1 pr-5 pb-2 pl-4 ${showSearchBar ? "pt-2" : "pt-4"} ${showPlugins ? "" : "flex items-center justify-center"}`;
76727
- let t23;
76728
- if ($[35] !== activeTools || $[36] !== browserTools || $[37] !== connected || $[38] !== disconnectReason || $[39] !== failedPlugins || $[40] !== hasContent || $[41] !== installErrors || $[42] !== installingPlugins || $[43] !== loading || $[44] !== npmResults || $[45] !== npmSearching || $[46] !== plugins || $[47] !== removingPlugins || $[48] !== searchQuery || $[49] !== serverVersion || $[50] !== showNoPlugins) {
76729
- t23 = loading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LoadingState, {}) : !connected ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(DisconnectedState, {
76847
+ const t29 = `flex-1 pr-5 pb-2 pl-4 ${showSearchBar ? "pt-2" : "pt-4"} ${showPlugins ? "" : "flex items-center justify-center"}`;
76848
+ let t30;
76849
+ if ($[42] !== activeTools || $[43] !== browserTools || $[44] !== connected || $[45] !== disconnectReason || $[46] !== failedPlugins || $[47] !== hasContent || $[48] !== installErrors || $[49] !== installingPlugins || $[50] !== loading || $[51] !== npmResults || $[52] !== npmSearching || $[53] !== pluginErrors || $[54] !== plugins || $[55] !== removingPlugins || $[56] !== searchQuery || $[57] !== serverVersion || $[58] !== showNoPlugins) {
76850
+ t30 = loading ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(LoadingState, {}) : !connected ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(DisconnectedState, {
76730
76851
  reason: disconnectReason
76731
76852
  }) : showNoPlugins ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(NoPluginsState, {}) : searchQuery ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SearchResults, {
76732
76853
  plugins,
@@ -76744,6 +76865,7 @@ var App = () => {
76744
76865
  onUpdate: handleUpdate,
76745
76866
  onRemove: handleRemove,
76746
76867
  removingPlugins,
76868
+ pluginErrors,
76747
76869
  serverVersion
76748
76870
  }) : hasContent ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, {
76749
76871
  children: [browserTools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(AccordionComponent, {
@@ -76763,73 +76885,70 @@ var App = () => {
76763
76885
  toolFilter: "",
76764
76886
  onUpdate: handleUpdate,
76765
76887
  onRemove: handleRemove,
76766
- removingPlugins
76888
+ removingPlugins,
76889
+ pluginErrors
76767
76890
  })]
76768
76891
  }) : null;
76769
- $[35] = activeTools;
76770
- $[36] = browserTools;
76771
- $[37] = connected;
76772
- $[38] = disconnectReason;
76773
- $[39] = failedPlugins;
76774
- $[40] = hasContent;
76775
- $[41] = installErrors;
76776
- $[42] = installingPlugins;
76777
- $[43] = loading;
76778
- $[44] = npmResults;
76779
- $[45] = npmSearching;
76780
- $[46] = plugins;
76781
- $[47] = removingPlugins;
76782
- $[48] = searchQuery;
76783
- $[49] = serverVersion;
76784
- $[50] = showNoPlugins;
76785
- $[51] = t23;
76892
+ $[42] = activeTools;
76893
+ $[43] = browserTools;
76894
+ $[44] = connected;
76895
+ $[45] = disconnectReason;
76896
+ $[46] = failedPlugins;
76897
+ $[47] = hasContent;
76898
+ $[48] = installErrors;
76899
+ $[49] = installingPlugins;
76900
+ $[50] = loading;
76901
+ $[51] = npmResults;
76902
+ $[52] = npmSearching;
76903
+ $[53] = pluginErrors;
76904
+ $[54] = plugins;
76905
+ $[55] = removingPlugins;
76906
+ $[56] = searchQuery;
76907
+ $[57] = serverVersion;
76908
+ $[58] = showNoPlugins;
76909
+ $[59] = t30;
76786
76910
  } else {
76787
- t23 = $[51];
76911
+ t30 = $[59];
76788
76912
  }
76789
- let t24;
76790
- if ($[52] !== t22 || $[53] !== t23) {
76791
- t24 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("main", {
76792
- className: t22,
76793
- children: t23
76913
+ let t31;
76914
+ if ($[60] !== t29 || $[61] !== t30) {
76915
+ t31 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("main", {
76916
+ className: t29,
76917
+ children: t30
76794
76918
  });
76795
- $[52] = t22;
76796
- $[53] = t23;
76797
- $[54] = t24;
76919
+ $[60] = t29;
76920
+ $[61] = t30;
76921
+ $[62] = t31;
76798
76922
  } else {
76799
- t24 = $[54];
76923
+ t31 = $[62];
76800
76924
  }
76801
- let t25;
76802
- if ($[55] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76803
- t25 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Footer, {});
76804
- $[55] = t25;
76925
+ let t32;
76926
+ if ($[63] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
76927
+ t32 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Footer, {});
76928
+ $[63] = t32;
76805
76929
  } else {
76806
- t25 = $[55];
76930
+ t32 = $[63];
76807
76931
  }
76808
- let t26;
76809
- if ($[56] !== t20 || $[57] !== t21 || $[58] !== t24) {
76810
- t26 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipObject.Provider, {
76932
+ let t33;
76933
+ if ($[64] !== t27 || $[65] !== t28 || $[66] !== t31) {
76934
+ t33 = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(TooltipObject.Provider, {
76811
76935
  children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", {
76812
76936
  className: "text-foreground flex min-h-screen flex-col",
76813
- children: [t20, t21, t24, t25]
76937
+ children: [t27, t28, t31, t32]
76814
76938
  })
76815
76939
  });
76816
- $[56] = t20;
76817
- $[57] = t21;
76818
- $[58] = t24;
76819
- $[59] = t26;
76940
+ $[64] = t27;
76941
+ $[65] = t28;
76942
+ $[66] = t31;
76943
+ $[67] = t33;
76820
76944
  } else {
76821
- t26 = $[59];
76945
+ t33 = $[67];
76822
76946
  }
76823
- return t26;
76947
+ return t33;
76824
76948
  };
76825
76949
  function _temp14() {
76826
76950
  }
76827
- function _temp28(pluginName_0) {
76828
- updatePlugin(pluginName_0).catch(_temp14);
76829
- }
76830
- function _temp36() {
76831
- }
76832
- function _temp43(p_1) {
76951
+ function _temp28(p_1) {
76833
76952
  return {
76834
76953
  name: p_1.name,
76835
76954
  tabState: p_1.tabState