adnbn 0.2.8 → 0.3.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 (411) hide show
  1. package/LICENSE.md +21 -0
  2. package/bin/.idea/bin.iml +12 -0
  3. package/bin/.idea/modules.xml +8 -0
  4. package/bin/.idea/vcs.xml +6 -0
  5. package/bin/.idea/workspace.xml +49 -0
  6. package/dist/cli/builders/app/index.d.ts +2 -6
  7. package/dist/cli/builders/locale/index.d.ts +2 -6
  8. package/dist/cli/builders/manifest/ManifestBase.d.ts +14 -5
  9. package/dist/cli/builders/manifest/ManifestBase.js +48 -0
  10. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  11. package/dist/cli/builders/manifest/ManifestV2.d.ts +4 -5
  12. package/dist/cli/builders/manifest/ManifestV2.js +16 -8
  13. package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
  14. package/dist/cli/builders/manifest/ManifestV3.d.ts +4 -5
  15. package/dist/cli/builders/manifest/ManifestV3.js +18 -13
  16. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  17. package/dist/cli/builders/manifest/index.d.ts +3 -7
  18. package/dist/cli/builders/manifest/utils.d.ts +14 -3
  19. package/dist/cli/builders/manifest/utils.js +107 -1
  20. package/dist/cli/builders/manifest/utils.js.map +1 -1
  21. package/dist/cli/bundler/index.d.ts +3 -6
  22. package/dist/cli/bundler/plugins/EntrypointPlugin.d.ts +6 -1
  23. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +2 -5
  24. package/dist/cli/bundler/plugins/index.d.ts +3 -6
  25. package/dist/cli/entrypoint/file/injectors/core.js +18 -1
  26. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  27. package/dist/cli/entrypoint/file/injectors/index.d.ts +1 -1
  28. package/dist/cli/entrypoint/file/injectors/index.js +2 -2
  29. package/dist/cli/entrypoint/file/injectors/index.js.map +1 -1
  30. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +5 -22
  31. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  32. package/dist/cli/entrypoint/finder/AbstractAssetFinder.d.ts +5 -9
  33. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.d.ts +5 -9
  34. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js +4 -2
  35. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  36. package/dist/cli/entrypoint/finder/AbstractFinder.d.ts +6 -9
  37. package/dist/cli/entrypoint/finder/AbstractFinder.js +41 -8
  38. package/dist/cli/entrypoint/finder/AbstractFinder.js.map +1 -1
  39. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.d.ts +6 -9
  40. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.js +28 -2
  41. package/dist/cli/entrypoint/finder/AbstractOptionsFinder.js.map +1 -1
  42. package/dist/cli/entrypoint/finder/AbstractPluginFinder.d.ts +5 -9
  43. package/dist/cli/entrypoint/finder/AbstractTransportFinder.d.ts +5 -9
  44. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +5 -9
  45. package/dist/cli/entrypoint/finder/AssetPluginFinder.d.ts +5 -9
  46. package/dist/cli/entrypoint/finder/BackgroundFinder.d.ts +5 -9
  47. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +5 -9
  48. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +5 -9
  49. package/dist/cli/entrypoint/finder/IconFinder.d.ts +5 -10
  50. package/dist/cli/entrypoint/finder/IconFinder.js +4 -5
  51. package/dist/cli/entrypoint/finder/IconFinder.js.map +1 -1
  52. package/dist/cli/entrypoint/finder/LocaleFinder.d.ts +6 -10
  53. package/dist/cli/entrypoint/finder/OffscreenFinder.d.ts +5 -9
  54. package/dist/cli/entrypoint/finder/OffscreenViewFinder.d.ts +5 -9
  55. package/dist/cli/entrypoint/finder/PageFinder.d.ts +5 -9
  56. package/dist/cli/entrypoint/finder/PluginFinder.d.ts +5 -9
  57. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +5 -9
  58. package/dist/cli/entrypoint/finder/RelayFinder.d.ts +7 -11
  59. package/dist/cli/entrypoint/finder/RelayFinder.js.map +1 -1
  60. package/dist/cli/entrypoint/finder/ServiceFinder.d.ts +5 -9
  61. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +5 -9
  62. package/dist/cli/entrypoint/finder/index.d.ts +2 -6
  63. package/dist/cli/entrypoint/index.d.ts +4 -7
  64. package/dist/cli/entrypoint/name/InlineNameGenerator.d.ts +6 -1
  65. package/dist/cli/entrypoint/name/NameGenerator.d.ts +6 -1
  66. package/dist/cli/entrypoint/name/index.d.ts +6 -1
  67. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +15 -10
  68. package/dist/cli/entrypoint/parser/AbstractParser.js +5 -1
  69. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  70. package/dist/cli/entrypoint/parser/BackgroundParser.d.ts +6 -10
  71. package/dist/cli/entrypoint/parser/BackgroundParser.js +4 -1
  72. package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
  73. package/dist/cli/entrypoint/parser/CommandParser.d.ts +6 -10
  74. package/dist/cli/entrypoint/parser/ContentParser.d.ts +5 -9
  75. package/dist/cli/entrypoint/parser/ContentParser.js +2 -3
  76. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  77. package/dist/cli/entrypoint/parser/OffscreenParser.d.ts +3 -7
  78. package/dist/cli/entrypoint/parser/PageParser.d.ts +3 -7
  79. package/dist/cli/entrypoint/parser/PopupParser.d.ts +3 -7
  80. package/dist/cli/entrypoint/parser/RelayParser.d.ts +6 -10
  81. package/dist/cli/entrypoint/parser/RelayParser.js +10 -2
  82. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  83. package/dist/cli/entrypoint/parser/ServiceParser.d.ts +3 -7
  84. package/dist/cli/entrypoint/parser/SidebarParser.d.ts +3 -7
  85. package/dist/cli/entrypoint/parser/ViewParser.d.ts +3 -7
  86. package/dist/cli/entrypoint/parser/index.d.ts +3 -7
  87. package/dist/cli/entrypoint/utils/framework.d.ts +12 -0
  88. package/dist/cli/entrypoint/utils/{file.js → framework.js} +3 -3
  89. package/dist/cli/entrypoint/utils/framework.js.map +1 -0
  90. package/dist/cli/entrypoint/utils/index.d.ts +8 -2
  91. package/dist/cli/entrypoint/utils/index.js +2 -1
  92. package/dist/cli/entrypoint/utils/index.js.map +1 -1
  93. package/dist/cli/entrypoint/utils/resolve.d.ts +5 -0
  94. package/dist/cli/entrypoint/utils/resolve.js +36 -0
  95. package/dist/cli/entrypoint/utils/resolve.js.map +1 -0
  96. package/dist/cli/plugins/asset.d.ts +2 -6
  97. package/dist/cli/plugins/background/Background.d.ts +7 -11
  98. package/dist/cli/plugins/background/BackgroundEntry.d.ts +7 -8
  99. package/dist/cli/plugins/background/BackgroundEntry.js +30 -0
  100. package/dist/cli/plugins/background/BackgroundEntry.js.map +1 -1
  101. package/dist/cli/plugins/background/BackgroundManifest.d.ts +9 -10
  102. package/dist/cli/plugins/background/BackgroundManifest.js +22 -2
  103. package/dist/cli/plugins/background/BackgroundManifest.js.map +1 -1
  104. package/dist/cli/plugins/background/Command.d.ts +2 -6
  105. package/dist/cli/plugins/background/Service.d.ts +7 -11
  106. package/dist/cli/plugins/background/ServiceDeclaration.d.ts +2 -6
  107. package/dist/cli/plugins/background/index.d.ts +2 -6
  108. package/dist/cli/plugins/background/index.js +12 -0
  109. package/dist/cli/plugins/background/index.js.map +1 -1
  110. package/dist/cli/plugins/bundler.d.ts +2 -6
  111. package/dist/cli/plugins/content/Content.d.ts +5 -9
  112. package/dist/cli/plugins/content/ContentDriver.d.ts +5 -9
  113. package/dist/cli/plugins/content/ContentManager.d.ts +8 -9
  114. package/dist/cli/plugins/content/ContentManager.js +23 -2
  115. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  116. package/dist/cli/plugins/content/ContentName.d.ts +5 -9
  117. package/dist/cli/plugins/content/Relay.d.ts +10 -11
  118. package/dist/cli/plugins/content/Relay.js +26 -0
  119. package/dist/cli/plugins/content/Relay.js.map +1 -1
  120. package/dist/cli/plugins/content/RelayDeclaration.d.ts +2 -6
  121. package/dist/cli/plugins/content/RelayDeclaration.js +1 -1
  122. package/dist/cli/plugins/content/RelayDeclaration.js.map +1 -1
  123. package/dist/cli/plugins/content/index.d.ts +2 -6
  124. package/dist/cli/plugins/content/index.js +48 -30
  125. package/dist/cli/plugins/content/index.js.map +1 -1
  126. package/dist/cli/plugins/content/types.d.ts +4 -3
  127. package/dist/cli/plugins/content/utils.d.ts +3 -2
  128. package/dist/cli/plugins/dotenv/index.d.ts +2 -6
  129. package/dist/cli/plugins/html.d.ts +2 -6
  130. package/dist/cli/plugins/icon/Icon.d.ts +3 -7
  131. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +2 -6
  132. package/dist/cli/plugins/icon/declaration/index.d.ts +2 -6
  133. package/dist/cli/plugins/icon/index.d.ts +2 -6
  134. package/dist/cli/plugins/index.d.ts +2 -6
  135. package/dist/cli/plugins/locale/Locale.d.ts +2 -6
  136. package/dist/cli/plugins/locale/declaration/LocaleDeclaration.d.ts +2 -6
  137. package/dist/cli/plugins/locale/declaration/index.d.ts +2 -6
  138. package/dist/cli/plugins/locale/index.d.ts +2 -6
  139. package/dist/cli/plugins/meta/AbstractMeta.d.ts +2 -6
  140. package/dist/cli/plugins/meta/Author.d.ts +2 -6
  141. package/dist/cli/plugins/meta/Email.d.ts +2 -6
  142. package/dist/cli/plugins/meta/Email.js +3 -2
  143. package/dist/cli/plugins/meta/Email.js.map +1 -1
  144. package/dist/cli/plugins/meta/Homepage.d.ts +2 -6
  145. package/dist/cli/plugins/meta/Homepage.js +3 -2
  146. package/dist/cli/plugins/meta/Homepage.js.map +1 -1
  147. package/dist/cli/plugins/meta/Incognito.d.ts +2 -6
  148. package/dist/cli/plugins/meta/index.d.ts +2 -6
  149. package/dist/cli/plugins/offscreen/Offscreen.d.ts +6 -10
  150. package/dist/cli/plugins/offscreen/OffscreenDeclaration.d.ts +2 -6
  151. package/dist/cli/plugins/offscreen/index.d.ts +2 -6
  152. package/dist/cli/plugins/optimization.d.ts +2 -6
  153. package/dist/cli/plugins/output.d.ts +2 -6
  154. package/dist/cli/plugins/page/Page.d.ts +3 -7
  155. package/dist/cli/plugins/page/declaration/PageDeclaration.d.ts +2 -6
  156. package/dist/cli/plugins/page/declaration/index.d.ts +2 -6
  157. package/dist/cli/plugins/page/index.d.ts +2 -6
  158. package/dist/cli/plugins/popup/Popup.d.ts +3 -7
  159. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +2 -6
  160. package/dist/cli/plugins/popup/declaration/index.d.ts +2 -6
  161. package/dist/cli/plugins/popup/index.d.ts +2 -6
  162. package/dist/cli/plugins/public.d.ts +2 -6
  163. package/dist/cli/plugins/react.d.ts +2 -6
  164. package/dist/cli/plugins/sidebar/Sidebar.d.ts +3 -7
  165. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +2 -6
  166. package/dist/cli/plugins/sidebar/declaration/index.d.ts +2 -6
  167. package/dist/cli/plugins/sidebar/index.d.ts +2 -6
  168. package/dist/cli/plugins/style.d.ts +2 -6
  169. package/dist/cli/plugins/typescript/FileBuilder.d.ts +2 -6
  170. package/dist/cli/plugins/typescript/TypescriptConfig.d.ts +2 -6
  171. package/dist/cli/plugins/typescript/declaration/VendorDeclaration.d.ts +2 -6
  172. package/dist/cli/plugins/typescript/declaration/index.d.ts +2 -6
  173. package/dist/cli/plugins/typescript/declaration/transport/TransportDeclaration.d.ts +2 -6
  174. package/dist/cli/plugins/typescript/declaration/transport/index.d.ts +2 -6
  175. package/dist/cli/plugins/typescript/index.d.ts +2 -6
  176. package/dist/cli/plugins/version/AbstractVersion.d.ts +2 -6
  177. package/dist/cli/plugins/version/AddonVersion.d.ts +2 -6
  178. package/dist/cli/plugins/version/BrowserMinimumVersion.d.ts +2 -6
  179. package/dist/cli/plugins/version/index.d.ts +2 -6
  180. package/dist/cli/plugins/view/View.d.ts +5 -9
  181. package/dist/cli/plugins/view/index.d.ts +2 -6
  182. package/dist/cli/resolvers/bundler.d.ts +2 -6
  183. package/dist/cli/resolvers/config.d.ts +2 -6
  184. package/dist/cli/resolvers/path.d.ts +4 -7
  185. package/dist/cli/resolvers/path.js +5 -1
  186. package/dist/cli/resolvers/path.js.map +1 -1
  187. package/dist/cli/resolvers/plugin.d.ts +2 -6
  188. package/dist/cli/utils/fs.d.ts +5 -0
  189. package/dist/cli/utils/fs.js +30 -0
  190. package/dist/cli/utils/fs.js.map +1 -0
  191. package/dist/cli/utils/path.d.ts +2 -1
  192. package/dist/cli/utils/path.js +6 -1
  193. package/dist/cli/utils/path.js.map +1 -1
  194. package/dist/cli/virtual/index.js +2 -2
  195. package/dist/{config-Ce0Le6r4.d.ts → config-DwvfY9v8.d.ts} +1 -2
  196. package/dist/entry/background/Builder.d.ts +5 -2
  197. package/dist/entry/background/index.d.ts +5 -2
  198. package/dist/entry/background/resolvers/definition.d.ts +5 -2
  199. package/dist/entry/background/resolvers/index.d.ts +5 -2
  200. package/dist/entry/command/Builder.d.ts +5 -4
  201. package/dist/entry/command/index.d.ts +4 -3
  202. package/dist/entry/command/resolvers/definition.d.ts +4 -3
  203. package/dist/entry/command/resolvers/index.d.ts +4 -3
  204. package/dist/entry/content/adapters/react/Builder.d.ts +6 -5
  205. package/dist/entry/content/adapters/react/Builder.js +1 -1
  206. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  207. package/dist/entry/content/adapters/react/Node.d.ts +3 -2
  208. package/dist/entry/content/adapters/react/index.d.ts +3 -2
  209. package/dist/entry/content/adapters/react/resolvers/index.d.ts +8 -0
  210. package/dist/entry/content/adapters/react/resolvers/index.js +2 -0
  211. package/dist/entry/content/adapters/react/resolvers/index.js.map +1 -0
  212. package/dist/entry/content/adapters/react/resolvers/render.d.ts +3 -2
  213. package/dist/entry/content/adapters/vanilla/Builder.d.ts +6 -5
  214. package/dist/entry/content/adapters/vanilla/Builder.js +1 -1
  215. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  216. package/dist/entry/content/adapters/vanilla/Node.d.ts +3 -2
  217. package/dist/entry/content/adapters/vanilla/index.d.ts +3 -2
  218. package/dist/entry/content/core/Builder.d.ts +5 -4
  219. package/dist/entry/content/core/Builder.js +6 -6
  220. package/dist/entry/content/core/Builder.js.map +1 -1
  221. package/dist/entry/content/core/Context.d.ts +3 -2
  222. package/dist/entry/content/core/EventEmitter.d.ts +3 -2
  223. package/dist/entry/content/core/EventNode.d.ts +3 -2
  224. package/dist/entry/content/core/ManagedContext.d.ts +3 -2
  225. package/dist/entry/content/core/MountBuilder.d.ts +6 -5
  226. package/dist/entry/content/core/MountNode.d.ts +3 -2
  227. package/dist/entry/content/core/Node.d.ts +3 -2
  228. package/dist/entry/content/core/Node.js +1 -1
  229. package/dist/entry/content/core/Node.js.map +1 -1
  230. package/dist/entry/content/core/resolvers/anchor.d.ts +3 -2
  231. package/dist/entry/content/core/resolvers/container.d.ts +3 -2
  232. package/dist/entry/content/core/resolvers/definition.d.ts +3 -2
  233. package/dist/entry/content/core/resolvers/index.d.ts +13 -0
  234. package/dist/entry/content/core/resolvers/index.js +7 -0
  235. package/dist/entry/content/core/resolvers/index.js.map +1 -0
  236. package/dist/entry/content/core/resolvers/mount.d.ts +3 -2
  237. package/dist/entry/content/core/resolvers/render.d.ts +3 -2
  238. package/dist/entry/content/core/resolvers/watch.d.ts +3 -2
  239. package/dist/entry/content/index.d.ts +3 -3
  240. package/dist/entry/content/index.js +0 -1
  241. package/dist/entry/content/index.js.map +1 -1
  242. package/dist/entry/core/Builder.d.ts +6 -1
  243. package/dist/entry/offscreen/Builder.d.ts +6 -7
  244. package/dist/entry/offscreen/TransportBuilder.d.ts +5 -6
  245. package/dist/entry/offscreen/index.d.ts +3 -4
  246. package/dist/entry/relay/Builder.d.ts +6 -5
  247. package/dist/entry/relay/TransportBuilder.d.ts +8 -6
  248. package/dist/entry/relay/TransportBuilder.js +5 -2
  249. package/dist/entry/relay/TransportBuilder.js.map +1 -1
  250. package/dist/entry/relay/index.d.ts +5 -4
  251. package/dist/entry/service/Builder.d.ts +5 -8
  252. package/dist/entry/service/index.d.ts +5 -3
  253. package/dist/entry/transport/AbstractBuilder.d.ts +5 -2
  254. package/dist/entry/transport/index.d.ts +4 -3
  255. package/dist/entry/transport/resolvers/definition.d.ts +4 -3
  256. package/dist/entry/transport/resolvers/index.d.ts +4 -3
  257. package/dist/entry/view/adapters/react/Builder.d.ts +5 -3
  258. package/dist/entry/view/adapters/react/index.d.ts +3 -1
  259. package/dist/entry/view/adapters/react/resolvers/render.d.ts +3 -1
  260. package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -3
  261. package/dist/entry/view/adapters/vanilla/index.d.ts +3 -1
  262. package/dist/entry/view/core/Builder.d.ts +5 -3
  263. package/dist/entry/view/core/resolvers/container.d.ts +3 -1
  264. package/dist/entry/view/core/resolvers/definition.d.ts +3 -1
  265. package/dist/entry/view/core/resolvers/render.d.ts +3 -1
  266. package/dist/entry/view/index.d.ts +3 -1
  267. package/dist/index.d.ts +11 -11
  268. package/dist/locale/adapters/react/LocaleProvider.d.ts +2 -2
  269. package/dist/locale/adapters/react/context.d.ts +3 -2
  270. package/dist/locale/index.d.ts +1 -3
  271. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  272. package/dist/locale/providers/DynamicLocale.d.ts +2 -4
  273. package/dist/locale/providers/DynamicLocale.js +2 -2
  274. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  275. package/dist/locale/providers/index.d.ts +1 -3
  276. package/dist/main/background.d.ts +6 -3
  277. package/dist/main/command.d.ts +5 -4
  278. package/dist/main/config.d.ts +3 -7
  279. package/dist/main/content.d.ts +8 -4
  280. package/dist/main/content.js +14 -2
  281. package/dist/main/content.js.map +1 -1
  282. package/dist/main/env.d.ts +2 -5
  283. package/dist/main/index.d.ts +11 -11
  284. package/dist/main/manifest.d.ts +2 -5
  285. package/dist/main/offscreen.d.ts +3 -1
  286. package/dist/main/offscreen.js +1 -1
  287. package/dist/main/offscreen.js.map +1 -1
  288. package/dist/main/page.d.ts +3 -1
  289. package/dist/main/plugin.d.ts +3 -7
  290. package/dist/main/popup.d.ts +2 -5
  291. package/dist/main/relay.d.ts +9 -7
  292. package/dist/main/relay.js +20 -2
  293. package/dist/main/relay.js.map +1 -1
  294. package/dist/main/service.d.ts +4 -2
  295. package/dist/main/sidebar.d.ts +2 -5
  296. package/dist/main/view.d.ts +3 -1
  297. package/dist/manifest-DAV18Z2K.d.ts +468 -0
  298. package/dist/message/MessageManager.js +0 -1
  299. package/dist/message/MessageManager.js.map +1 -1
  300. package/dist/message/handlers/AbstractHandler.d.ts +1 -1
  301. package/dist/message/handlers/AbstractHandler.js.map +1 -1
  302. package/dist/message/handlers/GeneralHandler.d.ts +1 -1
  303. package/dist/message/handlers/GeneralHandler.js.map +1 -1
  304. package/dist/message/handlers/MapHandler.d.ts +1 -1
  305. package/dist/message/handlers/MapHandler.js +1 -1
  306. package/dist/message/handlers/MapHandler.js.map +1 -1
  307. package/dist/message/handlers/SingleHandler.d.ts +1 -1
  308. package/dist/message/handlers/SingleHandler.js +1 -1
  309. package/dist/message/handlers/SingleHandler.js.map +1 -1
  310. package/dist/message/index.d.ts +1 -2
  311. package/dist/message/index.js.map +1 -1
  312. package/dist/message/providers/Message.d.ts +2 -7
  313. package/dist/message/providers/Message.js.map +1 -1
  314. package/dist/message/providers/index.d.ts +1 -1
  315. package/dist/message/providers/index.js.map +1 -1
  316. package/dist/offscreen/OffscreenManager.d.ts +4 -1
  317. package/dist/offscreen/OffscreenMessage.d.ts +4 -4
  318. package/dist/offscreen/index.d.ts +5 -2
  319. package/dist/offscreen/providers/Offscreen.d.ts +4 -1
  320. package/dist/offscreen/providers/ProxyOffscreen.d.ts +9 -4
  321. package/dist/offscreen/providers/ProxyOffscreen.js +14 -7
  322. package/dist/offscreen/providers/ProxyOffscreen.js.map +1 -1
  323. package/dist/offscreen/providers/RegisterOffscreen.d.ts +4 -4
  324. package/dist/offscreen/providers/index.d.ts +4 -4
  325. package/dist/relay/RelayManager.d.ts +4 -1
  326. package/dist/relay/RelayMessage.d.ts +17 -0
  327. package/dist/relay/RelayMessage.js +13 -0
  328. package/dist/relay/RelayMessage.js.map +1 -0
  329. package/dist/relay/RelayPermission.d.ts +31 -0
  330. package/dist/relay/RelayPermission.js +79 -0
  331. package/dist/relay/RelayPermission.js.map +1 -0
  332. package/dist/relay/index.d.ts +8 -3
  333. package/dist/relay/index.js.map +1 -1
  334. package/dist/relay/providers/ProxyRelay.d.ts +15 -5
  335. package/dist/relay/providers/ProxyRelay.js +40 -8
  336. package/dist/relay/providers/ProxyRelay.js.map +1 -1
  337. package/dist/relay/providers/RegisterRelay.d.ts +13 -5
  338. package/dist/relay/providers/RegisterRelay.js +30 -9
  339. package/dist/relay/providers/RegisterRelay.js.map +1 -1
  340. package/dist/relay/providers/Relay.d.ts +4 -1
  341. package/dist/relay/providers/Relay.js +2 -2
  342. package/dist/relay/providers/Relay.js.map +1 -1
  343. package/dist/relay/providers/index.d.ts +8 -2
  344. package/dist/relay/providers/index.js.map +1 -1
  345. package/dist/relay/utils.d.ts +2 -1
  346. package/dist/relay/utils.js +3 -0
  347. package/dist/relay/utils.js.map +1 -1
  348. package/dist/service/ServiceManager.d.ts +4 -1
  349. package/dist/service/ServiceMessage.d.ts +4 -4
  350. package/dist/service/index.d.ts +4 -6
  351. package/dist/service/providers/ProxyService.d.ts +4 -1
  352. package/dist/service/providers/RegisterService.d.ts +7 -9
  353. package/dist/service/providers/RegisterService.js.map +1 -1
  354. package/dist/service/providers/Service.d.ts +4 -1
  355. package/dist/service/providers/index.d.ts +4 -6
  356. package/dist/storage/index.d.ts +1 -0
  357. package/dist/storage/providers/AbstractStorage.d.ts +25 -2
  358. package/dist/storage/providers/AbstractStorage.js +35 -1
  359. package/dist/storage/providers/AbstractStorage.js.map +1 -1
  360. package/dist/storage/providers/MonoStorage.d.ts +18 -0
  361. package/dist/storage/providers/MonoStorage.js +112 -0
  362. package/dist/storage/providers/MonoStorage.js.map +1 -0
  363. package/dist/storage/providers/SecureStorage.d.ts +1 -5
  364. package/dist/storage/providers/SecureStorage.js +7 -15
  365. package/dist/storage/providers/SecureStorage.js.map +1 -1
  366. package/dist/storage/providers/Storage.d.ts +1 -5
  367. package/dist/storage/providers/Storage.js +0 -12
  368. package/dist/storage/providers/Storage.js.map +1 -1
  369. package/dist/storage/providers/index.d.ts +1 -0
  370. package/dist/storage/providers/index.js +2 -0
  371. package/dist/storage/providers/index.js.map +1 -1
  372. package/dist/transport/BaseTransport.d.ts +4 -1
  373. package/dist/transport/ProxyTransport.d.ts +4 -1
  374. package/dist/transport/RegisterTransport.d.ts +4 -1
  375. package/dist/transport/RegisterTransport.js.map +1 -1
  376. package/dist/transport/TransportManager.d.ts +4 -1
  377. package/dist/transport/TransportMessage.d.ts +6 -6
  378. package/dist/transport/TransportMessage.js +2 -2
  379. package/dist/transport/TransportMessage.js.map +1 -1
  380. package/dist/transport/index.d.ts +4 -1
  381. package/dist/types/background.d.ts +6 -18
  382. package/dist/types/background.js.map +1 -1
  383. package/dist/types/command.d.ts +6 -29
  384. package/dist/types/config.d.ts +2 -6
  385. package/dist/types/content.d.ts +6 -157
  386. package/dist/types/content.js +6 -0
  387. package/dist/types/content.js.map +1 -1
  388. package/dist/types/entrypoint.d.ts +7 -89
  389. package/dist/types/entrypoint.js.map +1 -1
  390. package/dist/types/icon.d.ts +3 -1
  391. package/dist/types/icon.js +5 -1
  392. package/dist/types/icon.js.map +1 -1
  393. package/dist/types/manifest.d.ts +3 -147
  394. package/dist/types/manifest.js.map +1 -1
  395. package/dist/types/message.d.ts +7 -2
  396. package/dist/types/message.js.map +1 -1
  397. package/dist/types/offscreen.d.ts +4 -2
  398. package/dist/types/page.d.ts +3 -1
  399. package/dist/types/plugin.d.ts +3 -7
  400. package/dist/types/popup.d.ts +3 -1
  401. package/dist/types/relay.d.ts +14 -6
  402. package/dist/types/relay.js +7 -1
  403. package/dist/types/relay.js.map +1 -1
  404. package/dist/types/service.d.ts +6 -4
  405. package/dist/types/sidebar.d.ts +3 -1
  406. package/dist/types/storage.d.ts +1 -1
  407. package/dist/types/transport.d.ts +6 -3
  408. package/dist/types/view.d.ts +3 -1
  409. package/package.json +15 -11
  410. package/dist/cli/entrypoint/utils/file.d.ts +0 -7
  411. package/dist/cli/entrypoint/utils/file.js.map +0 -1
