adnbn 0.13.0 → 0.15.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 (392) hide show
  1. package/dist/cli/builders/app/build.d.ts +7 -0
  2. package/dist/cli/builders/app/build.js +58 -0
  3. package/dist/cli/builders/app/build.js.map +1 -0
  4. package/dist/cli/builders/app/index.d.ts +6 -1
  5. package/dist/cli/builders/app/index.js +49 -14
  6. package/dist/cli/builders/app/index.js.map +1 -1
  7. package/dist/cli/builders/app/{command.d.ts → watch.d.ts} +0 -1
  8. package/dist/cli/builders/app/{command.js → watch.js} +1 -26
  9. package/dist/cli/builders/app/watch.js.map +1 -0
  10. package/dist/cli/builders/manifest/ManifestBase.d.ts +8 -1
  11. package/dist/cli/builders/manifest/ManifestBase.js +30 -0
  12. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  13. package/dist/cli/builders/manifest/ManifestV2.js +3 -15
  14. package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
  15. package/dist/cli/builders/manifest/ManifestV3.js +3 -15
  16. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  17. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js +4 -0
  18. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -1
  19. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
  20. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
  21. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
  22. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
  23. package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
  24. package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
  25. package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
  26. package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
  27. package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
  28. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
  29. package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
  30. package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
  31. package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
  32. package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
  33. package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
  34. package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
  35. package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
  36. package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
  37. package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
  38. package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
  39. package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
  40. package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
  41. package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
  42. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
  43. package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
  44. package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
  45. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
  46. package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
  47. package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
  48. package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +2 -3
  49. package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
  50. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
  51. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
  52. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
  53. package/dist/cli/entrypoint/finder/index.d.ts +5 -0
  54. package/dist/cli/entrypoint/finder/index.js +50 -40
  55. package/dist/cli/entrypoint/finder/index.js.map +1 -1
  56. package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
  57. package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
  58. package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
  59. package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
  60. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
  61. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
  62. package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
  63. package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
  64. package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
  65. package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
  66. package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
  67. package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
  68. package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
  69. package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
  70. package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
  71. package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
  72. package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
  73. package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
  74. package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
  75. package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
  76. package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
  77. package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
  78. package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
  79. package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
  80. package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
  81. package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
  82. package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
  83. package/dist/cli/entrypoint/parser/index.d.ts +4 -0
  84. package/dist/cli/entrypoint/parser/index.js +28 -20
  85. package/dist/cli/entrypoint/parser/index.js.map +1 -1
  86. package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
  87. package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
  88. package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
  89. package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
  90. package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
  91. package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
  92. package/dist/cli/index.js +16 -3
  93. package/dist/cli/index.js.map +1 -1
  94. package/dist/cli/plugins/action.d.ts +2 -0
  95. package/dist/cli/plugins/action.js +13 -0
  96. package/dist/cli/plugins/action.js.map +1 -0
  97. package/dist/cli/plugins/index.d.ts +2 -0
  98. package/dist/cli/plugins/index.js +52 -48
  99. package/dist/cli/plugins/index.js.map +1 -1
  100. package/dist/cli/plugins/offscreen/index.js +2 -4
  101. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  102. package/dist/cli/plugins/options/index.js +1 -1
  103. package/dist/cli/plugins/options/index.js.map +1 -1
  104. package/dist/cli/plugins/override/Override.d.ts +31 -0
  105. package/dist/cli/plugins/override/Override.js +112 -0
  106. package/dist/cli/plugins/override/Override.js.map +1 -0
  107. package/dist/cli/plugins/override/index.d.ts +2 -0
  108. package/dist/cli/plugins/override/index.js +48 -0
  109. package/dist/cli/plugins/override/index.js.map +1 -0
  110. package/dist/cli/plugins/popup/index.js +1 -1
  111. package/dist/cli/plugins/popup/index.js.map +1 -1
  112. package/dist/cli/plugins/sidebar/index.js +1 -2
  113. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  114. package/dist/cli/plugins/style/index.js +34 -31
  115. package/dist/cli/plugins/style/index.js.map +1 -1
  116. package/dist/cli/plugins/style/rebase.d.ts +14 -0
  117. package/dist/cli/plugins/style/rebase.js +63 -0
  118. package/dist/cli/plugins/style/rebase.js.map +1 -0
  119. package/dist/cli/plugins/style/utils.d.ts +5 -1
  120. package/dist/cli/plugins/style/utils.js +21 -8
  121. package/dist/cli/plugins/style/utils.js.map +1 -1
  122. package/dist/cli/plugins/typescript/TypescriptConfig.js +2 -2
  123. package/dist/cli/plugins/typescript/TypescriptConfig.js.map +1 -1
  124. package/dist/cli/plugins/view/View.d.ts +1 -1
  125. package/dist/cli/plugins/view/View.js +2 -10
  126. package/dist/cli/plugins/view/View.js.map +1 -1
  127. package/dist/cli/plugins/view/index.js +10 -1
  128. package/dist/cli/plugins/view/index.js.map +1 -1
  129. package/dist/cli/resolvers/bundler.js +9 -1
  130. package/dist/cli/resolvers/bundler.js.map +1 -1
  131. package/dist/cli/resolvers/config.js +7 -1
  132. package/dist/cli/resolvers/config.js.map +1 -1
  133. package/dist/cli/utils/path.js +1 -1
  134. package/dist/cli/utils/path.js.map +1 -1
  135. package/dist/cli/virtual/index.js +14 -17
  136. package/dist/cli/virtual/virtual.d.ts +7 -127
  137. package/dist/entry/background/Builder.js +1 -1
  138. package/dist/entry/background/Builder.js.map +1 -1
  139. package/dist/entry/background/index.d.ts +1 -1
  140. package/dist/entry/background/index.js +3 -2
  141. package/dist/entry/background/index.js.map +1 -1
  142. package/dist/entry/background/resolvers/definition.d.ts +5 -1
  143. package/dist/entry/background/resolvers/definition.js +15 -4
  144. package/dist/entry/background/resolvers/definition.js.map +1 -1
  145. package/dist/entry/command/Builder.js +1 -1
  146. package/dist/entry/command/Builder.js.map +1 -1
  147. package/dist/entry/command/index.d.ts +1 -1
  148. package/dist/entry/command/index.js +3 -2
  149. package/dist/entry/command/index.js.map +1 -1
  150. package/dist/entry/command/resolvers/definition.d.ts +6 -2
  151. package/dist/entry/command/resolvers/definition.js +14 -4
  152. package/dist/entry/command/resolvers/definition.js.map +1 -1
  153. package/dist/entry/content/adapters/react/Builder.js +4 -2
  154. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  155. package/dist/entry/content/adapters/react/Node.js +11 -6
  156. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  157. package/dist/entry/content/adapters/react/definition.js +3 -2
  158. package/dist/entry/content/adapters/react/definition.js.map +1 -1
  159. package/dist/entry/content/adapters/vanilla/Builder.js +2 -2
  160. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  161. package/dist/entry/content/adapters/vanilla/Node.js +3 -5
  162. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  163. package/dist/entry/content/adapters/vanilla/definition.js +2 -2
  164. package/dist/entry/content/adapters/vanilla/definition.js.map +1 -1
  165. package/dist/entry/content/lifecycle/Builder.js +5 -9
  166. package/dist/entry/content/lifecycle/Builder.js.map +1 -1
  167. package/dist/entry/core/react.d.ts +6 -0
  168. package/dist/entry/core/react.js +16 -0
  169. package/dist/entry/core/react.js.map +1 -0
  170. package/dist/entry/core/render.d.ts +5 -0
  171. package/dist/entry/core/render.js +16 -0
  172. package/dist/entry/core/render.js.map +1 -0
  173. package/dist/entry/offscreen/Builder.d.ts +6 -7
  174. package/dist/entry/offscreen/Builder.js +12 -13
  175. package/dist/entry/offscreen/Builder.js.map +1 -1
  176. package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
  177. package/dist/entry/offscreen/TransportBuilder.js +4 -3
  178. package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
  179. package/dist/entry/offscreen/index.d.ts +5 -2
  180. package/dist/entry/offscreen/index.js +8 -2
  181. package/dist/entry/offscreen/index.js.map +1 -1
  182. package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
  183. package/dist/entry/offscreen/resolvers/definition.js +8 -0
  184. package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
  185. package/dist/entry/relay/Builder.d.ts +4 -3
  186. package/dist/entry/relay/Builder.js.map +1 -1
  187. package/dist/entry/relay/index.d.ts +4 -3
  188. package/dist/entry/relay/index.js.map +1 -1
  189. package/dist/entry/relay/resolvers/definition.d.ts +1 -1
  190. package/dist/entry/relay/resolvers/definition.js +2 -10
  191. package/dist/entry/relay/resolvers/definition.js.map +1 -1
  192. package/dist/entry/sandbox/Builder.d.ts +6 -7
  193. package/dist/entry/sandbox/Builder.js +8 -12
  194. package/dist/entry/sandbox/Builder.js.map +1 -1
  195. package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
  196. package/dist/entry/sandbox/TransportBuilder.js +4 -3
  197. package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
  198. package/dist/entry/sandbox/index.d.ts +7 -2
  199. package/dist/entry/sandbox/index.js +10 -4
  200. package/dist/entry/sandbox/index.js.map +1 -1
  201. package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
  202. package/dist/entry/sandbox/resolvers/definition.js +8 -0
  203. package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
  204. package/dist/entry/service/index.d.ts +1 -0
  205. package/dist/entry/service/index.js +3 -1
  206. package/dist/entry/service/index.js.map +1 -1
  207. package/dist/entry/service/resolvers/definition.d.ts +3 -0
  208. package/dist/entry/service/resolvers/definition.js +8 -0
  209. package/dist/entry/service/resolvers/definition.js.map +1 -0
  210. package/dist/entry/transport/AbstractBuilder.js +1 -1
  211. package/dist/entry/transport/AbstractBuilder.js.map +1 -1
  212. package/dist/entry/transport/resolvers/definition.d.ts +7 -5
  213. package/dist/entry/transport/resolvers/definition.js +15 -4
  214. package/dist/entry/transport/resolvers/definition.js.map +1 -1
  215. package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
  216. package/dist/entry/view/Builder.js +62 -0
  217. package/dist/entry/view/Builder.js.map +1 -0
  218. package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
  219. package/dist/entry/view/adapters/react/Builder.js +20 -23
  220. package/dist/entry/view/adapters/react/Builder.js.map +1 -1
  221. package/dist/entry/view/adapters/react/definition.d.ts +2 -0
  222. package/dist/entry/view/adapters/react/definition.js +13 -0
  223. package/dist/entry/view/adapters/react/definition.js.map +1 -0
  224. package/dist/entry/view/adapters/react/index.d.ts +2 -1
  225. package/dist/entry/view/adapters/react/index.js +3 -1
  226. package/dist/entry/view/adapters/react/index.js.map +1 -1
  227. package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
  228. package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
  229. package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
  230. package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
  231. package/dist/entry/view/adapters/vanilla/definition.js +9 -0
  232. package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
  233. package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
  234. package/dist/entry/view/adapters/vanilla/index.js +3 -1
  235. package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
  236. package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
  237. package/dist/entry/view/resolvers/container.js.map +1 -0
  238. package/dist/entry/view/resolvers/definition.d.ts +3 -0
  239. package/dist/entry/view/resolvers/definition.js +18 -0
  240. package/dist/entry/view/resolvers/definition.js.map +1 -0
  241. package/dist/locale/adapters/react/hooks/use-locale.js +1 -1
  242. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -1
  243. package/dist/locale/adapters/react/hooks/use-native-locale.js +1 -1
  244. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -1
  245. package/dist/locale/index.d.ts +1 -0
  246. package/dist/locale/index.js +3 -1
  247. package/dist/locale/index.js.map +1 -1
  248. package/dist/locale/{providers → observers}/ObservableLocale.js +2 -2
  249. package/dist/locale/observers/ObservableLocale.js.map +1 -0
  250. package/dist/locale/observers/index.d.ts +1 -0
  251. package/dist/locale/observers/index.js +5 -0
  252. package/dist/locale/observers/index.js.map +1 -0
  253. package/dist/locale/providers/index.d.ts +0 -1
  254. package/dist/locale/providers/index.js +1 -3
  255. package/dist/locale/providers/index.js.map +1 -1
  256. package/dist/main/config.d.ts +1 -0
  257. package/dist/main/config.js.map +1 -1
  258. package/dist/main/index.d.ts +2 -0
  259. package/dist/main/index.js +2 -0
  260. package/dist/main/index.js.map +1 -1
  261. package/dist/main/override.d.ts +5 -0
  262. package/dist/main/override.js +15 -0
  263. package/dist/main/override.js.map +1 -0
  264. package/dist/main/permissions.d.ts +1 -0
  265. package/dist/main/permissions.js +1 -0
  266. package/dist/main/relay.d.ts +1 -0
  267. package/dist/main/relay.js +2 -0
  268. package/dist/main/relay.js.map +1 -1
  269. package/dist/main/view.d.ts +1 -1
  270. package/dist/message/adapters/react/index.d.ts +1 -1
  271. package/dist/message/adapters/react/index.js +1 -1
  272. package/dist/message/adapters/react/index.js.map +1 -1
  273. package/dist/message/adapters/react/{useMessageHandler.js → use-message-handler.js} +6 -4
  274. package/dist/message/adapters/react/use-message-handler.js.map +1 -0
  275. package/dist/message/handlers/MapHandler.js +2 -1
  276. package/dist/message/handlers/MapHandler.js.map +1 -1
  277. package/dist/message/handlers/SingleHandler.js +2 -1
  278. package/dist/message/handlers/SingleHandler.js.map +1 -1
  279. package/dist/message/providers/Message.js +1 -1
  280. package/dist/message/providers/Message.js.map +1 -1
  281. package/dist/relay/RelayPermission.js +8 -2
  282. package/dist/relay/RelayPermission.js.map +1 -1
  283. package/dist/relay/adapters/RelayScriptingAdapter.d.ts +1 -0
  284. package/dist/relay/adapters/RelayScriptingAdapter.js +30 -64
  285. package/dist/relay/adapters/RelayScriptingAdapter.js.map +1 -1
  286. package/dist/relay/adapters/invoke-relay.d.ts +3 -0
  287. package/dist/relay/adapters/invoke-relay.js +69 -0
  288. package/dist/relay/adapters/invoke-relay.js.map +1 -0
  289. package/dist/relay/adapters/scripting-response.d.ts +12 -0
  290. package/dist/relay/adapters/scripting-response.js +1 -0
  291. package/dist/relay/adapters/scripting-response.js.map +1 -0
  292. package/dist/relay/result.d.ts +3 -0
  293. package/dist/relay/result.js +7 -0
  294. package/dist/relay/result.js.map +1 -1
  295. package/dist/types/action.d.ts +8 -0
  296. package/dist/types/action.js +1 -0
  297. package/dist/types/action.js.map +1 -0
  298. package/dist/types/background.d.ts +2 -8
  299. package/dist/types/background.js.map +1 -1
  300. package/dist/types/config.d.ts +17 -1
  301. package/dist/types/content/definition.d.ts +2 -1
  302. package/dist/types/entrypoint.d.ts +5 -1
  303. package/dist/types/entrypoint.js +3 -0
  304. package/dist/types/entrypoint.js.map +1 -1
  305. package/dist/types/manifest.d.ts +23 -2
  306. package/dist/types/manifest.js.map +1 -1
  307. package/dist/types/offscreen.d.ts +2 -2
  308. package/dist/types/offscreen.js.map +1 -1
  309. package/dist/types/options.d.ts +3 -2
  310. package/dist/types/override.d.ts +22 -0
  311. package/dist/types/override.js +1 -0
  312. package/dist/types/override.js.map +1 -0
  313. package/dist/types/page.d.ts +1 -1
  314. package/dist/types/permissions.d.ts +39 -0
  315. package/dist/types/permissions.js +1 -0
  316. package/dist/types/permissions.js.map +1 -0
  317. package/dist/types/plugin.d.ts +4 -1
  318. package/dist/types/popup.d.ts +5 -3
  319. package/dist/types/sandbox.d.ts +2 -2
  320. package/dist/types/sandbox.js.map +1 -1
  321. package/dist/types/sidebar.d.ts +5 -3
  322. package/dist/types/sidebar.js.map +1 -1
  323. package/dist/types/view/adapters/index.d.ts +2 -0
  324. package/dist/types/view/adapters/index.js +1 -0
  325. package/dist/types/view/adapters/index.js.map +1 -0
  326. package/dist/types/view/adapters/react.d.ts +4 -0
  327. package/dist/types/view/adapters/react.js +1 -0
  328. package/dist/types/view/adapters/react.js.map +1 -0
  329. package/dist/types/view/adapters/vanilla.d.ts +1 -0
  330. package/dist/types/view/adapters/vanilla.js +1 -0
  331. package/dist/types/view/adapters/vanilla.js.map +1 -0
  332. package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
  333. package/dist/types/view/common.js +1 -0
  334. package/dist/types/view/common.js.map +1 -0
  335. package/dist/types/view/definition.d.ts +15 -0
  336. package/dist/types/view/definition.js +1 -0
  337. package/dist/types/view/definition.js.map +1 -0
  338. package/dist/types/view/index.d.ts +4 -0
  339. package/dist/types/view/index.js +1 -0
  340. package/dist/types/view/index.js.map +1 -0
  341. package/dist/types/view/render.d.ts +7 -0
  342. package/dist/types/view/render.js +1 -0
  343. package/dist/types/view/render.js.map +1 -0
  344. package/package.json +18 -31
  345. package/dist/cli/builders/app/command.js.map +0 -1
  346. package/dist/entry/background/resolvers/index.d.ts +0 -1
  347. package/dist/entry/background/resolvers/index.js +0 -2
  348. package/dist/entry/background/resolvers/index.js.map +0 -1
  349. package/dist/entry/command/resolvers/index.d.ts +0 -1
  350. package/dist/entry/command/resolvers/index.js +0 -2
  351. package/dist/entry/command/resolvers/index.js.map +0 -1
  352. package/dist/entry/content/adapters/vanilla/utils.d.ts +0 -1
  353. package/dist/entry/content/adapters/vanilla/utils.js +0 -7
  354. package/dist/entry/content/adapters/vanilla/utils.js.map +0 -1
  355. package/dist/entry/content/resolvers/index.d.ts +0 -6
  356. package/dist/entry/content/resolvers/index.js +0 -7
  357. package/dist/entry/content/resolvers/index.js.map +0 -1
  358. package/dist/entry/transport/index.d.ts +0 -1
  359. package/dist/entry/transport/index.js +0 -2
  360. package/dist/entry/transport/index.js.map +0 -1
  361. package/dist/entry/transport/resolvers/index.d.ts +0 -1
  362. package/dist/entry/transport/resolvers/index.js +0 -2
  363. package/dist/entry/transport/resolvers/index.js.map +0 -1
  364. package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
  365. package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
  366. package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
  367. package/dist/entry/view/core/Builder.js +0 -35
  368. package/dist/entry/view/core/Builder.js.map +0 -1
  369. package/dist/entry/view/core/resolvers/container.js.map +0 -1
  370. package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
  371. package/dist/entry/view/core/resolvers/definition.js +0 -12
  372. package/dist/entry/view/core/resolvers/definition.js.map +0 -1
  373. package/dist/entry/view/core/resolvers/render.d.ts +0 -3
  374. package/dist/entry/view/core/resolvers/render.js +0 -18
  375. package/dist/entry/view/core/resolvers/render.js.map +0 -1
  376. package/dist/entry/view/index.d.ts +0 -1
  377. package/dist/entry/view/index.js +0 -2
  378. package/dist/entry/view/index.js.map +0 -1
  379. package/dist/locale/providers/ObservableLocale.js.map +0 -1
  380. package/dist/message/adapters/react/useMessageHandler.js.map +0 -1
  381. package/dist/types/view.js +0 -1
  382. package/scripts/clean-dist.js +0 -7
  383. package/scripts/copy-dts.js +0 -29
  384. package/scripts/merge-coverage.mjs +0 -12
  385. package/scripts/pre-commit.mjs +0 -22
  386. package/scripts/test-inventory.mjs +0 -38
  387. package/scripts/test-run.mjs +0 -25
  388. /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
  389. /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
  390. /package/dist/locale/{providers → observers}/ObservableLocale.d.ts +0 -0
  391. /package/dist/{types/view.js.map → main/permissions.js.map} +0 -0
  392. /package/dist/message/adapters/react/{useMessageHandler.d.ts → use-message-handler.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/entrypoint.ts"],"sourcesContent":["import {Mode} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport const EntrypointFileExtensions: ReadonlySet<string> = new Set([\"ts\", \"tsx\", \"js\", \"jsx\", \"vue\", \"svelte\"]);\n\nexport const EntrypointAssetsRuntimeProperty = \"__adnbnCurrentEntrypointAssets\";\nexport const EntrypointAssetsMapRuntimeProperty = \"__adnbnBuildAssets\";\n\nexport enum EntrypointType {\n Background = \"background\",\n Command = \"command\",\n ContentScript = \"content\",\n Page = \"page\",\n Service = \"service\",\n Relay = \"relay\",\n Options = \"options\",\n Popup = \"popup\",\n Sidebar = \"sidebar\",\n Offscreen = \"offscreen\",\n Sandbox = \"sandbox\",\n}\n\nexport interface EntrypointOptions {\n /**\n * List of target browsers to include this entrypoint in. Defaults to being included in all\n * builds.\n *\n * @default undefined\n */\n includeBrowser?: `${Browser}`[] | Browser[];\n\n /**\n * List of target browsers to exclude this entrypoint from.\n *\n * @default undefined\n */\n excludeBrowser?: `${Browser}`[] | Browser[];\n\n /**\n * List of target apps to include this entrypoint in. Defaults to being included in all builds.\n *\n * @default undefined\n */\n excludeApp?: string[];\n\n /**\n * List of target apps to exclude this entrypoint from.\n *\n * @default undefined\n */\n includeApp?: string[];\n\n /**\n * Build mode for filtering entry points. Entry point will be included only\n * if it matches the current build mode (Production or Development).\n *\n * @default undefined\n */\n mode?: `${Exclude<Mode, Mode.None>}` | Exclude<Mode, Mode.None>;\n\n /**\n * Manifest version constraint for this entry point. Entry point will be included\n * only if it matches the target manifest version.\n *\n * @default undefined\n */\n manifestVersion?: ManifestVersion;\n\n /**\n * Debug mode flag. If true, entry point will be included only when building\n * with DEBUG flag enabled.\n *\n * @default undefined\n */\n debug?: boolean;\n}\n\nexport interface EntrypointFile {\n file: string;\n import: string;\n external?: string;\n}\n\n/**\n * Dictionary of entrypoint for the build configuration.\n *\n * @key {string} - The name of the entrypoint that will be used in the bundler configuration.\n * @value {EntrypointFile[]} - Array of files that will be included in this entrypoint.\n * These files will be compiled and bundled together as part of the specified entrypoint.\n */\nexport type EntrypointEntries = Map<string, Set<EntrypointFile>>;\n\nexport interface EntrypointAssetsFiles {\n readonly js: readonly string[];\n readonly css: readonly string[];\n}\n\nexport interface EntrypointAssets {\n readonly initial: EntrypointAssetsFiles;\n readonly async: EntrypointAssetsFiles;\n}\n\nexport interface EntrypointAssetsMapEntry extends EntrypointAssets {\n readonly assets: readonly string[];\n}\n\nexport type EntrypointAssetsMap = Readonly<Record<string, EntrypointAssetsMapEntry>>;\n\nexport interface EntrypointParser<O extends EntrypointOptions> {\n options(file: EntrypointFile): O;\n\n contract(file: EntrypointFile): string | undefined;\n}\n\nexport interface EntrypointFinder {\n files(): Promise<Set<EntrypointFile>>;\n\n empty(): Promise<boolean>;\n\n exists(): Promise<boolean>;\n\n clear(): this;\n\n /**\n * Determines if the specified file exists within the current set of files.\n *\n * @param {EntrypointFile} file - The file to be checked for existence in the set of files.\n * @return {boolean} Returns true if the file exists in the set, otherwise false.\n */\n holds(file: EntrypointFile): boolean;\n}\n\nexport interface EntrypointOptionsFinder<O extends EntrypointOptions> extends EntrypointFinder {\n type(): EntrypointType;\n\n options(): Promise<Map<EntrypointFile, O>>;\n\n contracts(): Promise<Map<EntrypointFile, string | undefined>>;\n}\n\nexport interface EntrypointNameGenerator {\n reserve(name: string): this;\n\n name(name: string): string;\n\n file(file: EntrypointFile): string;\n\n likely(name?: string): boolean;\n\n has(name: string): boolean;\n\n reset(): this;\n}\n\nexport interface EntrypointBuilder {\n build(): Promise<void>;\n\n destroy(): Promise<void>;\n}\n\nexport type EntrypointConstructorParameter<T> = T extends new (arg: infer P) => any ? P : never;\n"],"mappings":"AAIO,MAAM,2BAAgD,oBAAI,IAAI,CAAC,MAAM,OAAO,MAAM,OAAO,OAAO,QAAQ,CAAC;AAEzG,MAAM,kCAAkC;AACxC,MAAM,qCAAqC;AAE3C,IAAK,iBAAL,kBAAKA,oBAAL;AACH,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,mBAAgB;AAChB,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,aAAU;AAXF,SAAAA;AAAA,GAAA;","names":["EntrypointType"]}
1
+ {"version":3,"sources":["../../src/types/entrypoint.ts"],"sourcesContent":["import {Mode} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport const EntrypointFileExtensions: ReadonlySet<string> = new Set([\"ts\", \"tsx\", \"js\", \"jsx\", \"vue\", \"svelte\"]);\n\nexport const EntrypointAssetsRuntimeProperty = \"__adnbnCurrentEntrypointAssets\";\nexport const EntrypointAssetsMapRuntimeProperty = \"__adnbnBuildAssets\";\n\nexport enum EntrypointType {\n Background = \"background\",\n Command = \"command\",\n ContentScript = \"content\",\n Page = \"page\",\n Service = \"service\",\n Relay = \"relay\",\n Options = \"options\",\n Popup = \"popup\",\n Sidebar = \"sidebar\",\n Offscreen = \"offscreen\",\n Sandbox = \"sandbox\",\n Newtab = \"newtab\",\n Bookmarks = \"bookmarks\",\n History = \"history\",\n}\n\nexport interface EntrypointOptions {\n /**\n * List of target browsers to include this entrypoint in. Defaults to being included in all\n * builds.\n *\n * @default undefined\n */\n includeBrowser?: `${Browser}`[] | Browser[];\n\n /**\n * List of target browsers to exclude this entrypoint from.\n *\n * @default undefined\n */\n excludeBrowser?: `${Browser}`[] | Browser[];\n\n /**\n * List of target apps to include this entrypoint in. Defaults to being included in all builds.\n *\n * @default undefined\n */\n excludeApp?: string[];\n\n /**\n * List of target apps to exclude this entrypoint from.\n *\n * @default undefined\n */\n includeApp?: string[];\n\n /**\n * Build mode for filtering entry points. Entry point will be included only\n * if it matches the current build mode (Production or Development).\n *\n * @default undefined\n */\n mode?: `${Exclude<Mode, Mode.None>}` | Exclude<Mode, Mode.None>;\n\n /**\n * Manifest version constraint for this entry point. Entry point will be included\n * only if it matches the target manifest version.\n *\n * @default undefined\n */\n manifestVersion?: ManifestVersion;\n\n /**\n * Debug mode flag. If true, entry point will be included only when building\n * with DEBUG flag enabled.\n *\n * @default undefined\n */\n debug?: boolean;\n}\n\nexport interface EntrypointFile {\n file: string;\n import: string;\n external?: string;\n}\n\n/**\n * Dictionary of entrypoint for the build configuration.\n *\n * @key {string} - The name of the entrypoint that will be used in the bundler configuration.\n * @value {EntrypointFile[]} - Array of files that will be included in this entrypoint.\n * These files will be compiled and bundled together as part of the specified entrypoint.\n */\nexport type EntrypointEntries = Map<string, Set<EntrypointFile>>;\n\nexport interface EntrypointAssetsFiles {\n readonly js: readonly string[];\n readonly css: readonly string[];\n}\n\nexport interface EntrypointAssets {\n readonly initial: EntrypointAssetsFiles;\n readonly async: EntrypointAssetsFiles;\n}\n\nexport interface EntrypointAssetsMapEntry extends EntrypointAssets {\n readonly assets: readonly string[];\n}\n\nexport type EntrypointAssetsMap = Readonly<Record<string, EntrypointAssetsMapEntry>>;\n\nexport interface EntrypointParser<O extends EntrypointOptions> {\n options(file: EntrypointFile): O;\n\n contract(file: EntrypointFile): string | undefined;\n}\n\nexport interface EntrypointFinder {\n files(): Promise<Set<EntrypointFile>>;\n\n empty(): Promise<boolean>;\n\n exists(): Promise<boolean>;\n\n clear(): this;\n\n /**\n * Determines if the specified file exists within the current set of files.\n *\n * @param {EntrypointFile} file - The file to be checked for existence in the set of files.\n * @return {boolean} Returns true if the file exists in the set, otherwise false.\n */\n holds(file: EntrypointFile): boolean;\n}\n\nexport interface EntrypointOptionsFinder<O extends EntrypointOptions> extends EntrypointFinder {\n type(): EntrypointType;\n\n options(): Promise<Map<EntrypointFile, O>>;\n\n contracts(): Promise<Map<EntrypointFile, string | undefined>>;\n}\n\nexport interface EntrypointNameGenerator {\n reserve(name: string): this;\n\n name(name: string): string;\n\n file(file: EntrypointFile): string;\n\n derive(file: EntrypointFile): string;\n\n likely(name?: string): boolean;\n\n has(name: string): boolean;\n\n reset(): this;\n}\n\nexport interface EntrypointBuilder {\n build(): Promise<void>;\n\n destroy(): Promise<void>;\n}\n\nexport type EntrypointConstructorParameter<T> = T extends new (arg: infer P) => any ? P : never;\n"],"mappings":"AAIO,MAAM,2BAAgD,oBAAI,IAAI,CAAC,MAAM,OAAO,MAAM,OAAO,OAAO,QAAQ,CAAC;AAEzG,MAAM,kCAAkC;AACxC,MAAM,qCAAqC;AAE3C,IAAK,iBAAL,kBAAKA,oBAAL;AACH,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,mBAAgB;AAChB,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,aAAU;AAdF,SAAAA;AAAA,GAAA;","names":["EntrypointType"]}
@@ -5,6 +5,7 @@ import { Language } from "./locale.js";
5
5
  import { BrowserSpecific, DataCollectionPermission } from "./browser.js";
6
6
  import { CspConfig } from "./csp.js";
7
7
  import { SandboxCspConfig } from "./sandbox.js";
8
+ import { ActionOptions } from "./action.js";
8
9
  export declare const ManifestMatchSchemes: ReadonlySet<string>;
9
10
  export declare const ManifestSpecialSchemes: ReadonlySet<string>;
10
11
  export declare enum ManifestIncognito {
@@ -14,8 +15,9 @@ export declare enum ManifestIncognito {
14
15
  }
15
16
  type ManifestCommon = chrome.runtime.Manifest;
16
17
  type ManifestBase = chrome.runtime.ManifestBase;
17
- type ManifestPermission = chrome.runtime.ManifestPermission;
18
- type ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;
18
+ export type ManifestPermission = chrome.runtime.ManifestPermission;
19
+ export type ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;
20
+ export type ManifestAction = NonNullable<chrome.runtime.ManifestV3["action"]>;
19
21
  type ManifestFixed<T extends ManifestBase> = Omit<T, "manifest_version"> & {
20
22
  manifest_version: ManifestVersion;
21
23
  };
@@ -78,12 +80,14 @@ export interface ManifestBuilder<T extends CoreManifest = Manifest> {
78
80
  mergeSpecific(settings: BrowserSpecific): this;
79
81
  setIcons(icons?: ManifestIcons): this;
80
82
  setIcon(icon?: string): this;
83
+ setAction(action?: ActionOptions): this;
81
84
  setBackground(background?: ManifestBackground): this;
82
85
  setCommands(commands?: ManifestCommands): this;
83
86
  setContentScripts(contentScripts?: ManifestContentScripts): this;
84
87
  setPopup(popup?: ManifestPopup): this;
85
88
  setSidebar(sidebar?: ManifestSidebar): this;
86
89
  setOptions(options?: ManifestOptions): this;
90
+ setOverride(override?: ManifestOverride): this;
87
91
  addSandbox(sandbox: ManifestSandbox): this;
88
92
  appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this;
89
93
  addSandboxCsp(csp: SandboxCspConfig): this;
@@ -164,6 +168,23 @@ export interface ManifestOptions {
164
168
  */
165
169
  openInTab?: boolean;
166
170
  }
171
+ export type ManifestOverridePage = "newtab" | "bookmarks" | "history";
172
+ /**
173
+ * Chromium refuses to load an extension that overrides more than one page and other browsers
174
+ * only support `newtab`, so the manifest holds a single override instead of a dictionary.
175
+ */
176
+ export interface ManifestOverride {
177
+ /**
178
+ * Built-in browser page replaced by the extension.
179
+ * Written as the key of `chrome_url_overrides` in the manifest.
180
+ */
181
+ page: ManifestOverridePage;
182
+ /**
183
+ * Path to the replacement HTML file relative to the extension root.
184
+ * Written as the value of `chrome_url_overrides[page]`.
185
+ */
186
+ path: string;
187
+ }
167
188
  export interface ManifestAccessibleResource {
168
189
  resources: string[];
169
190
  matches?: string[];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/manifest.ts"],"sourcesContent":["import {ContentScriptConfig} from \"@typing/content\";\nimport {BackgroundConfig} from \"@typing/background\";\nimport {CommandConfig} from \"@typing/command\";\nimport {Language} from \"@typing/locale\";\nimport {BrowserSpecific, DataCollectionPermission} from \"@typing/browser\";\nimport {CspConfig} from \"@typing/csp\";\nimport {SandboxCspConfig} from \"@typing/sandbox\";\n\nexport const ManifestMatchSchemes: ReadonlySet<string> = new Set<string>([\"http\", \"https\", \"file\", \"ftp\", \"ws\", \"wss\"]);\n\nexport const ManifestSpecialSchemes: ReadonlySet<string> = new Set<string>([\n \"chrome-extension\",\n \"moz-extension\",\n \"data\",\n \"blob\",\n \"filesystem\",\n \"about\",\n \"chrome\",\n \"resource\",\n]);\n\nexport enum ManifestIncognito {\n Spanning = \"spanning\",\n Split = \"split\",\n NotAllowed = \"not_allowed\",\n}\n\ntype ManifestCommon = chrome.runtime.Manifest;\n\ntype ManifestBase = chrome.runtime.ManifestBase;\n\ntype ManifestPermission = chrome.runtime.ManifestPermission;\n\ntype ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;\n\ntype ManifestFixed<T extends ManifestBase> = Omit<T, \"manifest_version\"> & {\n manifest_version: ManifestVersion;\n};\n\ninterface ManifestUnstable {\n permissions?: (ManifestPermission | (string & Record<never, never>))[];\n web_accessible_resources?: string[] | chrome.runtime.ManifestV3[\"web_accessible_resources\"];\n}\n\nexport type ManifestVersion = 2 | 3;\n\nexport type ManifestIncognitoValue = ManifestIncognito | `${ManifestIncognito}`;\n\nexport type CoreManifest = ManifestFixed<ManifestBase>;\n\nexport type ChromeManifest = ManifestFixed<ManifestCommon>;\n\nexport type FirefoxManifest = ChromeManifest & {\n action?: chrome.runtime.ManifestV3[\"action\"] & {\n browser_style?: boolean;\n };\n browser_action?: chrome.runtime.ManifestV2[\"browser_action\"] & {\n browser_style?: boolean;\n };\n page_action?: chrome.runtime.ManifestV2[\"page_action\"] & {\n browser_style?: boolean;\n };\n browser_specific_settings?: {\n gecko?: {\n id?: string;\n strict_min_version?: string;\n strict_max_version?: string;\n update_url?: string;\n data_collection_permissions?: {\n required?: [\"none\"] | `${DataCollectionPermission}`[];\n optional?: `${DataCollectionPermission}`[];\n };\n };\n gecko_android?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n };\n} & ManifestUnstable;\n\nexport type SafariManifest = ChromeManifest & {\n browser_specific_settings?: {\n safari?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n };\n} & ManifestUnstable;\n\nexport type Manifest = ChromeManifest | FirefoxManifest | SafariManifest;\n\nexport type OptionalManifest = Partial<Omit<Manifest, \"manifest_version\">>;\n\nexport interface ManifestBuilder<T extends CoreManifest = Manifest> {\n setName(name: string): this;\n\n setShortName(shortName?: string): this;\n\n setDescription(description?: string): this;\n\n setAuthor(author?: string): this;\n\n setHomepage(homepage?: string): this;\n\n setVersion(version?: string): this;\n\n setIncognito(incognito?: ManifestIncognitoValue): this;\n\n setMinimumVersion(minimumVersion?: string): this;\n\n setLocale(lang?: Language): this;\n\n // Specific settings\n setSpecific(settings?: BrowserSpecific): this;\n\n mergeSpecific(settings: BrowserSpecific): this;\n\n // Icons\n setIcons(icons?: ManifestIcons): this;\n\n setIcon(icon?: string): this; // name of an icon set for manifest.icons\n\n // Entry\n setBackground(background?: ManifestBackground): this;\n\n setCommands(commands?: ManifestCommands): this;\n\n setContentScripts(contentScripts?: ManifestContentScripts): this;\n\n setPopup(popup?: ManifestPopup): this;\n\n setSidebar(sidebar?: ManifestSidebar): this;\n\n setOptions(options?: ManifestOptions): this;\n\n // Sandbox\n addSandbox(sandbox: ManifestSandbox): this;\n\n appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this;\n\n addSandboxCsp(csp: SandboxCspConfig): this;\n\n appendSandboxCsp(csps: Iterable<SandboxCspConfig>): this;\n\n // Content Security Policy\n addCsp(csp: CspConfig): this;\n\n appendCsp(csps: Iterable<CspConfig>): this;\n\n // System\n setDependencies(dependencies: ManifestDependencies): this;\n\n // Permissions\n addPermission(permission: ManifestPermission): this;\n\n setPermissions(permissions: ManifestPermissions): this;\n\n appendPermissions(permissions: ManifestPermissions): this;\n\n // Optional Permissions\n addOptionalPermission(permission: ManifestOptionalPermission): this;\n\n setOptionalPermissions(permissions: ManifestOptionalPermissions): this;\n\n appendOptionalPermissions(permissions: ManifestOptionalPermissions): this;\n\n // Host Permissions\n addHostPermission(permission: string): this;\n\n setHostPermissions(permissions: ManifestHostPermissions): this;\n\n appendHostPermissions(permissions: ManifestHostPermissions): this;\n\n // Optional Host Permissions\n addOptionalHostPermission(permission: string): this;\n\n setOptionalHostPermissions(permissions: ManifestHostPermissions): this;\n\n appendOptionalHostPermissions(permissions: ManifestHostPermissions): this;\n\n // Web Accessible Resource\n setAccessibleResource(accessibleResources: ManifestAccessibleResources): this;\n\n appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this;\n\n addAccessibleResource(accessibleResource: ManifestAccessibleResource): this;\n\n getWebAccessibleResources(): ManifestAccessibleResource[];\n\n // Getter\n get(): T;\n\n raw(manifest: OptionalManifest): this;\n}\n\ntype Entry = string;\n\nexport interface ManifestEntry {\n entry: Entry;\n}\n\nexport type ManifestBackground = ManifestEntry & BackgroundConfig;\n\nexport type ManifestContentScript = ManifestEntry & ContentScriptConfig;\n\nexport type ManifestContentScripts = Set<ManifestContentScript>;\n\nexport type ManifestCommand = CommandConfig;\n\nexport type ManifestCommands = Set<ManifestCommand>;\n\nexport interface ManifestPopup {\n /**\n * Represents the group name of an icon that can be used in UI elements.\n * This property is optional and, if defined, should typically refer to a string\n * that matches the name of an icon resource available in the application or icon library.\n */\n icon?: string;\n /**\n * Represents an optional title or name or locale key that can be assigned to an entity.\n */\n title?: string;\n /**\n * Represents an optional HTML path.\n */\n path?: string;\n}\n\nexport interface ManifestSidebar {\n /**\n * Represents the group name of an icon that can be used in UI elements.\n * This property is optional and, if defined, should typically refer to a string\n * that matches the name of an icon resource available in the application or icon library.\n */\n icon?: string;\n /**\n * Represents an optional title or name or locale key that can be assigned to an entity.\n */\n title?: string;\n /**\n * Represents an optional HTML path.\n */\n path?: string;\n}\n\nexport interface ManifestOptions {\n /**\n * Path to the options page HTML file relative to the extension root.\n * Written to `options_ui.page` in the manifest.\n */\n path: string;\n /**\n * Whether the options page should open in a browser tab.\n * Written to `options_ui.open_in_tab` and defaults to `true` when omitted.\n * Set to `false` to request an embedded page where supported by the browser.\n */\n openInTab?: boolean;\n}\n\nexport interface ManifestAccessibleResource {\n resources: string[];\n matches?: string[];\n extensionIds?: string[];\n useDynamicUrl?: boolean;\n}\n\nexport type ManifestAccessibleResources = Set<ManifestAccessibleResource>;\n\nexport type ManifestSandbox = string;\n\nexport type ManifestSandboxes = Set<ManifestSandbox>;\n\nexport interface ManifestDependency {\n /** Initial scripts, in execution order. */\n js: Set<string>;\n /** Initial styles delivered by the manifest. */\n css: Set<string>;\n /** Runtime resources, including lazy JS/CSS and other emitted files. */\n assets: Set<string>;\n}\n\nexport type ManifestIcon = Map<number, string>;\n\nexport type ManifestIcons = Map<string, ManifestIcon>;\n\nexport type ManifestDependencies = Map<Entry, ManifestDependency>;\n\nexport type ManifestPermissions = Set<ManifestPermission>;\n\nexport type ManifestOptionalPermissions = Set<ManifestOptionalPermission>;\n\nexport type ManifestHostPermissions = Set<string>;\n"],"mappings":"AAQO,MAAM,uBAA4C,oBAAI,IAAY,CAAC,QAAQ,SAAS,QAAQ,OAAO,MAAM,KAAK,CAAC;AAE/G,MAAM,yBAA8C,oBAAI,IAAY;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AAEM,IAAK,oBAAL,kBAAKA,uBAAL;AACH,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,gBAAa;AAHL,SAAAA;AAAA,GAAA;","names":["ManifestIncognito"]}
1
+ {"version":3,"sources":["../../src/types/manifest.ts"],"sourcesContent":["import {ContentScriptConfig} from \"@typing/content\";\nimport {BackgroundConfig} from \"@typing/background\";\nimport {CommandConfig} from \"@typing/command\";\nimport {Language} from \"@typing/locale\";\nimport {BrowserSpecific, DataCollectionPermission} from \"@typing/browser\";\nimport {CspConfig} from \"@typing/csp\";\nimport {SandboxCspConfig} from \"@typing/sandbox\";\nimport {ActionOptions} from \"@typing/action\";\n\nexport const ManifestMatchSchemes: ReadonlySet<string> = new Set<string>([\"http\", \"https\", \"file\", \"ftp\", \"ws\", \"wss\"]);\n\nexport const ManifestSpecialSchemes: ReadonlySet<string> = new Set<string>([\n \"chrome-extension\",\n \"moz-extension\",\n \"data\",\n \"blob\",\n \"filesystem\",\n \"about\",\n \"chrome\",\n \"resource\",\n]);\n\nexport enum ManifestIncognito {\n Spanning = \"spanning\",\n Split = \"split\",\n NotAllowed = \"not_allowed\",\n}\n\ntype ManifestCommon = chrome.runtime.Manifest;\n\ntype ManifestBase = chrome.runtime.ManifestBase;\n\nexport type ManifestPermission = chrome.runtime.ManifestPermission;\n\nexport type ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;\n\nexport type ManifestAction = NonNullable<chrome.runtime.ManifestV3[\"action\"]>;\n\ntype ManifestFixed<T extends ManifestBase> = Omit<T, \"manifest_version\"> & {\n manifest_version: ManifestVersion;\n};\n\ninterface ManifestUnstable {\n permissions?: (ManifestPermission | (string & Record<never, never>))[];\n web_accessible_resources?: string[] | chrome.runtime.ManifestV3[\"web_accessible_resources\"];\n}\n\nexport type ManifestVersion = 2 | 3;\n\nexport type ManifestIncognitoValue = ManifestIncognito | `${ManifestIncognito}`;\n\nexport type CoreManifest = ManifestFixed<ManifestBase>;\n\nexport type ChromeManifest = ManifestFixed<ManifestCommon>;\n\nexport type FirefoxManifest = ChromeManifest & {\n action?: chrome.runtime.ManifestV3[\"action\"] & {\n browser_style?: boolean;\n };\n browser_action?: chrome.runtime.ManifestV2[\"browser_action\"] & {\n browser_style?: boolean;\n };\n page_action?: chrome.runtime.ManifestV2[\"page_action\"] & {\n browser_style?: boolean;\n };\n browser_specific_settings?: {\n gecko?: {\n id?: string;\n strict_min_version?: string;\n strict_max_version?: string;\n update_url?: string;\n data_collection_permissions?: {\n required?: [\"none\"] | `${DataCollectionPermission}`[];\n optional?: `${DataCollectionPermission}`[];\n };\n };\n gecko_android?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n };\n} & ManifestUnstable;\n\nexport type SafariManifest = ChromeManifest & {\n browser_specific_settings?: {\n safari?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n };\n} & ManifestUnstable;\n\nexport type Manifest = ChromeManifest | FirefoxManifest | SafariManifest;\n\nexport type OptionalManifest = Partial<Omit<Manifest, \"manifest_version\">>;\n\nexport interface ManifestBuilder<T extends CoreManifest = Manifest> {\n setName(name: string): this;\n\n setShortName(shortName?: string): this;\n\n setDescription(description?: string): this;\n\n setAuthor(author?: string): this;\n\n setHomepage(homepage?: string): this;\n\n setVersion(version?: string): this;\n\n setIncognito(incognito?: ManifestIncognitoValue): this;\n\n setMinimumVersion(minimumVersion?: string): this;\n\n setLocale(lang?: Language): this;\n\n // Specific settings\n setSpecific(settings?: BrowserSpecific): this;\n\n mergeSpecific(settings: BrowserSpecific): this;\n\n // Icons\n setIcons(icons?: ManifestIcons): this;\n\n setIcon(icon?: string): this; // name of an icon set for manifest.icons\n\n // Toolbar button\n setAction(action?: ActionOptions): this;\n\n // Entry\n setBackground(background?: ManifestBackground): this;\n\n setCommands(commands?: ManifestCommands): this;\n\n setContentScripts(contentScripts?: ManifestContentScripts): this;\n\n setPopup(popup?: ManifestPopup): this;\n\n setSidebar(sidebar?: ManifestSidebar): this;\n\n setOptions(options?: ManifestOptions): this;\n\n setOverride(override?: ManifestOverride): this;\n\n // Sandbox\n addSandbox(sandbox: ManifestSandbox): this;\n\n appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this;\n\n addSandboxCsp(csp: SandboxCspConfig): this;\n\n appendSandboxCsp(csps: Iterable<SandboxCspConfig>): this;\n\n // Content Security Policy\n addCsp(csp: CspConfig): this;\n\n appendCsp(csps: Iterable<CspConfig>): this;\n\n // System\n setDependencies(dependencies: ManifestDependencies): this;\n\n // Permissions\n addPermission(permission: ManifestPermission): this;\n\n setPermissions(permissions: ManifestPermissions): this;\n\n appendPermissions(permissions: ManifestPermissions): this;\n\n // Optional Permissions\n addOptionalPermission(permission: ManifestOptionalPermission): this;\n\n setOptionalPermissions(permissions: ManifestOptionalPermissions): this;\n\n appendOptionalPermissions(permissions: ManifestOptionalPermissions): this;\n\n // Host Permissions\n addHostPermission(permission: string): this;\n\n setHostPermissions(permissions: ManifestHostPermissions): this;\n\n appendHostPermissions(permissions: ManifestHostPermissions): this;\n\n // Optional Host Permissions\n addOptionalHostPermission(permission: string): this;\n\n setOptionalHostPermissions(permissions: ManifestHostPermissions): this;\n\n appendOptionalHostPermissions(permissions: ManifestHostPermissions): this;\n\n // Web Accessible Resource\n setAccessibleResource(accessibleResources: ManifestAccessibleResources): this;\n\n appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this;\n\n addAccessibleResource(accessibleResource: ManifestAccessibleResource): this;\n\n getWebAccessibleResources(): ManifestAccessibleResource[];\n\n // Getter\n get(): T;\n\n raw(manifest: OptionalManifest): this;\n}\n\ntype Entry = string;\n\nexport interface ManifestEntry {\n entry: Entry;\n}\n\nexport type ManifestBackground = ManifestEntry & BackgroundConfig;\n\nexport type ManifestContentScript = ManifestEntry & ContentScriptConfig;\n\nexport type ManifestContentScripts = Set<ManifestContentScript>;\n\nexport type ManifestCommand = CommandConfig;\n\nexport type ManifestCommands = Set<ManifestCommand>;\n\nexport interface ManifestPopup {\n /**\n * Represents the group name of an icon that can be used in UI elements.\n * This property is optional and, if defined, should typically refer to a string\n * that matches the name of an icon resource available in the application or icon library.\n */\n icon?: string;\n /**\n * Represents an optional title or name or locale key that can be assigned to an entity.\n */\n title?: string;\n /**\n * Represents an optional HTML path.\n */\n path?: string;\n}\n\nexport interface ManifestSidebar {\n /**\n * Represents the group name of an icon that can be used in UI elements.\n * This property is optional and, if defined, should typically refer to a string\n * that matches the name of an icon resource available in the application or icon library.\n */\n icon?: string;\n /**\n * Represents an optional title or name or locale key that can be assigned to an entity.\n */\n title?: string;\n /**\n * Represents an optional HTML path.\n */\n path?: string;\n}\n\nexport interface ManifestOptions {\n /**\n * Path to the options page HTML file relative to the extension root.\n * Written to `options_ui.page` in the manifest.\n */\n path: string;\n /**\n * Whether the options page should open in a browser tab.\n * Written to `options_ui.open_in_tab` and defaults to `true` when omitted.\n * Set to `false` to request an embedded page where supported by the browser.\n */\n openInTab?: boolean;\n}\n\nexport type ManifestOverridePage = \"newtab\" | \"bookmarks\" | \"history\";\n\n/**\n * Chromium refuses to load an extension that overrides more than one page and other browsers\n * only support `newtab`, so the manifest holds a single override instead of a dictionary.\n */\nexport interface ManifestOverride {\n /**\n * Built-in browser page replaced by the extension.\n * Written as the key of `chrome_url_overrides` in the manifest.\n */\n page: ManifestOverridePage;\n /**\n * Path to the replacement HTML file relative to the extension root.\n * Written as the value of `chrome_url_overrides[page]`.\n */\n path: string;\n}\n\nexport interface ManifestAccessibleResource {\n resources: string[];\n matches?: string[];\n extensionIds?: string[];\n useDynamicUrl?: boolean;\n}\n\nexport type ManifestAccessibleResources = Set<ManifestAccessibleResource>;\n\nexport type ManifestSandbox = string;\n\nexport type ManifestSandboxes = Set<ManifestSandbox>;\n\nexport interface ManifestDependency {\n /** Initial scripts, in execution order. */\n js: Set<string>;\n /** Initial styles delivered by the manifest. */\n css: Set<string>;\n /** Runtime resources, including lazy JS/CSS and other emitted files. */\n assets: Set<string>;\n}\n\nexport type ManifestIcon = Map<number, string>;\n\nexport type ManifestIcons = Map<string, ManifestIcon>;\n\nexport type ManifestDependencies = Map<Entry, ManifestDependency>;\n\nexport type ManifestPermissions = Set<ManifestPermission>;\n\nexport type ManifestOptionalPermissions = Set<ManifestOptionalPermission>;\n\nexport type ManifestHostPermissions = Set<string>;\n"],"mappings":"AASO,MAAM,uBAA4C,oBAAI,IAAY,CAAC,QAAQ,SAAS,QAAQ,OAAO,MAAM,KAAK,CAAC;AAE/G,MAAM,yBAA8C,oBAAI,IAAY;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AAEM,IAAK,oBAAL,kBAAKA,uBAAL;AACH,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,gBAAa;AAHL,SAAAA;AAAA,GAAA;","names":["ManifestIncognito"]}
@@ -1,5 +1,5 @@
1
1
  import { TransportConfig, TransportDefinition, TransportProxyTarget, TransportTarget, TransportType } from "./transport.js";
2
- import { ViewOptions } from "./view.js";
2
+ import { ViewOptions, ViewRenderDefinition } from "./view/index.js";
3
3
  import { Awaiter } from "./helpers.js";
4
4
  import { CspOptions } from "./csp.js";
5
5
  export declare const OffscreenGlobalKey = "adnbnOffscreen";
@@ -57,7 +57,7 @@ export interface OffscreenConfig extends TransportConfig {
57
57
  export type OffscreenOptions = OffscreenConfig & CspOptions & ViewOptions;
58
58
  export type OffscreenEntrypointOptions = Partial<OffscreenOptions>;
59
59
  export type OffscreenMainHandler<T extends TransportType> = (offscreen: T, options: OffscreenEntrypointOptions) => Awaiter<void>;
60
- export interface OffscreenDefinition<T extends TransportType> extends TransportDefinition<OffscreenOptions, T>, OffscreenEntrypointOptions {
60
+ export interface OffscreenDefinition<T extends TransportType> extends TransportDefinition<OffscreenOptions, T>, OffscreenEntrypointOptions, ViewRenderDefinition<OffscreenEntrypointOptions> {
61
61
  main?: OffscreenMainHandler<T>;
62
62
  }
63
63
  export type OffscreenUnresolvedDefinition<T extends TransportType> = Partial<OffscreenDefinition<T>>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/offscreen.ts"],"sourcesContent":["import {\n TransportConfig,\n TransportDefinition,\n TransportProxyTarget,\n TransportTarget,\n TransportType,\n} from \"@typing/transport\";\nimport {ViewOptions} from \"@typing/view\";\nimport {Awaiter} from \"@typing/helpers\";\nimport {CspOptions} from \"@typing/csp\";\n\nexport const OffscreenGlobalKey = \"adnbnOffscreen\";\n\nexport const OffscreenGlobalAccess = \"adnbnOffscreenAccess\";\n\nexport const OffscreenBridgeReadyMessageType = \"adnbn:offscreen:ready\";\n\nexport enum OffscreenReason {\n /** A reason used for testing purposes only. */\n Testing = \"TESTING\",\n /** The offscreen document is responsible for playing audio. */\n AudioPlayback = \"AUDIO_PLAYBACK\",\n /** The offscreen document needs to embed and script an iframe in order to modify the iframe's content. */\n IframeScripting = \"IFRAME_SCRIPTING\",\n /** The offscreen document needs to embed an iframe and scrape its DOM to extract information. */\n DOMScraping = \"DOM_SCRAPING\",\n /** The offscreen document needs to interact with Blob objects (including URL.createObjectURL()). */\n Blobs = \"BLOBS\",\n /** The offscreen document needs to use the DOMParser API. */\n DOMParser = \"DOM_PARSER\",\n /** The offscreen document needs to interact with media streams from user media (e.g. getUserMedia()). */\n UserMedia = \"USER_MEDIA\",\n /** The offscreen document needs to interact with media streams from display media (e.g. getDisplayMedia()). */\n DisplayMedia = \"DISPLAY_MEDIA\",\n /** The offscreen document needs to use WebRTC APIs. */\n WebRTC = \"WEB_RTC\",\n /** The offscreen document needs to interact with the clipboard APIs(e.g. Navigator.clipboard). */\n Clipboard = \"CLIPBOARD\",\n /** Specifies that the offscreen document needs access to localStorage. */\n LocalStorage = \"LOCAL_STORAGE\",\n /** Specifies that the offscreen document needs to spawn workers. */\n Workers = \"WORKERS\",\n /** Specifies that the offscreen document needs to use navigator.getBattery. */\n BatteryStatus = \"BATTERY_STATUS\",\n /** Specifies that the offscreen document needs to use window.matchMedia. */\n MatchMedia = \"MATCH_MEDIA\",\n /** Specifies that the offscreen document needs to use navigator.geolocation. */\n Geolocation = \"GEOLOCATION\",\n}\n\n/**\n * Empty because offscreen names and contracts belong to the consuming application.\n * Generated `.adnbn/offscreen.d.ts` declarations populate it by augmenting `adnbn/offscreen`.\n */\nexport interface OffscreenRegistry {}\n\nexport type OffscreenName = Extract<keyof OffscreenRegistry, string>;\n\nexport type OffscreenTarget<N extends keyof OffscreenRegistry> = TransportTarget<OffscreenRegistry, N>;\n\nexport type OffscreenProxyTarget<N extends keyof OffscreenRegistry> = TransportProxyTarget<OffscreenRegistry, N>;\n\nexport type OffscreenAlias = string;\n\nexport type OffscreenMap = Map<OffscreenAlias, OffscreenParameters>;\n\nexport type OffscreenParameters = chrome.offscreen.CreateParameters;\n\nexport type OffscreenParametersMap = Record<string, OffscreenParameters>;\n\nexport interface OffscreenConfig extends TransportConfig {\n reasons?: `${OffscreenReason}` | `${OffscreenReason}`[] | OffscreenReason | OffscreenReason[];\n justification?: string;\n}\n\nexport type OffscreenOptions = OffscreenConfig & CspOptions & ViewOptions;\n\nexport type OffscreenEntrypointOptions = Partial<OffscreenOptions>;\n\nexport type OffscreenMainHandler<T extends TransportType> = (\n offscreen: T,\n options: OffscreenEntrypointOptions\n) => Awaiter<void>;\n\nexport interface OffscreenDefinition<T extends TransportType>\n extends TransportDefinition<OffscreenOptions, T>, OffscreenEntrypointOptions {\n main?: OffscreenMainHandler<T>;\n}\n\nexport type OffscreenUnresolvedDefinition<T extends TransportType> = Partial<OffscreenDefinition<T>>;\n"],"mappings":"AAWO,MAAM,qBAAqB;AAE3B,MAAM,wBAAwB;AAE9B,MAAM,kCAAkC;AAExC,IAAK,kBAAL,kBAAKA,qBAAL;AAEH,EAAAA,iBAAA,aAAU;AAEV,EAAAA,iBAAA,mBAAgB;AAEhB,EAAAA,iBAAA,qBAAkB;AAElB,EAAAA,iBAAA,iBAAc;AAEd,EAAAA,iBAAA,WAAQ;AAER,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,kBAAe;AAEf,EAAAA,iBAAA,YAAS;AAET,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,kBAAe;AAEf,EAAAA,iBAAA,aAAU;AAEV,EAAAA,iBAAA,mBAAgB;AAEhB,EAAAA,iBAAA,gBAAa;AAEb,EAAAA,iBAAA,iBAAc;AA9BN,SAAAA;AAAA,GAAA;","names":["OffscreenReason"]}
1
+ {"version":3,"sources":["../../src/types/offscreen.ts"],"sourcesContent":["import {\n TransportConfig,\n TransportDefinition,\n TransportProxyTarget,\n TransportTarget,\n TransportType,\n} from \"@typing/transport\";\nimport {ViewOptions, ViewRenderDefinition} from \"@typing/view\";\nimport {Awaiter} from \"@typing/helpers\";\nimport {CspOptions} from \"@typing/csp\";\n\nexport const OffscreenGlobalKey = \"adnbnOffscreen\";\n\nexport const OffscreenGlobalAccess = \"adnbnOffscreenAccess\";\n\nexport const OffscreenBridgeReadyMessageType = \"adnbn:offscreen:ready\";\n\nexport enum OffscreenReason {\n /** A reason used for testing purposes only. */\n Testing = \"TESTING\",\n /** The offscreen document is responsible for playing audio. */\n AudioPlayback = \"AUDIO_PLAYBACK\",\n /** The offscreen document needs to embed and script an iframe in order to modify the iframe's content. */\n IframeScripting = \"IFRAME_SCRIPTING\",\n /** The offscreen document needs to embed an iframe and scrape its DOM to extract information. */\n DOMScraping = \"DOM_SCRAPING\",\n /** The offscreen document needs to interact with Blob objects (including URL.createObjectURL()). */\n Blobs = \"BLOBS\",\n /** The offscreen document needs to use the DOMParser API. */\n DOMParser = \"DOM_PARSER\",\n /** The offscreen document needs to interact with media streams from user media (e.g. getUserMedia()). */\n UserMedia = \"USER_MEDIA\",\n /** The offscreen document needs to interact with media streams from display media (e.g. getDisplayMedia()). */\n DisplayMedia = \"DISPLAY_MEDIA\",\n /** The offscreen document needs to use WebRTC APIs. */\n WebRTC = \"WEB_RTC\",\n /** The offscreen document needs to interact with the clipboard APIs(e.g. Navigator.clipboard). */\n Clipboard = \"CLIPBOARD\",\n /** Specifies that the offscreen document needs access to localStorage. */\n LocalStorage = \"LOCAL_STORAGE\",\n /** Specifies that the offscreen document needs to spawn workers. */\n Workers = \"WORKERS\",\n /** Specifies that the offscreen document needs to use navigator.getBattery. */\n BatteryStatus = \"BATTERY_STATUS\",\n /** Specifies that the offscreen document needs to use window.matchMedia. */\n MatchMedia = \"MATCH_MEDIA\",\n /** Specifies that the offscreen document needs to use navigator.geolocation. */\n Geolocation = \"GEOLOCATION\",\n}\n\n/**\n * Empty because offscreen names and contracts belong to the consuming application.\n * Generated `.adnbn/offscreen.d.ts` declarations populate it by augmenting `adnbn/offscreen`.\n */\nexport interface OffscreenRegistry {}\n\nexport type OffscreenName = Extract<keyof OffscreenRegistry, string>;\n\nexport type OffscreenTarget<N extends keyof OffscreenRegistry> = TransportTarget<OffscreenRegistry, N>;\n\nexport type OffscreenProxyTarget<N extends keyof OffscreenRegistry> = TransportProxyTarget<OffscreenRegistry, N>;\n\nexport type OffscreenAlias = string;\n\nexport type OffscreenMap = Map<OffscreenAlias, OffscreenParameters>;\n\nexport type OffscreenParameters = chrome.offscreen.CreateParameters;\n\nexport type OffscreenParametersMap = Record<string, OffscreenParameters>;\n\nexport interface OffscreenConfig extends TransportConfig {\n reasons?: `${OffscreenReason}` | `${OffscreenReason}`[] | OffscreenReason | OffscreenReason[];\n justification?: string;\n}\n\nexport type OffscreenOptions = OffscreenConfig & CspOptions & ViewOptions;\n\nexport type OffscreenEntrypointOptions = Partial<OffscreenOptions>;\n\nexport type OffscreenMainHandler<T extends TransportType> = (\n offscreen: T,\n options: OffscreenEntrypointOptions\n) => Awaiter<void>;\n\nexport interface OffscreenDefinition<T extends TransportType>\n extends\n TransportDefinition<OffscreenOptions, T>,\n OffscreenEntrypointOptions,\n ViewRenderDefinition<OffscreenEntrypointOptions> {\n main?: OffscreenMainHandler<T>;\n}\n\nexport type OffscreenUnresolvedDefinition<T extends TransportType> = Partial<OffscreenDefinition<T>>;\n"],"mappings":"AAWO,MAAM,qBAAqB;AAE3B,MAAM,wBAAwB;AAE9B,MAAM,kCAAkC;AAExC,IAAK,kBAAL,kBAAKA,qBAAL;AAEH,EAAAA,iBAAA,aAAU;AAEV,EAAAA,iBAAA,mBAAgB;AAEhB,EAAAA,iBAAA,qBAAkB;AAElB,EAAAA,iBAAA,iBAAc;AAEd,EAAAA,iBAAA,WAAQ;AAER,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,kBAAe;AAEf,EAAAA,iBAAA,YAAS;AAET,EAAAA,iBAAA,eAAY;AAEZ,EAAAA,iBAAA,kBAAe;AAEf,EAAAA,iBAAA,aAAU;AAEV,EAAAA,iBAAA,mBAAgB;AAEhB,EAAAA,iBAAA,gBAAa;AAEb,EAAAA,iBAAA,iBAAc;AA9BN,SAAAA;AAAA,GAAA;","names":["OffscreenReason"]}
@@ -1,9 +1,10 @@
1
- import { ViewDefinition, ViewOptions } from "./view.js";
1
+ import { ViewDefinition, ViewOptions } from "./view/index.js";
2
2
  import { CspOptions } from "./csp.js";
3
+ import { PermissionsOptions } from "./permissions.js";
3
4
  export interface OptionsConfig {
4
5
  /** Open in a browser tab. Defaults to true; embedded mode depends on browser support. */
5
6
  openInTab?: boolean;
6
7
  }
7
- export type OptionsEntrypointOptions = OptionsConfig & CspOptions & ViewOptions;
8
+ export type OptionsEntrypointOptions = OptionsConfig & PermissionsOptions & CspOptions & ViewOptions;
8
9
  export type OptionsProps = OptionsEntrypointOptions;
9
10
  export type OptionsDefinition = OptionsEntrypointOptions & ViewDefinition<OptionsProps>;
@@ -0,0 +1,22 @@
1
+ import { ViewDefinition, ViewOptions } from "./view/index.js";
2
+ import { CspOptions } from "./csp.js";
3
+ import { EntrypointType } from "./entrypoint.js";
4
+ import { PermissionsOptions } from "./permissions.js";
5
+ /**
6
+ * Entrypoints that replace a built-in browser page through `chrome_url_overrides`.
7
+ * Chromium refuses to load an extension that overrides more than one page,
8
+ * so each build selects a single override.
9
+ */
10
+ export type OverrideEntrypointType = EntrypointType.Newtab | EntrypointType.Bookmarks | EntrypointType.History;
11
+ export type OverrideEntrypointOptions = PermissionsOptions & CspOptions & ViewOptions;
12
+ export type OverrideProps = OverrideEntrypointOptions;
13
+ export type OverrideDefinition = OverrideEntrypointOptions & ViewDefinition<OverrideProps>;
14
+ export type NewtabEntrypointOptions = OverrideEntrypointOptions;
15
+ export type NewtabProps = NewtabEntrypointOptions;
16
+ export type NewtabDefinition = NewtabEntrypointOptions & ViewDefinition<NewtabProps>;
17
+ export type BookmarksEntrypointOptions = OverrideEntrypointOptions;
18
+ export type BookmarksProps = BookmarksEntrypointOptions;
19
+ export type BookmarksDefinition = BookmarksEntrypointOptions & ViewDefinition<BookmarksProps>;
20
+ export type HistoryEntrypointOptions = OverrideEntrypointOptions;
21
+ export type HistoryProps = HistoryEntrypointOptions;
22
+ export type HistoryDefinition = HistoryEntrypointOptions & ViewDefinition<HistoryProps>;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,4 +1,4 @@
1
- import { ViewDefinition, ViewOptions } from "./view.js";
1
+ import { ViewDefinition, ViewOptions } from "./view/index.js";
2
2
  import { CspOptions } from "./csp.js";
3
3
  /**
4
4
  * Empty because page aliases depend on the consuming application's entrypoints.
@@ -0,0 +1,39 @@
1
+ import type { ManifestHostPermissions, ManifestOptionalPermission, ManifestOptionalPermissions, ManifestPermission, ManifestPermissions } from "./manifest.js";
2
+ /**
3
+ * Manifest permissions required by an entrypoint.
4
+ *
5
+ * Browsers grant permissions to the whole extension, never to a single entrypoint.
6
+ * Declaring them here keeps a requirement beside the code that needs it
7
+ * and adds it to the manifest only in builds that include the entrypoint.
8
+ *
9
+ * An entrypoint type opts into this contract explicitly; it is not part of every entrypoint.
10
+ */
11
+ export interface PermissionsOptions {
12
+ /**
13
+ * API permissions granted at install time. Written to `permissions`.
14
+ */
15
+ permissions?: ManifestPermission[];
16
+ /**
17
+ * API permissions requested at runtime. Written to `optional_permissions`.
18
+ */
19
+ optionalPermissions?: ManifestOptionalPermission[];
20
+ /**
21
+ * Host match patterns granted at install time.
22
+ * Written to `host_permissions`, or to `permissions` in Manifest V2.
23
+ */
24
+ hostPermissions?: string[];
25
+ /**
26
+ * Host match patterns requested at runtime.
27
+ * Written to `optional_host_permissions`, or to `optional_permissions` in Manifest V2.
28
+ */
29
+ optionalHostPermissions?: string[];
30
+ }
31
+ /**
32
+ * Permissions collected from the entrypoints that reach a build, ready to be appended to the manifest.
33
+ */
34
+ export interface EntrypointPermissions {
35
+ permissions: ManifestPermissions;
36
+ optionalPermissions: ManifestOptionalPermissions;
37
+ hostPermissions: ManifestHostPermissions;
38
+ optionalHostPermissions: ManifestHostPermissions;
39
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -67,9 +67,12 @@ interface PluginName {
67
67
  }
68
68
  export interface Plugin extends PluginName {
69
69
  background?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
70
+ bookmarks?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
70
71
  bundler?: PluginHandler<PluginBundlerOptions, RspackConfig>;
71
72
  command?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
72
73
  content?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
74
+ history?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
75
+ newtab?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
73
76
  options?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
74
77
  page?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
75
78
  popup?: PluginHandler<PluginConfigOptions, PluginEntrypointResult>;
@@ -88,7 +91,7 @@ export type PluginHandlerCallback<O, T = void> = {
88
91
  (options: O): Awaiter<T>;
89
92
  };
90
93
  export type PluginHandlerKeys = keyof Omit<Plugin, "name">;
91
- export type PluginEntrypointKeys = keyof Pick<Plugin, "background" | "command" | "content" | "options" | "page" | "popup" | "relay" | "sandbox" | "service" | "sidebar" | "offscreen">;
94
+ export type PluginEntrypointKeys = keyof Pick<Plugin, "background" | "bookmarks" | "command" | "content" | "history" | "newtab" | "options" | "page" | "popup" | "relay" | "sandbox" | "service" | "sidebar" | "offscreen">;
92
95
  export type PluginAssetKeys = keyof Pick<Plugin, "icon" | "locale">;
93
96
  export type PluginHandlerType<T extends Plugin[PluginHandlerKeys]> = T extends PluginHandlerCallback<infer O, infer R> ? {
94
97
  options: O;
@@ -1,6 +1,8 @@
1
- import { ViewDefinition, ViewOptions } from "./view.js";
1
+ import { ViewDefinition, ViewOptions } from "./view/index.js";
2
2
  import { CspOptions } from "./csp.js";
3
+ import { PermissionsOptions } from "./permissions.js";
3
4
  import type { ManifestPopup } from "./manifest.js";
5
+ import type { IconName } from "./icon.js";
4
6
  /**
5
7
  * Empty because popup aliases depend on the consuming application's entrypoints.
6
8
  * Generated `.adnbn/popup.d.ts` declarations augment `adnbn`, adding discovered aliases as keys with value `true`.
@@ -10,9 +12,9 @@ export interface PopupAliasRegistry {
10
12
  export type PopupAlias = keyof PopupAliasRegistry extends never ? string : Extract<keyof PopupAliasRegistry, string>;
11
13
  export type PopupMap = Map<PopupAlias, ManifestPopup>;
12
14
  export interface PopupConfig {
13
- icon?: string;
15
+ icon?: IconName;
14
16
  apply?: boolean;
15
17
  }
16
- export type PopupEntrypointOptions = PopupConfig & CspOptions & ViewOptions;
18
+ export type PopupEntrypointOptions = PopupConfig & PermissionsOptions & CspOptions & ViewOptions;
17
19
  export type PopupProps = PopupEntrypointOptions;
18
20
  export type PopupDefinition = PopupEntrypointOptions & ViewDefinition<PopupProps>;
@@ -1,5 +1,5 @@
1
1
  import { TransportConfig, TransportDefinition, TransportType } from "./transport.js";
2
- import { ViewOptions } from "./view.js";
2
+ import { ViewOptions, ViewRenderDefinition } from "./view/index.js";
3
3
  import { Awaiter } from "./helpers.js";
4
4
  import { MessageError, MessageSender } from "./message.js";
5
5
  import type { RpcAsyncProxy } from "./rpc.js";
@@ -60,7 +60,7 @@ export interface SandboxConfig extends TransportConfig {
60
60
  export type SandboxOptions = SandboxConfig & SandboxCspOptions & ViewOptions;
61
61
  export type SandboxEntrypointOptions = Partial<SandboxOptions>;
62
62
  export type SandboxMainHandler<T extends TransportType> = (sandbox: T, options: SandboxEntrypointOptions) => Awaiter<void>;
63
- export interface SandboxDefinition<T extends TransportType> extends TransportDefinition<SandboxOptions, T>, SandboxEntrypointOptions {
63
+ export interface SandboxDefinition<T extends TransportType> extends TransportDefinition<SandboxOptions, T>, SandboxEntrypointOptions, ViewRenderDefinition<SandboxEntrypointOptions> {
64
64
  main?: SandboxMainHandler<T>;
65
65
  }
66
66
  export type SandboxUnresolvedDefinition<T extends TransportType> = Partial<SandboxDefinition<T>>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/sandbox.ts"],"sourcesContent":["import {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\nimport {ViewOptions} from \"@typing/view\";\nimport {Awaiter} from \"@typing/helpers\";\nimport {MessageError, MessageSender} from \"@typing/message\";\nimport type {RpcAsyncProxy} from \"@typing/rpc\";\n\nexport const SandboxGlobalKey = \"adnbnSandbox\";\n\nexport const SandboxGlobalAccess = \"adnbnSandboxAccess\";\n\nexport const SandboxNamespace = \"adnbn:sandbox\";\n\nexport const SandboxReadyMessageType = `${SandboxNamespace}:ready`;\n\nexport const SandboxRequestMessageType = `${SandboxNamespace}:request`;\n\nexport const SandboxResponseMessageType = `${SandboxNamespace}:response`;\n\nexport enum SandboxAllow {\n Forms = \"forms\",\n Popups = \"popups\",\n Modals = \"modals\",\n Downloads = \"downloads\",\n PointerLock = \"pointer-lock\",\n TopNavigationByUserActivation = \"top-navigation-by-user-activation\",\n}\n\nexport enum SandboxSource {\n Self = \"'self'\",\n None = \"'none'\",\n Data = \"data:\",\n Blob = \"blob:\",\n UnsafeInline = \"'unsafe-inline'\",\n}\n\n/**\n * Empty because sandbox names and contracts belong to the consuming application.\n * Generated `.adnbn/sandbox.d.ts` declarations populate it by augmenting `adnbn/sandbox`.\n */\nexport interface SandboxRegistry {}\n\nexport type SandboxName = Extract<keyof SandboxRegistry, string>;\n\nexport type SandboxProxyTarget<N extends keyof SandboxRegistry> = RpcAsyncProxy<SandboxRegistry[N]>;\n\nexport type SandboxAlias = string;\n\nexport type SandboxMap = Map<SandboxAlias, SandboxParameters>;\n\nexport interface SandboxCspSources {\n connect?: Array<SandboxSource | `${SandboxSource}`>;\n image?: Array<SandboxSource | `${SandboxSource}`>;\n style?: Array<SandboxSource | `${SandboxSource}`>;\n font?: Array<SandboxSource | `${SandboxSource}`>;\n media?: Array<SandboxSource | `${SandboxSource}`>;\n worker?: Array<SandboxSource | `${SandboxSource}`>;\n child?: Array<SandboxSource | `${SandboxSource}`>;\n}\n\nexport interface SandboxCspConfig {\n eval?: boolean;\n inline?: boolean;\n allow?: Array<SandboxAllow | `${SandboxAllow}`>;\n sources?: SandboxCspSources;\n}\n\nexport interface SandboxCspOptions {\n csp?: SandboxCspConfig;\n}\n\nexport interface SandboxConfig extends TransportConfig {\n readyTimeout?: number;\n requestTimeout?: number;\n removeOnRequestTimeout?: boolean;\n}\n\nexport type SandboxOptions = SandboxConfig & SandboxCspOptions & ViewOptions;\n\nexport type SandboxEntrypointOptions = Partial<SandboxOptions>;\n\nexport type SandboxMainHandler<T extends TransportType> = (\n sandbox: T,\n options: SandboxEntrypointOptions\n) => Awaiter<void>;\n\nexport interface SandboxDefinition<T extends TransportType>\n extends TransportDefinition<SandboxOptions, T>, SandboxEntrypointOptions {\n main?: SandboxMainHandler<T>;\n}\n\nexport type SandboxUnresolvedDefinition<T extends TransportType> = Partial<SandboxDefinition<T>>;\n\nexport type SandboxParameters = {url: string} & Pick<\n SandboxConfig,\n \"readyTimeout\" | \"requestTimeout\" | \"removeOnRequestTimeout\"\n>;\n\nexport type SandboxParametersMap = Record<string, SandboxParameters>;\n\nexport interface SandboxReadyMessage {\n type: typeof SandboxReadyMessageType;\n channel: string;\n name: string;\n}\n\nexport interface SandboxRequestMessage {\n type: typeof SandboxRequestMessageType;\n channel: string;\n name: string;\n requestId: string;\n path?: string;\n args: any[];\n}\n\nexport interface SandboxResponseMessage {\n type: typeof SandboxResponseMessageType;\n channel: string;\n name: string;\n requestId: string;\n ok: boolean;\n payload?: any;\n error?: MessageError;\n}\n\nexport type SandboxEnvelope = SandboxRequestMessage | SandboxResponseMessage;\n\n/**\n * Internal seam for the sandbox wire. Lives below `SandboxMessage`, invisible to callers.\n *\n * - `connect` establishes the channel (host: create the iframe and await the ready\n * handshake; sandbox/in-memory: resolves immediately). Must be idempotent — concurrent\n * callers share one connection.\n * - `post` sends one already-built envelope to the peer.\n * - `subscribe` attaches exactly one underlying listener and returns its remover.\n * - `dispose` tears the channel down (remove listener, drop the iframe).\n */\nexport interface SandboxPort {\n connect(): Promise<void>;\n\n post(message: SandboxEnvelope): void;\n\n subscribe(onMessage: (message: SandboxEnvelope, sender: MessageSender) => void): () => void;\n\n dispose(): void;\n}\n"],"mappings":"AAMO,MAAM,mBAAmB;AAEzB,MAAM,sBAAsB;AAE5B,MAAM,mBAAmB;AAEzB,MAAM,0BAA0B,GAAG,gBAAgB;AAEnD,MAAM,4BAA4B,GAAG,gBAAgB;AAErD,MAAM,6BAA6B,GAAG,gBAAgB;AAEtD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,cAAA,WAAQ;AACR,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,iBAAc;AACd,EAAAA,cAAA,mCAAgC;AANxB,SAAAA;AAAA,GAAA;AASL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,kBAAe;AALP,SAAAA;AAAA,GAAA;","names":["SandboxAllow","SandboxSource"]}
1
+ {"version":3,"sources":["../../src/types/sandbox.ts"],"sourcesContent":["import {TransportConfig, TransportDefinition, TransportType} from \"@typing/transport\";\nimport {ViewOptions, ViewRenderDefinition} from \"@typing/view\";\nimport {Awaiter} from \"@typing/helpers\";\nimport {MessageError, MessageSender} from \"@typing/message\";\nimport type {RpcAsyncProxy} from \"@typing/rpc\";\n\nexport const SandboxGlobalKey = \"adnbnSandbox\";\n\nexport const SandboxGlobalAccess = \"adnbnSandboxAccess\";\n\nexport const SandboxNamespace = \"adnbn:sandbox\";\n\nexport const SandboxReadyMessageType = `${SandboxNamespace}:ready`;\n\nexport const SandboxRequestMessageType = `${SandboxNamespace}:request`;\n\nexport const SandboxResponseMessageType = `${SandboxNamespace}:response`;\n\nexport enum SandboxAllow {\n Forms = \"forms\",\n Popups = \"popups\",\n Modals = \"modals\",\n Downloads = \"downloads\",\n PointerLock = \"pointer-lock\",\n TopNavigationByUserActivation = \"top-navigation-by-user-activation\",\n}\n\nexport enum SandboxSource {\n Self = \"'self'\",\n None = \"'none'\",\n Data = \"data:\",\n Blob = \"blob:\",\n UnsafeInline = \"'unsafe-inline'\",\n}\n\n/**\n * Empty because sandbox names and contracts belong to the consuming application.\n * Generated `.adnbn/sandbox.d.ts` declarations populate it by augmenting `adnbn/sandbox`.\n */\nexport interface SandboxRegistry {}\n\nexport type SandboxName = Extract<keyof SandboxRegistry, string>;\n\nexport type SandboxProxyTarget<N extends keyof SandboxRegistry> = RpcAsyncProxy<SandboxRegistry[N]>;\n\nexport type SandboxAlias = string;\n\nexport type SandboxMap = Map<SandboxAlias, SandboxParameters>;\n\nexport interface SandboxCspSources {\n connect?: Array<SandboxSource | `${SandboxSource}`>;\n image?: Array<SandboxSource | `${SandboxSource}`>;\n style?: Array<SandboxSource | `${SandboxSource}`>;\n font?: Array<SandboxSource | `${SandboxSource}`>;\n media?: Array<SandboxSource | `${SandboxSource}`>;\n worker?: Array<SandboxSource | `${SandboxSource}`>;\n child?: Array<SandboxSource | `${SandboxSource}`>;\n}\n\nexport interface SandboxCspConfig {\n eval?: boolean;\n inline?: boolean;\n allow?: Array<SandboxAllow | `${SandboxAllow}`>;\n sources?: SandboxCspSources;\n}\n\nexport interface SandboxCspOptions {\n csp?: SandboxCspConfig;\n}\n\nexport interface SandboxConfig extends TransportConfig {\n readyTimeout?: number;\n requestTimeout?: number;\n removeOnRequestTimeout?: boolean;\n}\n\nexport type SandboxOptions = SandboxConfig & SandboxCspOptions & ViewOptions;\n\nexport type SandboxEntrypointOptions = Partial<SandboxOptions>;\n\nexport type SandboxMainHandler<T extends TransportType> = (\n sandbox: T,\n options: SandboxEntrypointOptions\n) => Awaiter<void>;\n\nexport interface SandboxDefinition<T extends TransportType>\n extends\n TransportDefinition<SandboxOptions, T>,\n SandboxEntrypointOptions,\n ViewRenderDefinition<SandboxEntrypointOptions> {\n main?: SandboxMainHandler<T>;\n}\n\nexport type SandboxUnresolvedDefinition<T extends TransportType> = Partial<SandboxDefinition<T>>;\n\nexport type SandboxParameters = {url: string} & Pick<\n SandboxConfig,\n \"readyTimeout\" | \"requestTimeout\" | \"removeOnRequestTimeout\"\n>;\n\nexport type SandboxParametersMap = Record<string, SandboxParameters>;\n\nexport interface SandboxReadyMessage {\n type: typeof SandboxReadyMessageType;\n channel: string;\n name: string;\n}\n\nexport interface SandboxRequestMessage {\n type: typeof SandboxRequestMessageType;\n channel: string;\n name: string;\n requestId: string;\n path?: string;\n args: any[];\n}\n\nexport interface SandboxResponseMessage {\n type: typeof SandboxResponseMessageType;\n channel: string;\n name: string;\n requestId: string;\n ok: boolean;\n payload?: any;\n error?: MessageError;\n}\n\nexport type SandboxEnvelope = SandboxRequestMessage | SandboxResponseMessage;\n\n/**\n * Internal seam for the sandbox wire. Lives below `SandboxMessage`, invisible to callers.\n *\n * - `connect` establishes the channel (host: create the iframe and await the ready\n * handshake; sandbox/in-memory: resolves immediately). Must be idempotent — concurrent\n * callers share one connection.\n * - `post` sends one already-built envelope to the peer.\n * - `subscribe` attaches exactly one underlying listener and returns its remover.\n * - `dispose` tears the channel down (remove listener, drop the iframe).\n */\nexport interface SandboxPort {\n connect(): Promise<void>;\n\n post(message: SandboxEnvelope): void;\n\n subscribe(onMessage: (message: SandboxEnvelope, sender: MessageSender) => void): () => void;\n\n dispose(): void;\n}\n"],"mappings":"AAMO,MAAM,mBAAmB;AAEzB,MAAM,sBAAsB;AAE5B,MAAM,mBAAmB;AAEzB,MAAM,0BAA0B,GAAG,gBAAgB;AAEnD,MAAM,4BAA4B,GAAG,gBAAgB;AAErD,MAAM,6BAA6B,GAAG,gBAAgB;AAEtD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,cAAA,WAAQ;AACR,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,eAAY;AACZ,EAAAA,cAAA,iBAAc;AACd,EAAAA,cAAA,mCAAgC;AANxB,SAAAA;AAAA,GAAA;AASL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,kBAAe;AALP,SAAAA;AAAA,GAAA;","names":["SandboxAllow","SandboxSource"]}
@@ -1,7 +1,9 @@
1
- import { ViewDefinition, ViewOptions } from "./view.js";
1
+ import { ViewDefinition, ViewOptions } from "./view/index.js";
2
2
  import { Browser } from "./browser.js";
3
3
  import { CspOptions } from "./csp.js";
4
+ import { PermissionsOptions } from "./permissions.js";
4
5
  import type { ManifestSidebar } from "./manifest.js";
6
+ import type { IconName } from "./icon.js";
5
7
  export declare const SidebarAlternativeBrowsers: ReadonlySet<Browser>;
6
8
  /**
7
9
  * Empty because sidebar aliases depend on the consuming application's entrypoints.
@@ -12,9 +14,9 @@ export interface SidebarAliasRegistry {
12
14
  export type SidebarAlias = keyof SidebarAliasRegistry extends never ? string : Extract<keyof SidebarAliasRegistry, string>;
13
15
  export type SidebarMap = Map<SidebarAlias, ManifestSidebar>;
14
16
  export interface SidebarConfig {
15
- icon?: string;
17
+ icon?: IconName;
16
18
  apply?: boolean;
17
19
  }
18
- export type SidebarEntrypointOptions = SidebarConfig & CspOptions & ViewOptions;
20
+ export type SidebarEntrypointOptions = SidebarConfig & PermissionsOptions & CspOptions & ViewOptions;
19
21
  export type SidebarProps = SidebarEntrypointOptions;
20
22
  export type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/sidebar.ts"],"sourcesContent":["import {ViewDefinition, ViewOptions} from \"@typing/view\";\nimport {Browser} from \"@typing/browser\";\nimport {CspOptions} from \"@typing/csp\";\nimport type {ManifestSidebar} from \"@typing/manifest\";\n\nexport const SidebarAlternativeBrowsers: ReadonlySet<Browser> = new Set([Browser.Opera, Browser.Firefox]);\n\n/**\n * Empty because sidebar aliases depend on the consuming application's entrypoints.\n * Generated `.adnbn/sidebar.d.ts` declarations augment `adnbn`, adding discovered aliases as keys with value `true`.\n */\nexport interface SidebarAliasRegistry {}\n\nexport type SidebarAlias = keyof SidebarAliasRegistry extends never\n ? string\n : Extract<keyof SidebarAliasRegistry, string>;\n\nexport type SidebarMap = Map<SidebarAlias, ManifestSidebar>;\n\nexport interface SidebarConfig {\n icon?: string;\n apply?: boolean;\n}\n\nexport type SidebarEntrypointOptions = SidebarConfig & CspOptions & ViewOptions;\n\nexport type SidebarProps = SidebarEntrypointOptions;\n\nexport type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;\n"],"mappings":"AACA,SAAQ,eAAc;AAIf,MAAM,6BAAmD,oBAAI,IAAI,CAAC,QAAQ,OAAO,QAAQ,OAAO,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/types/sidebar.ts"],"sourcesContent":["import {ViewDefinition, ViewOptions} from \"@typing/view\";\nimport {Browser} from \"@typing/browser\";\nimport {CspOptions} from \"@typing/csp\";\nimport {PermissionsOptions} from \"@typing/permissions\";\nimport type {ManifestSidebar} from \"@typing/manifest\";\nimport type {IconName} from \"@typing/icon\";\n\nexport const SidebarAlternativeBrowsers: ReadonlySet<Browser> = new Set([Browser.Opera, Browser.Firefox]);\n\n/**\n * Empty because sidebar aliases depend on the consuming application's entrypoints.\n * Generated `.adnbn/sidebar.d.ts` declarations augment `adnbn`, adding discovered aliases as keys with value `true`.\n */\nexport interface SidebarAliasRegistry {}\n\nexport type SidebarAlias = keyof SidebarAliasRegistry extends never\n ? string\n : Extract<keyof SidebarAliasRegistry, string>;\n\nexport type SidebarMap = Map<SidebarAlias, ManifestSidebar>;\n\nexport interface SidebarConfig {\n icon?: IconName;\n apply?: boolean;\n}\n\nexport type SidebarEntrypointOptions = SidebarConfig & PermissionsOptions & CspOptions & ViewOptions;\n\nexport type SidebarProps = SidebarEntrypointOptions;\n\nexport type SidebarDefinition = SidebarEntrypointOptions & ViewDefinition<SidebarProps>;\n"],"mappings":"AACA,SAAQ,eAAc;AAMf,MAAM,6BAAmD,oBAAI,IAAI,CAAC,QAAQ,OAAO,QAAQ,OAAO,CAAC;","names":[]}
@@ -0,0 +1,2 @@
1
+ export type * from "./vanilla.js";
2
+ export type * from "./react.js";
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { FC, ReactNode } from "react";
2
+ import type { ViewConfig } from "../common.js";
3
+ export type ViewRenderReactComponent<T extends ViewConfig> = FC<T>;
4
+ export type ViewReactRenderValue<T extends ViewConfig> = Exclude<ReactNode, Promise<unknown>> | ViewRenderReactComponent<T>;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ export type ViewVanillaRenderValue = Element | string | number | boolean | null | undefined;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=vanilla.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,8 +1,7 @@
1
- import type { FC, ReactNode } from "react";
2
1
  import type { Optional } from "utility-types";
3
2
  import type { Options as HtmlOptions } from "html-rspack-tags-plugin";
4
- import { Awaiter, ExcludeFunctionsFromProperties, PickNonFunctionProperties } from "./helpers.js";
5
- import { EntrypointBuilder, EntrypointOptions } from "./entrypoint.js";
3
+ import { Awaiter, ExcludeFunctionsFromProperties, PickNonFunctionProperties } from "../helpers.js";
4
+ import { EntrypointBuilder, EntrypointOptions } from "../entrypoint.js";
6
5
  export interface ViewConfig {
7
6
  as?: string;
8
7
  title?: string;
@@ -10,9 +9,6 @@ export interface ViewConfig {
10
9
  }
11
10
  export type ViewOptions = ViewConfig & EntrypointOptions & ExcludeFunctionsFromProperties<HtmlOptions>;
12
11
  export type ViewEntrypointOptions = ViewOptions;
13
- export type ViewRenderReactComponent<T extends ViewConfig> = FC<T>;
14
- export type ViewRenderValue<T extends ViewConfig> = string | Element | ReactNode | ViewRenderReactComponent<T>;
15
- export type ViewRenderHandler<T extends ViewConfig> = (props: T) => Awaiter<void | ViewRenderValue<T>>;
16
12
  export type ViewContainerTag = Exclude<keyof HTMLElementTagNameMap, "html" | "body">;
17
13
  export type ViewContainerOptions = {
18
14
  [Tag in ViewContainerTag]: {
@@ -21,12 +17,4 @@ export type ViewContainerOptions = {
21
17
  }[ViewContainerTag];
22
18
  export type ViewContainerFactory<T extends ViewConfig> = (props: T) => Awaiter<Element | ViewContainerTag | ViewContainerOptions>;
23
19
  export type ViewContainerCreator<T extends ViewConfig> = (props: T) => Awaiter<Element>;
24
- export interface ViewDefinition<T extends ViewConfig> extends ViewOptions {
25
- render?: ViewRenderValue<T> | ViewRenderHandler<T>;
26
- container?: ViewContainerTag | ViewContainerOptions | ViewContainerFactory<T>;
27
- }
28
- export interface ViewResolvedDefinition<T extends ViewConfig> extends ViewDefinition<T> {
29
- render: ViewRenderHandler<T>;
30
- container: ViewContainerCreator<T>;
31
- }
32
20
  export type ViewBuilder = EntrypointBuilder;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,15 @@
1
+ import type { ViewBuilder, ViewConfig, ViewContainerCreator, ViewContainerFactory, ViewContainerOptions, ViewContainerTag, ViewOptions } from "./common.js";
2
+ import type { ViewRenderHandler, ViewRenderValue } from "./render.js";
3
+ /** UI of a view document; entrypoints that also render a view (offscreen, sandbox) adopt it as a mixin. */
4
+ export interface ViewRenderDefinition<T extends ViewConfig> {
5
+ render?: ViewRenderValue<T> | ViewRenderHandler<T>;
6
+ container?: ViewContainerTag | ViewContainerOptions | ViewContainerFactory<T>;
7
+ }
8
+ export interface ViewDefinition<T extends ViewConfig> extends ViewOptions, ViewRenderDefinition<T> {
9
+ }
10
+ export interface ViewResolvedDefinition<T extends ViewConfig> extends ViewDefinition<T> {
11
+ render?: ViewRenderHandler<T>;
12
+ container: ViewContainerCreator<T>;
13
+ }
14
+ /** A renderer adapter's builder class, selected by the entrypoint filename and injected by the build. */
15
+ export type ViewBuilderConstructor<T extends ViewConfig> = new (definition: ViewDefinition<T>) => ViewBuilder;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,4 @@
1
+ export type * from "./common.js";
2
+ export type * from "./definition.js";
3
+ export type * from "./render.js";
4
+ export type * from "./adapters/index.js";
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import type { Awaiter } from "../helpers.js";
2
+ import type { ViewConfig } from "./common.js";
3
+ import type { ViewReactRenderValue, ViewVanillaRenderValue } from "./adapters/index.js";
4
+ /** All supported render values; the entrypoint's filename selects the runtime adapter. */
5
+ export type ViewRenderValue<T extends ViewConfig> = ViewVanillaRenderValue | ViewReactRenderValue<T>;
6
+ /** A view document renders once, so its handler may await data before returning the value. */
7
+ export type ViewRenderHandler<T extends ViewConfig> = (props: T) => Awaiter<void | ViewRenderValue<T>>;
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}