adnbn 0.13.0 → 0.14.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 (291) hide show
  1. package/dist/cli/builders/manifest/ManifestBase.d.ts +4 -1
  2. package/dist/cli/builders/manifest/ManifestBase.js +14 -0
  3. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  4. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
  5. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
  6. package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
  7. package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
  8. package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
  9. package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
  10. package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
  11. package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
  12. package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
  13. package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
  14. package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
  15. package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
  16. package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
  17. package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
  18. package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
  19. package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
  20. package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
  21. package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
  22. package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
  23. package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
  24. package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
  25. package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
  26. package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
  27. package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
  28. package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
  29. package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
  30. package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
  31. package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
  32. package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
  33. package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +2 -3
  34. package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
  35. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
  36. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
  37. package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
  38. package/dist/cli/entrypoint/finder/index.d.ts +5 -0
  39. package/dist/cli/entrypoint/finder/index.js +50 -40
  40. package/dist/cli/entrypoint/finder/index.js.map +1 -1
  41. package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
  42. package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
  43. package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
  44. package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
  45. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
  46. package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
  47. package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
  48. package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
  49. package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
  50. package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
  51. package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
  52. package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
  53. package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
  54. package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
  55. package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
  56. package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
  57. package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
  58. package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
  59. package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
  60. package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
  61. package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
  62. package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
  63. package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
  64. package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
  65. package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
  66. package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
  67. package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
  68. package/dist/cli/entrypoint/parser/index.d.ts +4 -0
  69. package/dist/cli/entrypoint/parser/index.js +28 -20
  70. package/dist/cli/entrypoint/parser/index.js.map +1 -1
  71. package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
  72. package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
  73. package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
  74. package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
  75. package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
  76. package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
  77. package/dist/cli/plugins/index.d.ts +1 -0
  78. package/dist/cli/plugins/index.js +22 -20
  79. package/dist/cli/plugins/index.js.map +1 -1
  80. package/dist/cli/plugins/options/index.js +1 -1
  81. package/dist/cli/plugins/options/index.js.map +1 -1
  82. package/dist/cli/plugins/override/Override.d.ts +31 -0
  83. package/dist/cli/plugins/override/Override.js +112 -0
  84. package/dist/cli/plugins/override/Override.js.map +1 -0
  85. package/dist/cli/plugins/override/index.d.ts +2 -0
  86. package/dist/cli/plugins/override/index.js +48 -0
  87. package/dist/cli/plugins/override/index.js.map +1 -0
  88. package/dist/cli/plugins/popup/index.js +1 -1
  89. package/dist/cli/plugins/popup/index.js.map +1 -1
  90. package/dist/cli/plugins/sidebar/index.js +1 -2
  91. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  92. package/dist/cli/plugins/view/View.d.ts +1 -1
  93. package/dist/cli/plugins/view/View.js +2 -10
  94. package/dist/cli/plugins/view/View.js.map +1 -1
  95. package/dist/cli/plugins/view/index.js +10 -1
  96. package/dist/cli/plugins/view/index.js.map +1 -1
  97. package/dist/cli/resolvers/config.js +2 -0
  98. package/dist/cli/resolvers/config.js.map +1 -1
  99. package/dist/cli/virtual/index.js +14 -17
  100. package/dist/cli/virtual/virtual.d.ts +7 -127
  101. package/dist/entry/background/Builder.js +1 -1
  102. package/dist/entry/background/Builder.js.map +1 -1
  103. package/dist/entry/background/index.d.ts +1 -1
  104. package/dist/entry/background/index.js +3 -2
  105. package/dist/entry/background/index.js.map +1 -1
  106. package/dist/entry/background/resolvers/definition.d.ts +5 -1
  107. package/dist/entry/background/resolvers/definition.js +15 -4
  108. package/dist/entry/background/resolvers/definition.js.map +1 -1
  109. package/dist/entry/command/Builder.js +1 -1
  110. package/dist/entry/command/Builder.js.map +1 -1
  111. package/dist/entry/command/index.d.ts +1 -1
  112. package/dist/entry/command/index.js +3 -2
  113. package/dist/entry/command/index.js.map +1 -1
  114. package/dist/entry/command/resolvers/definition.d.ts +6 -2
  115. package/dist/entry/command/resolvers/definition.js +14 -4
  116. package/dist/entry/command/resolvers/definition.js.map +1 -1
  117. package/dist/entry/content/adapters/react/Builder.js +4 -2
  118. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  119. package/dist/entry/content/adapters/react/Node.js +11 -6
  120. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  121. package/dist/entry/content/adapters/react/definition.js +3 -2
  122. package/dist/entry/content/adapters/react/definition.js.map +1 -1
  123. package/dist/entry/content/adapters/vanilla/Builder.js +2 -2
  124. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  125. package/dist/entry/content/adapters/vanilla/Node.js +3 -5
  126. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  127. package/dist/entry/content/adapters/vanilla/definition.js +2 -2
  128. package/dist/entry/content/adapters/vanilla/definition.js.map +1 -1
  129. package/dist/entry/content/lifecycle/Builder.js +5 -9
  130. package/dist/entry/content/lifecycle/Builder.js.map +1 -1
  131. package/dist/entry/core/react.d.ts +6 -0
  132. package/dist/entry/core/react.js +16 -0
  133. package/dist/entry/core/react.js.map +1 -0
  134. package/dist/entry/core/render.d.ts +5 -0
  135. package/dist/entry/core/render.js +16 -0
  136. package/dist/entry/core/render.js.map +1 -0
  137. package/dist/entry/offscreen/Builder.d.ts +6 -7
  138. package/dist/entry/offscreen/Builder.js +12 -13
  139. package/dist/entry/offscreen/Builder.js.map +1 -1
  140. package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
  141. package/dist/entry/offscreen/TransportBuilder.js +4 -3
  142. package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
  143. package/dist/entry/offscreen/index.d.ts +5 -2
  144. package/dist/entry/offscreen/index.js +8 -2
  145. package/dist/entry/offscreen/index.js.map +1 -1
  146. package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
  147. package/dist/entry/offscreen/resolvers/definition.js +8 -0
  148. package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
  149. package/dist/entry/relay/resolvers/definition.d.ts +1 -1
  150. package/dist/entry/relay/resolvers/definition.js +2 -10
  151. package/dist/entry/relay/resolvers/definition.js.map +1 -1
  152. package/dist/entry/sandbox/Builder.d.ts +6 -7
  153. package/dist/entry/sandbox/Builder.js +8 -12
  154. package/dist/entry/sandbox/Builder.js.map +1 -1
  155. package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
  156. package/dist/entry/sandbox/TransportBuilder.js +4 -3
  157. package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
  158. package/dist/entry/sandbox/index.d.ts +7 -2
  159. package/dist/entry/sandbox/index.js +10 -4
  160. package/dist/entry/sandbox/index.js.map +1 -1
  161. package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
  162. package/dist/entry/sandbox/resolvers/definition.js +8 -0
  163. package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
  164. package/dist/entry/service/index.d.ts +1 -0
  165. package/dist/entry/service/index.js +3 -1
  166. package/dist/entry/service/index.js.map +1 -1
  167. package/dist/entry/service/resolvers/definition.d.ts +3 -0
  168. package/dist/entry/service/resolvers/definition.js +8 -0
  169. package/dist/entry/service/resolvers/definition.js.map +1 -0
  170. package/dist/entry/transport/AbstractBuilder.js +1 -1
  171. package/dist/entry/transport/AbstractBuilder.js.map +1 -1
  172. package/dist/entry/transport/resolvers/definition.d.ts +7 -5
  173. package/dist/entry/transport/resolvers/definition.js +15 -4
  174. package/dist/entry/transport/resolvers/definition.js.map +1 -1
  175. package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
  176. package/dist/entry/view/Builder.js +62 -0
  177. package/dist/entry/view/Builder.js.map +1 -0
  178. package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
  179. package/dist/entry/view/adapters/react/Builder.js +20 -23
  180. package/dist/entry/view/adapters/react/Builder.js.map +1 -1
  181. package/dist/entry/view/adapters/react/definition.d.ts +2 -0
  182. package/dist/entry/view/adapters/react/definition.js +13 -0
  183. package/dist/entry/view/adapters/react/definition.js.map +1 -0
  184. package/dist/entry/view/adapters/react/index.d.ts +2 -1
  185. package/dist/entry/view/adapters/react/index.js +3 -1
  186. package/dist/entry/view/adapters/react/index.js.map +1 -1
  187. package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
  188. package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
  189. package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
  190. package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
  191. package/dist/entry/view/adapters/vanilla/definition.js +9 -0
  192. package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
  193. package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
  194. package/dist/entry/view/adapters/vanilla/index.js +3 -1
  195. package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
  196. package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
  197. package/dist/entry/view/resolvers/container.js.map +1 -0
  198. package/dist/entry/view/resolvers/definition.d.ts +3 -0
  199. package/dist/entry/view/resolvers/definition.js +18 -0
  200. package/dist/entry/view/resolvers/definition.js.map +1 -0
  201. package/dist/main/index.d.ts +2 -0
  202. package/dist/main/index.js +2 -0
  203. package/dist/main/index.js.map +1 -1
  204. package/dist/main/override.d.ts +5 -0
  205. package/dist/main/override.js +15 -0
  206. package/dist/main/override.js.map +1 -0
  207. package/dist/main/permissions.d.ts +1 -0
  208. package/dist/main/permissions.js +1 -0
  209. package/dist/main/view.d.ts +1 -1
  210. package/dist/types/background.d.ts +2 -8
  211. package/dist/types/background.js.map +1 -1
  212. package/dist/types/entrypoint.d.ts +5 -1
  213. package/dist/types/entrypoint.js +3 -0
  214. package/dist/types/entrypoint.js.map +1 -1
  215. package/dist/types/manifest.d.ts +20 -2
  216. package/dist/types/manifest.js.map +1 -1
  217. package/dist/types/offscreen.d.ts +2 -2
  218. package/dist/types/offscreen.js.map +1 -1
  219. package/dist/types/options.d.ts +3 -2
  220. package/dist/types/override.d.ts +22 -0
  221. package/dist/types/override.js +1 -0
  222. package/dist/types/override.js.map +1 -0
  223. package/dist/types/page.d.ts +1 -1
  224. package/dist/types/permissions.d.ts +39 -0
  225. package/dist/types/permissions.js +1 -0
  226. package/dist/types/permissions.js.map +1 -0
  227. package/dist/types/plugin.d.ts +4 -1
  228. package/dist/types/popup.d.ts +3 -2
  229. package/dist/types/sandbox.d.ts +2 -2
  230. package/dist/types/sandbox.js.map +1 -1
  231. package/dist/types/sidebar.d.ts +3 -2
  232. package/dist/types/sidebar.js.map +1 -1
  233. package/dist/types/view/adapters/index.d.ts +2 -0
  234. package/dist/types/view/adapters/index.js +1 -0
  235. package/dist/types/view/adapters/index.js.map +1 -0
  236. package/dist/types/view/adapters/react.d.ts +4 -0
  237. package/dist/types/view/adapters/react.js +1 -0
  238. package/dist/types/view/adapters/react.js.map +1 -0
  239. package/dist/types/view/adapters/vanilla.d.ts +1 -0
  240. package/dist/types/view/adapters/vanilla.js +1 -0
  241. package/dist/types/view/adapters/vanilla.js.map +1 -0
  242. package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
  243. package/dist/types/view/common.js +1 -0
  244. package/dist/types/view/common.js.map +1 -0
  245. package/dist/types/view/definition.d.ts +15 -0
  246. package/dist/types/view/definition.js +1 -0
  247. package/dist/types/view/definition.js.map +1 -0
  248. package/dist/types/view/index.d.ts +4 -0
  249. package/dist/types/view/index.js +1 -0
  250. package/dist/types/view/index.js.map +1 -0
  251. package/dist/types/view/render.d.ts +7 -0
  252. package/dist/types/view/render.js +1 -0
  253. package/dist/types/view/render.js.map +1 -0
  254. package/package.json +1 -1
  255. package/dist/entry/background/resolvers/index.d.ts +0 -1
  256. package/dist/entry/background/resolvers/index.js +0 -2
  257. package/dist/entry/background/resolvers/index.js.map +0 -1
  258. package/dist/entry/command/resolvers/index.d.ts +0 -1
  259. package/dist/entry/command/resolvers/index.js +0 -2
  260. package/dist/entry/command/resolvers/index.js.map +0 -1
  261. package/dist/entry/content/adapters/vanilla/utils.d.ts +0 -1
  262. package/dist/entry/content/adapters/vanilla/utils.js +0 -7
  263. package/dist/entry/content/adapters/vanilla/utils.js.map +0 -1
  264. package/dist/entry/content/resolvers/index.d.ts +0 -6
  265. package/dist/entry/content/resolvers/index.js +0 -7
  266. package/dist/entry/content/resolvers/index.js.map +0 -1
  267. package/dist/entry/transport/index.d.ts +0 -1
  268. package/dist/entry/transport/index.js +0 -2
  269. package/dist/entry/transport/index.js.map +0 -1
  270. package/dist/entry/transport/resolvers/index.d.ts +0 -1
  271. package/dist/entry/transport/resolvers/index.js +0 -2
  272. package/dist/entry/transport/resolvers/index.js.map +0 -1
  273. package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
  274. package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
  275. package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
  276. package/dist/entry/view/core/Builder.js +0 -35
  277. package/dist/entry/view/core/Builder.js.map +0 -1
  278. package/dist/entry/view/core/resolvers/container.js.map +0 -1
  279. package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
  280. package/dist/entry/view/core/resolvers/definition.js +0 -12
  281. package/dist/entry/view/core/resolvers/definition.js.map +0 -1
  282. package/dist/entry/view/core/resolvers/render.d.ts +0 -3
  283. package/dist/entry/view/core/resolvers/render.js +0 -18
  284. package/dist/entry/view/core/resolvers/render.js.map +0 -1
  285. package/dist/entry/view/index.d.ts +0 -1
  286. package/dist/entry/view/index.js +0 -2
  287. package/dist/entry/view/index.js.map +0 -1
  288. package/dist/types/view.js +0 -1
  289. /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
  290. /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
  291. /package/dist/{types/view.js.map → main/permissions.js.map} +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":"AAAA,SAAQ,SAAQ;AAEhB,MAAM,uBAAuB,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;AAEjD,MAAM,6BAA6B,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtG,MAAM,4BAA4B,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC;AAE9F,MAAM,kCAAkC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC;AAEpG,MAAM,0BAA0B,EAAE,OAAO;AAAA,EACrC,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,SAAS,0BAA0B,SAAS;AAAA,EAC5C,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,EAAE,OAAO,GAAG,yBAAyB,CAAC,EAAE,SAAS;AAAA,EAC7E,eAAe,EAAE,QAAQ,EAAE,SAAS;AAAA,EACpC,eAAe,gCAAgC,SAAS;AAAA,EACxD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,EAAE,OAAO,GAAG,+BAA+B,CAAC,EAAE,SAAS;AAC7F,CAAC;AAED,MAAM,2BAA2B,EAAE,OAAO;AAAA,EACtC,aAAa,EAAE,OAAO;AAAA,EACtB,cAAc,EAAE,OAAO;AAC3B,CAAC;AAED,MAAM,2BAA2B,wBAAwB,OAAO;AAAA,EAC5D,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,aAAa,EAAE,QAAQ,EAAE,SAAS;AAAA,EAClC,YAAY,EAAE,OAAO,EAAE,SAAS;AACpC,CAAC;AAED,MAAM,2BAA2B,yBAAyB,OAAO;AAAA,EAC7D,MAAM,EAAE,OAAO;AAAA,EACf,YAAY,2BAA2B,SAAS;AACpD,CAAC;AAED,MAAM,6BAA6B,yBAAyB,OAAO;AAAA,EAC/D,MAAM,EAAE,OAAO;AAAA,EACf,YAAY,2BAA2B,SAAS;AAAA,EAChD,UAAU,yBAAyB,SAAS;AAChD,CAAC;AAED,MAAM,gCAAgC,yBAAyB,OAAO;AAAA,EAClE,MAAM,qBAAqB,SAAS;AACxC,CAAC;AAED,MAAM,kCAAkC,2BAA2B,OAAO;AAAA,EACtE,MAAM,qBAAqB,SAAS;AACxC,CAAC;AAED,MAAM,2BAA2B,yBAAyB,OAAO;AAAA,EAC7D,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,YAAY;AAChB,CAAC;AAQM,MAAM,oBAAoB,wBAAwB,OAAO;AAAA,EAC5D,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,kBAAkB,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvC,cAAc,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EAClE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS;AAAA,EACnE,MAAM,EACD,MAAM;AAAA,IACH,EAAE,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,+BAA+B,+BAA+B,CAAC,CAAC;AAAA,EACjG,CAAC,EACA,SAAS;AAAA,EACd,OAAO,EACF,MAAM,CAAC,EAAE,OAAO,GAAG,0BAA0B,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACtG,SAAS;AAAA,EACd,SAAS,EACJ,MAAM,CAAC,EAAE,OAAO,GAAG,4BAA4B,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAC1G,SAAS;AAAA,EACd,OAAO,EACF,MAAM,CAAC,EAAE,OAAO,GAAG,0BAA0B,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACtG,SAAS;AAClB,CAAC;AAEM,MAAM,iBAAoC,OAAO,KAAK,kBAAkB,KAAK;","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":[]}
