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
@@ -0,0 +1,64 @@
1
+ import { z } from "zod";
2
+ const HtmlTypeStringSchema = z.enum(["css", "js"]);
3
+ const HtmlAttributesObjectSchema = z.record(z.string(), z.union([z.string(), z.boolean(), z.number()]));
4
+ const HtmlAddHashFunctionSchema = z.function().args(z.string(), z.string()).returns(z.string());
5
+ const HtmlAddPublicPathFunctionSchema = z.function().args(z.string(), z.string()).returns(z.string());
6
+ const HtmlCommonOptionsSchema = z.object({
7
+ append: z.boolean().optional(),
8
+ useHash: z.boolean().optional(),
9
+ addHash: HtmlAddHashFunctionSchema.optional(),
10
+ hash: z.union([z.boolean(), z.string(), HtmlAddHashFunctionSchema]).optional(),
11
+ usePublicPath: z.boolean().optional(),
12
+ addPublicPath: HtmlAddPublicPathFunctionSchema.optional(),
13
+ publicPath: z.union([z.boolean(), z.string(), HtmlAddPublicPathFunctionSchema]).optional()
14
+ });
15
+ const HtmlExternalObjectSchema = z.object({
16
+ packageName: z.string(),
17
+ variableName: z.string()
18
+ });
19
+ const HtmlBaseTagOptionsSchema = HtmlCommonOptionsSchema.extend({
20
+ glob: z.string().optional(),
21
+ globPath: z.string().optional(),
22
+ globFlatten: z.boolean().optional(),
23
+ sourcePath: z.string().optional()
24
+ });
25
+ const HtmlLinkTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({
26
+ path: z.string(),
27
+ attributes: HtmlAttributesObjectSchema.optional()
28
+ });
29
+ const HtmlScriptTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({
30
+ path: z.string(),
31
+ attributes: HtmlAttributesObjectSchema.optional(),
32
+ external: HtmlExternalObjectSchema.optional()
33
+ });
34
+ const HtmlMaybeLinkTagOptionsSchema = HtmlLinkTagOptionsSchema.extend({
35
+ type: HtmlTypeStringSchema.optional()
36
+ });
37
+ const HtmlMaybeScriptTagOptionsSchema = HtmlScriptTagOptionsSchema.extend({
38
+ type: HtmlTypeStringSchema.optional()
39
+ });
40
+ const HtmlMetaTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({
41
+ path: z.string().optional(),
42
+ attributes: HtmlAttributesObjectSchema
43
+ });
44
+ const HtmlOptionsSchema = HtmlCommonOptionsSchema.extend({
45
+ append: z.boolean().optional(),
46
+ prependExternals: z.boolean().optional(),
47
+ jsExtensions: z.union([z.string(), z.array(z.string())]).optional(),
48
+ cssExtensions: z.union([z.string(), z.array(z.string())]).optional(),
49
+ tags: z.union([
50
+ z.string(),
51
+ HtmlMaybeLinkTagOptionsSchema,
52
+ HtmlMaybeScriptTagOptionsSchema,
53
+ z.array(z.union([z.string(), HtmlMaybeLinkTagOptionsSchema, HtmlMaybeScriptTagOptionsSchema]))
54
+ ]).optional(),
55
+ links: z.union([z.string(), HtmlLinkTagOptionsSchema, z.array(z.union([z.string(), HtmlLinkTagOptionsSchema]))]).optional(),
56
+ scripts: z.union([z.string(), HtmlScriptTagOptionsSchema, z.array(z.union([z.string(), HtmlScriptTagOptionsSchema]))]).optional(),
57
+ metas: z.union([z.string(), HtmlMetaTagOptionsSchema, z.array(z.union([z.string(), HtmlMetaTagOptionsSchema]))]).optional()
58
+ });
59
+ const HtmlOptionKeys = Object.keys(HtmlOptionsSchema.shape);
60
+ export {
61
+ HtmlOptionKeys,
62
+ HtmlOptionsSchema
63
+ };
64
+ //# sourceMappingURL=html.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/parser/schemas/html.ts"],"sourcesContent":["import {z} from \"zod\";\n\nconst HtmlTypeStringSchema = z.enum([\"css\", \"js\"]);\n\nconst HtmlAttributesObjectSchema = z.record(z.string(), z.union([z.string(), z.boolean(), z.number()]));\n\nconst HtmlAddHashFunctionSchema = z.function().args(z.string(), z.string()).returns(z.string());\n\nconst HtmlAddPublicPathFunctionSchema = z.function().args(z.string(), z.string()).returns(z.string());\n\nconst HtmlCommonOptionsSchema = z.object({\n append: z.boolean().optional(),\n useHash: z.boolean().optional(),\n addHash: HtmlAddHashFunctionSchema.optional(),\n hash: z.union([z.boolean(), z.string(), HtmlAddHashFunctionSchema]).optional(),\n usePublicPath: z.boolean().optional(),\n addPublicPath: HtmlAddPublicPathFunctionSchema.optional(),\n publicPath: z.union([z.boolean(), z.string(), HtmlAddPublicPathFunctionSchema]).optional(),\n});\n\nconst HtmlExternalObjectSchema = z.object({\n packageName: z.string(),\n variableName: z.string(),\n});\n\nconst HtmlBaseTagOptionsSchema = HtmlCommonOptionsSchema.extend({\n glob: z.string().optional(),\n globPath: z.string().optional(),\n globFlatten: z.boolean().optional(),\n sourcePath: z.string().optional(),\n});\n\nconst HtmlLinkTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({\n path: z.string(),\n attributes: HtmlAttributesObjectSchema.optional(),\n});\n\nconst HtmlScriptTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({\n path: z.string(),\n attributes: HtmlAttributesObjectSchema.optional(),\n external: HtmlExternalObjectSchema.optional(),\n});\n\nconst HtmlMaybeLinkTagOptionsSchema = HtmlLinkTagOptionsSchema.extend({\n type: HtmlTypeStringSchema.optional(),\n});\n\nconst HtmlMaybeScriptTagOptionsSchema = HtmlScriptTagOptionsSchema.extend({\n type: HtmlTypeStringSchema.optional(),\n});\n\nconst HtmlMetaTagOptionsSchema = HtmlBaseTagOptionsSchema.extend({\n path: z.string().optional(),\n attributes: HtmlAttributesObjectSchema,\n});\n\n/**\n * Options a view passes to the HTML tags plugin.\n *\n * The same list validates what an entrypoint may declare and selects what reaches the HTML plugin,\n * so manifest-only options such as permissions or CSP never leak into it.\n */\nexport const HtmlOptionsSchema = HtmlCommonOptionsSchema.extend({\n append: z.boolean().optional(),\n prependExternals: z.boolean().optional(),\n jsExtensions: z.union([z.string(), z.array(z.string())]).optional(),\n cssExtensions: z.union([z.string(), z.array(z.string())]).optional(),\n tags: z\n .union([\n z.string(),\n HtmlMaybeLinkTagOptionsSchema,\n HtmlMaybeScriptTagOptionsSchema,\n z.array(z.union([z.string(), HtmlMaybeLinkTagOptionsSchema, HtmlMaybeScriptTagOptionsSchema])),\n ])\n .optional(),\n links: z\n .union([z.string(), HtmlLinkTagOptionsSchema, z.array(z.union([z.string(), HtmlLinkTagOptionsSchema]))])\n .optional(),\n scripts: z\n .union([z.string(), HtmlScriptTagOptionsSchema, z.array(z.union([z.string(), HtmlScriptTagOptionsSchema]))])\n .optional(),\n metas: z\n .union([z.string(), HtmlMetaTagOptionsSchema, z.array(z.union([z.string(), HtmlMetaTagOptionsSchema]))])\n .optional(),\n});\n\nexport const HtmlOptionKeys: readonly string[] = Object.keys(HtmlOptionsSchema.shape);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Schema of `PermissionsOptions`.
4
+ *
5
+ * It is a mixin, not a part of any parser class: an entrypoint opts into the contract
6
+ * when its parser imports and merges this schema, and entrypoints that do not never read these keys.
7
+ */
8
+ export declare const PermissionsSchema: z.ZodObject<{
9
+ permissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ optionalPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ hostPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ optionalHostPermissions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ permissions?: string[] | undefined;
15
+ optionalPermissions?: string[] | undefined;
16
+ hostPermissions?: string[] | undefined;
17
+ optionalHostPermissions?: string[] | undefined;
18
+ }, {
19
+ permissions?: string[] | undefined;
20
+ optionalPermissions?: string[] | undefined;
21
+ hostPermissions?: string[] | undefined;
22
+ optionalHostPermissions?: string[] | undefined;
23
+ }>;
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ const PermissionsSchema = z.object({
3
+ permissions: z.array(z.string()).optional(),
4
+ optionalPermissions: z.array(z.string()).optional(),
5
+ hostPermissions: z.array(z.string()).optional(),
6
+ optionalHostPermissions: z.array(z.string()).optional()
7
+ });
8
+ export {
9
+ PermissionsSchema
10
+ };
11
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/cli/entrypoint/parser/schemas/permissions.ts"],"sourcesContent":["import {z} from \"zod\";\n\n/**\n * Schema of `PermissionsOptions`.\n *\n * It is a mixin, not a part of any parser class: an entrypoint opts into the contract\n * when its parser imports and merges this schema, and entrypoints that do not never read these keys.\n */\nexport const PermissionsSchema = z.object({\n permissions: z.array(z.string()).optional(),\n optionalPermissions: z.array(z.string()).optional(),\n hostPermissions: z.array(z.string()).optional(),\n optionalHostPermissions: z.array(z.string()).optional(),\n});\n"],"mappings":"AAAA,SAAQ,SAAQ;AAQT,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACtC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1C,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAClD,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC9C,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAC1D,CAAC;","names":[]}
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import cac from "cac";
2
2
  import { consola } from "consola";
