@opentabs-dev/browser-extension 0.0.34

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 (305) hide show
  1. package/dist/background-log-state.d.ts +10 -0
  2. package/dist/background-log-state.d.ts.map +1 -0
  3. package/dist/background-log-state.js +11 -0
  4. package/dist/background-log-state.js.map +1 -0
  5. package/dist/background-message-handlers.d.ts +41 -0
  6. package/dist/background-message-handlers.d.ts.map +1 -0
  7. package/dist/background-message-handlers.js +214 -0
  8. package/dist/background-message-handlers.js.map +1 -0
  9. package/dist/background.d.ts +2 -0
  10. package/dist/background.d.ts.map +1 -0
  11. package/dist/background.js +3780 -0
  12. package/dist/background.js.map +1 -0
  13. package/dist/bg-log-state.d.ts +10 -0
  14. package/dist/bg-log-state.d.ts.map +1 -0
  15. package/dist/bg-log-state.js +11 -0
  16. package/dist/bg-log-state.js.map +1 -0
  17. package/dist/browser-commands/content-commands.d.ts +25 -0
  18. package/dist/browser-commands/content-commands.d.ts.map +1 -0
  19. package/dist/browser-commands/content-commands.js +166 -0
  20. package/dist/browser-commands/content-commands.js.map +1 -0
  21. package/dist/browser-commands/cookie-commands.d.ts +14 -0
  22. package/dist/browser-commands/cookie-commands.d.ts.map +1 -0
  23. package/dist/browser-commands/cookie-commands.js +99 -0
  24. package/dist/browser-commands/cookie-commands.js.map +1 -0
  25. package/dist/browser-commands/extension-commands.d.ts +12 -0
  26. package/dist/browser-commands/extension-commands.d.ts.map +1 -0
  27. package/dist/browser-commands/extension-commands.js +386 -0
  28. package/dist/browser-commands/extension-commands.js.map +1 -0
  29. package/dist/browser-commands/helpers.d.ts +35 -0
  30. package/dist/browser-commands/helpers.d.ts.map +1 -0
  31. package/dist/browser-commands/helpers.js +121 -0
  32. package/dist/browser-commands/helpers.js.map +1 -0
  33. package/dist/browser-commands/index.d.ts +11 -0
  34. package/dist/browser-commands/index.d.ts.map +1 -0
  35. package/dist/browser-commands/index.js +10 -0
  36. package/dist/browser-commands/index.js.map +1 -0
  37. package/dist/browser-commands/interaction-commands.d.ts +23 -0
  38. package/dist/browser-commands/interaction-commands.d.ts.map +1 -0
  39. package/dist/browser-commands/interaction-commands.js +353 -0
  40. package/dist/browser-commands/interaction-commands.js.map +1 -0
  41. package/dist/browser-commands/key-press-command.d.ts +2 -0
  42. package/dist/browser-commands/key-press-command.d.ts.map +1 -0
  43. package/dist/browser-commands/key-press-command.js +144 -0
  44. package/dist/browser-commands/key-press-command.js.map +1 -0
  45. package/dist/browser-commands/network-commands.d.ts +6 -0
  46. package/dist/browser-commands/network-commands.d.ts.map +1 -0
  47. package/dist/browser-commands/network-commands.js +69 -0
  48. package/dist/browser-commands/network-commands.js.map +1 -0
  49. package/dist/browser-commands/resource-commands.d.ts +37 -0
  50. package/dist/browser-commands/resource-commands.d.ts.map +1 -0
  51. package/dist/browser-commands/resource-commands.js +153 -0
  52. package/dist/browser-commands/resource-commands.js.map +1 -0
  53. package/dist/browser-commands/scroll-command.d.ts +2 -0
  54. package/dist/browser-commands/scroll-command.d.ts.map +1 -0
  55. package/dist/browser-commands/scroll-command.js +133 -0
  56. package/dist/browser-commands/scroll-command.js.map +1 -0
  57. package/dist/browser-commands/tab-commands.d.ts +33 -0
  58. package/dist/browser-commands/tab-commands.d.ts.map +1 -0
  59. package/dist/browser-commands/tab-commands.js +121 -0
  60. package/dist/browser-commands/tab-commands.js.map +1 -0
  61. package/dist/browser-commands.d.ts +36 -0
  62. package/dist/browser-commands.d.ts.map +1 -0
  63. package/dist/browser-commands.js +1931 -0
  64. package/dist/browser-commands.js.map +1 -0
  65. package/dist/confirmation-badge.d.ts +17 -0
  66. package/dist/confirmation-badge.d.ts.map +1 -0
  67. package/dist/confirmation-badge.js +64 -0
  68. package/dist/confirmation-badge.js.map +1 -0
  69. package/dist/constants.d.ts +79 -0
  70. package/dist/constants.d.ts.map +1 -0
  71. package/dist/constants.js +79 -0
  72. package/dist/constants.js.map +1 -0
  73. package/dist/dispatch-helpers.d.ts +61 -0
  74. package/dist/dispatch-helpers.d.ts.map +1 -0
  75. package/dist/dispatch-helpers.js +149 -0
  76. package/dist/dispatch-helpers.js.map +1 -0
  77. package/dist/extension-messages.d.ts +146 -0
  78. package/dist/extension-messages.d.ts.map +1 -0
  79. package/dist/extension-messages.js +2 -0
  80. package/dist/extension-messages.js.map +1 -0
  81. package/dist/iife-injection.d.ts +55 -0
  82. package/dist/iife-injection.d.ts.map +1 -0
  83. package/dist/iife-injection.js +474 -0
  84. package/dist/iife-injection.js.map +1 -0
  85. package/dist/json-rpc-errors.d.ts +8 -0
  86. package/dist/json-rpc-errors.d.ts.map +1 -0
  87. package/dist/json-rpc-errors.js +8 -0
  88. package/dist/json-rpc-errors.js.map +1 -0
  89. package/dist/known-methods.d.ts +19 -0
  90. package/dist/known-methods.d.ts.map +1 -0
  91. package/dist/known-methods.js +68 -0
  92. package/dist/known-methods.js.map +1 -0
  93. package/dist/log-collector.d.ts +45 -0
  94. package/dist/log-collector.d.ts.map +1 -0
  95. package/dist/log-collector.js +99 -0
  96. package/dist/log-collector.js.map +1 -0
  97. package/dist/message-router.d.ts +28 -0
  98. package/dist/message-router.d.ts.map +1 -0
  99. package/dist/message-router.js +367 -0
  100. package/dist/message-router.js.map +1 -0
  101. package/dist/messaging.d.ts +15 -0
  102. package/dist/messaging.d.ts.map +1 -0
  103. package/dist/messaging.js +41 -0
  104. package/dist/messaging.js.map +1 -0
  105. package/dist/network-capture.d.ts +56 -0
  106. package/dist/network-capture.d.ts.map +1 -0
  107. package/dist/network-capture.js +374 -0
  108. package/dist/network-capture.js.map +1 -0
  109. package/dist/offscreen/index.d.ts +16 -0
  110. package/dist/offscreen/index.d.ts.map +1 -0
  111. package/dist/offscreen/index.js +549 -0
  112. package/dist/offscreen/index.js.map +1 -0
  113. package/dist/plugin-storage.d.ts +19 -0
  114. package/dist/plugin-storage.d.ts.map +1 -0
  115. package/dist/plugin-storage.js +100 -0
  116. package/dist/plugin-storage.js.map +1 -0
  117. package/dist/rate-limiter.d.ts +18 -0
  118. package/dist/rate-limiter.d.ts.map +1 -0
  119. package/dist/rate-limiter.js +53 -0
  120. package/dist/rate-limiter.js.map +1 -0
  121. package/dist/resource-prompt-dispatch.d.ts +14 -0
  122. package/dist/resource-prompt-dispatch.d.ts.map +1 -0
  123. package/dist/resource-prompt-dispatch.js +195 -0
  124. package/dist/resource-prompt-dispatch.js.map +1 -0
  125. package/dist/sanitize-error.d.ts +8 -0
  126. package/dist/sanitize-error.d.ts.map +1 -0
  127. package/dist/sanitize-error.js +25 -0
  128. package/dist/sanitize-error.js.map +1 -0
  129. package/dist/sanitize-svg.d.ts +20 -0
  130. package/dist/sanitize-svg.d.ts.map +1 -0
  131. package/dist/sanitize-svg.js +296 -0
  132. package/dist/sanitize-svg.js.map +1 -0
  133. package/dist/side-panel/App.d.ts +3 -0
  134. package/dist/side-panel/App.d.ts.map +1 -0
  135. package/dist/side-panel/App.js +147 -0
  136. package/dist/side-panel/App.js.map +1 -0
  137. package/dist/side-panel/bridge.d.ts +50 -0
  138. package/dist/side-panel/bridge.d.ts.map +1 -0
  139. package/dist/side-panel/bridge.js +113 -0
  140. package/dist/side-panel/bridge.js.map +1 -0
  141. package/dist/side-panel/components/ConfirmationDialog.d.ts +16 -0
  142. package/dist/side-panel/components/ConfirmationDialog.d.ts.map +1 -0
  143. package/dist/side-panel/components/ConfirmationDialog.js +39 -0
  144. package/dist/side-panel/components/ConfirmationDialog.js.map +1 -0
  145. package/dist/side-panel/components/EmptyStates.d.ts +8 -0
  146. package/dist/side-panel/components/EmptyStates.d.ts.map +1 -0
  147. package/dist/side-panel/components/EmptyStates.js +40 -0
  148. package/dist/side-panel/components/EmptyStates.js.map +1 -0
  149. package/dist/side-panel/components/ErrorBoundary.d.ts +23 -0
  150. package/dist/side-panel/components/ErrorBoundary.d.ts.map +1 -0
  151. package/dist/side-panel/components/ErrorBoundary.js +28 -0
  152. package/dist/side-panel/components/ErrorBoundary.js.map +1 -0
  153. package/dist/side-panel/components/FailedPluginCard.d.ts +6 -0
  154. package/dist/side-panel/components/FailedPluginCard.d.ts.map +1 -0
  155. package/dist/side-panel/components/FailedPluginCard.js +9 -0
  156. package/dist/side-panel/components/FailedPluginCard.js.map +1 -0
  157. package/dist/side-panel/components/Footer.d.ts +3 -0
  158. package/dist/side-panel/components/Footer.d.ts.map +1 -0
  159. package/dist/side-panel/components/Footer.js +32 -0
  160. package/dist/side-panel/components/Footer.js.map +1 -0
  161. package/dist/side-panel/components/Header.d.ts +5 -0
  162. package/dist/side-panel/components/Header.d.ts.map +1 -0
  163. package/dist/side-panel/components/Header.js +6 -0
  164. package/dist/side-panel/components/Header.js.map +1 -0
  165. package/dist/side-panel/components/PluginCard.d.ts +10 -0
  166. package/dist/side-panel/components/PluginCard.d.ts.map +1 -0
  167. package/dist/side-panel/components/PluginCard.js +50 -0
  168. package/dist/side-panel/components/PluginCard.js.map +1 -0
  169. package/dist/side-panel/components/PluginIcon.d.ts +21 -0
  170. package/dist/side-panel/components/PluginIcon.d.ts.map +1 -0
  171. package/dist/side-panel/components/PluginIcon.js +48 -0
  172. package/dist/side-panel/components/PluginIcon.js.map +1 -0
  173. package/dist/side-panel/components/PluginList.d.ts +11 -0
  174. package/dist/side-panel/components/PluginList.d.ts.map +1 -0
  175. package/dist/side-panel/components/PluginList.js +17 -0
  176. package/dist/side-panel/components/PluginList.js.map +1 -0
  177. package/dist/side-panel/components/ToolIcon.d.ts +7 -0
  178. package/dist/side-panel/components/ToolIcon.d.ts.map +1 -0
  179. package/dist/side-panel/components/ToolIcon.js +8 -0
  180. package/dist/side-panel/components/ToolIcon.js.map +1 -0
  181. package/dist/side-panel/components/ToolRow.d.ts +11 -0
  182. package/dist/side-panel/components/ToolRow.d.ts.map +1 -0
  183. package/dist/side-panel/components/ToolRow.js +8 -0
  184. package/dist/side-panel/components/ToolRow.js.map +1 -0
  185. package/dist/side-panel/components/VersionMismatchBanner.d.ts +3 -0
  186. package/dist/side-panel/components/VersionMismatchBanner.d.ts.map +1 -0
  187. package/dist/side-panel/components/VersionMismatchBanner.js +5 -0
  188. package/dist/side-panel/components/VersionMismatchBanner.js.map +1 -0
  189. package/dist/side-panel/components/retro/Accordion.d.ts +8 -0
  190. package/dist/side-panel/components/retro/Accordion.d.ts.map +1 -0
  191. package/dist/side-panel/components/retro/Accordion.js +15 -0
  192. package/dist/side-panel/components/retro/Accordion.js.map +1 -0
  193. package/dist/side-panel/components/retro/Alert.d.ts +25 -0
  194. package/dist/side-panel/components/retro/Alert.d.ts.map +1 -0
  195. package/dist/side-panel/components/retro/Alert.js +33 -0
  196. package/dist/side-panel/components/retro/Alert.js.map +1 -0
  197. package/dist/side-panel/components/retro/Badge.d.ts +15 -0
  198. package/dist/side-panel/components/retro/Badge.d.ts.map +1 -0
  199. package/dist/side-panel/components/retro/Badge.js +23 -0
  200. package/dist/side-panel/components/retro/Badge.js.map +1 -0
  201. package/dist/side-panel/components/retro/Button.d.ts +13 -0
  202. package/dist/side-panel/components/retro/Button.d.ts.map +1 -0
  203. package/dist/side-panel/components/retro/Button.js +33 -0
  204. package/dist/side-panel/components/retro/Button.js.map +1 -0
  205. package/dist/side-panel/components/retro/Empty.d.ts +31 -0
  206. package/dist/side-panel/components/retro/Empty.d.ts.map +1 -0
  207. package/dist/side-panel/components/retro/Empty.js +25 -0
  208. package/dist/side-panel/components/retro/Empty.js.map +1 -0
  209. package/dist/side-panel/components/retro/Input.d.ts +8 -0
  210. package/dist/side-panel/components/retro/Input.d.ts.map +1 -0
  211. package/dist/side-panel/components/retro/Input.js +7 -0
  212. package/dist/side-panel/components/retro/Input.js.map +1 -0
  213. package/dist/side-panel/components/retro/Loader.d.ts +14 -0
  214. package/dist/side-panel/components/retro/Loader.d.ts.map +1 -0
  215. package/dist/side-panel/components/retro/Loader.js +30 -0
  216. package/dist/side-panel/components/retro/Loader.js.map +1 -0
  217. package/dist/side-panel/components/retro/Menu.d.ts +9 -0
  218. package/dist/side-panel/components/retro/Menu.d.ts.map +1 -0
  219. package/dist/side-panel/components/retro/Menu.js +17 -0
  220. package/dist/side-panel/components/retro/Menu.js.map +1 -0
  221. package/dist/side-panel/components/retro/NumberStepper.d.ts +18 -0
  222. package/dist/side-panel/components/retro/NumberStepper.d.ts.map +1 -0
  223. package/dist/side-panel/components/retro/NumberStepper.js +38 -0
  224. package/dist/side-panel/components/retro/NumberStepper.js.map +1 -0
  225. package/dist/side-panel/components/retro/Progress.d.ts +9 -0
  226. package/dist/side-panel/components/retro/Progress.d.ts.map +1 -0
  227. package/dist/side-panel/components/retro/Progress.js +6 -0
  228. package/dist/side-panel/components/retro/Progress.js.map +1 -0
  229. package/dist/side-panel/components/retro/Switch.d.ts +4 -0
  230. package/dist/side-panel/components/retro/Switch.d.ts.map +1 -0
  231. package/dist/side-panel/components/retro/Switch.js +6 -0
  232. package/dist/side-panel/components/retro/Switch.js.map +1 -0
  233. package/dist/side-panel/components/retro/Text.d.ts +11 -0
  234. package/dist/side-panel/components/retro/Text.d.ts.map +1 -0
  235. package/dist/side-panel/components/retro/Text.js +28 -0
  236. package/dist/side-panel/components/retro/Text.js.map +1 -0
  237. package/dist/side-panel/components/retro/Tooltip.d.ts +12 -0
  238. package/dist/side-panel/components/retro/Tooltip.d.ts.map +1 -0
  239. package/dist/side-panel/components/retro/Tooltip.js +32 -0
  240. package/dist/side-panel/components/retro/Tooltip.js.map +1 -0
  241. package/dist/side-panel/constants.d.ts +5 -0
  242. package/dist/side-panel/constants.d.ts.map +1 -0
  243. package/dist/side-panel/constants.js +5 -0
  244. package/dist/side-panel/constants.js.map +1 -0
  245. package/dist/side-panel/hooks/useServerNotifications.d.ts +21 -0
  246. package/dist/side-panel/hooks/useServerNotifications.d.ts.map +1 -0
  247. package/dist/side-panel/hooks/useServerNotifications.js +93 -0
  248. package/dist/side-panel/hooks/useServerNotifications.js.map +1 -0
  249. package/dist/side-panel/hooks/useTheme.d.ts +8 -0
  250. package/dist/side-panel/hooks/useTheme.d.ts.map +1 -0
  251. package/dist/side-panel/hooks/useTheme.js +30 -0
  252. package/dist/side-panel/hooks/useTheme.js.map +1 -0
  253. package/dist/side-panel/index.d.ts +2 -0
  254. package/dist/side-panel/index.d.ts.map +1 -0
  255. package/dist/side-panel/index.js +12 -0
  256. package/dist/side-panel/index.js.map +1 -0
  257. package/dist/side-panel/lib/cn.d.ts +3 -0
  258. package/dist/side-panel/lib/cn.d.ts.map +1 -0
  259. package/dist/side-panel/lib/cn.js +4 -0
  260. package/dist/side-panel/lib/cn.js.map +1 -0
  261. package/dist/side-panel/lib/utils.d.ts +3 -0
  262. package/dist/side-panel/lib/utils.d.ts.map +1 -0
  263. package/dist/side-panel/lib/utils.js +4 -0
  264. package/dist/side-panel/lib/utils.js.map +1 -0
  265. package/dist/side-panel/side-panel.js +78034 -0
  266. package/dist/side-panel/styles.css +2 -0
  267. package/dist/side-panel-state.d.ts +11 -0
  268. package/dist/side-panel-state.d.ts.map +1 -0
  269. package/dist/side-panel-state.js +38 -0
  270. package/dist/side-panel-state.js.map +1 -0
  271. package/dist/side-panel-toggle.d.ts +3 -0
  272. package/dist/side-panel-toggle.d.ts.map +1 -0
  273. package/dist/side-panel-toggle.js +31 -0
  274. package/dist/side-panel-toggle.js.map +1 -0
  275. package/dist/tab-matching.d.ts +51 -0
  276. package/dist/tab-matching.d.ts.map +1 -0
  277. package/dist/tab-matching.js +160 -0
  278. package/dist/tab-matching.js.map +1 -0
  279. package/dist/tab-state.d.ts +56 -0
  280. package/dist/tab-state.d.ts.map +1 -0
  281. package/dist/tab-state.js +282 -0
  282. package/dist/tab-state.js.map +1 -0
  283. package/dist/tool-dispatch.d.ts +19 -0
  284. package/dist/tool-dispatch.d.ts.map +1 -0
  285. package/dist/tool-dispatch.js +336 -0
  286. package/dist/tool-dispatch.js.map +1 -0
  287. package/dist/types.d.ts +82 -0
  288. package/dist/types.d.ts.map +1 -0
  289. package/dist/types.js +2 -0
  290. package/dist/types.js.map +1 -0
  291. package/icons/icon-128.png +0 -0
  292. package/icons/icon-16.png +0 -0
  293. package/icons/icon-32.png +0 -0
  294. package/icons/icon-48.png +0 -0
  295. package/icons/icon.svg +6 -0
  296. package/manifest.json +38 -0
  297. package/offscreen/offscreen.html +10 -0
  298. package/package.json +49 -0
  299. package/side-panel/dark-mode.js +29 -0
  300. package/side-panel/fonts/archivo-black-latin.woff2 +0 -0
  301. package/side-panel/fonts/space-grotesk-latin.woff2 +0 -0
  302. package/side-panel/fonts/space-mono-400-latin.woff2 +0 -0
  303. package/side-panel/fonts/space-mono-700-latin.woff2 +0 -0
  304. package/side-panel/fonts.css +34 -0
  305. package/side-panel/side-panel.html +16 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background.js","sourceRoot":"","sources":["../src/background.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Background script log collector instance.