@@ -12,6 +12,7 @@ export { default as pluginLocale } from "./locale/index.js";
12
12
  export { default as pluginMeta } from "./meta/index.js";
13
13
  export { default as pluginOffscreen } from "./offscreen/index.js";
14
14
  export { default as pluginOptions } from "./options/index.js";
15
+ export { default as pluginOverride } from "./override/index.js";
15
16
  export { default as pluginPage } from "./page/index.js";
16
17
  export { default as pluginPopup } from "./popup/index.js";
17
18
  export { default as pluginPublic } from "./public.js";
@@ -12,16 +12,17 @@ import { default as default12 } from "./locale/index.js";
12
12
  import { default as default13 } from "./meta/index.js";
13
13
  import { default as default14 } from "./offscreen/index.js";
14
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";
15
+ import { default as default16 } from "./override/index.js";
16
+ import { default as default17 } from "./page/index.js";
17
+ import { default as default18 } from "./popup/index.js";
18
+ import { default as default19 } from "./public.js";
19
+ import { default as default20 } from "./sandbox/index.js";
20
+ import { default as default21 } from "./sidebar/index.js";
21
+ import { default as default22, TypescriptConfig, FileBuilder, VendorDeclaration } from "./typescript/index.js";
22
+ import { default as default23 } from "./react.js";
23
+ import { default as default24 } from "./style/index.js";
24
+ import { default as default25 } from "./view/index.js";
25
+ import { default as default26 } from "./version/index.js";
25
26
  export {
26
27
  FileBuilder,
27
28
  TypescriptConfig,
@@ -40,15 +41,16 @@ export {
40
41
  default9 as pluginOptimization,
41
42
  default15 as pluginOptions,
42
43
  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
44
+ default16 as pluginOverride,
45
+ default17 as pluginPage,
46
+ default18 as pluginPopup,
47
+ default19 as pluginPublic,
48
+ default23 as pluginReact,
49
+ default20 as pluginSandbox,
50
+ default21 as pluginSidebar,
51
+ default24 as pluginStyle,
52
+ default22 as pluginTypescript,
53
+ default26 as pluginVersion,
54
+ default25 as pluginView
53
55
  };
54
56
  //# 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 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,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,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"]}
@@ -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;
@@ -0,0 +1,48 @@
1
+ import { HtmlRspackPlugin } from "@rspack/core";
2
+ import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
3
+ import Override from "./Override.js";
4
+ import { definePlugin } from "./../../../main/plugin.js";
5
+ import { EntrypointPlugin } from "./../../../cli/bundler/index.js";
6
+ import { virtualViewModule } from "./../../../cli/virtual/index.js";
7
+ import { Command } from "./../../../types/app.js";
8
+ import { EntrypointType } from "./../../../types/entrypoint.js";
9
+ var override_default = definePlugin(() => {
10
+ let override;
11
+ return {
12
+ name: "adnbn:override",
13
+ startup: ({ config }) => {
14
+ override = new Override(config);
15
+ },
16
+ newtab: () => override.files(EntrypointType.Newtab),
17
+ bookmarks: () => override.files(EntrypointType.Bookmarks),
18
+ history: () => override.files(EntrypointType.History),
19
+ bundler: async ({ config }) => {
20
+ const view = await override.view();
21
+ if (!view) {
22
+ if (config.debug) {
23
+ console.info("Override entry not found");
24
+ }
25
+ return {};
26
+ }
27
+ const plugin = EntrypointPlugin.from(await view.entries()).virtual(virtualViewModule);
28
+ if (config.command === Command.Watch) {
29
+ plugin.watch(async () => {
30
+ var _a;
31
+ return ((_a = await override.clear().view()) == null ? void 0 : _a.entries()) ?? /* @__PURE__ */ new Map();
32
+ });
33
+ }
34
+ const htmlPlugins = (await view.html()).map((options) => new HtmlRspackPlugin(options));
35
+ const tagsPlugins = (await view.tags()).map((options) => new HtmlRspackTagsPlugin(options));
36
+ return {
37
+ plugins: [plugin, ...htmlPlugins, ...tagsPlugins]
38
+ };
39
+ },
40
+ manifest: async ({ manifest }) => {
41
+ manifest.setOverride(await override.manifest()).appendCsp(await override.csp()).appendPermissions(await override.permissions()).appendOptionalPermissions(await override.optionalPermissions()).appendHostPermissions(await override.hostPermissions()).appendOptionalHostPermissions(await override.optionalHostPermissions());
42
+ }
43
+ };
44
+ });
45
+ export {
46
+ override_default as default
47
+ };
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/override/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport Override from \"./Override\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport {Command} from \"@typing/app\";\nimport {EntrypointType} from \"@typing/entrypoint\";\n\nexport default definePlugin(() => {\n let override: Override;\n\n return {\n name: \"adnbn:override\",\n startup: ({config}) => {\n override = new Override(config);\n },\n newtab: () => override.files(EntrypointType.Newtab),\n bookmarks: () => override.files(EntrypointType.Bookmarks),\n history: () => override.files(EntrypointType.History),\n bundler: async ({config}) => {\n const view = await override.view();\n\n if (!view) {\n if (config.debug) {\n console.info(\"Override entry not found\");\n }\n\n return {};\n }\n\n const plugin = EntrypointPlugin.from(await view.entries()).virtual(virtualViewModule);\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => (await override.clear().view())?.entries() ?? new Map());\n }\n\n const htmlPlugins = (await view.html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await 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 .setOverride(await override.manifest())\n .appendCsp(await override.csp())\n .appendPermissions(await override.permissions())\n .appendOptionalPermissions(await override.optionalPermissions())\n .appendHostPermissions(await override.hostPermissions())\n .appendOptionalHostPermissions(await override.optionalHostPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAuB;AAC9D,OAAO,0BAA0B;AAEjC,OAAO,cAAc;AAErB,SAAQ,oBAAmB;AAC3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,SAAQ,eAAc;AACtB,SAAQ,sBAAqB;AAE7B,IAAO,mBAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,iBAAW,IAAI,SAAS,MAAM;AAAA,IAClC;AAAA,IACA,QAAQ,MAAM,SAAS,MAAM,eAAe,MAAM;AAAA,IAClD,WAAW,MAAM,SAAS,MAAM,eAAe,SAAS;AAAA,IACxD,SAAS,MAAM,SAAS,MAAM,eAAe,OAAO;AAAA,IACpD,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,YAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,UAAI,CAAC,MAAM;AACP,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,0BAA0B;AAAA,QAC3C;AAEA,eAAO,CAAC;AAAA,MACZ;AAEA,YAAM,SAAS,iBAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,QAAQ,iBAAiB;AAEpF,UAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,eAAO,MAAM,YAAS;AArCtC;AAqC0C,8BAAM,SAAS,MAAM,EAAE,KAAK,MAA5B,mBAAgC,cAAa,oBAAI,IAAI;AAAA,SAAC;AAAA,MACpF;AAEA,YAAM,eAAe,MAAM,KAAK,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AACpF,YAAM,eAAe,MAAM,KAAK,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAExF,aAAO;AAAA,QACH,SAAS,CAAC,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,eACK,YAAY,MAAM,SAAS,SAAS,CAAC,EACrC,UAAU,MAAM,SAAS,IAAI,CAAC,EAC9B,kBAAkB,MAAM,SAAS,YAAY,CAAC,EAC9C,0BAA0B,MAAM,SAAS,oBAAoB,CAAC,EAC9D,sBAAsB,MAAM,SAAS,gBAAgB,CAAC,EACtD,8BAA8B,MAAM,SAAS,wBAAwB,CAAC;AAAA,IAC/E;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -48,7 +48,7 @@ var popup_default = definePlugin(() => {
48
48
  };
