@opentabs-dev/browser-extension 0.0.34 → 0.0.35

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 (81) hide show
  1. package/dist/background-message-handlers.d.ts.map +1 -1
  2. package/dist/background-message-handlers.js +13 -4
  3. package/dist/background-message-handlers.js.map +1 -1
  4. package/dist/background.js +231 -114
  5. package/dist/background.js.map +1 -1
  6. package/dist/browser-commands/cookie-commands.js +2 -2
  7. package/dist/browser-commands/cookie-commands.js.map +1 -1
  8. package/dist/browser-commands/extension-commands.d.ts.map +1 -1
  9. package/dist/browser-commands/extension-commands.js +37 -19
  10. package/dist/browser-commands/extension-commands.js.map +1 -1
  11. package/dist/browser-commands/index.d.ts +1 -1
  12. package/dist/browser-commands/index.d.ts.map +1 -1
  13. package/dist/browser-commands/index.js +1 -1
  14. package/dist/browser-commands/index.js.map +1 -1
  15. package/dist/browser-commands/interaction-commands.d.ts.map +1 -1
  16. package/dist/browser-commands/interaction-commands.js +5 -1
  17. package/dist/browser-commands/interaction-commands.js.map +1 -1
  18. package/dist/browser-commands/network-commands.d.ts +1 -0
  19. package/dist/browser-commands/network-commands.d.ts.map +1 -1
  20. package/dist/browser-commands/network-commands.js +16 -2
  21. package/dist/browser-commands/network-commands.js.map +1 -1
  22. package/dist/browser-commands/tab-commands.js +1 -1
  23. package/dist/browser-commands/tab-commands.js.map +1 -1
  24. package/dist/confirmation-badge.d.ts +16 -4
  25. package/dist/confirmation-badge.d.ts.map +1 -1
  26. package/dist/confirmation-badge.js +72 -7
  27. package/dist/confirmation-badge.js.map +1 -1
  28. package/dist/iife-injection.d.ts +1 -6
  29. package/dist/iife-injection.d.ts.map +1 -1
  30. package/dist/iife-injection.js +9 -34
  31. package/dist/iife-injection.js.map +1 -1
  32. package/dist/known-methods.d.ts +2 -2
  33. package/dist/known-methods.d.ts.map +1 -1
  34. package/dist/known-methods.js +1 -0
  35. package/dist/known-methods.js.map +1 -1
  36. package/dist/message-router.d.ts.map +1 -1
  37. package/dist/message-router.js +2 -1
  38. package/dist/message-router.js.map +1 -1
  39. package/dist/network-capture.d.ts +14 -1
  40. package/dist/network-capture.d.ts.map +1 -1
  41. package/dist/network-capture.js +103 -4
  42. package/dist/network-capture.js.map +1 -1
  43. package/dist/offscreen/index.d.ts +1 -1
  44. package/dist/offscreen/index.js +26 -30
  45. package/dist/offscreen/index.js.map +1 -1
  46. package/dist/offscreen/ws-utils.d.ts +8 -0
  47. package/dist/offscreen/ws-utils.d.ts.map +1 -0
  48. package/dist/offscreen/ws-utils.js +30 -0
  49. package/dist/offscreen/ws-utils.js.map +1 -0
  50. package/dist/rate-limiter.d.ts +2 -0
  51. package/dist/rate-limiter.d.ts.map +1 -1
  52. package/dist/rate-limiter.js +6 -0
  53. package/dist/rate-limiter.js.map +1 -1
  54. package/dist/sanitize-svg.d.ts +1 -1
  55. package/dist/sanitize-svg.js +1 -1
  56. package/dist/side-panel/App.d.ts.map +1 -1
  57. package/dist/side-panel/App.js +16 -2
  58. package/dist/side-panel/App.js.map +1 -1
  59. package/dist/side-panel/components/ConfirmationDialog.d.ts +8 -1
  60. package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -1
  61. package/dist/side-panel/components/ConfirmationDialog.js +16 -8
  62. package/dist/side-panel/components/ConfirmationDialog.js.map +1 -1
  63. package/dist/side-panel/components/PluginCard.d.ts.map +1 -1
  64. package/dist/side-panel/components/PluginCard.js +2 -1
  65. package/dist/side-panel/components/PluginCard.js.map +1 -1
  66. package/dist/side-panel/constants.d.ts +2 -0
  67. package/dist/side-panel/constants.d.ts.map +1 -1
  68. package/dist/side-panel/constants.js +2 -0
  69. package/dist/side-panel/constants.js.map +1 -1
  70. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -1
  71. package/dist/side-panel/hooks/useServerNotifications.js +27 -3
  72. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -1
  73. package/dist/side-panel/side-panel.js +4328 -4111
  74. package/dist/side-panel/styles.css +1 -1
  75. package/dist/side-panel-toggle.d.ts.map +1 -1
  76. package/dist/side-panel-toggle.js +21 -6
  77. package/dist/side-panel-toggle.js.map +1 -1
  78. package/dist/tab-state.d.ts.map +1 -1
  79. package/dist/tab-state.js +14 -4
  80. package/dist/tab-state.js.map +1 -1
  81. package/package.json +17 -17