3
3
  import fs from "fs";
4
- import app from "./builders/app/index.js";
4
+ import app, { BuildError } from "./builders/app/index.js";
5
5
  import { Command } from "./../types/app.js";
6
6
  import { Browser } from "./../types/browser.js";
7
7
  const pkg = fs.readFileSync(new URL("../../package.json", import.meta.url), { encoding: "utf-8" });
@@ -30,7 +30,7 @@ cli.command("watch [root]", "Start watch mode").option("-m, --mode <mode>", "Set
30
30
  });
31
31
  cli.command("build [root]", "Build for production").option("-m, --mode <mode>", "Set env mode", { default: "production" }).option("-c, --config <config>", "Path to config file").option("-a, --app <app>", "Specify an app to run", { default: "myapp" }).option("-b, --browser <browser>", "Specify a browser", { default: Browser.Chrome }).option("--mv2", "Target manifest v2").option("--analyze", "Visualize extension bundle").action(async (root, options) => {
32
32
  try {
33
- await app({
33
+ const stats = await app({
34
34
  command: Command.Build,
35
35
  mode: options.mode,
36
36
  debug: options.debug,
@@ -41,8 +41,21 @@ cli.command("build [root]", "Build for production").option("-m, --mode <mode>",
41
41
  configFile: options.config,
42
42
  analyze: options.analyze
43
43
  });
44
+ if (stats) {
45
+ console.log(stats.toString({ colors: true }));
46
+ }
44
47
  } catch (e) {
45
- consola.error(e);
48
+ if (e instanceof BuildError) {
49
+ console.error(e.message);
50
+ if (e.stats) {
51
+ console.error(e.stats.toString({ colors: true, errors: true }));
52
+ }
53
+ if (e.cause !== void 0) {
54
+ console.error(e.cause);
55
+ }
56
+ } else {
57
+ consola.error(e);
58
+ }
46
59
  process.exitCode = 1;
47
60
  }
48
61
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import cac from \"cac\";\nimport {consola} from \"consola\";\nimport fs from \"fs\";\n\nimport app from \"./builders/app\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\n\nconst pkg = fs.readFileSync(new URL(\"../../package.json\", import.meta.url), {encoding: \"utf-8\"});\nconst {name, version} = JSON.parse(pkg);\n\nconst cli = cac(name);\n\ncli.option(\"--debug\", \"Enable debug mode\");\n\ncli.command(\"init\", \"Initialize a new project\").action(() => {\n consola.box(\"Coming soon...\");\n});\n\ncli.command(\"watch [root]\", \"Start watch mode\")\n .option(\"-m, --mode <mode>\", \"Set env mode\", {default: \"development\"})\n .option(\"-c, --config <config>\", \"Path to config file\")\n .option(\"-a, --app <app>\", \"Specify an app to run\", {default: \"myapp\"})\n .option(\"-b, --browser <browser>\", \"Specify a browser\")\n .option(\"--mv2\", \"Target manifest v2\")\n .action(async (root, options) => {\n try {\n await app({\n command: Command.Watch,\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n rootDir: root,\n configFile: options.config,\n });\n } catch (e) {\n consola.error(e);\n process.exitCode = 1;\n }\n });\n\ncli.command(\"build [root]\", \"Build for production\")\n .option(\"-m, --mode <mode>\", \"Set env mode\", {default: \"production\"})\n .option(\"-c, --config <config>\", \"Path to config file\")\n .option(\"-a, --app <app>\", \"Specify an app to run\", {default: \"myapp\"})\n .option(\"-b, --browser <browser>\", \"Specify a browser\", {default: Browser.Chrome})\n .option(\"--mv2\", \"Target manifest v2\")\n .option(\"--analyze\", \"Visualize extension bundle\")\n .action(async (root, options) => {\n try {\n await app({\n command: Command.Build,\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n rootDir: root,\n configFile: options.config,\n analyze: options.analyze,\n });\n } catch (e) {\n consola.error(e);\n process.exitCode = 1;\n }\n });\n\ncli.version(version);\ncli.help();\ncli.parse();\n"],"mappings":"AAAA,OAAO,SAAS;AAChB,SAAQ,eAAc;AACtB,OAAO,QAAQ;AAEf,OAAO,SAAS;AAEhB,SAAQ,eAAc;AACtB,SAAQ,eAAc;AAEtB,MAAM,MAAM,GAAG,aAAa,IAAI,IAAI,sBAAsB,YAAY,GAAG,GAAG,EAAC,UAAU,QAAO,CAAC;AAC/F,MAAM,EAAC,MAAM,QAAO,IAAI,KAAK,MAAM,GAAG;AAEtC,MAAM,MAAM,IAAI,IAAI;AAEpB,IAAI,OAAO,WAAW,mBAAmB;AAEzC,IAAI,QAAQ,QAAQ,0BAA0B,EAAE,OAAO,MAAM;AACzD,UAAQ,IAAI,gBAAgB;AAChC,CAAC;AAED,IAAI,QAAQ,gBAAgB,kBAAkB,EACzC,OAAO,qBAAqB,gBAAgB,EAAC,SAAS,cAAa,CAAC,EACpE,OAAO,yBAAyB,qBAAqB,EACrD,OAAO,mBAAmB,yBAAyB,EAAC,SAAS,QAAO,CAAC,EACrE,OAAO,2BAA2B,mBAAmB,EACrD,OAAO,SAAS,oBAAoB,EACpC,OAAO,OAAO,MAAM,YAAY;AAC7B,MAAI;AACA,UAAM,IAAI;AAAA,MACN,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,OAAO,QAAQ;AAAA,MACf,KAAK,QAAQ;AAAA,MACb,SAAS,QAAQ;AAAA,MACjB,iBAAiB,QAAQ,MAAM,IAAI;AAAA,MACnC,SAAS;AAAA,MACT,YAAY,QAAQ;AAAA,IACxB,CAAC;AAAA,EACL,SAAS,GAAG;AACR,YAAQ,MAAM,CAAC;AACf,YAAQ,WAAW;AAAA,EACvB;AACJ,CAAC;AAEL,IAAI,QAAQ,gBAAgB,sBAAsB,EAC7C,OAAO,qBAAqB,gBAAgB,EAAC,SAAS,aAAY,CAAC,EACnE,OAAO,yBAAyB,qBAAqB,EACrD,OAAO,mBAAmB,yBAAyB,EAAC,SAAS,QAAO,CAAC,EACrE,OAAO,2BAA2B,qBAAqB,EAAC,SAAS,QAAQ,OAAM,CAAC,EAChF,OAAO,SAAS,oBAAoB,EACpC,OAAO,aAAa,4BAA4B,EAChD,OAAO,OAAO,MAAM,YAAY;AAC7B,MAAI;AACA,UAAM,IAAI;AAAA,MACN,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,OAAO,QAAQ;AAAA,MACf,KAAK,QAAQ;AAAA,MACb,SAAS,QAAQ;AAAA,MACjB,iBAAiB,QAAQ,MAAM,IAAI;AAAA,MACnC,SAAS;AAAA,MACT,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,IACrB,CAAC;AAAA,EACL,SAAS,GAAG;AACR,YAAQ,MAAM,CAAC;AACf,YAAQ,WAAW;AAAA,EACvB;AACJ,CAAC;AAEL,IAAI,QAAQ,OAAO;AACnB,IAAI,KAAK;AACT,IAAI,MAAM;","names":[]}
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["import cac from \"cac\";\nimport {consola} from \"consola\";\nimport fs from \"fs\";\n\nimport app, {BuildError} from \"./builders/app\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\n\nconst pkg = fs.readFileSync(new URL(\"../../package.json\", import.meta.url), {encoding: \"utf-8\"});\nconst {name, version} = JSON.parse(pkg);\n\nconst cli = cac(name);\n\ncli.option(\"--debug\", \"Enable debug mode\");\n\ncli.command(\"init\", \"Initialize a new project\").action(() => {\n consola.box(\"Coming soon...\");\n});\n\ncli.command(\"watch [root]\", \"Start watch mode\")\n .option(\"-m, --mode <mode>\", \"Set env mode\", {default: \"development\"})\n .option(\"-c, --config <config>\", \"Path to config file\")\n .option(\"-a, --app <app>\", \"Specify an app to run\", {default: \"myapp\"})\n .option(\"-b, --browser <browser>\", \"Specify a browser\")\n .option(\"--mv2\", \"Target manifest v2\")\n .action(async (root, options) => {\n try {\n await app({\n command: Command.Watch,\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n rootDir: root,\n configFile: options.config,\n });\n } catch (e) {\n consola.error(e);\n process.exitCode = 1;\n }\n });\n\ncli.command(\"build [root]\", \"Build for production\")\n .option(\"-m, --mode <mode>\", \"Set env mode\", {default: \"production\"})\n .option(\"-c, --config <config>\", \"Path to config file\")\n .option(\"-a, --app <app>\", \"Specify an app to run\", {default: \"myapp\"})\n .option(\"-b, --browser <browser>\", \"Specify a browser\", {default: Browser.Chrome})\n .option(\"--mv2\", \"Target manifest v2\")\n .option(\"--analyze\", \"Visualize extension bundle\")\n .action(async (root, options) => {\n try {\n const stats = await app({\n command: Command.Build,\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n rootDir: root,\n configFile: options.config,\n analyze: options.analyze,\n });\n\n if (stats) {\n console.log(stats.toString({colors: true}));\n }\n } catch (e) {\n if (e instanceof BuildError) {\n console.error(e.message);\n\n if (e.stats) {\n console.error(e.stats.toString({colors: true, errors: true}));\n }\n\n if (e.cause !== undefined) {\n console.error(e.cause);\n }\n } else {\n consola.error(e);\n }\n\n process.exitCode = 1;\n }\n });\n\ncli.version(version);\ncli.help();\ncli.parse();\n"],"mappings":"AAAA,OAAO,SAAS;AAChB,SAAQ,eAAc;AACtB,OAAO,QAAQ;AAEf,OAAO,OAAM,kBAAiB;AAE9B,SAAQ,eAAc;AACtB,SAAQ,eAAc;AAEtB,MAAM,MAAM,GAAG,aAAa,IAAI,IAAI,sBAAsB,YAAY,GAAG,GAAG,EAAC,UAAU,QAAO,CAAC;AAC/F,MAAM,EAAC,MAAM,QAAO,IAAI,KAAK,MAAM,GAAG;AAEtC,MAAM,MAAM,IAAI,IAAI;AAEpB,IAAI,OAAO,WAAW,mBAAmB;AAEzC,IAAI,QAAQ,QAAQ,0BAA0B,EAAE,OAAO,MAAM;AACzD,UAAQ,IAAI,gBAAgB;AAChC,CAAC;AAED,IAAI,QAAQ,gBAAgB,kBAAkB,EACzC,OAAO,qBAAqB,gBAAgB,EAAC,SAAS,cAAa,CAAC,EACpE,OAAO,yBAAyB,qBAAqB,EACrD,OAAO,mBAAmB,yBAAyB,EAAC,SAAS,QAAO,CAAC,EACrE,OAAO,2BAA2B,mBAAmB,EACrD,OAAO,SAAS,oBAAoB,EACpC,OAAO,OAAO,MAAM,YAAY;AAC7B,MAAI;AACA,UAAM,IAAI;AAAA,MACN,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,OAAO,QAAQ;AAAA,MACf,KAAK,QAAQ;AAAA,MACb,SAAS,QAAQ;AAAA,MACjB,iBAAiB,QAAQ,MAAM,IAAI;AAAA,MACnC,SAAS;AAAA,MACT,YAAY,QAAQ;AAAA,IACxB,CAAC;AAAA,EACL,SAAS,GAAG;AACR,YAAQ,MAAM,CAAC;AACf,YAAQ,WAAW;AAAA,EACvB;AACJ,CAAC;AAEL,IAAI,QAAQ,gBAAgB,sBAAsB,EAC7C,OAAO,qBAAqB,gBAAgB,EAAC,SAAS,aAAY,CAAC,EACnE,OAAO,yBAAyB,qBAAqB,EACrD,OAAO,mBAAmB,yBAAyB,EAAC,SAAS,QAAO,CAAC,EACrE,OAAO,2BAA2B,qBAAqB,EAAC,SAAS,QAAQ,OAAM,CAAC,EAChF,OAAO,SAAS,oBAAoB,EACpC,OAAO,aAAa,4BAA4B,EAChD,OAAO,OAAO,MAAM,YAAY;AAC7B,MAAI;AACA,UAAM,QAAQ,MAAM,IAAI;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ;AAAA,MACd,OAAO,QAAQ;AAAA,MACf,KAAK,QAAQ;AAAA,MACb,SAAS,QAAQ;AAAA,MACjB,iBAAiB,QAAQ,MAAM,IAAI;AAAA,MACnC,SAAS;AAAA,MACT,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,IACrB,CAAC;AAED,QAAI,OAAO;AACP,cAAQ,IAAI,MAAM,SAAS,EAAC,QAAQ,KAAI,CAAC,CAAC;AAAA,IAC9C;AAAA,EACJ,SAAS,GAAG;AACR,QAAI,aAAa,YAAY;AACzB,cAAQ,MAAM,EAAE,OAAO;AAEvB,UAAI,EAAE,OAAO;AACT,gBAAQ,MAAM,EAAE,MAAM,SAAS,EAAC,QAAQ,MAAM,QAAQ,KAAI,CAAC,CAAC;AAAA,MAChE;AAEA,UAAI,EAAE,UAAU,QAAW;AACvB,gBAAQ,MAAM,EAAE,KAAK;AAAA,MACzB;AAAA,IACJ,OAAO;AACH,cAAQ,MAAM,CAAC;AAAA,IACnB;AAEA,YAAQ,WAAW;AAAA,EACvB;AACJ,CAAC;AAEL,IAAI,QAAQ,OAAO;AACnB,IAAI,KAAK;AACT,IAAI,MAAM;","names":[]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../main/plugin.js").PluginDefinition<[]>;
2
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { definePlugin } from "./../../main/plugin.js";
2
+ import { modifyLocaleMessageKey } from "./../../shared/locale/index.js";
3
+ var action_default = definePlugin(() => ({
4
+ name: "adnbn:action",
5
+ manifest: ({ config, manifest }) => {
6
+ const { action } = config;
7
+ manifest.setAction(action ? { icon: action.icon, title: modifyLocaleMessageKey(action.title) } : void 0);
8
+ }
9
+ }));
10
+ export {
11
+ action_default as default
12
+ };
13
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/plugins/action.ts"],"sourcesContent":["import {definePlugin} from \"@main/plugin\";\nimport {modifyLocaleMessageKey} from \"@shared/locale\";\n\nexport default definePlugin(() => ({\n name: \"adnbn:action\",\n manifest: ({config, manifest}) => {\n const {action} = config;\n\n manifest.setAction(action ? {icon: action.icon, title: modifyLocaleMessageKey(action.title)} : undefined);\n },\n}));\n"],"mappings":"AAAA,SAAQ,oBAAmB;AAC3B,SAAQ,8BAA6B;AAErC,IAAO,iBAAQ,aAAa,OAAO;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU,CAAC,EAAC,QAAQ,SAAQ,MAAM;AAC9B,UAAM,EAAC,OAAM,IAAI;AAEjB,aAAS,UAAU,SAAS,EAAC,MAAM,OAAO,MAAM,OAAO,uBAAuB,OAAO,KAAK,EAAC,IAAI,MAAS;AAAA,EAC5G;AACJ,EAAE;","names":[]}
@@ -1,3 +1,4 @@
1
+ export { default as pluginAction } from "./action.js";
1
2
  export { default as pluginAsset } from "./asset.js";
2
3
  export { default as pluginBundler } from "./bundler.js";
3
4
  export { default as pluginBackground } from "./background/index.js";
@@ -12,6 +13,7 @@ export { default as pluginLocale } from "./locale/index.js";
12
13
  export { default as pluginMeta } from "./meta/index.js";
13
14
  export { default as pluginOffscreen } from "./offscreen/index.js";
14
15
  export { default as pluginOptions } from "./options/index.js";
16
+ export { default as pluginOverride } from "./override/index.js";
15
17
  export { default as pluginPage } from "./page/index.js";
16
18
  export { default as pluginPopup } from "./popup/index.js";
17
19
  export { default as pluginPublic } from "./public.js";
@@ -1,54 +1,58 @@
1
- import { default as default2 } from "./asset.js";
2
- import { default as default3 } from "./bundler.js";
3
- import { default as default4 } from "./background/index.js";
4
- import { default as default5 } from "./content/index.js";
5
- import { default as default6 } from "./dotenv/index.js";
6
- import { default as default7 } from "./html.js";
7
- import { default as default8 } from "./manifest.js";
8
- import { default as default9 } from "./optimization.js";
9
- import { default as default10 } from "./output/index.js";
10
- import { default as default11 } from "./icon/index.js";
11
- import { default as default12 } from "./locale/index.js";
12
- import { default as default13 } from "./meta/index.js";
13
- import { default as default14 } from "./offscreen/index.js";
14
- import { default as default15 } from "./options/index.js";
15
- import { default as default16 } from "./page/index.js";
16
- import { default as default17 } from "./popup/index.js";
17
- import { default as default18 } from "./public.js";
18
- import { default as default19 } from "./sandbox/index.js";
19
- import { default as default20 } from "./sidebar/index.js";
20
- import { default as default21, TypescriptConfig, FileBuilder, VendorDeclaration } from "./typescript/index.js";
21
- import { default as default22 } from "./react.js";
22
- import { default as default23 } from "./style/index.js";
23
- import { default as default24 } from "./view/index.js";
24
- import { default as default25 } from "./version/index.js";
1
+ import { default as default2 } from "./action.js";
2
+ import { default as default3 } from "./asset.js";
3
+ import { default as default4 } from "./bundler.js";
4
+ import { default as default5 } from "./background/index.js";
5
+ import { default as default6 } from "./content/index.js";
6
+ import { default as default7 } from "./dotenv/index.js";
7
+ import { default as default8 } from "./html.js";
8
+ import { default as default9 } from "./manifest.js";
9
+ import { default as default10 } from "./optimization.js";
10
+ import { default as default11 } from "./output/index.js";
11
+ import { default as default12 } from "./icon/index.js";
12
+ import { default as default13 } from "./locale/index.js";
13
+ import { default as default14 } from "./meta/index.js";
14
+ import { default as default15 } from "./offscreen/index.js";
15
+ import { default as default16 } from "./options/index.js";
16
+ import { default as default17 } from "./override/index.js";
17
+ import { default as default18 } from "./page/index.js";
18
+ import { default as default19 } from "./popup/index.js";
19
+ import { default as default20 } from "./public.js";
20
+ import { default as default21 } from "./sandbox/index.js";
21
+ import { default as default22 } from "./sidebar/index.js";
22
+ import { default as default23, TypescriptConfig, FileBuilder, VendorDeclaration } from "./typescript/index.js";
23
+ import { default as default24 } from "./react.js";
24
+ import { default as default25 } from "./style/index.js";
25
+ import { default as default26 } from "./view/index.js";
26
+ import { default as default27 } from "./version/index.js";
25
27
  export {
26
28
  FileBuilder,
27
29
  TypescriptConfig,
28
30
  VendorDeclaration,
29
- default2 as pluginAsset,
30
- default4 as pluginBackground,
31
- default3 as pluginBundler,
32
- default5 as pluginContent,
33
- default6 as pluginDotenv,
34
- default7 as pluginHtml,
35
- default11 as pluginIcon,
36
- default12 as pluginLocale,
37
- default8 as pluginManifest,
38
- default13 as pluginMeta,
39
- default14 as pluginOffscreen,
40
- default9 as pluginOptimization,
41
- default15 as pluginOptions,
42
- default10 as pluginOutput,
43
- default16 as pluginPage,
44
- default17 as pluginPopup,
45
- default18 as pluginPublic,
46
- default22 as pluginReact,
47
- default19 as pluginSandbox,
48
- default20 as pluginSidebar,
49
- default23 as pluginStyle,
50
- default21 as pluginTypescript,
51
- default25 as pluginVersion,
52
- default24 as pluginView
31
+ default2 as pluginAction,
32
+ default3 as pluginAsset,
33
+ default5 as pluginBackground,
34
+ default4 as pluginBundler,
35
+ default6 as pluginContent,
36
+ default7 as pluginDotenv,
37
+ default8 as pluginHtml,
38
+ default12 as pluginIcon,
39
+ default13 as pluginLocale,
40
+ default9 as pluginManifest,
41
+ default14 as pluginMeta,
42
+ default15 as pluginOffscreen,
43
+ default10 as pluginOptimization,
44
+ default16 as pluginOptions,
45
+ default11 as pluginOutput,
46
+ default17 as pluginOverride,
47
+ default18 as pluginPage,
48
+ default19 as pluginPopup,
49
+ default20 as pluginPublic,
50
+ default24 as pluginReact,
51
+ default21 as pluginSandbox,
52
+ default22 as pluginSidebar,
53
+ default25 as pluginStyle,
54
+ default23 as pluginTypescript,
55
+ default27 as pluginVersion,
56
+ default26 as pluginView
53
57
  };
54
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/plugins/index.ts"],"sourcesContent":["export {default as pluginAsset} from \"./asset\";\nexport {default as pluginBundler} from \"./bundler\";\nexport {default as pluginBackground} from \"./background\";\nexport {default as pluginContent} from \"./content\";\nexport {default as pluginDotenv} from \"./dotenv\";\nexport {default as pluginHtml} from \"./html\";\nexport {default as pluginManifest} from \"./manifest\";\nexport {default as pluginOptimization} from \"./optimization\";\nexport {default as pluginOutput} from \"./output\";\nexport {default as pluginIcon} from \"./icon\";\nexport {default as pluginLocale} from \"./locale\";\nexport {default as pluginMeta} from \"./meta\";\nexport {default as pluginOffscreen} from \"./offscreen\";\nexport {default as pluginOptions} from \"./options\";\nexport {default as pluginPage} from \"./page\";\nexport {default as pluginPopup} from \"./popup\";\nexport {default as pluginPublic} from \"./public\";\nexport {default as pluginSandbox} from \"./sandbox\";\nexport {default as pluginSidebar} from \"./sidebar\";\nexport {default as pluginTypescript, TypescriptConfig, FileBuilder, VendorDeclaration} from \"./typescript\";\nexport {default as pluginReact} from \"./react\";\nexport {default as pluginStyle} from \"./style\";\nexport {default as pluginView} from \"./view\";\nexport {default as pluginVersion} from \"./version\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAA6B;AACrC,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAAkC;AAC1C,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAA8B;AACtC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,gBAAoC;AAC5C,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAAiC;AACzC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,WAA6B,kBAAkB,aAAa,yBAAwB;AAC5F,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA+B;","names":["default"]}
1
+ {"version":3,"sources":["../../../src/cli/plugins/index.ts"],"sourcesContent":["export {default as pluginAction} from \"./action\";\nexport {default as pluginAsset} from \"./asset\";\nexport {default as pluginBundler} from \"./bundler\";\nexport {default as pluginBackground} from \"./background\";\nexport {default as pluginContent} from \"./content\";\nexport {default as pluginDotenv} from \"./dotenv\";\nexport {default as pluginHtml} from \"./html\";\nexport {default as pluginManifest} from \"./manifest\";\nexport {default as pluginOptimization} from \"./optimization\";\nexport {default as pluginOutput} from \"./output\";\nexport {default as pluginIcon} from \"./icon\";\nexport {default as pluginLocale} from \"./locale\";\nexport {default as pluginMeta} from \"./meta\";\nexport {default as pluginOffscreen} from \"./offscreen\";\nexport {default as pluginOptions} from \"./options\";\nexport {default as pluginOverride} from \"./override\";\nexport {default as pluginPage} from \"./page\";\nexport {default as pluginPopup} from \"./popup\";\nexport {default as pluginPublic} from \"./public\";\nexport {default as pluginSandbox} from \"./sandbox\";\nexport {default as pluginSidebar} from \"./sidebar\";\nexport {default as pluginTypescript, TypescriptConfig, FileBuilder, VendorDeclaration} from \"./typescript\";\nexport {default as pluginReact} from \"./react\";\nexport {default as pluginStyle} from \"./style\";\nexport {default as pluginView} from \"./view\";\nexport {default as pluginVersion} from \"./version\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAA8B;AACtC,SAAmB,WAAXA,gBAA6B;AACrC,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAAkC;AAC1C,SAAmB,WAAXA,gBAA+B;AACvC,SAAmB,WAAXA,gBAA8B;AACtC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,iBAAoC;AAC5C,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAAiC;AACzC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,iBAAgC;AACxC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA8B;AACtC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,iBAA+B;AACvC,SAAmB,WAAXA,WAA6B,kBAAkB,aAAa,yBAAwB;AAC5F,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA6B;AACrC,SAAmB,WAAXA,iBAA4B;AACpC,SAAmB,WAAXA,iBAA+B;","names":["default"]}
@@ -1,4 +1,3 @@
1
- import path from "path";
2
1
  import { HtmlRspackPlugin } from "@rspack/core";
3
2
  import { RspackVirtualModulePlugin } from "rspack-plugin-virtual-module";
4
3
  import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
@@ -11,7 +10,6 @@ import { createOffscreenModule, OffscreenModuleName } from "./offscreen-module.j
11
10
  import { Command } from "./../../../types/app.js";
12
11
  import { Browser } from "./../../../types/browser.js";
13
12
  import { BackgroundEntryName } from "./../../../types/background.js";
14
- const OffscreenTempDir = "virtual";
15
13
  const OffscreenBackgroundModule = "offscreen.background.ts";
16
14
  var offscreen_default = definePlugin(() => {
17
15
  let offscreen;
@@ -53,13 +51,13 @@ var offscreen_default = definePlugin(() => {
53
51
  {
54
52
  [OffscreenBackgroundModule]: virtualOffscreenBackgroundModule()
55
53
  },
56
- OffscreenTempDir
54
+ "virtual"
57
55
  )
58
56
  );
59
57
  rspack = {
60
58
  entry: {
61
59
  [BackgroundEntryName]: {
62
- import: [path.join(OffscreenTempDir, OffscreenBackgroundModule)]
60
+ import: [OffscreenBackgroundModule]
63
61
  }
64
62
  }
65
63
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/offscreen/index.ts"],"sourcesContent":["import path from \"path\";\nimport {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin} from \"rspack-plugin-virtual-module\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualOffscreenBackgroundModule} from \"@cli/virtual/index.js\";\n\nimport Offscreen from \"./Offscreen\";\nimport OffscreenDeclaration from \"./OffscreenDeclaration\";\nimport {createOffscreenModule, OffscreenModuleName} from \"./offscreen-module\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {BackgroundEntryName} from \"@typing/background\";\nimport type {OffscreenParametersMap} from \"@typing/offscreen\";\n\nconst OffscreenTempDir = \"virtual\";\nconst OffscreenBackgroundModule = \"offscreen.background.ts\";\n\nexport default definePlugin(() => {\n let offscreen: Offscreen;\n let declaration: OffscreenDeclaration;\n\n return {\n name: \"adnbn:offscreen\",\n startup: ({config}) => {\n offscreen = new Offscreen(config);\n declaration = new OffscreenDeclaration(config);\n },\n offscreen: () => offscreen.files(),\n bundler: async ({config}) => {\n declaration.dictionary(await offscreen.dictionary()).build();\n\n let build: boolean = true;\n let rspack: RspackConfig = {};\n\n if (await offscreen.empty()) {\n if (config.debug) {\n console.info(\"Offscreen entries not found\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let parameters: OffscreenParametersMap = {};\n\n if (build) {\n parameters = await offscreen.parameters();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await offscreen.view().entries())\n .virtual(file => offscreen.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.dictionary(await offscreen.clear().dictionary()).build();\n\n return offscreen.view().entries();\n });\n }\n\n const htmlPlugins = (await offscreen.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await offscreen.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n\n if (config.manifestVersion === 2 || config.browser === Browser.Firefox) {\n plugins.push(\n new RspackVirtualModulePlugin(\n {\n [OffscreenBackgroundModule]: virtualOffscreenBackgroundModule(),\n },\n OffscreenTempDir\n )\n );\n\n rspack = {\n entry: {\n [BackgroundEntryName]: {\n import: [path.join(OffscreenTempDir, OffscreenBackgroundModule)],\n },\n },\n };\n }\n }\n\n return {\n ...rspack,\n plugins: [\n new GenerateModulePlugin({\n [OffscreenModuleName]: createOffscreenModule(parameters),\n }),\n ...plugins,\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.appendCsp(await offscreen.views().csp());\n\n if (config.manifestVersion !== 2 && config.browser !== Browser.Firefox && (await offscreen.exists())) {\n manifest.addPermission(\"offscreen\");\n }\n },\n };\n});\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAuC,wBAAgC;AACvE,SAAQ,iCAAgC;AACxC,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,wCAAuC;AAE/C,OAAO,eAAe;AACtB,OAAO,0BAA0B;AACjC,SAAQ,uBAAuB,2BAA0B;AAEzD,SAAQ,eAAc;AACtB,SAAQ,eAAc;AACtB,SAAQ,2BAA0B;AAGlC,MAAM,mBAAmB;AACzB,MAAM,4BAA4B;AAElC,IAAO,oBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,kBAAY,IAAI,UAAU,MAAM;AAChC,oBAAc,IAAI,qBAAqB,MAAM;AAAA,IACjD;AAAA,IACA,WAAW,MAAM,UAAU,MAAM;AAAA,IACjC,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,WAAW,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM;AAE3D,UAAI,QAAiB;AACrB,UAAI,SAAuB,CAAC;AAE5B,UAAI,MAAM,UAAU,MAAM,GAAG;AACzB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,6BAA6B;AAAA,QAC9C;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,aAAqC,CAAC;AAE1C,UAAI,OAAO;AACP,qBAAa,MAAM,UAAU,WAAW;AAGxC,cAAM,SAAS,iBAAiB,KAAK,MAAM,UAAU,KAAK,EAAE,QAAQ,CAAC,EAChE,QAAQ,UAAQ,UAAU,QAAQ,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,WAAW,MAAM,UAAU,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;AAEnE,mBAAO,UAAU,KAAK,EAAE,QAAQ;AAAA,UACpC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAChG,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEpG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAEnD,YAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,SAAS;AACpE,kBAAQ;AAAA,YACJ,IAAI;AAAA,cACA;AAAA,gBACI,CAAC,yBAAyB,GAAG,iCAAiC;AAAA,cAClE;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAEA,mBAAS;AAAA,YACL,OAAO;AAAA,cACH,CAAC,mBAAmB,GAAG;AAAA,gBACnB,QAAQ,CAAC,KAAK,KAAK,kBAAkB,yBAAyB,CAAC;AAAA,cACnE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,mBAAmB,GAAG,sBAAsB,UAAU;AAAA,UAC3D,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,UAAU,MAAM,UAAU,MAAM,EAAE,IAAI,CAAC;AAEhD,UAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,WAAY,MAAM,UAAU,OAAO,GAAI;AAClG,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/offscreen/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin} from \"rspack-plugin-virtual-module\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualOffscreenBackgroundModule} from \"@cli/virtual/index.js\";\n\nimport Offscreen from \"./Offscreen\";\nimport OffscreenDeclaration from \"./OffscreenDeclaration\";\nimport {createOffscreenModule, OffscreenModuleName} from \"./offscreen-module\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {BackgroundEntryName} from \"@typing/background\";\nimport type {OffscreenParametersMap} from \"@typing/offscreen\";\n\nconst OffscreenBackgroundModule = \"offscreen.background.ts\";\n\nexport default definePlugin(() => {\n let offscreen: Offscreen;\n let declaration: OffscreenDeclaration;\n\n return {\n name: \"adnbn:offscreen\",\n startup: ({config}) => {\n offscreen = new Offscreen(config);\n declaration = new OffscreenDeclaration(config);\n },\n offscreen: () => offscreen.files(),\n bundler: async ({config}) => {\n declaration.dictionary(await offscreen.dictionary()).build();\n\n let build: boolean = true;\n let rspack: RspackConfig = {};\n\n if (await offscreen.empty()) {\n if (config.debug) {\n console.info(\"Offscreen entries not found\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let parameters: OffscreenParametersMap = {};\n\n if (build) {\n parameters = await offscreen.parameters();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await offscreen.view().entries())\n .virtual(file => offscreen.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.dictionary(await offscreen.clear().dictionary()).build();\n\n return offscreen.view().entries();\n });\n }\n\n const htmlPlugins = (await offscreen.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await offscreen.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n\n if (config.manifestVersion === 2 || config.browser === Browser.Firefox) {\n plugins.push(\n new RspackVirtualModulePlugin(\n {\n [OffscreenBackgroundModule]: virtualOffscreenBackgroundModule(),\n },\n \"virtual\"\n )\n );\n\n rspack = {\n entry: {\n [BackgroundEntryName]: {\n import: [OffscreenBackgroundModule],\n },\n },\n };\n }\n }\n\n return {\n ...rspack,\n plugins: [\n new GenerateModulePlugin({\n [OffscreenModuleName]: createOffscreenModule(parameters),\n }),\n ...plugins,\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.appendCsp(await offscreen.views().csp());\n\n if (config.manifestVersion !== 2 && config.browser !== Browser.Firefox && (await offscreen.exists())) {\n manifest.addPermission(\"offscreen\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,SAAQ,iCAAgC;AACxC,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,wCAAuC;AAE/C,OAAO,eAAe;AACtB,OAAO,0BAA0B;AACjC,SAAQ,uBAAuB,2BAA0B;AAEzD,SAAQ,eAAc;AACtB,SAAQ,eAAc;AACtB,SAAQ,2BAA0B;AAGlC,MAAM,4BAA4B;AAElC,IAAO,oBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,kBAAY,IAAI,UAAU,MAAM;AAChC,oBAAc,IAAI,qBAAqB,MAAM;AAAA,IACjD;AAAA,IACA,WAAW,MAAM,UAAU,MAAM;AAAA,IACjC,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,WAAW,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM;AAE3D,UAAI,QAAiB;AACrB,UAAI,SAAuB,CAAC;AAE5B,UAAI,MAAM,UAAU,MAAM,GAAG;AACzB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,6BAA6B;AAAA,QAC9C;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,aAAqC,CAAC;AAE1C,UAAI,OAAO;AACP,qBAAa,MAAM,UAAU,WAAW;AAGxC,cAAM,SAAS,iBAAiB,KAAK,MAAM,UAAU,KAAK,EAAE,QAAQ,CAAC,EAChE,QAAQ,UAAQ,UAAU,QAAQ,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,WAAW,MAAM,UAAU,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;AAEnE,mBAAO,UAAU,KAAK,EAAE,QAAQ;AAAA,UACpC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAChG,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEpG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAEnD,YAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,SAAS;AACpE,kBAAQ;AAAA,YACJ,IAAI;AAAA,cACA;AAAA,gBACI,CAAC,yBAAyB,GAAG,iCAAiC;AAAA,cAClE;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAEA,mBAAS;AAAA,YACL,OAAO;AAAA,cACH,CAAC,mBAAmB,GAAG;AAAA,gBACnB,QAAQ,CAAC,yBAAyB;AAAA,cACtC;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,mBAAmB,GAAG,sBAAsB,UAAU;AAAA,UAC3D,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,UAAU,MAAM,UAAU,MAAM,EAAE,IAAI,CAAC;AAEhD,UAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,WAAY,MAAM,UAAU,OAAO,GAAI;AAClG,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -31,7 +31,7 @@ var options_default = definePlugin(() => {
31
31
  };
32
32
  },
33
33
  manifest: async ({ manifest }) => {
34
- manifest.setOptions(await options.manifest()).appendCsp(await options.csp());
34
+ manifest.setOptions(await options.manifest()).appendCsp(await options.csp()).appendPermissions(await options.permissions()).appendOptionalPermissions(await options.optionalPermissions()).appendHostPermissions(await options.hostPermissions()).appendOptionalHostPermissions(await options.optionalHostPermissions());
35
35
  }
36
36
  };
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/options/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport Options from \"./Options\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let options: Options;\n\n return {\n name: \"adnbn:options\",\n startup: ({config}) => {\n options = new Options(config);\n },\n options: () => options.files(),\n bundler: async ({config}) => {\n if (await options.empty()) {\n if (config.debug) {\n console.info(\"Options entry not found\");\n }\n\n return {};\n }\n\n const plugin = EntrypointPlugin.from(await options.view().entries()).virtual(virtualViewModule);\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => options.clear().view().entries());\n }\n\n const htmlPlugins = (await options.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await options.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n return {\n plugins: [plugin, ...htmlPlugins, ...tagsPlugins],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n manifest.setOptions(await options.manifest()).appendCsp(await options.csp());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAuB;AAC9D,OAAO,0BAA0B;AAEjC,OAAO,aAAa;AAEpB,SAAQ,oBAAmB;AAC3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,SAAQ,eAAc;AAEtB,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAAA,IAChC;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAEA,eAAO,CAAC;AAAA,MACZ;AAEA,YAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,iBAAiB;AAE9F,UAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,eAAO,MAAM,YAAY,QAAQ,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AAAA,MAC7D;AAEA,YAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAAA,aAAW,IAAI,iBAAiBA,QAAO,CAAC;AAC9F,YAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAAA,aAAW,IAAI,qBAAqBA,QAAO,CAAC;AAElG,aAAO;AAAA,QACH,SAAS,CAAC,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,eAAS,WAAW,MAAM,QAAQ,SAAS,CAAC,EAAE,UAAU,MAAM,QAAQ,IAAI,CAAC;AAAA,IAC/E;AAAA,EACJ;AACJ,CAAC;","names":["options"]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/options/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport Options from \"./Options\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let options: Options;\n\n return {\n name: \"adnbn:options\",\n startup: ({config}) => {\n options = new Options(config);\n },\n options: () => options.files(),\n bundler: async ({config}) => {\n if (await options.empty()) {\n if (config.debug) {\n console.info(\"Options entry not found\");\n }\n\n return {};\n }\n\n const plugin = EntrypointPlugin.from(await options.view().entries()).virtual(virtualViewModule);\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => options.clear().view().entries());\n }\n\n const htmlPlugins = (await options.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await options.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n return {\n plugins: [plugin, ...htmlPlugins, ...tagsPlugins],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n manifest\n .setOptions(await options.manifest())\n .appendCsp(await options.csp())\n .appendPermissions(await options.permissions())\n .appendOptionalPermissions(await options.optionalPermissions())\n .appendHostPermissions(await options.hostPermissions())\n .appendOptionalHostPermissions(await options.optionalHostPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAuB;AAC9D,OAAO,0BAA0B;AAEjC,OAAO,aAAa;AAEpB,SAAQ,oBAAmB;AAC3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,SAAQ,eAAc;AAEtB,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAAA,IAChC;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAEA,eAAO,CAAC;AAAA,MACZ;AAEA,YAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,iBAAiB;AAE9F,UAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,eAAO,MAAM,YAAY,QAAQ,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC;AAAA,MAC7D;AAEA,YAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAAA,aAAW,IAAI,iBAAiBA,QAAO,CAAC;AAC9F,YAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAAA,aAAW,IAAI,qBAAqBA,QAAO,CAAC;AAElG,aAAO;AAAA,QACH,SAAS,CAAC,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,eACK,WAAW,MAAM,QAAQ,SAAS,CAAC,EACnC,UAAU,MAAM,QAAQ,IAAI,CAAC,EAC7B,kBAAkB,MAAM,QAAQ,YAAY,CAAC,EAC7C,0BAA0B,MAAM,QAAQ,oBAAoB,CAAC,EAC7D,sBAAsB,MAAM,QAAQ,gBAAgB,CAAC,EACrD,8BAA8B,MAAM,QAAQ,wBAAwB,CAAC;AAAA,IAC9E;AAAA,EACJ;AACJ,CAAC;","names":["options"]}
@@ -0,0 +1,31 @@
1
+ import View from "../view/View.js";
2
+ import { AbstractOverrideFinder } from "../../entrypoint/index.js";
3
+ import { EntrypointFile } from "../../../types/entrypoint.js";
4
+ import type { ReadonlyConfig } from "../../../types/config.js";
5
+ import type { CspConfig } from "../../../types/csp.js";
6
+ import type { ManifestHostPermissions, ManifestOptionalPermissions, ManifestOverride, ManifestPermissions } from "../../../types/manifest.js";
7
+ import type { OverrideEntrypointOptions, OverrideEntrypointType } from "../../../types/override.js";
8
+ type OverrideFinder = AbstractOverrideFinder<OverrideEntrypointOptions>;
9
+ /**
10
+ * Owns the rule shared by the override entrypoints: a build carries at most one of them.
11
+ * Pages the target browser does not support are skipped first, then the remaining ones must not compete.
12
+ */
13
+ export default class Override {
14
+ protected readonly config: ReadonlyConfig;
15
+ protected readonly finders: Readonly<Record<OverrideEntrypointType, OverrideFinder>>;
16
+ protected _finder?: Promise<OverrideFinder | undefined>;
17
+ constructor(config: ReadonlyConfig);
18
+ files(type: OverrideEntrypointType): Promise<Set<EntrypointFile>>;
19
+ view(): Promise<View<OverrideEntrypointOptions> | undefined>;
20
+ manifest(): Promise<ManifestOverride | undefined>;
21
+ csp(): Promise<CspConfig[]>;
22
+ permissions(): Promise<ManifestPermissions>;
23
+ optionalPermissions(): Promise<ManifestOptionalPermissions>;
24
+ hostPermissions(): Promise<ManifestHostPermissions>;
25
+ optionalHostPermissions(): Promise<ManifestHostPermissions>;
26
+ clear(): this;
27
+ protected finder(): Promise<OverrideFinder | undefined>;
28
+ protected select(): Promise<OverrideFinder | undefined>;
29
+ protected describeConflict(finders: OverrideFinder[]): Promise<string>;
30
+ }
31
+ export {};
@@ -0,0 +1,112 @@
1
+ import path from "path";
2
+ import View from "../view/View.js";
3
+ import { BookmarksFinder, HistoryFinder, NewtabFinder } from "./../../../cli/entrypoint/index.js";
4
+ import { resolveRootPath } from "./../../../cli/resolvers/path.js";
5
+ import { toPosix } from "./../../../cli/utils/path.js";
6
+ import { Browser } from "./../../../types/browser.js";
7
+ import { EntrypointType } from "./../../../types/entrypoint.js";
8
+ const ChromiumBrowsers = [Browser.Chrome, Browser.Chromium, Browser.Edge];
9
+ const OverrideBrowsers = {
10
+ [EntrypointType.Newtab]: /* @__PURE__ */ new Set([...ChromiumBrowsers, Browser.Firefox, Browser.Safari]),
11
+ [EntrypointType.Bookmarks]: new Set(ChromiumBrowsers),
12
+ [EntrypointType.History]: new Set(ChromiumBrowsers)
13
+ };
14
+ class Override {
15
+ constructor(config) {
16
+ this.config = config;
17
+ this.finders = {
18
+ [EntrypointType.Newtab]: new NewtabFinder(config),
19
+ [EntrypointType.Bookmarks]: new BookmarksFinder(config),
20
+ [EntrypointType.History]: new HistoryFinder(config)
21
+ };
22
+ }
23
+ config;
24
+ finders;
25
+ _finder;
26
+ files(type) {
27
+ return this.finders[type].files();
28
+ }
29
+ async view() {
30
+ const finder = await this.finder();
31
+ return finder && new View(this.config, finder);
32
+ }
33
+ async manifest() {
34
+ const finder = await this.finder();
35
+ if (!finder) {
36
+ return;
37
+ }
38
+ const [view] = (await finder.views()).values();
39
+ return { page: `${finder.type()}`, path: view.filename };
40
+ }
41
+ async csp() {
42
+ const finder = await this.finder();
43
+ return finder ? finder.csp() : [];
44
+ }
45
+ // Permissions of the override that reaches the build; skipped and losing candidates contribute nothing.
46
+ async permissions() {
47
+ var _a;
48
+ return await ((_a = await this.finder()) == null ? void 0 : _a.permissions()) ?? /* @__PURE__ */ new Set();
49
+ }
50
+ async optionalPermissions() {
51
+ var _a;
52
+ return await ((_a = await this.finder()) == null ? void 0 : _a.optionalPermissions()) ?? /* @__PURE__ */ new Set();
53
+ }
54
+ async hostPermissions() {
55
+ var _a;
56
+ return await ((_a = await this.finder()) == null ? void 0 : _a.hostPermissions()) ?? /* @__PURE__ */ new Set();
57
+ }
58
+ async optionalHostPermissions() {
59
+ var _a;
60
+ return await ((_a = await this.finder()) == null ? void 0 : _a.optionalHostPermissions()) ?? /* @__PURE__ */ new Set();
61
+ }
62
+ clear() {
63
+ this._finder = void 0;
64
+ for (const finder of Object.values(this.finders)) {
65
+ finder.clear();
66
+ }
67
+ return this;
68
+ }
69
+ finder() {
70
+ return this._finder ?? (this._finder = this.select());
71
+ }
72
+ async select() {
73
+ const { browser, debug } = this.config;
74
+ const finders = [];
75
+ for (const finder of Object.values(this.finders)) {
76
+ if (await finder.empty()) {
77
+ continue;
78
+ }
79
+ if (!OverrideBrowsers[finder.type()].has(browser)) {
80
+ if (debug) {
81
+ console.warn(`The "${finder.type()}" override is not supported by ${browser} and was skipped`);
82
+ }
83
+ continue;
84
+ }
85
+ finders.push(finder);
86
+ }
87
+ if (finders.length > 1) {
88
+ throw new Error(await this.describeConflict(finders));
89
+ }
90
+ return finders[0];
91
+ }
92
+ async describeConflict(finders) {
93
+ const { app, browser } = this.config;
94
+ const rootDir = resolveRootPath(this.config);
95
+ const entries = await Promise.all(
96
+ finders.map(async (finder) => {
97
+ const [{ file }] = (await finder.views()).values();
98
+ const location = file.external ? file.import : toPosix(path.relative(rootDir, file.file));
99
+ return ` - ${finder.type()}: ${location}`;
100
+ })
101
+ );
102
+ return [
103
+ `An extension can override only one browser page, but app "${app}" enables ${finders.length} override entrypoints for ${browser}:`,
104
+ ...entries,
105
+ `Keep a single override or limit the others with "includeApp", "excludeApp", "includeBrowser" or "excludeBrowser".`
106
+ ].join("\n");
107
+ }
108
+ }
109
+ export {
110
+ Override as default
111
+ };
112
+ //# sourceMappingURL=Override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/override/Override.ts"],"sourcesContent":["import path from \"path\";\n\nimport View from \"../view/View\";\n\nimport {AbstractOverrideFinder, BookmarksFinder, HistoryFinder, NewtabFinder} from \"@cli/entrypoint/index.js\";\nimport {resolveRootPath} from \"@cli/resolvers/path\";\nimport {toPosix} from \"@cli/utils/path\";\n\nimport {Browser} from \"@typing/browser\";\nimport {EntrypointFile, EntrypointType} from \"@typing/entrypoint\";\nimport type {ReadonlyConfig} from \"@typing/config\";\nimport type {CspConfig} from \"@typing/csp\";\nimport type {\n ManifestHostPermissions,\n ManifestOptionalPermissions,\n ManifestOverride,\n ManifestPermissions,\n} from \"@typing/manifest\";\nimport type {OverrideEntrypointOptions, OverrideEntrypointType} from \"@typing/override\";\n\ntype OverrideFinder = AbstractOverrideFinder<OverrideEntrypointOptions>;\n\nconst ChromiumBrowsers: readonly Browser[] = [Browser.Chrome, Browser.Chromium, Browser.Edge];\n\n/** Browsers that honour each overridden page. Other targets are built without that entrypoint. */\nconst OverrideBrowsers: Readonly<Record<OverrideEntrypointType, ReadonlySet<Browser>>> = {\n [EntrypointType.Newtab]: new Set([...ChromiumBrowsers, Browser.Firefox, Browser.Safari]),\n [EntrypointType.Bookmarks]: new Set(ChromiumBrowsers),\n [EntrypointType.History]: new Set(ChromiumBrowsers),\n};\n\n/**\n * Owns the rule shared by the override entrypoints: a build carries at most one of them.\n * Pages the target browser does not support are skipped first, then the remaining ones must not compete.\n */\nexport default class Override {\n protected readonly finders: Readonly<Record<OverrideEntrypointType, OverrideFinder>>;\n\n protected _finder?: Promise<OverrideFinder | undefined>;\n\n public constructor(protected readonly config: ReadonlyConfig) {\n this.finders = {\n [EntrypointType.Newtab]: new NewtabFinder(config),\n [EntrypointType.Bookmarks]: new BookmarksFinder(config),\n [EntrypointType.History]: new HistoryFinder(config),\n };\n }\n\n public files(type: OverrideEntrypointType): Promise<Set<EntrypointFile>> {\n return this.finders[type].files();\n }\n\n public async view(): Promise<View<OverrideEntrypointOptions> | undefined> {\n const finder = await this.finder();\n\n return finder && new View(this.config, finder);\n }\n\n public async manifest(): Promise<ManifestOverride | undefined> {\n const finder = await this.finder();\n\n if (!finder) {\n return;\n }\n\n const [view] = (await finder.views()).values();\n\n return {page: `${finder.type()}` as const, path: view.filename};\n }\n\n public async csp(): Promise<CspConfig[]> {\n const finder = await this.finder();\n\n return finder ? finder.csp() : [];\n }\n\n // Permissions of the override that reaches the build; skipped and losing candidates contribute nothing.\n public async permissions(): Promise<ManifestPermissions> {\n return (await (await this.finder())?.permissions()) ?? new Set();\n }\n\n public async optionalPermissions(): Promise<ManifestOptionalPermissions> {\n return (await (await this.finder())?.optionalPermissions()) ?? new Set();\n }\n\n public async hostPermissions(): Promise<ManifestHostPermissions> {\n return (await (await this.finder())?.hostPermissions()) ?? new Set();\n }\n\n public async optionalHostPermissions(): Promise<ManifestHostPermissions> {\n return (await (await this.finder())?.optionalHostPermissions()) ?? new Set();\n }\n\n public clear(): this {\n this._finder = undefined;\n\n for (const finder of Object.values(this.finders)) {\n finder.clear();\n }\n\n return this;\n }\n\n protected finder(): Promise<OverrideFinder | undefined> {\n return (this._finder ??= this.select());\n }\n\n protected async select(): Promise<OverrideFinder | undefined> {\n const {browser, debug} = this.config;\n\n const finders: OverrideFinder[] = [];\n\n for (const finder of Object.values(this.finders)) {\n if (await finder.empty()) {\n continue;\n }\n\n if (!OverrideBrowsers[finder.type()].has(browser)) {\n if (debug) {\n console.warn(`The \"${finder.type()}\" override is not supported by ${browser} and was skipped`);\n }\n\n continue;\n }\n\n finders.push(finder);\n }\n\n if (finders.length > 1) {\n throw new Error(await this.describeConflict(finders));\n }\n\n return finders[0];\n }\n\n protected async describeConflict(finders: OverrideFinder[]): Promise<string> {\n const {app, browser} = this.config;\n\n const rootDir = resolveRootPath(this.config);\n\n const entries = await Promise.all(\n finders.map(async finder => {\n const [{file}] = (await finder.views()).values();\n\n const location = file.external ? file.import : toPosix(path.relative(rootDir, file.file));\n\n return ` - ${finder.type()}: ${location}`;\n })\n );\n\n return [\n `An extension can override only one browser page, but app \"${app}\" enables ${finders.length} override entrypoints for ${browser}:`,\n ...entries,\n `Keep a single override or limit the others with \"includeApp\", \"excludeApp\", \"includeBrowser\" or \"excludeBrowser\".`,\n ].join(\"\\n\");\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../../main/plugin.js").PluginDefinition<[]>;
2
+ export default _default;