package/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2025 Addon Stack; Anjey Tsibylskij
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ </content>
9
+ <orderEntry type="inheritedJdk" />
10
+ <orderEntry type="sourceFolder" forTests="false" />
11
+ </component>
12
+ </module>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/bin.iml" filepath="$PROJECT_DIR$/.idea/bin.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ChangeListManager">
4
+ <list default="true" id="40390ae9-fe9f-40a8-a878-7405689aaf5a" name="Changes" comment="" />
5
+ <option name="SHOW_DIALOG" value="false" />
6
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
7
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
8
+ <option name="LAST_RESOLUTION" value="IGNORE" />
9
+ </component>
10
+ <component name="Git.Settings">
11
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
12
+ </component>
13
+ <component name="ProjectColorInfo"><![CDATA[{
14
+ "associatedIndex": 0
15
+ }]]></component>
16
+ <component name="ProjectId" id="329hOTvZvNMa3ipS82RGnpL1esu" />
17
+ <component name="ProjectViewState">
18
+ <option name="hideEmptyMiddlePackages" value="true" />
19
+ <option name="showLibraryContents" value="true" />
20
+ </component>
21
+ <component name="PropertiesComponent"><![CDATA[{
22
+ "keyToString": {
23
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
24
+ "RunOnceActivity.ShowReadmeOnStart": "true",
25
+ "junie.onboarding.icon.badge.shown": "true",
26
+ "last_opened_file_path": "/Users/anjeytsibylskij/Documents/Hype Ext/addon-bone/bin",
27
+ "to.speed.mode.migration.done": "true",
28
+ "vue.rearranger.settings.migration": "true"
29
+ }
30
+ }]]></component>
31
+ <component name="SharedIndexes">
32
+ <attachedChunks>
33
+ <set>
34
+ <option value="bundled-js-predefined-d6986cc7102b-e03c56caf84a-JavaScript-WS-252.23892.411" />
35
+ </set>
36
+ </attachedChunks>
37
+ </component>
38
+ <component name="TaskManager">
39
+ <task active="true" id="Default" summary="Default task">
40
+ <changelist id="40390ae9-fe9f-40a8-a878-7405689aaf5a" name="Changes" comment="" />
41
+ <created>1756838663450</created>
42
+ <option name="number" value="Default" />
43
+ <option name="presentableId" value="Default" />
44
+ <updated>1756838663450</updated>
45
+ <workItem from="1756838664789" duration="3000" />
46
+ </task>
47
+ <servers />
48
+ </component>
49
+ </project>
@@ -1,16 +1,12 @@
1
- import { O as OptionalConfig } from '../../../config-Ce0Le6r4.js';
1
+ import { O as OptionalConfig } from '../../../config-DwvfY9v8.js';
2
2
  import '@rspack/core';
