@addonova/browser 0.0.0-stage → 0.2.0

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 (327) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +693 -2
  3. package/dist/adapters/chrome/index.d.ts +9 -0
  4. package/dist/adapters/chrome/index.d.ts.map +1 -0
  5. package/dist/adapters/chrome/index.js +12 -0
  6. package/dist/adapters/chrome/index.js.map +1 -0
  7. package/dist/adapters/chromium/index.d.ts +12 -0
  8. package/dist/adapters/chromium/index.d.ts.map +1 -0
  9. package/dist/adapters/chromium/index.js +12 -0
  10. package/dist/adapters/chromium/index.js.map +1 -0
  11. package/dist/adapters/edge/index.d.ts +11 -0
  12. package/dist/adapters/edge/index.d.ts.map +1 -0
  13. package/dist/adapters/edge/index.js +13 -0
  14. package/dist/adapters/edge/index.js.map +1 -0
  15. package/dist/adapters/firefox/index.d.ts +10 -0
  16. package/dist/adapters/firefox/index.d.ts.map +1 -0
  17. package/dist/adapters/firefox/index.js +12 -0
  18. package/dist/adapters/firefox/index.js.map +1 -0
  19. package/dist/adapters/shared/adapter.d.ts +13 -0
  20. package/dist/adapters/shared/adapter.d.ts.map +1 -0
  21. package/dist/adapters/shared/adapter.js +24 -0
  22. package/dist/adapters/shared/adapter.js.map +1 -0
  23. package/dist/adapters/shared/namespace.d.ts +4 -0
  24. package/dist/adapters/shared/namespace.d.ts.map +1 -0
  25. package/dist/adapters/shared/namespace.js +20 -0
  26. package/dist/adapters/shared/namespace.js.map +1 -0
  27. package/dist/adapters/types.d.ts +10 -0
  28. package/dist/adapters/types.d.ts.map +1 -0
  29. package/dist/adapters/types.js +2 -0
  30. package/dist/adapters/types.js.map +1 -0
  31. package/dist/api/action/index.d.ts +6 -0
  32. package/dist/api/action/index.d.ts.map +1 -0
  33. package/dist/api/action/index.js +56 -0
  34. package/dist/api/action/index.js.map +1 -0
  35. package/dist/api/alarms/index.d.ts +5 -0
  36. package/dist/api/alarms/index.d.ts.map +1 -0
  37. package/dist/api/alarms/index.js +34 -0
  38. package/dist/api/alarms/index.js.map +1 -0
  39. package/dist/api/bookmarks/index.d.ts +5 -0
  40. package/dist/api/bookmarks/index.d.ts.map +1 -0
  41. package/dist/api/bookmarks/index.js +39 -0
  42. package/dist/api/bookmarks/index.js.map +1 -0
  43. package/dist/api/browser.d.ts +3 -0
  44. package/dist/api/browser.d.ts.map +1 -0
  45. package/dist/api/browser.js +2 -0
  46. package/dist/api/browser.js.map +1 -0
  47. package/dist/api/commands/index.d.ts +5 -0
  48. package/dist/api/commands/index.d.ts.map +1 -0
  49. package/dist/api/commands/index.js +12 -0
  50. package/dist/api/commands/index.js.map +1 -0
  51. package/dist/api/context-menus/index.d.ts +5 -0
  52. package/dist/api/context-menus/index.d.ts.map +1 -0
  53. package/dist/api/context-menus/index.js +21 -0
  54. package/dist/api/context-menus/index.js.map +1 -0
  55. package/dist/api/cookies/index.d.ts +5 -0
  56. package/dist/api/cookies/index.d.ts.map +1 -0
  57. package/dist/api/cookies/index.js +21 -0
  58. package/dist/api/cookies/index.js.map +1 -0
  59. package/dist/api/downloads/index.d.ts +5 -0
  60. package/dist/api/downloads/index.d.ts.map +1 -0
  61. package/dist/api/downloads/index.js +20 -0
  62. package/dist/api/downloads/index.js.map +1 -0
  63. package/dist/api/helpers.d.ts +17 -0
  64. package/dist/api/helpers.d.ts.map +1 -0
  65. package/dist/api/helpers.js +100 -0
  66. package/dist/api/helpers.js.map +1 -0
  67. package/dist/api/i18n/index.d.ts +5 -0
  68. package/dist/api/i18n/index.d.ts.map +1 -0
  69. package/dist/api/i18n/index.js +17 -0
  70. package/dist/api/i18n/index.js.map +1 -0
  71. package/dist/api/lazy-adapter.d.ts +5 -0
  72. package/dist/api/lazy-adapter.d.ts.map +1 -0
  73. package/dist/api/lazy-adapter.js +37 -0
  74. package/dist/api/lazy-adapter.js.map +1 -0
  75. package/dist/api/notifications/index.d.ts +5 -0
  76. package/dist/api/notifications/index.d.ts.map +1 -0
  77. package/dist/api/notifications/index.js +27 -0
  78. package/dist/api/notifications/index.js.map +1 -0
  79. package/dist/api/permissions/index.d.ts +5 -0
  80. package/dist/api/permissions/index.d.ts.map +1 -0
  81. package/dist/api/permissions/index.js +24 -0
  82. package/dist/api/permissions/index.js.map +1 -0
  83. package/dist/api/runtime/index.d.ts +5 -0
  84. package/dist/api/runtime/index.d.ts.map +1 -0
  85. package/dist/api/runtime/index.js +38 -0
  86. package/dist/api/runtime/index.js.map +1 -0
  87. package/dist/api/scripting/index.d.ts +5 -0
  88. package/dist/api/scripting/index.d.ts.map +1 -0
  89. package/dist/api/scripting/index.js +15 -0
  90. package/dist/api/scripting/index.js.map +1 -0
  91. package/dist/api/sessions/index.d.ts +5 -0
  92. package/dist/api/sessions/index.d.ts.map +1 -0
  93. package/dist/api/sessions/index.js +19 -0
  94. package/dist/api/sessions/index.js.map +1 -0
  95. package/dist/api/singletons.d.ts +40 -0
  96. package/dist/api/singletons.d.ts.map +1 -0
  97. package/dist/api/singletons.js +60 -0
  98. package/dist/api/singletons.js.map +1 -0
  99. package/dist/api/storage/area.d.ts +4 -0
  100. package/dist/api/storage/area.d.ts.map +1 -0
  101. package/dist/api/storage/area.js +29 -0
  102. package/dist/api/storage/area.js.map +1 -0
  103. package/dist/api/storage/index.d.ts +7 -0
  104. package/dist/api/storage/index.d.ts.map +1 -0
  105. package/dist/api/storage/index.js +37 -0
  106. package/dist/api/storage/index.js.map +1 -0
  107. package/dist/api/storage/item.d.ts +4 -0
  108. package/dist/api/storage/item.d.ts.map +1 -0
  109. package/dist/api/storage/item.js +109 -0
  110. package/dist/api/storage/item.js.map +1 -0
  111. package/dist/api/tabs/index.d.ts +5 -0
  112. package/dist/api/tabs/index.d.ts.map +1 -0
  113. package/dist/api/tabs/index.js +49 -0
  114. package/dist/api/tabs/index.js.map +1 -0
  115. package/dist/api/web-navigation/index.d.ts +5 -0
  116. package/dist/api/web-navigation/index.d.ts.map +1 -0
  117. package/dist/api/web-navigation/index.js +30 -0
  118. package/dist/api/web-navigation/index.js.map +1 -0
  119. package/dist/api/web-request/index.d.ts +5 -0
  120. package/dist/api/web-request/index.d.ts.map +1 -0
  121. package/dist/api/web-request/index.js +27 -0
  122. package/dist/api/web-request/index.js.map +1 -0
  123. package/dist/api/windows/index.d.ts +5 -0
  124. package/dist/api/windows/index.d.ts.map +1 -0
  125. package/dist/api/windows/index.js +27 -0
  126. package/dist/api/windows/index.js.map +1 -0
  127. package/dist/browser/detect.d.ts +19 -0
  128. package/dist/browser/detect.d.ts.map +1 -0
  129. package/dist/browser/detect.js +89 -0
  130. package/dist/browser/detect.js.map +1 -0
  131. package/dist/browser/info.d.ts +17 -0
  132. package/dist/browser/info.d.ts.map +1 -0
  133. package/dist/browser/info.js +77 -0
  134. package/dist/browser/info.js.map +1 -0
  135. package/dist/browser/resolve.d.ts +9 -0
  136. package/dist/browser/resolve.d.ts.map +1 -0
  137. package/dist/browser/resolve.js +57 -0
  138. package/dist/browser/resolve.js.map +1 -0
  139. package/dist/browser/support.d.ts +8 -0
  140. package/dist/browser/support.d.ts.map +1 -0
  141. package/dist/browser/support.js +18 -0
  142. package/dist/browser/support.js.map +1 -0
  143. package/dist/build/target.d.ts +5 -0
  144. package/dist/build/target.d.ts.map +1 -0
  145. package/dist/build/target.js +21 -0
  146. package/dist/build/target.js.map +1 -0
  147. package/dist/content/context.d.ts +24 -0
  148. package/dist/content/context.d.ts.map +1 -0
  149. package/dist/content/context.js +157 -0
  150. package/dist/content/context.js.map +1 -0
  151. package/dist/content/index.d.ts +7 -0
  152. package/dist/content/index.d.ts.map +1 -0
  153. package/dist/content/index.js +4 -0
  154. package/dist/content/index.js.map +1 -0
  155. package/dist/content/inject-root.d.ts +2 -0
  156. package/dist/content/inject-root.d.ts.map +1 -0
  157. package/dist/content/inject-root.js +4 -0
  158. package/dist/content/inject-root.js.map +1 -0
  159. package/dist/content/inject-script.d.ts +16 -0
  160. package/dist/content/inject-script.d.ts.map +1 -0
  161. package/dist/content/inject-script.js +39 -0
  162. package/dist/content/inject-script.js.map +1 -0
  163. package/dist/content/ui.d.ts +50 -0
  164. package/dist/content/ui.d.ts.map +1 -0
  165. package/dist/content/ui.js +331 -0
  166. package/dist/content/ui.js.map +1 -0
  167. package/dist/entries/chrome.d.ts +52 -0
  168. package/dist/entries/chrome.d.ts.map +1 -0
  169. package/dist/entries/chrome.js +101 -0
  170. package/dist/entries/chrome.js.map +1 -0
  171. package/dist/entries/chromium.d.ts +52 -0
  172. package/dist/entries/chromium.d.ts.map +1 -0
  173. package/dist/entries/chromium.js +102 -0
  174. package/dist/entries/chromium.js.map +1 -0
  175. package/dist/entries/edge.d.ts +52 -0
  176. package/dist/entries/edge.d.ts.map +1 -0
  177. package/dist/entries/edge.js +101 -0
  178. package/dist/entries/edge.js.map +1 -0
  179. package/dist/entries/firefox.d.ts +52 -0
  180. package/dist/entries/firefox.d.ts.map +1 -0
  181. package/dist/entries/firefox.js +100 -0
  182. package/dist/entries/firefox.js.map +1 -0
  183. package/dist/entries/info.d.ts +5 -0
  184. package/dist/entries/info.d.ts.map +1 -0
  185. package/dist/entries/info.js +21 -0
  186. package/dist/entries/info.js.map +1 -0
  187. package/dist/entries/shared-exports.d.ts +20 -0
  188. package/dist/entries/shared-exports.d.ts.map +1 -0
  189. package/dist/entries/shared-exports.js +10 -0
  190. package/dist/entries/shared-exports.js.map +1 -0
  191. package/dist/entries/support.d.ts +6 -0
  192. package/dist/entries/support.d.ts.map +1 -0
  193. package/dist/entries/support.js +16 -0
  194. package/dist/entries/support.js.map +1 -0
  195. package/dist/entries/utilities.d.ts +6 -0
  196. package/dist/entries/utilities.d.ts.map +1 -0
  197. package/dist/entries/utilities.js +7 -0
  198. package/dist/entries/utilities.js.map +1 -0
  199. package/dist/i18n/index.d.ts +16 -0
  200. package/dist/i18n/index.d.ts.map +1 -0
  201. package/dist/i18n/index.js +52 -0
  202. package/dist/i18n/index.js.map +1 -0
  203. package/dist/index.d.ts +30 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +17 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/messaging/index.d.ts +22 -0
  208. package/dist/messaging/index.d.ts.map +1 -0
  209. package/dist/messaging/index.js +100 -0
  210. package/dist/messaging/index.js.map +1 -0
  211. package/dist/messaging/proxy.d.ts +17 -0
  212. package/dist/messaging/proxy.d.ts.map +1 -0
  213. package/dist/messaging/proxy.js +61 -0
  214. package/dist/messaging/proxy.js.map +1 -0
  215. package/dist/messaging/root.d.ts +4 -0
  216. package/dist/messaging/root.d.ts.map +1 -0
  217. package/dist/messaging/root.js +9 -0
  218. package/dist/messaging/root.js.map +1 -0
  219. package/dist/shared/capabilities.d.ts +25 -0
  220. package/dist/shared/capabilities.d.ts.map +1 -0
  221. package/dist/shared/capabilities.js +41 -0
  222. package/dist/shared/capabilities.js.map +1 -0
  223. package/dist/shared/errors.d.ts +18 -0
  224. package/dist/shared/errors.d.ts.map +1 -0
  225. package/dist/shared/errors.js +32 -0
  226. package/dist/shared/errors.js.map +1 -0
  227. package/dist/shared/events.d.ts +11 -0
  228. package/dist/shared/events.d.ts.map +1 -0
  229. package/dist/shared/events.js +19 -0
  230. package/dist/shared/events.js.map +1 -0
  231. package/dist/shared/objects.d.ts +4 -0
  232. package/dist/shared/objects.d.ts.map +1 -0
  233. package/dist/shared/objects.js +14 -0
  234. package/dist/shared/objects.js.map +1 -0
  235. package/dist/shared/promises.d.ts +11 -0
  236. package/dist/shared/promises.d.ts.map +1 -0
  237. package/dist/shared/promises.js +70 -0
  238. package/dist/shared/promises.js.map +1 -0
  239. package/dist/testing/fake-browser.d.ts +184 -0
  240. package/dist/testing/fake-browser.d.ts.map +1 -0
  241. package/dist/testing/fake-browser.js +994 -0
  242. package/dist/testing/fake-browser.js.map +1 -0
  243. package/dist/testing/index.d.ts +3 -0
  244. package/dist/testing/index.d.ts.map +1 -0
  245. package/dist/testing/index.js +2 -0
  246. package/dist/testing/index.js.map +1 -0
  247. package/dist/testing/setup.d.ts +2 -0
  248. package/dist/testing/setup.d.ts.map +1 -0
  249. package/dist/testing/setup.js +6 -0
  250. package/dist/testing/setup.js.map +1 -0
  251. package/dist/types/action.d.ts +35 -0
  252. package/dist/types/action.d.ts.map +1 -0
  253. package/dist/types/action.js +2 -0
  254. package/dist/types/action.js.map +1 -0
  255. package/dist/types/alarms.d.ts +21 -0
  256. package/dist/types/alarms.d.ts.map +1 -0
  257. package/dist/types/alarms.js +2 -0
  258. package/dist/types/alarms.js.map +1 -0
  259. package/dist/types/bookmarks.d.ts +57 -0
  260. package/dist/types/bookmarks.d.ts.map +1 -0
  261. package/dist/types/bookmarks.js +2 -0
  262. package/dist/types/bookmarks.js.map +1 -0
  263. package/dist/types/commands.d.ts +11 -0
  264. package/dist/types/commands.d.ts.map +1 -0
  265. package/dist/types/commands.js +2 -0
  266. package/dist/types/commands.js.map +1 -0
  267. package/dist/types/context-menus.d.ts +48 -0
  268. package/dist/types/context-menus.d.ts.map +1 -0
  269. package/dist/types/context-menus.js +2 -0
  270. package/dist/types/context-menus.js.map +1 -0
  271. package/dist/types/cookies.d.ts +54 -0
  272. package/dist/types/cookies.d.ts.map +1 -0
  273. package/dist/types/cookies.js +2 -0
  274. package/dist/types/cookies.js.map +1 -0
  275. package/dist/types/downloads.d.ts +43 -0
  276. package/dist/types/downloads.d.ts.map +1 -0
  277. package/dist/types/downloads.js +2 -0
  278. package/dist/types/downloads.js.map +1 -0
  279. package/dist/types/i18n.d.ts +14 -0
  280. package/dist/types/i18n.d.ts.map +1 -0
  281. package/dist/types/i18n.js +2 -0
  282. package/dist/types/i18n.js.map +1 -0
  283. package/dist/types/index.d.ts +19 -0
  284. package/dist/types/index.d.ts.map +1 -0
  285. package/dist/types/index.js +2 -0
  286. package/dist/types/index.js.map +1 -0
  287. package/dist/types/notifications.d.ts +35 -0
  288. package/dist/types/notifications.d.ts.map +1 -0
  289. package/dist/types/notifications.js +2 -0
  290. package/dist/types/notifications.js.map +1 -0
  291. package/dist/types/permissions.d.ts +14 -0
  292. package/dist/types/permissions.d.ts.map +1 -0
  293. package/dist/types/permissions.js +2 -0
  294. package/dist/types/permissions.js.map +1 -0
  295. package/dist/types/runtime.d.ts +58 -0
  296. package/dist/types/runtime.d.ts.map +1 -0
  297. package/dist/types/runtime.js +2 -0
  298. package/dist/types/runtime.js.map +1 -0
  299. package/dist/types/scripting.d.ts +30 -0
  300. package/dist/types/scripting.d.ts.map +1 -0
  301. package/dist/types/scripting.js +2 -0
  302. package/dist/types/scripting.js.map +1 -0
  303. package/dist/types/sessions.d.ts +28 -0
  304. package/dist/types/sessions.d.ts.map +1 -0
  305. package/dist/types/sessions.js +2 -0
  306. package/dist/types/sessions.js.map +1 -0
  307. package/dist/types/storage.d.ts +51 -0
  308. package/dist/types/storage.d.ts.map +1 -0
  309. package/dist/types/storage.js +2 -0
  310. package/dist/types/storage.js.map +1 -0
  311. package/dist/types/tabs.d.ts +96 -0
  312. package/dist/types/tabs.d.ts.map +1 -0
  313. package/dist/types/tabs.js +2 -0
  314. package/dist/types/tabs.js.map +1 -0
  315. package/dist/types/web-navigation.d.ts +28 -0
  316. package/dist/types/web-navigation.d.ts.map +1 -0
  317. package/dist/types/web-navigation.js +2 -0
  318. package/dist/types/web-navigation.js.map +1 -0
  319. package/dist/types/web-request.d.ts +20 -0
  320. package/dist/types/web-request.d.ts.map +1 -0
  321. package/dist/types/web-request.js +2 -0
  322. package/dist/types/web-request.js.map +1 -0
  323. package/dist/types/windows.d.ts +52 -0
  324. package/dist/types/windows.d.ts.map +1 -0
  325. package/dist/types/windows.js +2 -0
  326. package/dist/types/windows.js.map +1 -0
  327. package/package.json +97 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/browser/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAMhD,IAAI,aAAgD,CAAC;AAErD,MAAM,UAAU,cAAc,CAC5B,OAAO,GAA0B,EAAE;IAEnC,MAAM,QAAQ,GACZ,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3B,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAE/B,IAAI,QAAQ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,QAAQ,EAAE,CAAC;QACb,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,aAAa,GAAG,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAA8B;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,aAAa,CAAC;QAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,WAAW,EAAE,MAAM,KAAK,MAAM;KAC/B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzD,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;IAC1B,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;IAE9C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;QACtE,KAAK,UAAU;YACb,OAAO,qBAAqB,CAAC;gBAC3B,MAAM,EAAE,UAAU;gBAClB,GAAG;gBACH,eAAe;gBACf,aAAa;aACd,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,iBAAiB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,KAAK,SAAS;YACZ,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;QACxD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { normalizeQuery } from '../shared/capabilities.ts';