@@ -1,4 +1,5 @@
1
1
  import { VALID_PLUGIN_NAME } from '../../constants.js';
2
+ import { TOOL_INVOCATION_TIMEOUT_MS } from '../constants.js';
2
3
  import { useCallback, useEffect, useRef } from 'react';
3
4
  const validTabStates = new Set(['closed', 'unavailable', 'ready']);
4
5
  /**
@@ -8,13 +9,19 @@ const validTabStates = new Set(['closed', 'unavailable', 'ready']);
8
9
  */
9
10
  const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirmations, pendingTabStates, }) => {
10
11
  const timeoutIds = useRef(new Map());
12
+ const invocationTimeoutIds = useRef(new Map());
11
13
  useEffect(() => {
12
- const map = timeoutIds.current;
14
+ const confirmationMap = timeoutIds.current;
15
+ const invocationMap = invocationTimeoutIds.current;
13
16
  return () => {
14
- for (const id of map.values()) {
17
+ for (const id of confirmationMap.values()) {
15
18
  clearTimeout(id);
16
19
  }
17
- map.clear();
20
+ confirmationMap.clear();
21
+ for (const id of invocationMap.values()) {
22
+ clearTimeout(id);
23
+ }
24
+ invocationMap.clear();
18
25
  };
19
26
  }, []);
20
27
  const clearConfirmationTimeout = useCallback((id) => {
@@ -71,6 +78,18 @@ const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirma
71
78
  VALID_PLUGIN_NAME.test(params.plugin)) {
72
79
  const toolKey = `${params.plugin}:${params.tool}`;
73
80
  setActiveTools(prev => new Set(prev).add(toolKey));
81
+ const existingTid = invocationTimeoutIds.current.get(toolKey);
82
+ if (existingTid !== undefined)
83
+ clearTimeout(existingTid);
84
+ const tid = setTimeout(() => {
85
+ invocationTimeoutIds.current.delete(toolKey);
86
+ setActiveTools(prev => {
87
+ const next = new Set(prev);
88
+ next.delete(toolKey);
89
+ return next;
90
+ });
91
+ }, TOOL_INVOCATION_TIMEOUT_MS);
92
+ invocationTimeoutIds.current.set(toolKey, tid);
74
93
  }
75
94
  }
76
95
  if (data.method === 'tool.invocationEnd' && data.params) {
@@ -79,6 +98,11 @@ const useServerNotifications = ({ setPlugins, setActiveTools, setPendingConfirma
79
98
  typeof params.tool === 'string' &&
80
99
  VALID_PLUGIN_NAME.test(params.plugin)) {
81
100
  const toolKey = `${params.plugin}:${params.tool}`;
101
+ const tid = invocationTimeoutIds.current.get(toolKey);
102
+ if (tid !== undefined) {
103
+ clearTimeout(tid);
104
+ invocationTimeoutIds.current.delete(toolKey);
105
+ }
82
106
  setActiveTools(prev => {
83
107
  const next = new Set(prev);
84
108
  next.delete(toolKey);
@@ -1 +1 @@
1
- {"version":3,"file":"useServerNotifications.js","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useServerNotifications.js","sourceRoot":"","sources":["../../../src/side-panel/hooks/useServerNotifications.ts"],"names":[],"mappings":"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"}