3
3
  import 'html-rspack-tags-plugin';
4
4
  import '../../../types/app.js';
5
5
  import '../../../types/browser.js';
6
- import '../../../types/manifest.js';
7
- import '../../../types/content.js';
6
+ import '../../../manifest-DAV18Z2K.js';
8
7
  import 'react';
9
8
  import 'utility-types';
10
- import '../../../types/entrypoint.js';
11
9
  import '../../../types/helpers.js';
12
- import '../../../types/background.js';
13
- import '../../../types/command.js';
14
10
  import '../../../types/locale.js';
15
11
  import '../../../types/env.js';
16
12
 
@@ -1,19 +1,15 @@
1
1
  export { default as LocaleBuilder } from './LocaleBuilder.js';
2
2
  export { default as LocaleValidator } from './LocaleValidator.js';
3
3
  import { Language, LocaleBuilder } from '../../../types/locale.js';
4
- import { R as ReadonlyConfig } from '../../../config-Ce0Le6r4.js';
4
+ import { R as ReadonlyConfig } from '../../../config-DwvfY9v8.js';
5
5
  import '../../../types/browser.js';
6
6
  import '@rspack/core';
7
7
  import 'html-rspack-tags-plugin';
8
8
  import '../../../types/app.js';
9
- import '../../../types/manifest.js';
10
- import '../../../types/content.js';
9
+ import '../../../manifest-DAV18Z2K.js';
11
10
  import 'react';
12
11
  import 'utility-types';
13
- import '../../../types/entrypoint.js';
14
12
  import '../../../types/helpers.js';
15
- import '../../../types/background.js';
16
- import '../../../types/command.js';
17
13
  import '../../../types/env.js';
18
14
 
19
15
  declare const _default: (language: Language, config: ReadonlyConfig) => LocaleBuilder;
@@ -1,15 +1,13 @@
1
- import { CoreManifest, ManifestBuilder, ManifestIncognito, ManifestIcons, ManifestBackground, ManifestPopup, ManifestSidebar, ManifestCommands, ManifestContentScripts, ManifestDependencies, ManifestPermissions, ManifestHostPermissions, ManifestAccessibleResources, ManifestVersion, ManifestAccessibleResource, FirefoxManifest } from '../../../types/manifest.js';
1
+ import { a9 as CoreManifest, O as ManifestBuilder, P as ManifestIncognito, a2 as ManifestIcons, aa as ManifestBackground, R as ManifestPopup, S as ManifestSidebar, ab as ManifestCommands, ac as ManifestContentScripts, ad as ManifestDependencies, ae as ManifestPermissions, af as ManifestOptionalPermissions, ag as ManifestHostPermissions, ah as ManifestAccessibleResources, Q as ManifestVersion, ai as ManifestAccessibleResource, aj as FirefoxManifest } from '../../../manifest-DAV18Z2K.js';
2
2
  import { Browser } from '../../../types/browser.js';