49
49
  },
50
50
  manifest: async ({ manifest }) => {
51
- manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp());
51
+ manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp()).appendPermissions(await popup.permissions()).appendOptionalPermissions(await popup.optionalPermissions()).appendHostPermissions(await popup.hostPermissions()).appendOptionalHostPermissions(await popup.optionalHostPermissions());
52
52
  }
53
53
  };
54
54
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/popup/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Popup, {PopupNameToManifest} from \"./Popup\";\nimport {createPopupModule, PopupModuleName} from \"./popup-module\";\n\nimport {PopupDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let popup: Popup;\n let declaration: PopupDeclaration;\n\n return {\n name: \"adnbn:popup\",\n startup: ({config}) => {\n popup = new Popup(config);\n declaration = new PopupDeclaration(config);\n },\n popup: () => popup.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await popup.getAlias()).build();\n\n const plugins: Plugins = [];\n\n let alias: PopupNameToManifest = {};\n\n if (await popup.empty()) {\n if (config.debug) {\n console.info(\"Popup entries not found\");\n }\n } else {\n alias = await popup.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await popup.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await popup.clear().getAlias()).build();\n\n return popup.view().entries();\n });\n }\n\n const htmlPlugins = (await popup.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await popup.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [PopupModuleName]: createPopupModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest}) => {\n manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,WAAkC;AACzC,SAAQ,mBAAmB,uBAAsB;AAEjD,SAAQ,wBAAuB;AAE/B,SAAQ,eAAc;AAEtB,IAAO,gBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,cAAQ,IAAI,MAAM,MAAM;AACxB,oBAAc,IAAI,iBAAiB,MAAM;AAAA,IAC7C;AAAA,IACA,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM;AAEnD,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA6B,CAAC;AAElC,UAAI,MAAM,MAAM,MAAM,GAAG;AACrB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAAA,MACJ,OAAO;AACH,gBAAQ,MAAM,MAAM,gBAAgB;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC,EAC5D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE3D,mBAAO,MAAM,KAAK,EAAE,QAAQ;AAAA,UAChC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC5F,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEhG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,eAAe,GAAG,kBAAkB,KAAK;AAAA,UAC9C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,eAAS,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,UAAU,MAAM,MAAM,IAAI,CAAC;AAAA,IACzE;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/popup/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Popup, {PopupNameToManifest} from \"./Popup\";\nimport {createPopupModule, PopupModuleName} from \"./popup-module\";\n\nimport {PopupDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let popup: Popup;\n let declaration: PopupDeclaration;\n\n return {\n name: \"adnbn:popup\",\n startup: ({config}) => {\n popup = new Popup(config);\n declaration = new PopupDeclaration(config);\n },\n popup: () => popup.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await popup.getAlias()).build();\n\n const plugins: Plugins = [];\n\n let alias: PopupNameToManifest = {};\n\n if (await popup.empty()) {\n if (config.debug) {\n console.info(\"Popup entries not found\");\n }\n } else {\n alias = await popup.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await popup.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await popup.clear().getAlias()).build();\n\n return popup.view().entries();\n });\n }\n\n const htmlPlugins = (await popup.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await popup.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [PopupModuleName]: createPopupModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest}) => {\n // Every built popup can be switched to at runtime, so all of them contribute their permissions.\n manifest\n .setPopup(await popup.manifest())\n .appendCsp(await popup.csp())\n .appendPermissions(await popup.permissions())\n .appendOptionalPermissions(await popup.optionalPermissions())\n .appendHostPermissions(await popup.hostPermissions())\n .appendOptionalHostPermissions(await popup.optionalHostPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,WAAkC;AACzC,SAAQ,mBAAmB,uBAAsB;AAEjD,SAAQ,wBAAuB;AAE/B,SAAQ,eAAc;AAEtB,IAAO,gBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,cAAQ,IAAI,MAAM,MAAM;AACxB,oBAAc,IAAI,iBAAiB,MAAM;AAAA,IAC7C;AAAA,IACA,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM;AAEnD,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA6B,CAAC;AAElC,UAAI,MAAM,MAAM,MAAM,GAAG;AACrB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAAA,MACJ,OAAO;AACH,gBAAQ,MAAM,MAAM,gBAAgB;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC,EAC5D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE3D,mBAAO,MAAM,KAAK,EAAE,QAAQ;AAAA,UAChC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC5F,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEhG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,eAAe,GAAG,kBAAkB,KAAK;AAAA,UAC9C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAE5B,eACK,SAAS,MAAM,MAAM,SAAS,CAAC,EAC/B,UAAU,MAAM,MAAM,IAAI,CAAC,EAC3B,kBAAkB,MAAM,MAAM,YAAY,CAAC,EAC3C,0BAA0B,MAAM,MAAM,oBAAoB,CAAC,EAC3D,sBAAsB,MAAM,MAAM,gBAAgB,CAAC,EACnD,8BAA8B,MAAM,MAAM,wBAAwB,CAAC;AAAA,IAC5E;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -62,8 +62,7 @@ var sidebar_default = definePlugin(() => {
62
62
  if (!sidebarAvailable) {
63
63
  return;
64
64
  }