3
+ *
4
+ * Extracted to a separate module so both background.ts and browser-commands.ts
5
+ * can access the log collector without circular imports (background.ts imports
6
+ * message-router.ts which imports browser-commands.ts).
7
+ */
8
+ declare const bgLogCollector: import("./log-collector.js").LogCollector;
9
+ export { bgLogCollector };
10
+ //# sourceMappingURL=bg-log-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bg-log-state.d.ts","sourceRoot":"","sources":["../src/bg-log-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,QAAA,MAAM,cAAc,2CAAoC,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Background script log collector instance.
3
+ *
4
+ * Extracted to a separate module so both background.ts and browser-commands.ts
5
+ * can access the log collector without circular imports (background.ts imports
6
+ * message-router.ts which imports browser-commands.ts).
7
+ */
8
+ import { installLogCollector } from './log-collector.js';
9
+ const bgLogCollector = installLogCollector('background');
10
+ export { bgLogCollector };
11
+ //# sourceMappingURL=bg-log-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bg-log-state.js","sourceRoot":"","sources":["../src/bg-log-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Extracts the innerText of a DOM element in a tab's page context.
3
+ * @param params - Expects `{ tabId: number, selector?: string, maxLength?: number }`. Defaults to `body` selector and 50000 max length.
4
+ * @returns `{ title, url, content }` with the element's trimmed text content.
5
+ */
6
+ export declare const handleBrowserGetTabContent: (params: Record<string, unknown>, id: string | number) => Promise<void>;
7
+ /**
8
+ * Returns the outerHTML of a DOM element in a tab's page context.
9
+ * @param params - Expects `{ tabId: number, selector?: string, maxLength?: number }`. Defaults to `html` selector and 200000 max length.
10
+ * @returns `{ title, url, html }` with the element's outer HTML, truncated if exceeding maxLength.
11
+ */
12
+ export declare const handleBrowserGetPageHtml: (params: Record<string, unknown>, id: string | number) => Promise<void>;
13
+ /**
14
+ * Reads localStorage or sessionStorage from a tab's page context.
15
+ * @param params - Expects `{ tabId: number, storageType?: 'local' | 'session', key?: string }`. Without `key`, returns all entries up to a size limit.
16
+ * @returns A single `{ key, value }` when key is provided, or `{ entries, count }` for all entries.
17
+ */
18
+ export declare const handleBrowserGetStorage: (params: Record<string, unknown>, id: string | number) => Promise<void>;
19
+ /**
20
+ * Captures a PNG screenshot of a tab by focusing it and using chrome.tabs.captureVisibleTab.
21
+ * @param params - Expects `{ tabId: number }`.
22
+ * @returns `{ image: string }` containing the base64-encoded PNG data.
23
+ */
24
+ export declare const handleBrowserScreenshotTab: (params: Record<string, unknown>, id: string | number) => Promise<void>;
25
+ //# sourceMappingURL=content-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-commands.d.ts","sourceRoot":"","sources":["../../src/browser-commands/content-commands.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,MAAM,GAAG,MAAM,KAClB,OAAO,CAAC,IAAI,CA4Bd,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CA6BjH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAgEhH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,MAAM,GAAG,MAAM,KAClB,OAAO,CAAC,IAAI,CAiBd,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { extractScriptResult, requireTabId, sendErrorResult, sendSuccessResult, sendValidationError, } from './helpers.js';
2
+ import { SCREENSHOT_RENDER_DELAY_MS } from '../constants.js';
3
+ /**
4
+ * Extracts the innerText of a DOM element in a tab's page context.
5
+ * @param params - Expects `{ tabId: number, selector?: string, maxLength?: number }`. Defaults to `body` selector and 50000 max length.
6
+ * @returns `{ title, url, content }` with the element's trimmed text content.
7
+ */
8
+ export const handleBrowserGetTabContent = async (params, id) => {
9
+ try {
10
+ const tabId = requireTabId(params, id);
11
+ if (tabId === null)
12
+ return;
13
+ const selector = typeof params.selector === 'string' ? params.selector : 'body';
14
+ const maxLength = typeof params.maxLength === 'number' ? params.maxLength : 50000;
15
+ const results = await chrome.scripting.executeScript({
16
+ target: { tabId },
17
+ world: 'MAIN',
18
+ func: (sel, max) => {
19
+ const el = document.querySelector(sel);
20
+ if (!el)
21
+ return { error: `Element not found: ${sel}` };
22
+ return {
23
+ title: document.title,
24
+ url: document.URL,
25
+ content: (el.innerText || '').trim().slice(0, max),
26
+ };
27
+ },
28
+ args: [selector, maxLength],
29
+ });
30
+ const result = extractScriptResult(results, id);
31
+ if (!result)
32
+ return;
33
+ sendSuccessResult(id, { title: result.title, url: result.url, content: result.content });
34
+ }
35
+ catch (err) {
36
+ sendErrorResult(id, err);
37
+ }
38
+ };
39
+ /**
40
+ * Returns the outerHTML of a DOM element in a tab's page context.
41
+ * @param params - Expects `{ tabId: number, selector?: string, maxLength?: number }`. Defaults to `html` selector and 200000 max length.
42
+ * @returns `{ title, url, html }` with the element's outer HTML, truncated if exceeding maxLength.
43
+ */
44
+ export const handleBrowserGetPageHtml = async (params, id) => {
45
+ try {
46
+ const tabId = requireTabId(params, id);
47
+ if (tabId === null)
48
+ return;
49
+ const selector = typeof params.selector === 'string' ? params.selector : 'html';
50
+ const maxLength = typeof params.maxLength === 'number' ? params.maxLength : 200000;
51
+ const results = await chrome.scripting.executeScript({
52
+ target: { tabId },
53
+ world: 'MAIN',
54
+ func: (sel, max) => {
55
+ const el = document.querySelector(sel);
56
+ if (!el)
57
+ return { error: `Element not found: ${sel}` };
58
+ const html = el.outerHTML;
59
+ return {
60
+ title: document.title,
61
+ url: document.URL,
62
+ html: html.length > max ? html.slice(0, max) + '... (truncated)' : html,
63
+ };
64
+ },
65
+ args: [selector, maxLength],
66
+ });
67
+ const result = extractScriptResult(results, id);
68
+ if (!result)
69
+ return;
70
+ sendSuccessResult(id, { title: result.title, url: result.url, html: result.html });
71
+ }
72
+ catch (err) {
73
+ sendErrorResult(id, err);
74
+ }
75
+ };
76
+ /**
77
+ * Reads localStorage or sessionStorage from a tab's page context.
78
+ * @param params - Expects `{ tabId: number, storageType?: 'local' | 'session', key?: string }`. Without `key`, returns all entries up to a size limit.
79
+ * @returns A single `{ key, value }` when key is provided, or `{ entries, count }` for all entries.
80
+ */
81
+ export const handleBrowserGetStorage = async (params, id) => {
82
+ try {
83
+ const tabId = requireTabId(params, id);
84
+ if (tabId === null)
85
+ return;
86
+ const storageType = typeof params.storageType === 'string' ? params.storageType : 'local';
87
+ if (storageType !== 'local' && storageType !== 'session') {
88
+ sendValidationError(id, "storageType must be 'local' or 'session'");
89
+ return;
90
+ }
91
+ const key = typeof params.key === 'string' ? params.key : undefined;
92
+ const MAX_VALUE_LENGTH = 10000;
93
+ const MAX_RESPONSE_LENGTH = 500_000;
94
+ const results = await chrome.scripting.executeScript({
95
+ target: { tabId },
96
+ world: 'MAIN',
97
+ func: (type, k, maxVal, maxResp) => {
98
+ const storage = type === 'session' ? window.sessionStorage : window.localStorage;
99
+ if (k !== null) {
100
+ const value = storage.getItem(k);
101
+ return {
102
+ mode: 'single',
103
+ key: k,
104
+ value: value !== null && value.length > maxVal ? value.slice(0, maxVal) + '... (truncated)' : value,
105
+ };
106
+ }
107
+ const entries = [];
108
+ let totalLength = 0;
109
+ const keys = Object.keys(storage);
110
+ for (const entryKey of keys) {
111
+ const raw = storage.getItem(entryKey);
112
+ if (raw === null)
113
+ continue;
114
+ const value = raw.length > maxVal ? raw.slice(0, maxVal) + '... (truncated)' : raw;
115
+ const entryLength = entryKey.length + value.length;
116
+ if (totalLength + entryLength > maxResp)
117
+ break;
118
+ entries.push({ key: entryKey, value });
119
+ totalLength += entryLength;
120
+ }
121
+ return { mode: 'all', entries, count: keys.length };
122
+ },
123
+ args: [storageType, key ?? null, MAX_VALUE_LENGTH, MAX_RESPONSE_LENGTH],
124
+ });
125
+ const result = results[0]?.result;
126
+ if (!result) {
127
+ sendErrorResult(id, new Error('No result from script execution'));
128
+ return;
129
+ }
130
+ if (result.mode === 'single') {
131
+ sendSuccessResult(id, { key: result.key, value: result.value });
132
+ }
133
+ else {
134
+ sendSuccessResult(id, { entries: result.entries, count: result.count });
135
+ }
136
+ }
137
+ catch (err) {
138
+ sendErrorResult(id, err);
139
+ }
140
+ };
141
+ /**
142
+ * Captures a PNG screenshot of a tab by focusing it and using chrome.tabs.captureVisibleTab.
143
+ * @param params - Expects `{ tabId: number }`.
144
+ * @returns `{ image: string }` containing the base64-encoded PNG data.
145
+ */
146
+ export const handleBrowserScreenshotTab = async (params, id) => {
147
+ try {
148
+ const tabId = requireTabId(params, id);
149
+ if (tabId === null)
150
+ return;
151
+ const tab = await chrome.tabs.update(tabId, { active: true });
152
+ if (!tab) {
153
+ sendValidationError(id, `Tab ${tabId} not found`);
154
+ return;
155
+ }
156
+ await chrome.windows.update(tab.windowId, { focused: true });
157
+ await new Promise(resolve => setTimeout(resolve, SCREENSHOT_RENDER_DELAY_MS));
158
+ const dataUrl = await chrome.tabs.captureVisibleTab(tab.windowId, { format: 'png' });
159
+ const base64 = dataUrl.replace(/^data:image\/png;base64,/, '');
160
+ sendSuccessResult(id, { image: base64 });
161
+ }
162
+ catch (err) {
163
+ sendErrorResult(id, err);
164
+ }
165
+ };
166
+ //# sourceMappingURL=content-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-commands.js","sourceRoot":"","sources":["../../src/browser-commands/content-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,MAA+B,EAC/B,EAAmB,EACJ,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAElF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YACnD,MAAM,EAAE,EAAE,KAAK,EAAE;YACjB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;gBACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE;oBAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC;gBACvD,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,OAAO,EAAE,CAAE,EAAkB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBACpE,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,MAA+B,EAAE,EAAmB,EAAiB,EAAE;IACpH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAEnF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YACnD,MAAM,EAAE,EAAE,KAAK,EAAE;YACjB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;gBACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE;oBAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;gBAC1B,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI;iBACxE,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,MAA+B,EAAE,EAAmB,EAAiB,EAAE;IACnH,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1F,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACzD,mBAAmB,CAAC,EAAE,EAAE,0CAA0C,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,MAAM,gBAAgB,GAAG,KAAK,CAAC;QAC/B,MAAM,mBAAmB,GAAG,OAAO,CAAC;QAEpC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;YACnD,MAAM,EAAE,EAAE,KAAK,EAAE;YACjB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,CAAC,IAAY,EAAE,CAAgB,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;gBACxE,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;gBAEjF,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACf,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACjC,OAAO;wBACL,IAAI,EAAE,QAAiB;wBACvB,GAAG,EAAE,CAAC;wBACN,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK;qBACpG,CAAC;gBACJ,CAAC;gBAED,MAAM,OAAO,GAA0C,EAAE,CAAC;gBAC1D,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;oBAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACtC,IAAI,GAAG,KAAK,IAAI;wBAAE,SAAS;oBAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;oBACnF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;oBACnD,IAAI,WAAW,GAAG,WAAW,GAAG,OAAO;wBAAE,MAAM;oBAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;oBACvC,WAAW,IAAI,WAAW,CAAC;gBAC7B,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,KAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/D,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;SACxE,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAGd,CAAC;QAEd,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,eAAe,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,MAA+B,EAC/B,EAAmB,EACJ,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,mBAAmB,CAAC,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC/D,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Retrieves cookies for a URL, optionally filtered by cookie name.
3
+ * @param params - Expects `{ url: string, name?: string }`. Rejects blocked URL schemes.
4
+ * @returns `{ cookies }` array with name, value, domain, path, secure, httpOnly, sameSite, and expirationDate.
5
+ */
6
+ export declare const handleBrowserGetCookies: (params: Record<string, unknown>, id: string | number) => Promise<void>;
7
+ /**
8
+ * Sets a cookie with the specified name, value, and optional attributes (domain, path, secure, httpOnly, expirationDate).
9
+ * @param params - Expects `{ url: string, name: string, value: string, domain?: string, path?: string, secure?: boolean, httpOnly?: boolean, expirationDate?: number }`.
10
+ * @returns The cookie as set by Chrome, including all resolved attributes.
11
+ */
12
+ export declare const handleBrowserSetCookie: (params: Record<string, unknown>, id: string | number) => Promise<void>;
13
+ export declare const handleBrowserDeleteCookies: (params: Record<string, unknown>, id: string | number) => Promise<void>;
14
+ //# sourceMappingURL=cookie-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-commands.d.ts","sourceRoot":"","sources":["../../src/browser-commands/cookie-commands.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAyBhH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAmC/G,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,MAAM,GAAG,MAAM,KAClB,OAAO,CAAC,IAAI,CAWd,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { requireStringParam, requireUrl, sendErrorResult, sendSuccessResult, sendValidationError } from './helpers.js';
2
+ /**
3
+ * Retrieves cookies for a URL, optionally filtered by cookie name.
4
+ * @param params - Expects `{ url: string, name?: string }`. Rejects blocked URL schemes.
5
+ * @returns `{ cookies }` array with name, value, domain, path, secure, httpOnly, sameSite, and expirationDate.
6
+ */
7
+ export const handleBrowserGetCookies = async (params, id) => {
8
+ try {
9
+ const url = requireUrl(params, id);
10
+ if (url === null)
11
+ return;
12
+ const filter = { url };
13
+ const name = params.name;
14
+ if (typeof name === 'string') {
15
+ filter.name = name;
16
+ }
17
+ const cookies = await chrome.cookies.getAll(filter);
18
+ sendSuccessResult(id, {
19
+ cookies: cookies.map(c => ({
20
+ name: c.name,
21
+ value: c.value,
22
+ domain: c.domain,
23
+ path: c.path,
24
+ secure: c.secure,
25
+ httpOnly: c.httpOnly,
26
+ sameSite: c.sameSite,
27
+ expirationDate: c.expirationDate,
28
+ })),
29
+ });
30
+ }
31
+ catch (err) {
32
+ sendErrorResult(id, err);
33
+ }
34
+ };
35
+ /**
36
+ * Sets a cookie with the specified name, value, and optional attributes (domain, path, secure, httpOnly, expirationDate).
37
+ * @param params - Expects `{ url: string, name: string, value: string, domain?: string, path?: string, secure?: boolean, httpOnly?: boolean, expirationDate?: number }`.
38
+ * @returns The cookie as set by Chrome, including all resolved attributes.
39
+ */
40
+ export const handleBrowserSetCookie = async (params, id) => {
41
+ try {
42
+ const url = requireUrl(params, id);
43
+ if (url === null)
44
+ return;
45
+ const name = requireStringParam(params, 'name', id);
46
+ if (name === null)
47
+ return;
48
+ const value = params.value;
49
+ if (typeof value !== 'string') {
50
+ sendValidationError(id, 'Missing or invalid value parameter');
51
+ return;
52
+ }
53
+ const details = { url, name, value };
54
+ if (typeof params.domain === 'string')
55
+ details.domain = params.domain;
56
+ if (typeof params.path === 'string')
57
+ details.path = params.path;
58
+ if (typeof params.secure === 'boolean')
59
+ details.secure = params.secure;
60
+ if (typeof params.httpOnly === 'boolean')
61
+ details.httpOnly = params.httpOnly;
62
+ if (typeof params.expirationDate === 'number')
63
+ details.expirationDate = params.expirationDate;
64
+ const cookie = await chrome.cookies.set(details);
65
+ if (!cookie) {
66
+ sendErrorResult(id, new Error('Failed to set cookie'));
67
+ return;
68
+ }
69
+ sendSuccessResult(id, {
70
+ name: cookie.name,
71
+ value: cookie.value,
72
+ domain: cookie.domain,
73
+ path: cookie.path,
74
+ secure: cookie.secure,
75
+ httpOnly: cookie.httpOnly,
76
+ sameSite: cookie.sameSite,
77
+ expirationDate: cookie.expirationDate,
78
+ });
79
+ }
80
+ catch (err) {
81
+ sendErrorResult(id, err);
82
+ }
83
+ };
84
+ export const handleBrowserDeleteCookies = async (params, id) => {
85
+ try {
86
+ const url = requireUrl(params, id);
87
+ if (url === null)
88
+ return;
89
+ const name = requireStringParam(params, 'name', id);
90
+ if (name === null)
91
+ return;
92
+ await chrome.cookies.remove({ url, name });
93
+ sendSuccessResult(id, { deleted: true, name, url });
94
+ }
95
+ catch (err) {
96
+ sendErrorResult(id, err);
97
+ }
98
+ };
99
+ //# sourceMappingURL=cookie-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie-commands.js","sourceRoot":"","sources":["../../src/browser-commands/cookie-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const handleExtensionGetState: (id: string | number) => Promise<void>;
2
+ export declare const handleExtensionGetLogs: (params: Record<string, unknown>, id: string | number) => Promise<void>;
3
+ export declare const handleExtensionGetSidePanel: (id: string | number) => Promise<void>;
4
+ export declare const handleExtensionCheckAdapter: (params: Record<string, unknown>, id: string | number) => Promise<void>;
5
+ export declare const handleExtensionForceReconnect: (id: string | number) => Promise<void>;
6
+ /**
7
+ * Executes a pre-written JavaScript file in a tab's MAIN world, supporting both sync and async code.
8
+ * @param params - Expects `{ tabId: number, execFile: string }` where execFile matches the `__exec-<uuid>.js` pattern.
9
+ * @returns The script's return value, serialized as JSON. Async scripts are polled until resolved or timed out.
10
+ */
11
+ export declare const handleBrowserExecuteScript: (params: Record<string, unknown>, id: string | number) => Promise<void>;
12
+ //# sourceMappingURL=extension-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-commands.d.ts","sourceRoot":"","sources":["../../src/browser-commands/extension-commands.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,uBAAuB,GAAU,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAqD/E,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CA8D/G,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAU,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAkBnF,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,MAAM,GAAG,MAAM,KAClB,OAAO,CAAC,IAAI,CA0Id,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAU,IAAI,MAAM,GAAG,MAAM,KAAG,OAAO,CAAC,IAAI,CAiBrF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,MAAM,GAAG,MAAM,KAClB,OAAO,CAAC,IAAI,CAwHd,CAAC"}