3
3
  import { Language } from '../../../types/locale.js';
4
- import '../../../types/content.js';
5
4
  import 'react';
6
5
  import 'utility-types';
7
- import '../../../types/entrypoint.js';
6
+ import '../../../types/app.js';
8
7
  import '../../../types/helpers.js';
9
- import '../../../types/background.js';
10
- import '../../../types/command.js';
11
8
 
12
9
  type ManifestPermission = chrome.runtime.ManifestPermissions;
10
+ type ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermissions;
13
11
  type CoreManifestIcons = chrome.runtime.ManifestIcons;
14
12
  declare class ManifestError extends Error {
15
13
  constructor(message: string);
@@ -35,12 +33,16 @@ declare abstract class export_default<T extends CoreManifest> implements Manifes
35
33
  protected contentScripts: ManifestContentScripts;
36
34
  protected dependencies: ManifestDependencies;
37
35
  protected permissions: ManifestPermissions;
36
+ protected optionalPermissions: ManifestOptionalPermissions;
38
37
  protected hostPermissions: ManifestHostPermissions;
38
+ protected optionalHostPermissions: ManifestHostPermissions;
39
39
  protected accessibleResources: ManifestAccessibleResources;
40
40
  abstract getManifestVersion(): ManifestVersion;
41
41
  protected abstract buildAction(): Partial<T> | undefined;
42
42
  protected abstract buildPermissions(): Partial<T> | undefined;
43
+ protected abstract buildOptionalPermissions(): Partial<T> | undefined;
43
44
  protected abstract buildHostPermissions(): Partial<T> | undefined;
45
+ protected abstract buildOptionalHostPermissions(): Partial<T> | undefined;
44
46
  protected abstract buildWebAccessibleResources(): Partial<T> | undefined;
45
47
  protected constructor(browser?: Browser);
46
48
  setAuthor(author?: string): this;
@@ -64,9 +66,15 @@ declare abstract class export_default<T extends CoreManifest> implements Manifes
64
66
  addPermission(permission: ManifestPermission): this;
65
67
  setPermissions(permissions: ManifestPermissions): this;
66
68
  appendPermissions(permissions: ManifestPermissions): this;
69
+ addOptionalPermission(permission: ManifestOptionalPermission): this;
70
+ setOptionalPermissions(permissions: ManifestOptionalPermissions): this;
71
+ appendOptionalPermissions(permissions: ManifestOptionalPermissions): this;
67
72
  addHostPermission(permission: string): this;
68
73
  setHostPermissions(permissions: ManifestHostPermissions): this;
69
74
  appendHostPermissions(permissions: ManifestHostPermissions): this;
75
+ addOptionalHostPermission(permission: string): this;
76
+ setOptionalHostPermissions(permissions: ManifestHostPermissions): this;
77
+ appendOptionalHostPermissions(permissions: ManifestHostPermissions): this;
70
78
  addAccessibleResource(accessibleResource: ManifestAccessibleResource): this;
71
79
  appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this;
72
80
  setManifestAccessibleResource(accessibleResources: ManifestAccessibleResources): this;
@@ -82,6 +90,7 @@ declare abstract class export_default<T extends CoreManifest> implements Manifes
82
90
  protected hasExecuteActionCommand(): boolean;
83
91
  protected getIconsByName(name?: string): CoreManifestIcons | undefined;
84
92
  get(): T;
93
+ getWebAccessibleResources(): ManifestAccessibleResource[];
85
94
  }
86
95
 
87
96
  export { ManifestError, export_default as default };
@@ -1,7 +1,9 @@
1
+ import { mergeWebAccessibleResources } from "./utils.js";
1
2
  import { Browser } from "./../../../types/browser.js";
2
3
  import { CommandExecuteActionName } from "./../../../types/command.js";
3
4
  import { DefaultIconGroupName } from "./../../../types/icon.js";
4
5
  import { SidebarAlternativeBrowsers } from "./../../../types/sidebar.js";