65
- manifest.setSidebar(await sidebar.manifest());
66
- manifest.appendCsp(await sidebar.csp());
65
+ manifest.setSidebar(await sidebar.manifest()).appendCsp(await sidebar.csp()).appendPermissions(await sidebar.permissions()).appendOptionalPermissions(await sidebar.optionalPermissions()).appendHostPermissions(await sidebar.hostPermissions()).appendOptionalHostPermissions(await sidebar.optionalHostPermissions());
67
66
  if (await sidebar.exists() && !SidebarAlternativeBrowsers.has(config.browser)) {
68
67
  manifest.addPermission("sidePanel");
69
68
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\nimport {createSidebarModule, SidebarModuleName} from \"./sidebar-module\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = {};\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [SidebarModuleName]: createSidebarModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n manifest.setSidebar(await sidebar.manifest());\n manifest.appendCsp(await sidebar.csp());\n\n if ((await sidebar.exists()) && !SidebarAlternativeBrowsers.has(config.browser)) {\n manifest.addPermission(\"sidePanel\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,aAAsC;AAC7C,SAAQ,qBAAqB,yBAAwB;AAErD,SAAQ,0BAAyB;AAEjC,SAAQ,eAAc;AACtB,SAAQ,kCAAiC;AAEzC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,MAAI,mBAA4B;AAEhC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAE3C,yBAAmB,2BAA2B,IAAI,OAAO,OAAO,KAAK,OAAO,oBAAoB;AAAA,IACpG;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,QAAQ,SAAS,CAAC,EAAE,MAAM;AAErD,UAAI,QAAiB;AAErB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ,WAAW,CAAC,kBAAkB;AAC1B,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,8CAA8C;AAAA,QAC/D;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA+B,CAAC;AAEpC,UAAI,OAAO;AACP,gBAAQ,MAAM,QAAQ,gBAAgB;AAGtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAC9D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,QAAQ,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE7D,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,iBAAiB,GAAG,oBAAoB,KAAK;AAAA,UAClD,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAEA,eAAS,WAAW,MAAM,QAAQ,SAAS,CAAC;AAC5C,eAAS,UAAU,MAAM,QAAQ,IAAI,CAAC;AAEtC,UAAK,MAAM,QAAQ,OAAO,KAAM,CAAC,2BAA2B,IAAI,OAAO,OAAO,GAAG;AAC7E,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\nimport {createSidebarModule, SidebarModuleName} from \"./sidebar-module\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = {};\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [SidebarModuleName]: createSidebarModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n // Every built sidebar can be switched to at runtime, so all of them contribute their permissions.\n manifest\n .setSidebar(await sidebar.manifest())\n .appendCsp(await sidebar.csp())\n .appendPermissions(await sidebar.permissions())\n .appendOptionalPermissions(await sidebar.optionalPermissions())\n .appendHostPermissions(await sidebar.hostPermissions())\n .appendOptionalHostPermissions(await sidebar.optionalHostPermissions());\n\n if ((await sidebar.exists()) && !SidebarAlternativeBrowsers.has(config.browser)) {\n manifest.addPermission(\"sidePanel\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,aAAsC;AAC7C,SAAQ,qBAAqB,yBAAwB;AAErD,SAAQ,0BAAyB;AAEjC,SAAQ,eAAc;AACtB,SAAQ,kCAAiC;AAEzC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,MAAI,mBAA4B;AAEhC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAE3C,yBAAmB,2BAA2B,IAAI,OAAO,OAAO,KAAK,OAAO,oBAAoB;AAAA,IACpG;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,QAAQ,SAAS,CAAC,EAAE,MAAM;AAErD,UAAI,QAAiB;AAErB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ,WAAW,CAAC,kBAAkB;AAC1B,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,8CAA8C;AAAA,QAC/D;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA+B,CAAC;AAEpC,UAAI,OAAO;AACP,gBAAQ,MAAM,QAAQ,gBAAgB;AAGtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAC9D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,QAAQ,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE7D,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,iBAAiB,GAAG,oBAAoB,KAAK;AAAA,UAClD,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAGA,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;AAE1E,UAAK,MAAM,QAAQ,OAAO,KAAM,CAAC,2BAA2B,IAAI,OAAO,OAAO,GAAG;AAC7E,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -2,7 +2,7 @@ import type { HtmlRspackPluginOptions } from "@rspack/core";
2
2
  import type { Options as HtmlRspackTagsPluginOptions } from "html-rspack-tags-plugin";
3
3
  import { AbstractViewFinder } from "../../entrypoint/index.js";
4
4
  import { EntrypointEntries } from "../../../types/entrypoint.js";
5
- import { ViewEntrypointOptions } from "../../../types/view.js";
5
+ import { ViewEntrypointOptions } from "../../../types/view/index.js";
6
6
  import { ReadonlyConfig } from "../../../types/config.js";
7
7
  export default class<O extends ViewEntrypointOptions> {
8
8
  protected readonly config: ReadonlyConfig;
@@ -1,5 +1,6 @@
1
1
  import path from "path";
2
2
  import _ from "lodash";
3
+ import { HtmlOptionKeys } from "./../../../cli/entrypoint/index.js";
3
4
  class View_default {
4
5
  constructor(config, finder) {
5
6
  this.config = config;
@@ -33,16 +34,7 @@ class View_default {
33
34
  const tags = [];
34
35
  const views = await this.finder.views();
35
36
  for (const { filename, options } of views.values()) {
36
- const {
37
- as,
38
- title,
39
- template,
40
- excludeApp,
41
- includeApp,
42
- excludeBrowser,
43
- includeBrowser,
44
- ...tagOptions
45
- } = options;
37
+ const tagOptions = _.pick(options, HtmlOptionKeys);
46
38
  if (!_.isEmpty(tagOptions)) {
47
39
  tags.push({
48
40
  ...tagOptions,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/view/View.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\n\nimport type {HtmlRspackPluginOptions} from \"@rspack/core\";\nimport type {Options as HtmlRspackTagsPluginOptions} from \"html-rspack-tags-plugin\";\n\nimport {AbstractViewFinder} from \"@cli/entrypoint/index.js\";\n\nimport {EntrypointEntries} from \"@typing/entrypoint\";\nimport {ViewEntrypointOptions} from \"@typing/view\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class<O extends ViewEntrypointOptions> {\n public constructor(\n protected readonly config: ReadonlyConfig,\n protected readonly finder: AbstractViewFinder<O>\n ) {}\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [name, page] of await this.finder.views()) {\n entries.set(name, new Set([page.file]));\n }\n\n return entries;\n }\n\n public async html(): Promise<HtmlRspackPluginOptions[]> {\n const html: HtmlRspackPluginOptions[] = [];\n\n for (const [name, {file, filename, options}] of await this.finder.views()) {\n const {template, title} = options;\n\n html.push({\n filename,\n title: title || _.startCase(this.config.app),\n template: template ? path.resolve(path.dirname(file.file), template) : undefined,\n chunks: [name],\n inject: \"body\",\n minify: true,\n });\n }\n\n return html;\n }\n\n public async tags(): Promise<HtmlRspackTagsPluginOptions[]> {\n const tags: HtmlRspackTagsPluginOptions[] = [];\n\n const views = await this.finder.views();\n\n for (const {filename, options} of views.values()) {\n // prettier-ignore\n const {\n as,\n title,\n template,\n excludeApp,\n includeApp,\n excludeBrowser,\n includeBrowser,\n ...tagOptions\n } = options;\n\n if (!_.isEmpty(tagOptions)) {\n tags.push({\n ...tagOptions,\n files: [filename],\n });\n }\n }\n\n return tags;\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,OAAO,OAAO;AAWd,MAAO,aAA+C;AAAA,EAC3C,YACgB,QACA,QACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,MAAa,UAAsC;AAC/C,UAAM,UAA6B,oBAAI,IAAI;AAE3C,eAAW,CAAC,MAAM,IAAI,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AAClD,cAAQ,IAAI,MAAM,oBAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,IAC1C;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA2C;AACpD,UAAM,OAAkC,CAAC;AAEzC,eAAW,CAAC,MAAM,EAAC,MAAM,UAAU,QAAO,CAAC,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AACvE,YAAM,EAAC,UAAU,MAAK,IAAI;AAE1B,WAAK,KAAK;AAAA,QACN;AAAA,QACA,OAAO,SAAS,EAAE,UAAU,KAAK,OAAO,GAAG;AAAA,QAC3C,UAAU,WAAW,KAAK,QAAQ,KAAK,QAAQ,KAAK,IAAI,GAAG,QAAQ,IAAI;AAAA,QACvE,QAAQ,CAAC,IAAI;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA+C;AACxD,UAAM,OAAsC,CAAC;AAE7C,UAAM,QAAQ,MAAM,KAAK,OAAO,MAAM;AAEtC,eAAW,EAAC,UAAU,QAAO,KAAK,MAAM,OAAO,GAAG;AAE9C,YAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MACP,IAAI;AAEJ,UAAI,CAAC,EAAE,QAAQ,UAAU,GAAG;AACxB,aAAK,KAAK;AAAA,UACN,GAAG;AAAA,UACH,OAAO,CAAC,QAAQ;AAAA,QACpB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/view/View.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\n\nimport type {HtmlRspackPluginOptions} from \"@rspack/core\";\nimport type {Options as HtmlRspackTagsPluginOptions} from \"html-rspack-tags-plugin\";\n\nimport {AbstractViewFinder, HtmlOptionKeys} from \"@cli/entrypoint/index.js\";\n\nimport {EntrypointEntries} from \"@typing/entrypoint\";\nimport {ViewEntrypointOptions} from \"@typing/view\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class<O extends ViewEntrypointOptions> {\n public constructor(\n protected readonly config: ReadonlyConfig,\n protected readonly finder: AbstractViewFinder<O>\n ) {}\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [name, page] of await this.finder.views()) {\n entries.set(name, new Set([page.file]));\n }\n\n return entries;\n }\n\n public async html(): Promise<HtmlRspackPluginOptions[]> {\n const html: HtmlRspackPluginOptions[] = [];\n\n for (const [name, {file, filename, options}] of await this.finder.views()) {\n const {template, title} = options;\n\n html.push({\n filename,\n title: title || _.startCase(this.config.app),\n template: template ? path.resolve(path.dirname(file.file), template) : undefined,\n chunks: [name],\n inject: \"body\",\n minify: true,\n });\n }\n\n return html;\n }\n\n public async tags(): Promise<HtmlRspackTagsPluginOptions[]> {\n const tags: HtmlRspackTagsPluginOptions[] = [];\n\n const views = await this.finder.views();\n\n for (const {filename, options} of views.values()) {\n // Only HTML options reach the tags plugin; view, build and manifest options stay out of it.\n const tagOptions = _.pick(options, HtmlOptionKeys);\n\n if (!_.isEmpty(tagOptions)) {\n tags.push({\n ...tagOptions,\n files: [filename],\n });\n }\n }\n\n return tags;\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,OAAO,OAAO;AAKd,SAA4B,sBAAqB;AAMjD,MAAO,aAA+C;AAAA,EAC3C,YACgB,QACA,QACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,MAAa,UAAsC;AAC/C,UAAM,UAA6B,oBAAI,IAAI;AAE3C,eAAW,CAAC,MAAM,IAAI,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AAClD,cAAQ,IAAI,MAAM,oBAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,IAC1C;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA2C;AACpD,UAAM,OAAkC,CAAC;AAEzC,eAAW,CAAC,MAAM,EAAC,MAAM,UAAU,QAAO,CAAC,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AACvE,YAAM,EAAC,UAAU,MAAK,IAAI;AAE1B,WAAK,KAAK;AAAA,QACN;AAAA,QACA,OAAO,SAAS,EAAE,UAAU,KAAK,OAAO,GAAG;AAAA,QAC3C,UAAU,WAAW,KAAK,QAAQ,KAAK,QAAQ,KAAK,IAAI,GAAG,QAAQ,IAAI;AAAA,QACvE,QAAQ,CAAC,IAAI;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA+C;AACxD,UAAM,OAAsC,CAAC;AAE7C,UAAM,QAAQ,MAAM,KAAK,OAAO,MAAM;AAEtC,eAAW,EAAC,UAAU,QAAO,KAAK,MAAM,OAAO,GAAG;AAE9C,YAAM,aAAa,EAAE,KAAK,SAAS,cAAc;AAEjD,UAAI,CAAC,EAAE,QAAQ,UAAU,GAAG;AACxB,aAAK,KAAK;AAAA,UACN,GAAG;AAAA,UACH,OAAO,CAAC,QAAQ;AAAA,QACpB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -6,7 +6,16 @@ var view_default = definePlugin(() => {
6
6
  return {
7
7
  name: "adnbn:view",
8
8
  bundler: ({ config }) => {
9
- const entryTypeFilter = onlyViaTopLevelEntry(["page", "popup", "sidebar", "offscreen", "options"]);
9
+ const entryTypeFilter = onlyViaTopLevelEntry([
10
+ "page",
11
+ "popup",
12
+ "sidebar",
13
+ "offscreen",
14
+ "options",
15
+ "newtab",
16
+ "bookmarks",
17
+ "history"
18
+ ]);
10
19
  return {
11
20
  optimization: {
12
21
  splitChunks: {