2
+ import type { ApiAvailability, CapabilityQuery } from '../shared/capabilities.ts';
3
+ import type { DetectBrowserOptions } from './detect.ts';
4
+ export { normalizeQuery };
5
+ export declare function isBrowserSupported(options?: DetectBrowserOptions): boolean;
6
+ export declare function supports(api: string | CapabilityQuery, options?: DetectBrowserOptions): boolean;
7
+ export declare function getAvailability(api: string | CapabilityQuery, options?: DetectBrowserOptions): ApiAvailability;
8
+ //# sourceMappingURL=support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/browser/support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAET;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAGT;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,eAAe,EAC7B,OAAO,GAAE,oBAAyB,GACjC,eAAe,CAOjB"}
@@ -0,0 +1,18 @@
1
+ import { normalizeQuery, unavailableCapability, } from '../shared/capabilities.js';
2
+ import { resolveAdapter } from './resolve.js';
3
+ export { normalizeQuery };
4
+ export function isBrowserSupported(options = {}) {
5
+ return resolveAdapter(options) !== null;
6
+ }
7
+ export function supports(api, options = {}) {
8
+ const adapter = resolveAdapter(options);
9
+ return adapter === null ? false : adapter.supports(normalizeQuery(api));
10
+ }
11
+ export function getAvailability(api, options = {}) {
12
+ const query = normalizeQuery(api);
13
+ const adapter = resolveAdapter(options);
14
+ return adapter === null
15
+ ? unavailableCapability(query, 'unsupported-browser')
16
+ : adapter.availability(query);
17
+ }
18
+ //# sourceMappingURL=support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.js","sourceRoot":"","sources":["../../src/browser/support.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,kBAAkB,CAChC,OAAO,GAAyB,EAAE;IAElC,OAAO,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,GAA6B,EAC7B,OAAO,GAAyB,EAAE;IAElC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAA6B,EAC7B,OAAO,GAAyB,EAAE;IAElC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,OAAO,KAAK,IAAI;QACrB,CAAC,CAAC,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,CAAC;QACrD,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BrowserTarget } from '../shared/capabilities.ts';
2
+ export type CompileTarget = BrowserTarget | 'auto';
3
+ export declare function normalizeCompileTarget(value: unknown): CompileTarget;
4
+ export declare function getCompileTarget(read?: () => unknown): CompileTarget;
5
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../src/build/target.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;AAInD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAMpE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,MAAM,OAA2B,GACtC,aAAa,CAMf"}
@@ -0,0 +1,21 @@
1
+ import { isBrowserTarget } from '../shared/capabilities.js';
2
+ export function normalizeCompileTarget(value) {
3
+ if (value === 'auto' || value === undefined || value === null || value === '') {
4
+ return 'auto';
5
+ }
6
+ return isBrowserTarget(value) ? value : 'auto';
7
+ }
8
+ export function getCompileTarget(read = readCompileTarget) {
9
+ try {
10
+ return normalizeCompileTarget(read());
11
+ }
12
+ catch {
13
+ return 'auto';
14
+ }
15
+ }
16
+ function readCompileTarget() {
17
+ return typeof __ADDONOVA_BROWSER__ === 'undefined'
18
+ ? undefined
19
+ : __ADDONOVA_BROWSER__;
20
+ }
21
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/build/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAAI,GAAkB,iBAAiB;IAEvC,IAAI,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,OAAO,oBAAoB,KAAK,WAAW;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,oBAAoB,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,24 @@
1
+ export type ContentScriptTimer = ReturnType<typeof globalThis.setTimeout>;
2
+ export interface ContentScriptRuntime {
3
+ readonly id?: string;
4
+ }
5
+ export interface ContentScriptContextOptions {
6
+ readonly validateRuntime?: boolean;
7
+ readonly runtime?: ContentScriptRuntime;
8
+ }
9
+ export interface ContentScriptContext {
10
+ readonly isValid: boolean;
11
+ readonly signal: AbortSignal;
12
+ setTimeout(callback: (...args: unknown[]) => void, timeout?: number, ...args: unknown[]): ContentScriptTimer;
13
+ clearTimeout(timer: ContentScriptTimer): void;
14
+ setInterval(callback: (...args: unknown[]) => void, timeout?: number, ...args: unknown[]): ContentScriptTimer;
15
+ clearInterval(timer: ContentScriptTimer): void;
16
+ requestAnimationFrame(callback: FrameRequestCallback): number;
17
+ cancelAnimationFrame(id: number): void;
18
+ addEventListener<Target extends EventTarget>(target: Target, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
19
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;
20
+ onInvalidated(callback: () => void): () => void;
21
+ invalidate(): void;
22
+ }
23
+ export declare function createContentScriptContext(options?: ContentScriptContextOptions): ContentScriptContext;
24
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/content/context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,UAAU,CACR,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,kBAAkB,CAAC;IACtB,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,WAAW,CACT,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,kBAAkB,CAAC;IACtB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC/C,qBAAqB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAAC;IAC9D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,MAAM,SAAS,WAAW,EACzC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,MAAM,IAAI,CAAC;IACd,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,MAAM,IAAI,CAAC;IACd,aAAa,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAChD,UAAU,IAAI,IAAI,CAAC;CACpB;AASD,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,oBAAoB,CA2LtB"}
@@ -0,0 +1,157 @@
1
+ import { BrowserApiError } from '../shared/errors.js';
2
+ export function createContentScriptContext(options = {}) {
3
+ const validateRuntime = options.validateRuntime ?? true;
4
+ const runtime = options.runtime ?? getGlobalRuntime();
5
+ const controller = new AbortController();
6
+ const timers = new Set();
7
+ const intervals = new Set();
8
+ const animationFrames = new Set();
9
+ const listeners = new Map();
10
+ const invalidationCallbacks = new Set();
11
+ const isValid = () => {
12
+ if (controller.signal.aborted) {
13
+ return false;
14
+ }
15
+ if (!validateRuntime) {
16
+ return true;
17
+ }
18
+ try {
19
+ return runtime?.id !== undefined && runtime.id !== '';
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ };
25
+ const context = {
26
+ get isValid() {
27
+ return isValid();
28
+ },
29
+ signal: controller.signal,
30
+ setTimeout(callback, timeout = 0, ...args) {
31
+ const timer = globalThis.setTimeout(() => {
32
+ timers.delete(timer);
33
+ if (!controller.signal.aborted) {
34
+ callback(...args);
35
+ }
36
+ }, timeout);
37
+ timers.add(timer);
38
+ return timer;
39
+ },
40
+ clearTimeout(timer) {
41
+ timers.delete(timer);
42
+ globalThis.clearTimeout(timer);
43
+ },
44
+ setInterval(callback, timeout = 0, ...args) {
45
+ const timer = globalThis.setInterval(() => {
46
+ if (!controller.signal.aborted) {
47
+ callback(...args);
48
+ }
49
+ }, timeout);
50
+ intervals.add(timer);
51
+ return timer;
52
+ },
53
+ clearInterval(timer) {
54
+ intervals.delete(timer);
55
+ globalThis.clearInterval(timer);
56
+ },
57
+ requestAnimationFrame(callback) {
58
+ if (typeof globalThis.requestAnimationFrame !== 'function') {
59
+ throw new BrowserApiError('BROWSER_UNSUPPORTED_API', 'requestAnimationFrame is not available in this environment.');
60
+ }
61
+ const id = globalThis.requestAnimationFrame((time) => {
62
+ animationFrames.delete(id);
63
+ if (!controller.signal.aborted) {
64
+ callback(time);
65
+ }
66
+ });
67
+ animationFrames.add(id);
68
+ return id;
69
+ },
70
+ cancelAnimationFrame(id) {
71
+ animationFrames.delete(id);
72
+ globalThis.cancelAnimationFrame?.(id);
73
+ },
74
+ addEventListener(targetOrType, typeOrListener, listenerOrOptions, maybeOptions) {
75
+ const hasTarget = typeof targetOrType !== 'string';
76
+ const target = hasTarget
77
+ ? targetOrType
78
+ : getDefaultEventTarget();
79
+ const type = hasTarget ? typeOrListener : targetOrType;
80
+ const listener = hasTarget
81
+ ? listenerOrOptions
82
+ : typeOrListener;
83
+ const options = hasTarget
84
+ ? maybeOptions
85
+ : listenerOrOptions;
86
+ if (target === undefined) {
87
+ throw new BrowserApiError('BROWSER_UNSUPPORTED_ENVIRONMENT', 'No event target is available for the content script context.');
88
+ }
89
+ target.addEventListener(type, listener, options);
90
+ const remove = () => {
91
+ target.removeEventListener(type, listener, options);
92
+ listeners.delete(remove);
93
+ };
94
+ listeners.set(remove, {
95
+ target,
96
+ type,
97
+ listener,
98
+ ...(options === undefined ? {} : { options }),
99
+ });
100
+ return remove;
101
+ },
102
+ onInvalidated(callback) {
103
+ if (controller.signal.aborted) {
104
+ callback();
105
+ return () => { };
106
+ }
107
+ invalidationCallbacks.add(callback);
108
+ return () => invalidationCallbacks.delete(callback);
109
+ },
110
+ invalidate() {
111
+ if (controller.signal.aborted) {
112
+ return;
113
+ }
114
+ controller.abort();
115
+ for (const timer of timers) {
116
+ globalThis.clearTimeout(timer);
117
+ }
118
+ timers.clear();
119
+ for (const timer of intervals) {
120
+ globalThis.clearInterval(timer);
121
+ }
122
+ intervals.clear();
123
+ for (const id of animationFrames) {
124
+ globalThis.cancelAnimationFrame?.(id);
125
+ }
126
+ animationFrames.clear();
127
+ for (const remove of [...listeners.keys()]) {
128
+ remove();
129
+ }
130
+ listeners.clear();
131
+ for (const callback of [...invalidationCallbacks]) {
132
+ callback();
133
+ }
134
+ invalidationCallbacks.clear();
135
+ },
136
+ };
137
+ if (typeof window !== 'undefined') {
138
+ context.addEventListener(window, 'pagehide', () => context.invalidate(), {
139
+ once: true,
140
+ });
141
+ }
142
+ return context;
143
+ }
144
+ function getGlobalRuntime() {
145
+ const global = globalThis;
146
+ return global.browser?.runtime ?? global.chrome?.runtime;
147
+ }
148
+ function getDefaultEventTarget() {
149
+ if (typeof window !== 'undefined') {
150
+ return window;
151
+ }
152
+ if (typeof document !== 'undefined') {
153
+ return document;
154
+ }
155
+ return undefined;
156
+ }
157
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/content/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { createContentScriptContext, } from './context.ts';
2
+ export type { ContentScriptContext, ContentScriptContextOptions, ContentScriptRuntime, ContentScriptTimer, } from './context.ts';
3
+ export { createInjectScript } from './inject-script.ts';
4
+ export type { InjectScript, InjectScriptApis, InjectScriptOptions, } from './inject-script.ts';
5
+ export { createIframeUi, createIntegratedUi, createShadowRootUi, } from './ui.ts';
6
+ export type { AutoMountOptions, BaseUiOptions, ContentScriptUi, IframeUiOptions, IntegratedUiOptions, ShadowRootContentScriptUi, ShadowRootUiOptions, UiAlignment, UiAnchor, UiAppendMode, UiPosition, } from './ui.ts';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { createContentScriptContext, } from './context.js';
2
+ export { createInjectScript } from './inject-script.js';
3
+ export { createIframeUi, createIntegratedUi, createShadowRootUi, } from './ui.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/content/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const injectScript: import("./inject-script.ts").InjectScript;
2
+ //# sourceMappingURL=inject-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-root.d.ts","sourceRoot":"","sources":["../../src/content/inject-root.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,2CAA0C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { scripting, tabs } from '../api/singletons.js';
2
+ import { createInjectScript } from './inject-script.js';
3
+ export const injectScript = createInjectScript({ scripting, tabs });
4
+ //# sourceMappingURL=inject-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-root.js","sourceRoot":"","sources":["../../src/content/inject-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { InjectionResult, ScriptingApi } from '../types/scripting.ts';
2
+ import type { TabsApi } from '../types/tabs.ts';
3
+ export interface InjectScriptOptions {
4
+ readonly tabId?: number;
5
+ readonly frameIds?: readonly number[];
6
+ readonly allFrames?: boolean;
7
+ readonly world?: 'ISOLATED' | 'MAIN' | string;
8
+ readonly injectImmediately?: boolean;
9
+ }
10
+ export interface InjectScriptApis {
11
+ readonly scripting: Pick<ScriptingApi, 'executeScript'>;
12
+ readonly tabs: Pick<TabsApi, 'query'>;
13
+ }
14
+ export type InjectScript = (path: string | readonly string[], options?: InjectScriptOptions) => Promise<InjectionResult[]>;
15
+ export declare function createInjectScript(apis: InjectScriptApis): InjectScript;
16
+ //# sourceMappingURL=inject-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-script.d.ts","sourceRoot":"","sources":["../../src/content/inject-script.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAGf,YAAY,EACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE,mBAAmB,KAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AAEhC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAmDvE"}
@@ -0,0 +1,39 @@
1
+ import { BrowserApiError } from '../shared/errors.js';
2
+ export function createInjectScript(apis) {
3
+ const findActiveTabId = async () => {
4
+ const [tab] = await apis.tabs.query({
5
+ active: true,
6
+ currentWindow: true,
7
+ });
8
+ if (tab?.id === undefined) {
9
+ throw new BrowserApiError('BROWSER_API_FAILED', 'Could not resolve an active tab for script injection.', { api: 'tabs.query' });
10
+ }
11
+ return tab.id;
12
+ };
13
+ const resolveTarget = async (options) => {
14
+ const tabId = options.tabId ?? (await findActiveTabId());
15
+ return {
16
+ tabId,
17
+ ...(options.frameIds === undefined
18
+ ? {}
19
+ : { frameIds: options.frameIds }),
20
+ ...(options.allFrames === undefined
21
+ ? {}
22
+ : { allFrames: options.allFrames }),
23
+ };
24
+ };
25
+ return async function injectScript(path, options = {}) {
26
+ const target = await resolveTarget(options);
27
+ const files = typeof path === 'string' ? [path] : [...path];
28
+ const injection = {
29
+ target,
30
+ files,
31
+ ...(options.world === undefined ? {} : { world: options.world }),
32
+ ...(options.injectImmediately === undefined
33
+ ? {}
34
+ : { injectImmediately: options.injectImmediately }),
35
+ };
36
+ return apis.scripting.executeScript(injection);
37
+ };
38
+ }
39
+ //# sourceMappingURL=inject-script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-script.js","sourceRoot":"","sources":["../../src/content/inject-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2BtD,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,MAAM,eAAe,GAAG,KAAK,IAAqB,EAAE;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,IAAI,GAAG,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CACvB,oBAAoB,EACpB,uDAAuD,EACvD,EAAE,GAAG,EAAE,YAAY,EAAE,CACtB,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EACzB,OAA4B,EACF,EAAE;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;QAEzD,OAAO;YACL,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;gBAChC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;gBACjC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAK,UAAU,YAAY,CAChC,IAAgC,EAChC,OAAO,GAAwB,EAAE;QAEjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAoB;YACjC,MAAM;YACN,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;SACtD,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { ContentScriptContext } from './context.ts';
2
+ export type UiAnchor = string | Element | (() => string | Element | null | undefined) | null;
3
+ export type UiAppendMode = 'first' | 'last' | 'before' | 'after' | 'replace' | ((anchor: Element, ui: HTMLElement) => void);
4
+ export type UiPosition = 'inline' | 'overlay' | 'modal';
5
+ export type UiAlignment = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
6
+ export interface AutoMountOptions {
7
+ readonly once?: boolean;
8
+ }
9
+ export interface ContentScriptUi<T> {
10
+ readonly mounted: T | undefined;
11
+ readonly element: HTMLElement | undefined;
12
+ readonly isValid: boolean;
13
+ mount(): Promise<T>;
14
+ remove(): void;
15
+ unmount(): void;
16
+ autoMount(options?: AutoMountOptions): () => void;
17
+ }
18
+ export interface BaseUiOptions<T> {
19
+ readonly anchor?: UiAnchor;
20
+ readonly append?: UiAppendMode;
21
+ readonly position?: UiPosition;
22
+ readonly alignment?: UiAlignment;
23
+ readonly zIndex?: number;
24
+ readonly onRemove?: (mounted: T | undefined) => void;
25
+ }
26
+ export interface IntegratedUiOptions<T> extends BaseUiOptions<T> {
27
+ readonly tag?: string;
28
+ readonly onMount?: (container: HTMLElement) => T | Promise<T>;
29
+ }
30
+ export interface ShadowRootUiOptions<T> extends BaseUiOptions<T> {
31
+ readonly tag?: string;
32
+ readonly name?: string;
33
+ readonly css?: string;
34
+ readonly mode?: ShadowRootMode;
35
+ readonly isolateEvents?: boolean;
36
+ readonly onMount?: (container: HTMLElement) => T | Promise<T>;
37
+ }
38
+ export interface IframeUiOptions<T> extends BaseUiOptions<T> {
39
+ readonly page: string;
40
+ readonly tag?: string;
41
+ readonly onMount?: (iframe: HTMLIFrameElement, wrapper: HTMLElement) => T | Promise<T>;
42
+ }
43
+ export interface ShadowRootContentScriptUi<T> extends ContentScriptUi<T> {
44
+ readonly shadow: ShadowRoot | undefined;
45
+ readonly shadowHost: HTMLElement | undefined;
46
+ }
47
+ export declare function createIntegratedUi<T = HTMLElement>(ctx: ContentScriptContext, options?: IntegratedUiOptions<T>): ContentScriptUi<T>;
48
+ export declare function createShadowRootUi<T = HTMLElement>(ctx: ContentScriptContext, options?: ShadowRootUiOptions<T>): ShadowRootContentScriptUi<T>;
49
+ export declare function createIframeUi<T = HTMLIFrameElement>(ctx: ContentScriptContext, options: IframeUiOptions<T>): ContentScriptUi<T>;
50
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/content/ui.ts"],"names":[],"mappings":"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"}