6
+ import { ContentScriptMatches } from "./../../../types/content.js";
5
7
  class ManifestError extends Error {
6
8
  constructor(message) {
7
9
  super("Manifest: " + message);
@@ -30,7 +32,9 @@ class ManifestBase_default {
30
32
  contentScripts = /* @__PURE__ */ new Set();
31
33
  dependencies = /* @__PURE__ */ new Map();
32
34
  permissions = /* @__PURE__ */ new Set();
35
+ optionalPermissions = /* @__PURE__ */ new Set();
33
36
  hostPermissions = /* @__PURE__ */ new Set();
37
+ optionalHostPermissions = /* @__PURE__ */ new Set();
34
38
  accessibleResources = /* @__PURE__ */ new Set();
35
39
  setAuthor(author) {
36
40
  this.author = author;
@@ -118,6 +122,20 @@ class ManifestBase_default {
118
122
  }
119
123
  return this;
120
124
  }
125
+ addOptionalPermission(permission) {
126
+ this.optionalPermissions.add(permission);
127
+ return this;
128
+ }
129
+ setOptionalPermissions(permissions) {
130
+ this.optionalPermissions = permissions;
131
+ return this;
132
+ }
133
+ appendOptionalPermissions(permissions) {
134
+ for (const permission of permissions) {
135
+ this.optionalPermissions.add(permission);
136
+ }
137
+ return this;
138
+ }
121
139
  addHostPermission(permission) {
122
140
  this.hostPermissions.add(permission);
123
141
  return this;
@@ -132,6 +150,20 @@ class ManifestBase_default {
132
150
  }
133
151
  return this;
134
152
  }
153
+ addOptionalHostPermission(permission) {
154
+ this.optionalHostPermissions.add(permission);
155
+ return this;
156
+ }
157
+ setOptionalHostPermissions(permissions) {
158
+ this.optionalHostPermissions = permissions;
159
+ return this;
160
+ }
161
+ appendOptionalHostPermissions(permissions) {
162
+ for (const permission of permissions) {
163
+ this.optionalHostPermissions.add(permission);
164
+ }
165
+ return this;
166
+ }
135
167
  addAccessibleResource(accessibleResource) {
136
168
  this.accessibleResources.add(accessibleResource);
137
169
  return this;
@@ -179,7 +211,9 @@ class ManifestBase_default {
179
211
  this.buildSidebar(),
180
212
  this.buildContentScripts(),
181
213
  this.buildPermissions(),
214
+ this.buildOptionalPermissions(),
182
215
  this.buildHostPermissions(),
216
+ this.buildOptionalHostPermissions(),
183
217
  this.buildWebAccessibleResources(),
184
218
  this.buildBrowserSpecificSettings()
185
219
  );
@@ -316,6 +350,20 @@ class ManifestBase_default {
316
350
  get() {
317
351
  return this.build();
318
352
  }
353
+ getWebAccessibleResources() {
354
+ var _a;
355
+ const resources = [...this.accessibleResources];
356
+ for (const contentScript of this.contentScripts.values()) {
357
+ const assets = (_a = this.dependencies.get(contentScript.entry)) == null ? void 0 : _a.assets;
358
+ if (assets && assets.size > 0) {
359
+ resources.push({
360
+ resources: Array.from(assets),
361
+ matches: contentScript.matches || ContentScriptMatches
362
+ });
363
+ }
364
+ }
365
+ return mergeWebAccessibleResources(resources);
366
+ }
319
367
  }
320
368
  export {
321
369
  ManifestError,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestBase.ts"],"sourcesContent":["import {\n CoreManifest,\n FirefoxManifest,\n Manifest,\n ManifestAccessibleResource,\n ManifestAccessibleResources,\n ManifestBackground,\n ManifestBuilder,\n ManifestCommands,\n ManifestContentScripts,\n ManifestDependencies,\n ManifestHostPermissions,\n ManifestIcons,\n ManifestIncognito,\n ManifestPermissions,\n ManifestPopup,\n ManifestSidebar,\n ManifestVersion,\n} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\nimport {Language} from \"@typing/locale\";\nimport {CommandExecuteActionName} from \"@typing/command\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\ntype ManifestPermission = chrome.runtime.ManifestPermissions;\ntype CoreManifestIcons = chrome.runtime.ManifestIcons;\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super(\"Manifest: \" + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name: string = \"__MSG_app_name__\";\n protected email?: string;\n protected author?: string;\n protected homepage?: string;\n protected shortName?: string;\n protected description?: string;\n protected minimumVersion?: string;\n protected version: string = \"0.0.0\";\n protected icon?: string;\n protected incognito?: ManifestIncognito;\n protected locale?: Language;\n protected icons: ManifestIcons = new Map();\n protected background?: ManifestBackground;\n protected popup?: ManifestPopup;\n protected sidebar?: ManifestSidebar;\n protected commands: ManifestCommands = new Set();\n protected contentScripts: ManifestContentScripts = new Set();\n protected dependencies: ManifestDependencies = new Map();\n protected permissions: ManifestPermissions = new Set();\n protected hostPermissions: ManifestHostPermissions = new Set();\n protected accessibleResources: ManifestAccessibleResources = new Set();\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildAction(): Partial<T> | undefined;\n\n protected abstract buildPermissions(): Partial<T> | undefined;\n\n protected abstract buildHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildWebAccessibleResources(): Partial<T> | undefined;\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {}\n\n public setAuthor(author?: string): this {\n this.author = author;\n\n return this;\n }\n\n public setHomepage(homepage?: string): this {\n this.homepage = homepage;\n\n return this;\n }\n\n public setEmail(email?: string): this {\n this.email = email;\n\n return this;\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName?: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description?: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version?: string): this {\n this.version = version || \"0.0.0\";\n\n return this;\n }\n\n public setMinimumVersion(minimumVersion?: string): this {\n this.minimumVersion = minimumVersion;\n\n return this;\n }\n\n public setLocale(lang?: Language): this {\n this.locale = lang;\n\n return this;\n }\n\n public setIncognito(incognito?: ManifestIncognito): this {\n this.incognito = incognito;\n\n return this;\n }\n\n public setIcons(icons?: ManifestIcons): this {\n this.icons = icons || new Map();\n\n return this;\n }\n\n public setIcon(icon?: string): this {\n this.icon = icon;\n\n return this;\n }\n\n public setBackground(background?: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public setCommands(commands?: ManifestCommands): this {\n this.commands = commands || new Set();\n\n return this;\n }\n\n public setContentScripts(contentScripts?: ManifestContentScripts): this {\n this.contentScripts = contentScripts || new Set();\n\n return this;\n }\n\n public setPopup(popup?: ManifestPopup): this {\n this.popup = popup;\n\n return this;\n }\n\n public setSidebar(sidebar?: ManifestSidebar): this {\n this.sidebar = sidebar;\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependencies): this {\n this.dependencies = dependencies;\n\n return this;\n }\n\n public addPermission(permission: ManifestPermission): this {\n this.permissions.add(permission);\n\n return this;\n }\n\n public setPermissions(permissions: ManifestPermissions): this {\n this.permissions = permissions;\n\n return this;\n }\n\n public appendPermissions(permissions: ManifestPermissions): this {\n for (const permission of permissions) {\n this.permissions.add(permission);\n }\n\n return this;\n }\n\n public addHostPermission(permission: string): this {\n this.hostPermissions.add(permission);\n\n return this;\n }\n\n public setHostPermissions(permissions: ManifestHostPermissions): this {\n this.hostPermissions = permissions;\n\n return this;\n }\n\n public appendHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.hostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addAccessibleResource(accessibleResource: ManifestAccessibleResource): this {\n this.accessibleResources.add(accessibleResource);\n\n return this;\n }\n\n public appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this {\n for (const accessibleResource of accessibleResources) {\n this.accessibleResources.add(accessibleResource);\n }\n\n return this;\n }\n\n public setManifestAccessibleResource(accessibleResources: ManifestAccessibleResources): this {\n this.accessibleResources = accessibleResources;\n\n return this;\n }\n\n private marge<T extends CoreManifest>(manifest: T, ...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter(source => source !== undefined);\n\n if (sources.length === 0) {\n return manifest;\n }\n\n const result = {...manifest};\n\n for (const source of sources) {\n Object.assign(result, source);\n }\n\n return result;\n }\n\n public build(): T {\n let manifest: Manifest = {\n name: this.name,\n short_name: this.shortName,\n description: this.description,\n version: this.version,\n manifest_version: this.getManifestVersion(),\n minimum_chrome_version: this.minimumVersion,\n author: this.author,\n homepage_url: this.homepage,\n incognito: this.incognito,\n };\n\n manifest = this.marge<Manifest>(\n manifest,\n this.buildLocale(),\n this.buildIcons(),\n this.buildBackground(),\n this.buildCommands(),\n this.buildAction(),\n this.buildSidebar(),\n this.buildContentScripts(),\n this.buildPermissions(),\n this.buildHostPermissions(),\n this.buildWebAccessibleResources(),\n this.buildBrowserSpecificSettings()\n );\n\n return manifest as T;\n }\n\n protected buildIcons(): Partial<CoreManifest> | undefined {\n if (this.icon) {\n return {icons: this.getIconsByName(this.icon)};\n }\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildCommands(): Partial<CoreManifest> | undefined {\n if (this.commands.size > 0) {\n const commands = Array.from(this.commands).reduce(\n (commands, command) => {\n const item = {\n suggested_key: {\n default: command?.defaultKey,\n windows: command?.windowsKey,\n mac: command?.macKey,\n chromeos: command?.chromeosKey,\n linux: command?.linuxKey,\n },\n description:\n command?.description ||\n (command.name === CommandExecuteActionName ? undefined : command.name),\n global: command?.global,\n };\n\n return {...commands, [command.name]: item};\n },\n {} as CoreManifest[\"commands\"]\n );\n\n return {commands};\n }\n }\n\n protected buildContentScripts(): Partial<CoreManifest> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV3[\"content_scripts\"] = [];\n\n for (const script of this.contentScripts.values()) {\n const {\n entry,\n matches,\n excludeMatches,\n allFrames,\n runAt,\n excludeGlobs,\n includeGlobs,\n world,\n matchAboutBlank,\n matchOriginAsFallback,\n } = script;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Content script entry \"${entry}\" not found in dependencies`);\n }\n\n const js = Array.from(dependencies.js);\n const css = Array.from(dependencies.css);\n\n if (js.length === 0 && css.length === 0) {\n throw new ManifestError(`Content script and style entry \"${entry}\" not found in dependencies`);\n }\n\n contentScripts.push({\n matches,\n exclude_matches: excludeMatches,\n js: js.length > 0 ? js : undefined,\n css: css.length > 0 ? css : undefined,\n all_frames: allFrames,\n run_at: runAt,\n exclude_globs: excludeGlobs,\n include_globs: includeGlobs,\n match_about_blank: matchAboutBlank,\n //@ts-ignore\n match_origin_as_fallback: matchOriginAsFallback,\n world,\n });\n }\n\n return {content_scripts: contentScripts};\n }\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!this.sidebar) {\n return;\n }\n\n const {path, icon, title} = this.sidebar;\n\n const commonProps = {\n open_at_install: this.browser === Browser.Firefox ? false : undefined,\n default_title: title || this.name,\n default_icon: this.getIconsByName(icon),\n };\n\n return SidebarAlternativeBrowsers.has(this.browser)\n ? {sidebar_action: {...commonProps, default_panel: path}}\n : {side_panel: {...commonProps, default_path: path}};\n }\n\n protected buildLocale(): Partial<CoreManifest> | undefined {\n if (this.locale) {\n return {default_locale: this.locale};\n }\n }\n\n protected buildBrowserSpecificSettings(): Partial<FirefoxManifest> | undefined {\n if (this.browser === Browser.Firefox && this.email && this.permissions.has(\"storage\")) {\n return {\n browser_specific_settings: {\n gecko: {\n id: this.email,\n // strict_min_version: this.minimumVersion,\n },\n },\n };\n }\n }\n\n protected hasExecuteActionCommand(): boolean {\n return this.commands.size > 0 && Array.from(this.commands).some(({name}) => name === CommandExecuteActionName);\n }\n\n protected getIconsByName(name?: string): CoreManifestIcons | undefined {\n if (this.icons.size === 0) {\n return;\n }\n\n if (!name) {\n name = DefaultIconGroupName;\n }\n\n const icons = this.icons.get(name) || this.icons.get(DefaultIconGroupName) || this.icons.values().next().value;\n\n if (icons) {\n return Object.fromEntries(icons);\n }\n }\n\n public get(): T {\n return this.build();\n }\n}\n"],"mappings":"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","names":["commands"]}
1
+ {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestBase.ts"],"sourcesContent":["import {mergeWebAccessibleResources} from \"./utils\";\n\nimport {\n CoreManifest,\n FirefoxManifest,\n Manifest,\n ManifestAccessibleResource,\n ManifestAccessibleResources,\n ManifestBackground,\n ManifestBuilder,\n ManifestCommands,\n ManifestContentScripts,\n ManifestDependencies,\n ManifestHostPermissions,\n ManifestIcons,\n ManifestIncognito,\n ManifestPermissions,\n ManifestOptionalPermissions,\n ManifestPopup,\n ManifestSidebar,\n ManifestVersion,\n} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\nimport {Language} from \"@typing/locale\";\nimport {CommandExecuteActionName} from \"@typing/command\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\nimport {ContentScriptMatches} from \"@typing/content\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\ntype ManifestPermission = chrome.runtime.ManifestPermissions;\ntype ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermissions;\ntype CoreManifestIcons = chrome.runtime.ManifestIcons;\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super(\"Manifest: \" + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name: string = \"__MSG_app_name__\";\n protected email?: string;\n protected author?: string;\n protected homepage?: string;\n protected shortName?: string;\n protected description?: string;\n protected minimumVersion?: string;\n protected version: string = \"0.0.0\";\n protected icon?: string;\n protected incognito?: ManifestIncognito;\n protected locale?: Language;\n protected icons: ManifestIcons = new Map();\n protected background?: ManifestBackground;\n protected popup?: ManifestPopup;\n protected sidebar?: ManifestSidebar;\n protected commands: ManifestCommands = new Set();\n protected contentScripts: ManifestContentScripts = new Set();\n protected dependencies: ManifestDependencies = new Map();\n protected permissions: ManifestPermissions = new Set();\n protected optionalPermissions: ManifestOptionalPermissions = new Set();\n protected hostPermissions: ManifestHostPermissions = new Set();\n protected optionalHostPermissions: ManifestHostPermissions = new Set();\n protected accessibleResources: ManifestAccessibleResources = new Set();\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildAction(): Partial<T> | undefined;\n\n protected abstract buildPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalPermissions(): Partial<T> | undefined;\n\n protected abstract buildHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildWebAccessibleResources(): Partial<T> | undefined;\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {}\n\n public setAuthor(author?: string): this {\n this.author = author;\n\n return this;\n }\n\n public setHomepage(homepage?: string): this {\n this.homepage = homepage;\n\n return this;\n }\n\n public setEmail(email?: string): this {\n this.email = email;\n\n return this;\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName?: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description?: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version?: string): this {\n this.version = version || \"0.0.0\";\n\n return this;\n }\n\n public setMinimumVersion(minimumVersion?: string): this {\n this.minimumVersion = minimumVersion;\n\n return this;\n }\n\n public setLocale(lang?: Language): this {\n this.locale = lang;\n\n return this;\n }\n\n public setIncognito(incognito?: ManifestIncognito): this {\n this.incognito = incognito;\n\n return this;\n }\n\n public setIcons(icons?: ManifestIcons): this {\n this.icons = icons || new Map();\n\n return this;\n }\n\n public setIcon(icon?: string): this {\n this.icon = icon;\n\n return this;\n }\n\n public setBackground(background?: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public setCommands(commands?: ManifestCommands): this {\n this.commands = commands || new Set();\n\n return this;\n }\n\n public setContentScripts(contentScripts?: ManifestContentScripts): this {\n this.contentScripts = contentScripts || new Set();\n\n return this;\n }\n\n public setPopup(popup?: ManifestPopup): this {\n this.popup = popup;\n\n return this;\n }\n\n public setSidebar(sidebar?: ManifestSidebar): this {\n this.sidebar = sidebar;\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependencies): this {\n this.dependencies = dependencies;\n\n return this;\n }\n\n public addPermission(permission: ManifestPermission): this {\n this.permissions.add(permission);\n\n return this;\n }\n\n public setPermissions(permissions: ManifestPermissions): this {\n this.permissions = permissions;\n\n return this;\n }\n\n public appendPermissions(permissions: ManifestPermissions): this {\n for (const permission of permissions) {\n this.permissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalPermission(permission: ManifestOptionalPermission): this {\n this.optionalPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n this.optionalPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n for (const permission of permissions) {\n this.optionalPermissions.add(permission);\n }\n\n return this;\n }\n\n public addHostPermission(permission: string): this {\n this.hostPermissions.add(permission);\n\n return this;\n }\n\n public setHostPermissions(permissions: ManifestHostPermissions): this {\n this.hostPermissions = permissions;\n\n return this;\n }\n\n public appendHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.hostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalHostPermission(permission: string): this {\n this.optionalHostPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n this.optionalHostPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.optionalHostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addAccessibleResource(accessibleResource: ManifestAccessibleResource): this {\n this.accessibleResources.add(accessibleResource);\n\n return this;\n }\n\n public appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this {\n for (const accessibleResource of accessibleResources) {\n this.accessibleResources.add(accessibleResource);\n }\n\n return this;\n }\n\n public setManifestAccessibleResource(accessibleResources: ManifestAccessibleResources): this {\n this.accessibleResources = accessibleResources;\n\n return this;\n }\n\n private marge<T extends CoreManifest>(manifest: T, ...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter(source => source !== undefined);\n\n if (sources.length === 0) {\n return manifest;\n }\n\n const result = {...manifest};\n\n for (const source of sources) {\n Object.assign(result, source);\n }\n\n return result;\n }\n\n public build(): T {\n let manifest: Manifest = {\n name: this.name,\n short_name: this.shortName,\n description: this.description,\n version: this.version,\n manifest_version: this.getManifestVersion(),\n minimum_chrome_version: this.minimumVersion,\n author: this.author,\n homepage_url: this.homepage,\n incognito: this.incognito,\n };\n\n manifest = this.marge<Manifest>(\n manifest,\n this.buildLocale(),\n this.buildIcons(),\n this.buildBackground(),\n this.buildCommands(),\n this.buildAction(),\n this.buildSidebar(),\n this.buildContentScripts(),\n this.buildPermissions(),\n this.buildOptionalPermissions(),\n this.buildHostPermissions(),\n this.buildOptionalHostPermissions(),\n this.buildWebAccessibleResources(),\n this.buildBrowserSpecificSettings()\n );\n\n return manifest as T;\n }\n\n protected buildIcons(): Partial<CoreManifest> | undefined {\n if (this.icon) {\n return {icons: this.getIconsByName(this.icon)};\n }\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildCommands(): Partial<CoreManifest> | undefined {\n if (this.commands.size > 0) {\n const commands = Array.from(this.commands).reduce(\n (commands, command) => {\n const item = {\n suggested_key: {\n default: command?.defaultKey,\n windows: command?.windowsKey,\n mac: command?.macKey,\n chromeos: command?.chromeosKey,\n linux: command?.linuxKey,\n },\n description:\n command?.description ||\n (command.name === CommandExecuteActionName ? undefined : command.name),\n global: command?.global,\n };\n\n return {...commands, [command.name]: item};\n },\n {} as CoreManifest[\"commands\"]\n );\n\n return {commands};\n }\n }\n\n protected buildContentScripts(): Partial<CoreManifest> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV3[\"content_scripts\"] = [];\n\n for (const script of this.contentScripts.values()) {\n const {\n entry,\n matches,\n excludeMatches,\n allFrames,\n runAt,\n excludeGlobs,\n includeGlobs,\n world,\n matchAboutBlank,\n matchOriginAsFallback,\n } = script;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Content script entry \"${entry}\" not found in dependencies`);\n }\n\n const js = Array.from(dependencies.js);\n const css = Array.from(dependencies.css);\n\n if (js.length === 0 && css.length === 0) {\n throw new ManifestError(`Content script and style entry \"${entry}\" not found in dependencies`);\n }\n\n contentScripts.push({\n matches,\n exclude_matches: excludeMatches,\n js: js.length > 0 ? js : undefined,\n css: css.length > 0 ? css : undefined,\n all_frames: allFrames,\n run_at: runAt,\n exclude_globs: excludeGlobs,\n include_globs: includeGlobs,\n match_about_blank: matchAboutBlank,\n //@ts-ignore\n match_origin_as_fallback: matchOriginAsFallback,\n world,\n });\n }\n\n return {content_scripts: contentScripts};\n }\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!this.sidebar) {\n return;\n }\n\n const {path, icon, title} = this.sidebar;\n\n const commonProps = {\n open_at_install: this.browser === Browser.Firefox ? false : undefined,\n default_title: title || this.name,\n default_icon: this.getIconsByName(icon),\n };\n\n return SidebarAlternativeBrowsers.has(this.browser)\n ? {sidebar_action: {...commonProps, default_panel: path}}\n : {side_panel: {...commonProps, default_path: path}};\n }\n\n protected buildLocale(): Partial<CoreManifest> | undefined {\n if (this.locale) {\n return {default_locale: this.locale};\n }\n }\n\n protected buildBrowserSpecificSettings(): Partial<FirefoxManifest> | undefined {\n if (this.browser === Browser.Firefox && this.email && this.permissions.has(\"storage\")) {\n return {\n browser_specific_settings: {\n gecko: {\n id: this.email,\n // strict_min_version: this.minimumVersion,\n },\n },\n };\n }\n }\n\n protected hasExecuteActionCommand(): boolean {\n return this.commands.size > 0 && Array.from(this.commands).some(({name}) => name === CommandExecuteActionName);\n }\n\n protected getIconsByName(name?: string): CoreManifestIcons | undefined {\n if (this.icons.size === 0) {\n return;\n }\n\n if (!name) {\n name = DefaultIconGroupName;\n }\n\n const icons = this.icons.get(name) || this.icons.get(DefaultIconGroupName) || this.icons.values().next().value;\n\n if (icons) {\n return Object.fromEntries(icons);\n }\n }\n\n public get(): T {\n return this.build();\n }\n\n public getWebAccessibleResources(): ManifestAccessibleResource[] {\n const resources: ManifestAccessibleResource[] = [...this.accessibleResources];\n\n for (const contentScript of this.contentScripts.values()) {\n const assets = this.dependencies.get(contentScript.entry)?.assets;\n\n if (assets && assets.size > 0) {\n resources.push({\n resources: Array.from(assets),\n matches: contentScript.matches || ContentScriptMatches,\n });\n }\n }\n\n return mergeWebAccessibleResources(resources);\n }\n}\n"],"mappings":"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","names":["commands"]}
@@ -1,14 +1,11 @@
1
1
  import export_default$1 from './ManifestBase.js';
2
- import { ManifestVersion, CoreManifest } from '../../../types/manifest.js';
2
+ import { Q as ManifestVersion, a9 as CoreManifest } from '../../../manifest-DAV18Z2K.js';
3
3
  import { Browser } from '../../../types/browser.js';
4
4
  import '../../../types/locale.js';
5
- import '../../../types/content.js';
6
5
  import 'react';
7
6
  import 'utility-types';
8
- import '../../../types/entrypoint.js';
7
+ import '../../../types/app.js';
9
8
  import '../../../types/helpers.js';
10
- import '../../../types/background.js';
11
- import '../../../types/command.js';
12
9
 
13
10
  type ManifestV2 = chrome.runtime.ManifestV2;
14
11
  declare class export_default extends export_default$1<ManifestV2> {
@@ -18,7 +15,9 @@ declare class export_default extends export_default$1<ManifestV2> {
18
15
  protected buildSidebar(): Partial<CoreManifest> | undefined;
19
16
  protected buildContentScripts(): Partial<ManifestV2> | undefined;
20
17
  protected buildPermissions(): Partial<ManifestV2> | undefined;
18
+ protected buildOptionalPermissions(): Partial<ManifestV2> | undefined;
21
19
  protected buildHostPermissions(): Partial<ManifestV2> | undefined;
20
+ protected buildOptionalHostPermissions(): Partial<ManifestV2> | undefined;
22
21
  protected buildWebAccessibleResources(): Partial<ManifestV2> | undefined;
23
22
  }
24
23
 
@@ -52,18 +52,26 @@ class ManifestV2_default extends ManifestBase {
52
52
  return { permissions };
53
53
  }
54
54
  }
55
+ buildOptionalPermissions() {
56
+ const optionalPermissions = Array.from(filterPermissionsForMV2(this.optionalPermissions)).filter(
57
+ (permission) => !this.permissions.has(permission)
58
+ );
59
+ const optionalHostPermissions = Array.from(filterHostPatterns(/* @__PURE__ */ new Set([...this.hostPermissions, ...this.optionalHostPermissions]))).filter((permission) => !this.hostPermissions.has(permission));
60
+ if (optionalHostPermissions.length > 0) {
61
+ optionalPermissions.push(...optionalHostPermissions);
62
+ }
63
+ if (optionalPermissions.length > 0) {
64
+ return { optional_permissions: optionalPermissions };
65
+ }
66
+ }
55
67
  buildHostPermissions() {
56
68
  return void 0;
57
69
  }
70
+ buildOptionalHostPermissions() {
71
+ return void 0;
72
+ }
58
73
  buildWebAccessibleResources() {
59
- var _a;
60
- const resources = Array.from(this.accessibleResources).flatMap(({ resources: resources2 }) => resources2);
61
- for (const contentScript of this.contentScripts.values()) {
62
- const assets = (_a = this.dependencies.get(contentScript.entry)) == null ? void 0 : _a.assets;
63
- if (assets && assets.size > 0) {
64
- resources.push(...assets);
65
- }
66
- }
74
+ const resources = this.getWebAccessibleResources().flatMap(({ resources: resources2 }) => resources2);
67
75
  if (resources.length > 0) {
68
76
  return { web_accessible_resources: Array.from(new Set(resources)) };
69
77
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestV2.ts"],"sourcesContent":["import ManifestBase from \"./ManifestBase\";\n\nimport {filterHostPatterns, filterPermissionsForMV2} from \"./utils\";\n\nimport {CoreManifest, ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\ntype ManifestV2 = chrome.runtime.ManifestV2;\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV2> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 2;\n }\n\n protected buildAction(): Partial<ManifestV2> | undefined {\n if (this.popup) {\n const {icon, title, path} = this.popup;\n\n return {\n browser_action: {\n default_title: title || this.name,\n default_popup: path,\n default_icon: this.getIconsByName(icon),\n },\n };\n } else if (this.hasExecuteActionCommand()) {\n return {\n browser_action: {\n default_title: this.name,\n },\n };\n }\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!SidebarAlternativeBrowsers.has(this.browser)) {\n return;\n }\n\n return super.buildSidebar();\n }\n\n protected buildContentScripts(): Partial<ManifestV2> | undefined {\n const manifest = super.buildContentScripts() as Partial<ManifestV3>;\n\n if (manifest) {\n const {content_scripts} = manifest;\n\n if (!content_scripts) {\n return;\n }\n\n const contentScripts = content_scripts\n //@ts-ignore\n .map(({world, match_origin_as_fallback, ...script}) => script);\n\n return {content_scripts: contentScripts};\n }\n }\n\n protected buildPermissions(): Partial<ManifestV2> | undefined {\n const permissions: string[] = Array.from(filterPermissionsForMV2(this.permissions));\n\n if (this.hostPermissions.size > 0) {\n permissions.push(...filterHostPatterns(this.hostPermissions));\n }\n\n if (permissions.length > 0) {\n return {permissions};\n }\n }\n\n protected buildHostPermissions(): Partial<ManifestV2> | undefined {\n // In Manifest V2, host permissions are declared in the \"permissions\" array\n\n return undefined;\n }\n\n protected buildWebAccessibleResources(): Partial<ManifestV2> | undefined {\n const resources: string[] = Array.from(this.accessibleResources).flatMap(({resources}) => resources);\n\n for (const contentScript of this.contentScripts.values()) {\n const assets = this.dependencies.get(contentScript.entry)?.assets;\n\n if (assets && assets.size > 0) {\n resources.push(...assets);\n }\n }\n\n if (resources.length > 0) {\n return {web_accessible_resources: Array.from(new Set(resources))};\n }\n }\n}\n"],"mappings":"AAAA,OAAO,kBAAkB;AAEzB,SAAQ,oBAAoB,+BAA8B;AAI1D,SAAQ,kCAAiC;AAKzC,MAAO,2BAAsB,aAAyB;AAAA,EAC3C,YAAY,SAAkB;AACjC,UAAM,OAAO;AAAA,EACjB;AAAA,EAEO,qBAAsC;AACzC,WAAO;AAAA,EACX;AAAA,EAEU,cAA+C;AACrD,QAAI,KAAK,OAAO;AACZ,YAAM,EAAC,MAAM,OAAO,KAAI,IAAI,KAAK;AAEjC,aAAO;AAAA,QACH,gBAAgB;AAAA,UACZ,eAAe,SAAS,KAAK;AAAA,UAC7B,eAAe;AAAA,UACf,cAAc,KAAK,eAAe,IAAI;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ,WAAW,KAAK,wBAAwB,GAAG;AACvC,aAAO;AAAA,QACH,gBAAgB;AAAA,UACZ,eAAe,KAAK;AAAA,QACxB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,eAAkD;AACxD,QAAI,CAAC,2BAA2B,IAAI,KAAK,OAAO,GAAG;AAC/C;AAAA,IACJ;AAEA,WAAO,MAAM,aAAa;AAAA,EAC9B;AAAA,EAEU,sBAAuD;AAC7D,UAAM,WAAW,MAAM,oBAAoB;AAE3C,QAAI,UAAU;AACV,YAAM,EAAC,gBAAe,IAAI;AAE1B,UAAI,CAAC,iBAAiB;AAClB;AAAA,MACJ;AAEA,YAAM,iBAAiB,gBAElB,IAAI,CAAC,EAAC,OAAO,0BAA0B,GAAG,OAAM,MAAM,MAAM;AAEjE,aAAO,EAAC,iBAAiB,eAAc;AAAA,IAC3C;AAAA,EACJ;AAAA,EAEU,mBAAoD;AAC1D,UAAM,cAAwB,MAAM,KAAK,wBAAwB,KAAK,WAAW,CAAC;AAElF,QAAI,KAAK,gBAAgB,OAAO,GAAG;AAC/B,kBAAY,KAAK,GAAG,mBAAmB,KAAK,eAAe,CAAC;AAAA,IAChE;AAEA,QAAI,YAAY,SAAS,GAAG;AACxB,aAAO,EAAC,YAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEU,uBAAwD;AAG9D,WAAO;AAAA,EACX;AAAA,EAEU,8BAA+D;AApF7E;AAqFQ,UAAM,YAAsB,MAAM,KAAK,KAAK,mBAAmB,EAAE,QAAQ,CAAC,EAAC,WAAAA,WAAS,MAAMA,UAAS;AAEnG,eAAW,iBAAiB,KAAK,eAAe,OAAO,GAAG;AACtD,YAAM,UAAS,UAAK,aAAa,IAAI,cAAc,KAAK,MAAzC,mBAA4C;AAE3D,UAAI,UAAU,OAAO,OAAO,GAAG;AAC3B,kBAAU,KAAK,GAAG,MAAM;AAAA,MAC5B;AAAA,IACJ;AAEA,QAAI,UAAU,SAAS,GAAG;AACtB,aAAO,EAAC,0BAA0B,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,EAAC;AAAA,IACpE;AAAA,EACJ;AACJ;","names":["resources"]}
1
+ {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestV2.ts"],"sourcesContent":["import ManifestBase from \"./ManifestBase\";\n\nimport {filterHostPatterns, filterPermissionsForMV2} from \"./utils\";\n\nimport {CoreManifest, ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\ntype ManifestV2 = chrome.runtime.ManifestV2;\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV2> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 2;\n }\n\n protected buildAction(): Partial<ManifestV2> | undefined {\n if (this.popup) {\n const {icon, title, path} = this.popup;\n\n return {\n browser_action: {\n default_title: title || this.name,\n default_popup: path,\n default_icon: this.getIconsByName(icon),\n },\n };\n } else if (this.hasExecuteActionCommand()) {\n return {\n browser_action: {\n default_title: this.name,\n },\n };\n }\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!SidebarAlternativeBrowsers.has(this.browser)) {\n return;\n }\n\n return super.buildSidebar();\n }\n\n protected buildContentScripts(): Partial<ManifestV2> | undefined {\n const manifest = super.buildContentScripts() as Partial<ManifestV3>;\n\n if (manifest) {\n const {content_scripts} = manifest;\n\n if (!content_scripts) {\n return;\n }\n\n const contentScripts = content_scripts\n //@ts-ignore\n .map(({world, match_origin_as_fallback, ...script}) => script);\n\n return {content_scripts: contentScripts};\n }\n }\n\n protected buildPermissions(): Partial<ManifestV2> | undefined {\n const permissions: string[] = Array.from(filterPermissionsForMV2(this.permissions));\n\n if (this.hostPermissions.size > 0) {\n permissions.push(...filterHostPatterns(this.hostPermissions));\n }\n\n if (permissions.length > 0) {\n return {permissions};\n }\n }\n\n protected buildOptionalPermissions(): Partial<ManifestV2> | undefined {\n const optionalPermissions: string[] = Array.from(filterPermissionsForMV2(this.optionalPermissions)).filter(\n permission => !this.permissions.has(permission)\n );\n\n // prettier-ignore\n const optionalHostPermissions: string[] = Array\n .from(filterHostPatterns(new Set([...this.hostPermissions, ...this.optionalHostPermissions])))\n .filter((permission) => !this.hostPermissions.has(permission));\n\n if (optionalHostPermissions.length > 0) {\n optionalPermissions.push(...optionalHostPermissions);\n }\n\n if (optionalPermissions.length > 0) {\n return {optional_permissions: optionalPermissions};\n }\n }\n\n protected buildHostPermissions(): Partial<ManifestV2> | undefined {\n // In Manifest V2, host permissions are declared in the \"permissions\" array\n\n return undefined;\n }\n\n protected buildOptionalHostPermissions(): Partial<ManifestV2> | undefined {\n // In Manifest V2, optional host permissions are declared in the \"optional_permissions\" array\n\n return undefined;\n }\n\n protected buildWebAccessibleResources(): Partial<ManifestV2> | undefined {\n const resources: string[] = this.getWebAccessibleResources().flatMap(({resources}) => resources);\n\n if (resources.length > 0) {\n return {web_accessible_resources: Array.from(new Set(resources))};\n }\n }\n}\n"],"mappings":"AAAA,OAAO,kBAAkB;AAEzB,SAAQ,oBAAoB,+BAA8B;AAI1D,SAAQ,kCAAiC;AAKzC,MAAO,2BAAsB,aAAyB;AAAA,EAC3C,YAAY,SAAkB;AACjC,UAAM,OAAO;AAAA,EACjB;AAAA,EAEO,qBAAsC;AACzC,WAAO;AAAA,EACX;AAAA,EAEU,cAA+C;AACrD,QAAI,KAAK,OAAO;AACZ,YAAM,EAAC,MAAM,OAAO,KAAI,IAAI,KAAK;AAEjC,aAAO;AAAA,QACH,gBAAgB;AAAA,UACZ,eAAe,SAAS,KAAK;AAAA,UAC7B,eAAe;AAAA,UACf,cAAc,KAAK,eAAe,IAAI;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ,WAAW,KAAK,wBAAwB,GAAG;AACvC,aAAO;AAAA,QACH,gBAAgB;AAAA,UACZ,eAAe,KAAK;AAAA,QACxB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,eAAkD;AACxD,QAAI,CAAC,2BAA2B,IAAI,KAAK,OAAO,GAAG;AAC/C;AAAA,IACJ;AAEA,WAAO,MAAM,aAAa;AAAA,EAC9B;AAAA,EAEU,sBAAuD;AAC7D,UAAM,WAAW,MAAM,oBAAoB;AAE3C,QAAI,UAAU;AACV,YAAM,EAAC,gBAAe,IAAI;AAE1B,UAAI,CAAC,iBAAiB;AAClB;AAAA,MACJ;AAEA,YAAM,iBAAiB,gBAElB,IAAI,CAAC,EAAC,OAAO,0BAA0B,GAAG,OAAM,MAAM,MAAM;AAEjE,aAAO,EAAC,iBAAiB,eAAc;AAAA,IAC3C;AAAA,EACJ;AAAA,EAEU,mBAAoD;AAC1D,UAAM,cAAwB,MAAM,KAAK,wBAAwB,KAAK,WAAW,CAAC;AAElF,QAAI,KAAK,gBAAgB,OAAO,GAAG;AAC/B,kBAAY,KAAK,GAAG,mBAAmB,KAAK,eAAe,CAAC;AAAA,IAChE;AAEA,QAAI,YAAY,SAAS,GAAG;AACxB,aAAO,EAAC,YAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEU,2BAA4D;AAClE,UAAM,sBAAgC,MAAM,KAAK,wBAAwB,KAAK,mBAAmB,CAAC,EAAE;AAAA,MAChG,gBAAc,CAAC,KAAK,YAAY,IAAI,UAAU;AAAA,IAClD;AAGA,UAAM,0BAAoC,MACrC,KAAK,mBAAmB,oBAAI,IAAI,CAAC,GAAG,KAAK,iBAAiB,GAAG,KAAK,uBAAuB,CAAC,CAAC,CAAC,EAC5F,OAAO,CAAC,eAAe,CAAC,KAAK,gBAAgB,IAAI,UAAU,CAAC;AAEjE,QAAI,wBAAwB,SAAS,GAAG;AACpC,0BAAoB,KAAK,GAAG,uBAAuB;AAAA,IACvD;AAEA,QAAI,oBAAoB,SAAS,GAAG;AAChC,aAAO,EAAC,sBAAsB,oBAAmB;AAAA,IACrD;AAAA,EACJ;AAAA,EAEU,uBAAwD;AAG9D,WAAO;AAAA,EACX;AAAA,EAEU,+BAAgE;AAGtE,WAAO;AAAA,EACX;AAAA,EAEU,8BAA+D;AACrE,UAAM,YAAsB,KAAK,0BAA0B,EAAE,QAAQ,CAAC,EAAC,WAAAA,WAAS,MAAMA,UAAS;AAE/F,QAAI,UAAU,SAAS,GAAG;AACtB,aAAO,EAAC,0BAA0B,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,EAAC;AAAA,IACpE;AAAA,EACJ;AACJ;","names":["resources"]}
@@ -1,14 +1,11 @@
1
1
  import export_default$1 from './ManifestBase.js';
2
- import { ManifestVersion, CoreManifest } from '../../../types/manifest.js';
2
+ import { Q as ManifestVersion, a9 as CoreManifest } from '../../../manifest-DAV18Z2K.js';
3
3
  import { Browser } from '../../../types/browser.js';
4
4
  import '../../../types/locale.js';
5
- import '../../../types/content.js';
6
5
  import 'react';
7
6
  import 'utility-types';
8
- import '../../../types/entrypoint.js';
7
+ import '../../../types/app.js';
9
8
  import '../../../types/helpers.js';
10
- import '../../../types/background.js';
11
- import '../../../types/command.js';
12
9
 
13
10
  type ManifestV3 = chrome.runtime.ManifestV3;
14
11
  declare class export_default extends export_default$1<ManifestV3> {
@@ -17,7 +14,9 @@ declare class export_default extends export_default$1<ManifestV3> {
17
14
  protected buildBackground(): Partial<CoreManifest> | undefined;
18
15
  protected buildAction(): Partial<ManifestV3> | undefined;
19
16
  protected buildPermissions(): Partial<ManifestV3> | undefined;
17
+ protected buildOptionalPermissions(): Partial<ManifestV3> | undefined;
20
18
  protected buildHostPermissions(): Partial<ManifestV3> | undefined;
19
+ protected buildOptionalHostPermissions(): Partial<ManifestV3> | undefined;
21
20
  protected buildWebAccessibleResources(): Partial<ManifestV3> | undefined;
22
21
  }
23
22
 
@@ -1,7 +1,6 @@
1
1
  import ManifestBase, { ManifestError } from "./ManifestBase.js";
2
2
  import { filterHostPatterns, filterPermissionsForMV3 } from "./utils.js";
3
3
  import { Browser } from "./../../../types/browser.js";
4
- import { ContentScriptMatches } from "./../../../types/content.js";
5
4
  class ManifestV3_default extends ManifestBase {
6
5
  constructor(browser) {
7
6
  super(browser);
@@ -58,25 +57,31 @@ class ManifestV3_default extends ManifestBase {
58
57
  return { permissions };
59
58
  }
60
59
  }
60
+ buildOptionalPermissions() {
61
+ const optionalPermissions = Array.from(filterPermissionsForMV3(this.optionalPermissions)).filter((permission) => !this.permissions.has(permission));
62
+ if (optionalPermissions.length > 0) {
63
+ return { optional_permissions: optionalPermissions };
64
+ }
65
+ }
61
66
  buildHostPermissions() {
62
67
  if (this.hostPermissions.size > 0) {
63
68
  return { host_permissions: [...filterHostPatterns(this.hostPermissions)] };
64
69
  }
65
70
  }
66
- buildWebAccessibleResources() {
67
- var _a;
68
- const resources = [...this.accessibleResources];
69
- for (const contentScript of this.contentScripts.values()) {
70
- const assets = (_a = this.dependencies.get(contentScript.entry)) == null ? void 0 : _a.assets;
71
- if (assets && assets.size > 0) {
72
- resources.push({
73
- resources: Array.from(assets),
74
- matches: contentScript.matches || ContentScriptMatches
75
- });
76
- }
71
+ buildOptionalHostPermissions() {
72
+ const optionalHostPermissions = Array.from(filterHostPatterns(/* @__PURE__ */ new Set([...this.hostPermissions, ...this.optionalHostPermissions]))).filter((permission) => !this.hostPermissions.has(permission));
73
+ if (optionalHostPermissions.length > 0) {
74
+ return { optional_host_permissions: optionalHostPermissions };
77
75
  }
76
+ }
77
+ buildWebAccessibleResources() {
78
+ const resources = this.getWebAccessibleResources();
79
+ const transformedResources = resources.map((resource) => ({
80
+ resources: resource.resources,
81
+ matches: resource.matches || []
82
+ }));
78
83
  if (resources.length > 0) {
79
- return { web_accessible_resources: resources };
84
+ return { web_accessible_resources: transformedResources };
80
85
  }
81
86
  }
82
87
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestV3.ts"],"sourcesContent":["import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {filterHostPatterns, filterPermissionsForMV3} from \"./utils\";\n\nimport {CoreManifest, ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\nimport {ContentScriptMatches} from \"@typing/content\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV3> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 3;\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.browser === Browser.Firefox) {\n const manifest = super.buildBackground();\n\n if (manifest) {\n const {background, ...other} = manifest;\n\n return {...other, background: {...background, persistent: undefined}};\n }\n\n return;\n }\n\n if (this.background) {\n const {entry} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n if (dependencies.js.size > 1) {\n throw new ManifestError(`Background entry \"${entry}\" has more than one dependency`);\n }\n\n const [js] = Array.from(dependencies.js);\n\n return {background: {service_worker: js}};\n }\n }\n\n protected buildAction(): Partial<ManifestV3> | undefined {\n if (this.popup) {\n const {path, icon, title} = this.popup;\n\n return {\n action: {\n default_title: title || this.name,\n default_popup: path,\n default_icon: this.getIconsByName(icon),\n },\n };\n } else if (this.hasExecuteActionCommand()) {\n return {\n action: {\n default_title: this.name,\n },\n };\n }\n }\n\n protected buildPermissions(): Partial<ManifestV3> | undefined {\n const permissions = Array.from(filterPermissionsForMV3(this.permissions));\n\n if (permissions.length > 0) {\n return {permissions};\n }\n }\n\n protected buildHostPermissions(): Partial<ManifestV3> | undefined {\n if (this.hostPermissions.size > 0) {\n return {host_permissions: [...filterHostPatterns(this.hostPermissions)]};\n }\n }\n\n protected buildWebAccessibleResources(): Partial<ManifestV3> | undefined {\n const resources: Array<{resources: string[]; matches: string[]}> = [...this.accessibleResources];\n\n for (const contentScript of this.contentScripts.values()) {\n const assets = this.dependencies.get(contentScript.entry)?.assets;\n\n if (assets && assets.size > 0) {\n resources.push({\n resources: Array.from(assets),\n matches: contentScript.matches || ContentScriptMatches,\n });\n }\n }\n\n if (resources.length > 0) {\n return {web_accessible_resources: resources};\n }\n }\n}\n"],"mappings":"AAAA,OAAO,gBAAe,qBAAoB;AAE1C,SAAQ,oBAAoB,+BAA8B;AAG1D,SAAQ,eAAc;AACtB,SAAQ,4BAA2B;AAInC,MAAO,2BAAsB,aAAyB;AAAA,EAC3C,YAAY,SAAkB;AACjC,UAAM,OAAO;AAAA,EACjB;AAAA,EAEO,qBAAsC;AACzC,WAAO;AAAA,EACX;AAAA,EAEU,kBAAqD;AAC3D,QAAI,KAAK,YAAY,QAAQ,SAAS;AAClC,YAAM,WAAW,MAAM,gBAAgB;AAEvC,UAAI,UAAU;AACV,cAAM,EAAC,YAAY,GAAG,MAAK,IAAI;AAE/B,eAAO,EAAC,GAAG,OAAO,YAAY,EAAC,GAAG,YAAY,YAAY,OAAS,EAAC;AAAA,MACxE;AAEA;AAAA,IACJ;AAEA,QAAI,KAAK,YAAY;AACjB,YAAM,EAAC,MAAK,IAAI,KAAK;AAErB,YAAM,eAAe,KAAK,aAAa,IAAI,KAAK;AAEhD,UAAI,CAAC,cAAc;AACf,cAAM,IAAI,cAAc,qBAAqB,KAAK,6BAA6B;AAAA,MACnF;AAEA,UAAI,aAAa,GAAG,SAAS,GAAG;AAC5B,cAAM,IAAI,cAAc,qBAAqB,KAAK,uBAAuB;AAAA,MAC7E;AAEA,UAAI,aAAa,GAAG,OAAO,GAAG;AAC1B,cAAM,IAAI,cAAc,qBAAqB,KAAK,gCAAgC;AAAA,MACtF;AAEA,YAAM,CAAC,EAAE,IAAI,MAAM,KAAK,aAAa,EAAE;AAEvC,aAAO,EAAC,YAAY,EAAC,gBAAgB,GAAE,EAAC;AAAA,IAC5C;AAAA,EACJ;AAAA,EAEU,cAA+C;AACrD,QAAI,KAAK,OAAO;AACZ,YAAM,EAAC,MAAM,MAAM,MAAK,IAAI,KAAK;AAEjC,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,eAAe,SAAS,KAAK;AAAA,UAC7B,eAAe;AAAA,UACf,cAAc,KAAK,eAAe,IAAI;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ,WAAW,KAAK,wBAAwB,GAAG;AACvC,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,eAAe,KAAK;AAAA,QACxB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEU,mBAAoD;AAC1D,UAAM,cAAc,MAAM,KAAK,wBAAwB,KAAK,WAAW,CAAC;AAExE,QAAI,YAAY,SAAS,GAAG;AACxB,aAAO,EAAC,YAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEU,uBAAwD;AAC9D,QAAI,KAAK,gBAAgB,OAAO,GAAG;AAC/B,aAAO,EAAC,kBAAkB,CAAC,GAAG,mBAAmB,KAAK,eAAe,CAAC,EAAC;AAAA,IAC3E;AAAA,EACJ;AAAA,EAEU,8BAA+D;AAzF7E;AA0FQ,UAAM,YAA6D,CAAC,GAAG,KAAK,mBAAmB;AAE/F,eAAW,iBAAiB,KAAK,eAAe,OAAO,GAAG;AACtD,YAAM,UAAS,UAAK,aAAa,IAAI,cAAc,KAAK,MAAzC,mBAA4C;AAE3D,UAAI,UAAU,OAAO,OAAO,GAAG;AAC3B,kBAAU,KAAK;AAAA,UACX,WAAW,MAAM,KAAK,MAAM;AAAA,UAC5B,SAAS,cAAc,WAAW;AAAA,QACtC,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,QAAI,UAAU,SAAS,GAAG;AACtB,aAAO,EAAC,0BAA0B,UAAS;AAAA,IAC/C;AAAA,EACJ;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestV3.ts"],"sourcesContent":["import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {filterHostPatterns, filterPermissionsForMV3} from \"./utils\";\n\nimport {CoreManifest, ManifestAccessibleResource, ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/browser\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV3> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 3;\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.browser === Browser.Firefox) {\n const manifest = super.buildBackground();\n\n if (manifest) {\n const {background, ...other} = manifest;\n\n return {...other, background: {...background, persistent: undefined}};\n }\n\n return;\n }\n\n if (this.background) {\n const {entry} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n if (dependencies.js.size > 1) {\n throw new ManifestError(`Background entry \"${entry}\" has more than one dependency`);\n }\n\n const [js] = Array.from(dependencies.js);\n\n return {background: {service_worker: js}};\n }\n }\n\n protected buildAction(): Partial<ManifestV3> | undefined {\n if (this.popup) {\n const {path, icon, title} = this.popup;\n\n return {\n action: {\n default_title: title || this.name,\n default_popup: path,\n default_icon: this.getIconsByName(icon),\n },\n };\n } else if (this.hasExecuteActionCommand()) {\n return {\n action: {\n default_title: this.name,\n },\n };\n }\n }\n\n protected buildPermissions(): Partial<ManifestV3> | undefined {\n const permissions = Array.from(filterPermissionsForMV3(this.permissions));\n\n if (permissions.length > 0) {\n return {permissions};\n }\n }\n\n protected buildOptionalPermissions(): Partial<ManifestV3> | undefined {\n // prettier-ignore\n const optionalPermissions = Array\n .from(filterPermissionsForMV3(this.optionalPermissions))\n .filter((permission) => !this.permissions.has(permission));\n\n if (optionalPermissions.length > 0) {\n return {optional_permissions: optionalPermissions};\n }\n }\n\n protected buildHostPermissions(): Partial<ManifestV3> | undefined {\n if (this.hostPermissions.size > 0) {\n return {host_permissions: [...filterHostPatterns(this.hostPermissions)]};\n }\n }\n\n protected buildOptionalHostPermissions(): Partial<ManifestV3> | undefined {\n // prettier-ignore\n const optionalHostPermissions = Array\n .from(filterHostPatterns(new Set([...this.hostPermissions, ...this.optionalHostPermissions])))\n .filter((permission) => !this.hostPermissions.has(permission));\n\n if (optionalHostPermissions.length > 0) {\n return {optional_host_permissions: optionalHostPermissions};\n }\n }\n\n protected buildWebAccessibleResources(): Partial<ManifestV3> | undefined {\n const resources: ManifestAccessibleResource[] = this.getWebAccessibleResources();\n\n const transformedResources = resources.map(resource => ({\n resources: resource.resources,\n matches: resource.matches || [],\n }));\n\n if (resources.length > 0) {\n return {web_accessible_resources: transformedResources};\n }\n }\n}\n"],"mappings":"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","names":[]}