adnbn 0.10.0 → 0.12.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 (716) hide show
  1. package/README.md +3 -0
  2. package/dist/cli/builders/locale/LocaleBuilder.js +2 -11
  3. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  4. package/dist/cli/builders/locale/index.js +1 -1
  5. package/dist/cli/builders/locale/index.js.map +1 -1
  6. package/dist/cli/builders/manifest/ManifestBase.js +17 -7
  7. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  8. package/dist/cli/builders/manifest/ManifestV2.js +1 -1
  9. package/dist/cli/builders/manifest/ManifestV3.js +12 -5
  10. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  11. package/dist/cli/builders/manifest/utils/data-collection-permissions.d.ts +15 -0
  12. package/dist/cli/builders/manifest/utils/data-collection-permissions.js +26 -0
  13. package/dist/cli/builders/manifest/utils/data-collection-permissions.js.map +1 -0
  14. package/dist/cli/builders/manifest/utils/host-patterns.d.ts +1 -0
  15. package/dist/cli/builders/manifest/utils/host-patterns.js +40 -0
  16. package/dist/cli/builders/manifest/utils/host-patterns.js.map +1 -0
  17. package/dist/cli/builders/manifest/utils/index.d.ts +4 -0
  18. package/dist/cli/builders/manifest/utils/index.js +19 -0
  19. package/dist/cli/builders/manifest/utils/index.js.map +1 -0
  20. package/dist/cli/builders/manifest/utils/permissions.d.ts +14 -0
  21. package/dist/cli/builders/manifest/utils/permissions.js +34 -0
  22. package/dist/cli/builders/manifest/utils/permissions.js.map +1 -0
  23. package/dist/cli/builders/manifest/utils/web-accessible-resources.d.ts +2 -0
  24. package/dist/cli/builders/manifest/utils/web-accessible-resources.js +92 -0
  25. package/dist/cli/builders/manifest/utils/web-accessible-resources.js.map +1 -0
  26. package/dist/cli/bundler/index.d.ts +1 -0
  27. package/dist/cli/bundler/index.js +1 -0
  28. package/dist/cli/bundler/index.js.map +1 -1
  29. package/dist/cli/bundler/layers.d.ts +5 -0
  30. package/dist/cli/bundler/layers.js +12 -0
  31. package/dist/cli/bundler/layers.js.map +1 -0
  32. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.d.ts +14 -0
  33. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +524 -0
  34. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -0
  35. package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +2 -0
  36. package/dist/cli/bundler/plugins/build-assets-map/index.js +5 -0
  37. package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -0
  38. package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +9 -0
  39. package/dist/cli/bundler/plugins/build-assets-map/usage.js +31 -0
  40. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -0
  41. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.d.ts +9 -0
  42. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js +43 -0
  43. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js.map +1 -0
  44. package/dist/cli/bundler/plugins/chunk-loader/index.d.ts +1 -0
  45. package/dist/cli/bundler/plugins/chunk-loader/index.js +5 -0
  46. package/dist/cli/bundler/plugins/chunk-loader/index.js.map +1 -0
  47. package/dist/cli/bundler/plugins/chunk-loader/templates/runtime.template.d.ts +2 -0
  48. package/dist/cli/bundler/plugins/chunk-loader/templates.d.ts +7 -0
  49. package/dist/cli/bundler/plugins/chunk-loader/templates.js +30 -0
  50. package/dist/cli/bundler/plugins/{EntrypointPlugin.d.ts → entrypoint/EntrypointPlugin.d.ts} +7 -2
  51. package/dist/cli/bundler/plugins/{EntrypointPlugin.js → entrypoint/EntrypointPlugin.js} +46 -26
  52. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -0
  53. package/dist/cli/bundler/plugins/entrypoint/index.d.ts +1 -0
  54. package/dist/cli/bundler/plugins/entrypoint/index.js +7 -0
  55. package/dist/cli/bundler/plugins/entrypoint/index.js.map +1 -0
  56. package/dist/cli/bundler/plugins/{GenerateJsonPlugin.d.ts → generate-json/GenerateJsonPlugin.d.ts} +1 -0
  57. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js +73 -0
  58. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js.map +1 -0
  59. package/dist/cli/bundler/plugins/generate-json/index.d.ts +1 -0
  60. package/dist/cli/bundler/plugins/generate-json/index.js +5 -0
  61. package/dist/cli/bundler/plugins/generate-json/index.js.map +1 -0
  62. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.d.ts +23 -0
  63. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js +88 -0
  64. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js.map +1 -0
  65. package/dist/cli/bundler/plugins/generate-module/index.d.ts +1 -0
  66. package/dist/cli/bundler/plugins/generate-module/index.js +7 -0
  67. package/dist/cli/bundler/plugins/generate-module/index.js.map +1 -0
  68. package/dist/cli/bundler/plugins/index.d.ts +11 -5
  69. package/dist/cli/bundler/plugins/index.js +28 -10
  70. package/dist/cli/bundler/plugins/index.js.map +1 -1
  71. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +21 -0
  72. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +174 -0
  73. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -0
  74. package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +3 -0
  75. package/dist/cli/bundler/plugins/isolated-styles/chunks.js +32 -0
  76. package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -0
  77. package/dist/cli/bundler/plugins/isolated-styles/index.d.ts +1 -0
  78. package/dist/cli/bundler/plugins/isolated-styles/index.js +5 -0
  79. package/dist/cli/bundler/plugins/isolated-styles/index.js.map +1 -0
  80. package/dist/cli/bundler/plugins/isolated-styles/templates/css-loader.template.d.ts +1 -0
  81. package/dist/cli/bundler/plugins/isolated-styles/templates/runtime.template.d.ts +7 -0
  82. package/dist/cli/bundler/plugins/isolated-styles/templates.d.ts +18 -0
  83. package/dist/cli/bundler/plugins/isolated-styles/templates.js +174 -0
  84. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.d.ts +10 -0
  85. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +54 -0
  86. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -0
  87. package/dist/cli/bundler/plugins/manifest/index.d.ts +1 -0
  88. package/dist/cli/bundler/plugins/manifest/index.js +6 -0
  89. package/dist/cli/bundler/plugins/manifest/index.js.map +1 -0
  90. package/dist/cli/bundler/plugins/replace/ReplacePlugin.js.map +1 -0
  91. package/dist/cli/bundler/plugins/replace/index.d.ts +1 -0
  92. package/dist/cli/bundler/plugins/replace/index.js +5 -0
  93. package/dist/cli/bundler/plugins/replace/index.js.map +1 -0
  94. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.d.ts +19 -0
  95. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js +20 -0
  96. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js.map +1 -0
  97. package/dist/cli/bundler/plugins/resource-access/index.d.ts +1 -0
  98. package/dist/cli/bundler/plugins/resource-access/index.js +5 -0
  99. package/dist/cli/bundler/plugins/resource-access/index.js.map +1 -0
  100. package/dist/cli/bundler/plugins/resource-access/utils.d.ts +8 -0
  101. package/dist/cli/bundler/plugins/resource-access/utils.js +42 -0
  102. package/dist/cli/bundler/plugins/resource-access/utils.js.map +1 -0
  103. package/dist/cli/bundler/plugins/types.d.ts +8 -0
  104. package/dist/cli/bundler/plugins/types.js +1 -0
  105. package/dist/cli/bundler/plugins/types.js.map +1 -0
  106. package/dist/cli/bundler/plugins/utils/compilation-assets.d.ts +4 -0
  107. package/dist/cli/bundler/plugins/utils/compilation-assets.js +12 -0
  108. package/dist/cli/bundler/plugins/utils/compilation-assets.js.map +1 -0
  109. package/dist/cli/bundler/plugins/utils/index.d.ts +5 -0
  110. package/dist/cli/bundler/plugins/utils/index.js +14 -0
  111. package/dist/cli/bundler/plugins/utils/index.js.map +1 -0
  112. package/dist/cli/bundler/plugins/utils/manifest-hooks.d.ts +13 -0
  113. package/dist/cli/bundler/plugins/utils/manifest-hooks.js +17 -0
  114. package/dist/cli/bundler/plugins/utils/manifest-hooks.js.map +1 -0
  115. package/dist/cli/bundler/plugins/utils/runtime-module.d.ts +3 -0
  116. package/dist/cli/bundler/plugins/utils/runtime-module.js +11 -0
  117. package/dist/cli/bundler/plugins/utils/runtime-module.js.map +1 -0
  118. package/dist/cli/bundler/plugins/utils/runtime-template.d.ts +1 -0
  119. package/dist/cli/bundler/plugins/utils/runtime-template.js +18 -0
  120. package/dist/cli/bundler/plugins/utils/runtime-template.js.map +1 -0
  121. package/dist/cli/bundler/plugins/utils/watch-compilation.d.ts +3 -0
  122. package/dist/cli/bundler/plugins/utils/watch-compilation.js +18 -0
  123. package/dist/cli/bundler/plugins/utils/watch-compilation.js.map +1 -0
  124. package/dist/cli/bundler/plugins/watch/WatchPlugin.js +16 -0
  125. package/dist/cli/bundler/plugins/watch/WatchPlugin.js.map +1 -0
  126. package/dist/cli/bundler/plugins/watch/index.d.ts +1 -0
  127. package/dist/cli/bundler/plugins/watch/index.js +5 -0
  128. package/dist/cli/bundler/plugins/watch/index.js.map +1 -0
  129. package/dist/cli/bundler/utils/app-filename.d.ts +2 -0
  130. package/dist/cli/bundler/utils/app-filename.js +19 -0
  131. package/dist/cli/bundler/utils/app-filename.js.map +1 -0
  132. package/dist/cli/bundler/utils/assets.d.ts +3 -0
  133. package/dist/cli/bundler/utils/assets.js +162 -0
  134. package/dist/cli/bundler/utils/assets.js.map +1 -0
  135. package/dist/cli/bundler/utils/chunk-filename.d.ts +6 -0
  136. package/dist/cli/bundler/utils/chunk-filename.js +93 -0
  137. package/dist/cli/bundler/utils/chunk-filename.js.map +1 -0
  138. package/dist/cli/bundler/utils/index.d.ts +2 -1
  139. package/dist/cli/bundler/utils/index.js +2 -1
  140. package/dist/cli/bundler/utils/index.js.map +1 -1
  141. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -1
  142. package/dist/cli/entrypoint/file/ExpressionFile.js +11 -0
  143. package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
  144. package/dist/cli/entrypoint/file/OptionFile.d.ts +4 -2
  145. package/dist/cli/entrypoint/file/OptionFile.js +35 -31
  146. package/dist/cli/entrypoint/file/OptionFile.js.map +1 -1
  147. package/dist/cli/entrypoint/file/SourceFile.d.ts +18 -7
  148. package/dist/cli/entrypoint/file/SourceFile.js +260 -156
  149. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  150. package/dist/cli/entrypoint/file/index.d.ts +2 -0
  151. package/dist/cli/entrypoint/file/index.js +2 -0
  152. package/dist/cli/entrypoint/file/index.js.map +1 -1
  153. package/dist/cli/entrypoint/file/injectors/core.js +22 -1
  154. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  155. package/dist/cli/entrypoint/file/parsers/ExportParser.d.ts +14 -0
  156. package/dist/cli/entrypoint/file/parsers/ExportParser.js +71 -0
  157. package/dist/cli/entrypoint/file/parsers/ExportParser.js.map +1 -0
  158. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +2 -0
  159. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +9 -0
  160. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  161. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +5 -1
  162. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  163. package/dist/cli/entrypoint/file/parsers/index.d.ts +1 -0
  164. package/dist/cli/entrypoint/file/parsers/index.js +2 -0
  165. package/dist/cli/entrypoint/file/parsers/index.js.map +1 -1
  166. package/dist/cli/entrypoint/file/parsers/types.d.ts +16 -0
  167. package/dist/cli/entrypoint/file/parsers/types.js +13 -0
  168. package/dist/cli/entrypoint/file/parsers/types.js.map +1 -1
  169. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +1 -0
  170. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +3 -0
  171. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  172. package/dist/cli/entrypoint/file/types.d.ts +26 -1
  173. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  174. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +1 -1
  175. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +3 -2
  176. package/dist/cli/entrypoint/parser/AbstractParser.js +6 -3
  177. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  178. package/dist/cli/entrypoint/parser/CommandParser.js +1 -1
  179. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  180. package/dist/cli/entrypoint/parser/ContentParser.d.ts +7 -3
  181. package/dist/cli/entrypoint/parser/ContentParser.js +42 -6
  182. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  183. package/dist/cli/entrypoint/parser/RelayParser.d.ts +21 -2
  184. package/dist/cli/entrypoint/parser/RelayParser.js +5 -1
  185. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  186. package/dist/cli/entrypoint/parser/utils/content/default-render.d.ts +3 -0
  187. package/dist/cli/entrypoint/parser/utils/content/default-render.js +21 -0
  188. package/dist/cli/entrypoint/parser/utils/content/default-render.js.map +1 -0
  189. package/dist/cli/plugins/asset.js +9 -4
  190. package/dist/cli/plugins/asset.js.map +1 -1
  191. package/dist/cli/plugins/background/index.js +1 -1
  192. package/dist/cli/plugins/background/index.js.map +1 -1
  193. package/dist/cli/plugins/content/Content.d.ts +2 -2
  194. package/dist/cli/plugins/content/Content.js +3 -2
  195. package/dist/cli/plugins/content/Content.js.map +1 -1
  196. package/dist/cli/plugins/content/ContentDriver.d.ts +1 -1
  197. package/dist/cli/plugins/content/ContentManager.d.ts +8 -5
  198. package/dist/cli/plugins/content/ContentManager.js +79 -28
  199. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  200. package/dist/cli/plugins/content/ContentName.d.ts +2 -2
  201. package/dist/cli/plugins/content/ContentName.js +8 -7
  202. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  203. package/dist/cli/plugins/content/Relay.d.ts +2 -2
  204. package/dist/cli/plugins/content/Relay.js +3 -2
  205. package/dist/cli/plugins/content/Relay.js.map +1 -1
  206. package/dist/cli/plugins/content/RelayDriver.d.ts +1 -1
  207. package/dist/cli/plugins/content/RelayDriver.js +1 -1
  208. package/dist/cli/plugins/content/bundler.d.ts +7 -0
  209. package/dist/cli/plugins/content/bundler.js +47 -0
  210. package/dist/cli/plugins/content/bundler.js.map +1 -0
  211. package/dist/cli/plugins/content/index.js +121 -62
  212. package/dist/cli/plugins/content/index.js.map +1 -1
  213. package/dist/cli/plugins/content/relay-module.d.ts +3 -0
  214. package/dist/cli/plugins/content/relay-module.js +11 -0
  215. package/dist/cli/plugins/content/relay-module.js.map +1 -0
  216. package/dist/cli/plugins/content/types.d.ts +2 -2
  217. package/dist/cli/plugins/content/utils.d.ts +3 -1
  218. package/dist/cli/plugins/content/utils.js +8 -1
  219. package/dist/cli/plugins/content/utils.js.map +1 -1
  220. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +1 -1
  221. package/dist/cli/plugins/icon/declaration/IconDeclaration.js +6 -6
  222. package/dist/cli/plugins/icon/declaration/IconDeclaration.js.map +1 -1
  223. package/dist/cli/plugins/icon/declaration/icon.d.ts +3 -5
  224. package/dist/cli/plugins/icon/icon-module.d.ts +2 -0
  225. package/dist/cli/plugins/icon/icon-module.js +11 -0
  226. package/dist/cli/plugins/icon/icon-module.js.map +1 -0
  227. package/dist/cli/plugins/icon/index.js +5 -3
  228. package/dist/cli/plugins/icon/index.js.map +1 -1
  229. package/dist/cli/plugins/index.d.ts +1 -1
  230. package/dist/cli/plugins/index.js +1 -1
  231. package/dist/cli/plugins/locale/Locale.d.ts +9 -2
  232. package/dist/cli/plugins/locale/Locale.js +37 -5
  233. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  234. package/dist/cli/plugins/locale/declaration/locale.d.ts +1 -1
  235. package/dist/cli/plugins/locale/index.js +57 -22
  236. package/dist/cli/plugins/locale/index.js.map +1 -1
  237. package/dist/cli/plugins/locale/locale-module.d.ts +4 -0
  238. package/dist/cli/plugins/locale/locale-module.js +16 -0
  239. package/dist/cli/plugins/locale/locale-module.js.map +1 -0
  240. package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -3
  241. package/dist/cli/plugins/offscreen/Offscreen.js.map +1 -1
  242. package/dist/cli/plugins/offscreen/index.js +5 -4
  243. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  244. package/dist/cli/plugins/offscreen/offscreen-module.d.ts +3 -0
  245. package/dist/cli/plugins/offscreen/offscreen-module.js +11 -0
  246. package/dist/cli/plugins/offscreen/offscreen-module.js.map +1 -0
  247. package/dist/cli/plugins/output/index.d.ts +2 -0
  248. package/dist/cli/plugins/output/index.js +60 -0
  249. package/dist/cli/plugins/output/index.js.map +1 -0
  250. package/dist/cli/plugins/output/runtime.d.ts +26 -0
  251. package/dist/cli/plugins/output/runtime.js +19 -0
  252. package/dist/cli/plugins/output/runtime.js.map +1 -0
  253. package/dist/cli/plugins/page/declaration/PageDeclaration.js +4 -4
  254. package/dist/cli/plugins/page/declaration/PageDeclaration.js.map +1 -1
  255. package/dist/cli/plugins/page/declaration/page.d.ts +3 -3
  256. package/dist/cli/plugins/page/index.js +14 -10
  257. package/dist/cli/plugins/page/index.js.map +1 -1
  258. package/dist/cli/plugins/page/page-module.d.ts +2 -0
  259. package/dist/cli/plugins/page/page-module.js +11 -0
  260. package/dist/cli/plugins/page/page-module.js.map +1 -0
  261. package/dist/cli/plugins/popup/Popup.d.ts +1 -1
  262. package/dist/cli/plugins/popup/Popup.js +2 -2
  263. package/dist/cli/plugins/popup/Popup.js.map +1 -1
  264. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +1 -1
  265. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js +6 -6
  266. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js.map +1 -1
  267. package/dist/cli/plugins/popup/declaration/popup.d.ts +3 -3
  268. package/dist/cli/plugins/popup/index.js +6 -5
  269. package/dist/cli/plugins/popup/index.js.map +1 -1
  270. package/dist/cli/plugins/popup/popup-module.d.ts +3 -0
  271. package/dist/cli/plugins/popup/popup-module.js +11 -0
  272. package/dist/cli/plugins/popup/popup-module.js.map +1 -0
  273. package/dist/cli/plugins/sandbox/Sandbox.d.ts +1 -2
  274. package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -1
  275. package/dist/cli/plugins/sandbox/index.js +5 -4
  276. package/dist/cli/plugins/sandbox/index.js.map +1 -1
  277. package/dist/cli/plugins/sandbox/sandbox-module.d.ts +3 -0
  278. package/dist/cli/plugins/sandbox/sandbox-module.js +11 -0
  279. package/dist/cli/plugins/sandbox/sandbox-module.js.map +1 -0
  280. package/dist/cli/plugins/sidebar/Sidebar.d.ts +1 -1
  281. package/dist/cli/plugins/sidebar/Sidebar.js +2 -2
  282. package/dist/cli/plugins/sidebar/Sidebar.js.map +1 -1
  283. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +1 -1
  284. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js +6 -6
  285. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js.map +1 -1
  286. package/dist/cli/plugins/sidebar/declaration/sidebar.d.ts +3 -3
  287. package/dist/cli/plugins/sidebar/index.js +6 -5
  288. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  289. package/dist/cli/plugins/sidebar/sidebar-module.d.ts +3 -0
  290. package/dist/cli/plugins/sidebar/sidebar-module.js +11 -0
  291. package/dist/cli/plugins/sidebar/sidebar-module.js.map +1 -0
  292. package/dist/cli/plugins/style/index.d.ts +2 -1
  293. package/dist/cli/plugins/style/index.js +52 -25
  294. package/dist/cli/plugins/style/index.js.map +1 -1
  295. package/dist/cli/plugins/style/types.d.ts +5 -0
  296. package/dist/cli/plugins/style/types.js +1 -0
  297. package/dist/cli/plugins/style/types.js.map +1 -0
  298. package/dist/cli/raw.d.ts +4 -0
  299. package/dist/cli/resolvers/bundler.js +9 -7
  300. package/dist/cli/resolvers/bundler.js.map +1 -1
  301. package/dist/cli/resolvers/config.js +2 -1
  302. package/dist/cli/resolvers/config.js.map +1 -1
  303. package/dist/cli/virtual/index.d.ts +2 -2
  304. package/dist/cli/virtual/index.js +11 -8
  305. package/dist/cli/virtual/virtual.d.ts +14 -11
  306. package/dist/content/index.d.ts +3 -0
  307. package/dist/content/index.js +8 -0
  308. package/dist/content/index.js.map +1 -0
  309. package/dist/entry/content/adapters/react/Builder.d.ts +5 -6
  310. package/dist/entry/content/adapters/react/Builder.js +8 -21
  311. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  312. package/dist/entry/content/adapters/react/Node.d.ts +6 -12
  313. package/dist/entry/content/adapters/react/Node.js +9 -25
  314. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  315. package/dist/entry/content/adapters/react/index.d.ts +2 -1
  316. package/dist/entry/content/adapters/react/index.js +3 -1
  317. package/dist/entry/content/adapters/react/index.js.map +1 -1
  318. package/dist/entry/content/adapters/react/resolvers/definition.d.ts +2 -0
  319. package/dist/entry/content/adapters/react/resolvers/definition.js +12 -0
  320. package/dist/entry/content/adapters/react/resolvers/definition.js.map +1 -0
  321. package/dist/entry/content/adapters/react/resolvers/render.d.ts +2 -2
  322. package/dist/entry/content/adapters/react/resolvers/render.js +4 -6
  323. package/dist/entry/content/adapters/react/resolvers/render.js.map +1 -1
  324. package/dist/entry/content/adapters/vanilla/Builder.d.ts +5 -5
  325. package/dist/entry/content/adapters/vanilla/Builder.js +9 -15
  326. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  327. package/dist/entry/content/adapters/vanilla/Node.d.ts +5 -10
  328. package/dist/entry/content/adapters/vanilla/Node.js +11 -34
  329. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  330. package/dist/entry/content/adapters/vanilla/index.d.ts +2 -1
  331. package/dist/entry/content/adapters/vanilla/index.js +3 -1
  332. package/dist/entry/content/adapters/vanilla/index.js.map +1 -1
  333. package/dist/entry/content/adapters/vanilla/resolvers/definition.d.ts +2 -0
  334. package/dist/entry/content/adapters/vanilla/resolvers/definition.js +9 -0
  335. package/dist/entry/content/adapters/vanilla/resolvers/definition.js.map +1 -0
  336. package/dist/entry/content/adapters/vanilla/resolvers/render.d.ts +3 -0
  337. package/dist/entry/content/adapters/vanilla/resolvers/render.js +15 -0
  338. package/dist/entry/content/adapters/vanilla/resolvers/render.js.map +1 -0
  339. package/dist/entry/content/index.d.ts +5 -1
  340. package/dist/entry/content/index.js +8 -1
  341. package/dist/entry/content/index.js.map +1 -1
  342. package/dist/entry/content/lifecycle/Builder.d.ts +26 -0
  343. package/dist/entry/content/lifecycle/Builder.js +212 -0
  344. package/dist/entry/content/lifecycle/Builder.js.map +1 -0
  345. package/dist/entry/content/lifecycle/IsolationSetup.d.ts +16 -0
  346. package/dist/entry/content/lifecycle/IsolationSetup.js +37 -0
  347. package/dist/entry/content/lifecycle/IsolationSetup.js.map +1 -0
  348. package/dist/entry/content/lifecycle/MountBuilder.d.ts +8 -0
  349. package/dist/entry/content/lifecycle/MountBuilder.js +57 -0
  350. package/dist/entry/content/lifecycle/MountBuilder.js.map +1 -0
  351. package/dist/entry/content/{core → lifecycle/context}/Context.d.ts +5 -2
  352. package/dist/entry/content/lifecycle/context/Context.js +73 -0
  353. package/dist/entry/content/lifecycle/context/Context.js.map +1 -0
  354. package/dist/entry/content/{core → lifecycle/context}/EventEmitter.d.ts +2 -2
  355. package/dist/entry/content/{core → lifecycle/context}/EventEmitter.js +3 -3
  356. package/dist/entry/content/lifecycle/context/EventEmitter.js.map +1 -0
  357. package/dist/entry/content/lifecycle/context/ManagedContext.d.ts +5 -0
  358. package/dist/entry/content/{core → lifecycle/context}/ManagedContext.js +2 -2
  359. package/dist/entry/content/lifecycle/context/ManagedContext.js.map +1 -0
  360. package/dist/entry/content/lifecycle/context/index.d.ts +3 -0
  361. package/dist/entry/content/lifecycle/context/index.js +9 -0
  362. package/dist/entry/content/lifecycle/context/index.js.map +1 -0
  363. package/dist/entry/content/{core → lifecycle/markers}/AbstractMarker.d.ts +2 -2
  364. package/dist/entry/content/{core → lifecycle/markers}/AbstractMarker.js +3 -3
  365. package/dist/entry/content/lifecycle/markers/AbstractMarker.js.map +1 -0
  366. package/dist/entry/content/{core → lifecycle/markers}/AttributeMarker.d.ts +2 -2
  367. package/dist/entry/content/{core → lifecycle/markers}/AttributeMarker.js +2 -2
  368. package/dist/entry/content/lifecycle/markers/AttributeMarker.js.map +1 -0
  369. package/dist/entry/content/{core → lifecycle/markers}/WeakMarker.d.ts +2 -2
  370. package/dist/entry/content/{core → lifecycle/markers}/WeakMarker.js +2 -2
  371. package/dist/entry/content/lifecycle/markers/WeakMarker.js.map +1 -0
  372. package/dist/entry/content/lifecycle/markers/index.d.ts +3 -0
  373. package/dist/entry/content/lifecycle/markers/index.js +9 -0
  374. package/dist/entry/content/lifecycle/markers/index.js.map +1 -0
  375. package/dist/entry/content/{core → lifecycle/nodes}/EventNode.d.ts +5 -2
  376. package/dist/entry/content/{core → lifecycle/nodes}/EventNode.js +14 -2
  377. package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -0
  378. package/dist/entry/content/lifecycle/nodes/FrameNode.d.ts +29 -0
  379. package/dist/entry/content/lifecycle/nodes/FrameNode.js +187 -0
  380. package/dist/entry/content/lifecycle/nodes/FrameNode.js.map +1 -0
  381. package/dist/entry/content/{core → lifecycle/nodes}/MarkerNode.d.ts +4 -2
  382. package/dist/entry/content/{core → lifecycle/nodes}/MarkerNode.js +8 -2
  383. package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -0
  384. package/dist/entry/content/{core → lifecycle/nodes}/MountNode.d.ts +4 -2
  385. package/dist/entry/content/{core → lifecycle/nodes}/MountNode.js +8 -2
  386. package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -0
  387. package/dist/entry/content/{core → lifecycle/nodes}/Node.d.ts +3 -2
  388. package/dist/entry/content/{core → lifecycle/nodes}/Node.js +5 -2
  389. package/dist/entry/content/lifecycle/nodes/Node.js.map +1 -0
  390. package/dist/entry/content/lifecycle/nodes/RenderNode.d.ts +19 -0
  391. package/dist/entry/content/lifecycle/nodes/RenderNode.js +75 -0
  392. package/dist/entry/content/lifecycle/nodes/RenderNode.js.map +1 -0
  393. package/dist/entry/content/lifecycle/nodes/ShadowNode.d.ts +21 -0
  394. package/dist/entry/content/lifecycle/nodes/ShadowNode.js +121 -0
  395. package/dist/entry/content/lifecycle/nodes/ShadowNode.js.map +1 -0
  396. package/dist/entry/content/lifecycle/nodes/index.d.ts +7 -0
  397. package/dist/entry/content/lifecycle/nodes/index.js +17 -0
  398. package/dist/entry/content/lifecycle/nodes/index.js.map +1 -0
  399. package/dist/entry/content/lifecycle/nodes/isolated-styles.d.ts +2 -0
  400. package/dist/entry/content/lifecycle/nodes/isolated-styles.js +14 -0
  401. package/dist/entry/content/lifecycle/nodes/isolated-styles.js.map +1 -0
  402. package/dist/entry/content/resolvers/anchor.d.ts +2 -0
  403. package/dist/entry/content/{core/resolvers → resolvers}/anchor.js +2 -2
  404. package/dist/entry/content/resolvers/anchor.js.map +1 -0
  405. package/dist/entry/content/resolvers/container.d.ts +2 -0
  406. package/dist/entry/content/{core/resolvers → resolvers}/container.js +2 -2
  407. package/dist/entry/content/resolvers/container.js.map +1 -0
  408. package/dist/entry/content/resolvers/definition.d.ts +5 -0
  409. package/dist/entry/content/resolvers/definition.js +24 -0
  410. package/dist/entry/content/resolvers/definition.js.map +1 -0
  411. package/dist/entry/content/{core/resolvers → resolvers}/index.d.ts +1 -1
  412. package/dist/entry/content/{core/resolvers → resolvers}/index.js +1 -1
  413. package/dist/entry/content/resolvers/index.js.map +1 -0
  414. package/dist/entry/content/resolvers/mount.d.ts +2 -0
  415. package/dist/entry/content/{core/resolvers → resolvers}/mount.js +3 -3
  416. package/dist/entry/content/resolvers/mount.js.map +1 -0
  417. package/dist/entry/content/resolvers/target.d.ts +3 -0
  418. package/dist/entry/content/resolvers/target.js +34 -0
  419. package/dist/entry/content/resolvers/target.js.map +1 -0
  420. package/dist/entry/content/resolvers/watch.d.ts +6 -0
  421. package/dist/entry/content/{core/resolvers → resolvers}/watch.js +15 -11
  422. package/dist/entry/content/resolvers/watch.js.map +1 -0
  423. package/dist/entry/relay/Builder.d.ts +8 -8
  424. package/dist/entry/relay/Builder.js +32 -19
  425. package/dist/entry/relay/Builder.js.map +1 -1
  426. package/dist/entry/relay/TransportBuilder.d.ts +3 -2
  427. package/dist/entry/relay/TransportBuilder.js +3 -3
  428. package/dist/entry/relay/TransportBuilder.js.map +1 -1
  429. package/dist/entry/relay/index.d.ts +5 -2
  430. package/dist/entry/relay/index.js +8 -2
  431. package/dist/entry/relay/index.js.map +1 -1
  432. package/dist/entry/relay/resolvers/definition.d.ts +4 -0
  433. package/dist/entry/relay/resolvers/definition.js +16 -0
  434. package/dist/entry/relay/resolvers/definition.js.map +1 -0
  435. package/dist/locale/adapters/react/ReactLocale.d.ts +18 -0
  436. package/dist/locale/adapters/react/ReactLocale.js +41 -0
  437. package/dist/locale/adapters/react/ReactLocale.js.map +1 -0
  438. package/dist/locale/adapters/react/hooks/use-locale-attributes.d.ts +7 -0
  439. package/dist/locale/adapters/react/hooks/use-locale-attributes.js +30 -0
  440. package/dist/locale/adapters/react/hooks/use-locale-attributes.js.map +1 -0
  441. package/dist/locale/adapters/react/hooks/use-locale.d.ts +3 -0
  442. package/dist/locale/adapters/react/hooks/use-locale.js +17 -0
  443. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -0
  444. package/dist/locale/adapters/react/hooks/use-native-locale.d.ts +3 -0
  445. package/dist/locale/adapters/react/hooks/use-native-locale.js +10 -0
  446. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -0
  447. package/dist/locale/adapters/react/index.d.ts +4 -2
  448. package/dist/locale/adapters/react/index.js +6 -4
  449. package/dist/locale/adapters/react/index.js.map +1 -1
  450. package/dist/locale/adapters/react/types.d.ts +22 -0
  451. package/dist/locale/adapters/react/types.js +1 -0
  452. package/dist/locale/adapters/react/types.js.map +1 -0
  453. package/dist/locale/helpers.d.ts +4 -5
  454. package/dist/locale/helpers.js +1 -1
  455. package/dist/locale/helpers.js.map +1 -1
  456. package/dist/locale/index.d.ts +2 -1
  457. package/dist/locale/index.js +1 -0
  458. package/dist/locale/index.js.map +1 -1
  459. package/dist/locale/providers/AbstractLocale.d.ts +4 -4
  460. package/dist/locale/providers/AbstractLocale.js +13 -94
  461. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  462. package/dist/locale/providers/CustomLocale.d.ts +3 -3
  463. package/dist/locale/providers/CustomLocale.js +6 -5
  464. package/dist/locale/providers/CustomLocale.js.map +1 -1
  465. package/dist/locale/providers/DynamicLocale.d.ts +18 -11
  466. package/dist/locale/providers/DynamicLocale.js +60 -47
  467. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  468. package/dist/locale/providers/NativeLocale.d.ts +4 -7
  469. package/dist/locale/providers/NativeLocale.js +5 -14
  470. package/dist/locale/providers/NativeLocale.js.map +1 -1
  471. package/dist/locale/providers/ObservableLocale.d.ts +35 -0
  472. package/dist/locale/providers/ObservableLocale.js +179 -0
  473. package/dist/locale/providers/ObservableLocale.js.map +1 -0
  474. package/dist/locale/providers/index.d.ts +2 -1
  475. package/dist/locale/providers/index.js +3 -1
  476. package/dist/locale/providers/index.js.map +1 -1
  477. package/dist/locale/storage/LocaleStorage.d.ts +11 -0
  478. package/dist/locale/storage/LocaleStorage.js +40 -0
  479. package/dist/locale/storage/LocaleStorage.js.map +1 -0
  480. package/dist/locale/storage/index.d.ts +1 -0
  481. package/dist/locale/storage/index.js +5 -0
  482. package/dist/locale/storage/index.js.map +1 -0
  483. package/dist/main/content.d.ts +4 -6
  484. package/dist/main/content.js +3 -16
  485. package/dist/main/content.js.map +1 -1
  486. package/dist/main/entrypoint.d.ts +4 -0
  487. package/dist/main/entrypoint.js +20 -0
  488. package/dist/main/entrypoint.js.map +1 -0
  489. package/dist/main/icon.d.ts +2 -3
  490. package/dist/main/icon.js +2 -1
  491. package/dist/main/icon.js.map +1 -1
  492. package/dist/main/index.d.ts +1 -0
  493. package/dist/main/index.js +1 -0
  494. package/dist/main/index.js.map +1 -1
  495. package/dist/main/offscreen.d.ts +2 -5
  496. package/dist/main/offscreen.js +5 -2
  497. package/dist/main/offscreen.js.map +1 -1
  498. package/dist/main/page.d.ts +2 -4
  499. package/dist/main/page.js +2 -1
  500. package/dist/main/page.js.map +1 -1
  501. package/dist/main/popup.d.ts +2 -5
  502. package/dist/main/popup.js +3 -3
  503. package/dist/main/popup.js.map +1 -1
  504. package/dist/main/relay.d.ts +3 -3
  505. package/dist/main/relay.js +2 -1
  506. package/dist/main/relay.js.map +1 -1
  507. package/dist/main/sandbox.d.ts +1 -4
  508. package/dist/main/sandbox.js +2 -1
  509. package/dist/main/sandbox.js.map +1 -1
  510. package/dist/main/service.d.ts +1 -2
  511. package/dist/main/service.js.map +1 -1
  512. package/dist/main/sidebar.d.ts +2 -5
  513. package/dist/main/sidebar.js +3 -3
  514. package/dist/main/sidebar.js.map +1 -1
  515. package/dist/message/index.d.ts +2 -4
  516. package/dist/message/index.js.map +1 -1
  517. package/dist/offscreen/index.d.ts +2 -6
  518. package/dist/offscreen/index.js.map +1 -1
  519. package/dist/relay/RelayPermission.js +1 -1
  520. package/dist/relay/index.d.ts +2 -5
  521. package/dist/relay/index.js.map +1 -1
  522. package/dist/sandbox/index.d.ts +1 -5
  523. package/dist/sandbox/index.js.map +1 -1
  524. package/dist/service/index.d.ts +2 -6
  525. package/dist/service/index.js.map +1 -1
  526. package/dist/shared/content/index.d.ts +1 -0
  527. package/dist/shared/content/index.js +6 -0
  528. package/dist/shared/content/index.js.map +1 -0
  529. package/dist/shared/content/isolation.d.ts +4 -0
  530. package/dist/shared/content/isolation.js +63 -0
  531. package/dist/shared/content/isolation.js.map +1 -0
  532. package/dist/shared/locale/index.d.ts +5 -0
  533. package/dist/shared/locale/index.js +21 -0
  534. package/dist/shared/locale/index.js.map +1 -0
  535. package/dist/shared/locale/keys.d.ts +5 -0
  536. package/dist/shared/locale/keys.js +33 -0
  537. package/dist/shared/locale/keys.js.map +1 -0
  538. package/dist/shared/locale/language.d.ts +4 -0
  539. package/dist/shared/locale/language.js +23 -0
  540. package/dist/shared/locale/language.js.map +1 -0
  541. package/dist/shared/locale/messages.d.ts +3 -0
  542. package/dist/shared/locale/messages.js +9 -0
  543. package/dist/shared/locale/messages.js.map +1 -0
  544. package/dist/shared/locale/plural.d.ts +2 -0
  545. package/dist/shared/locale/plural.js +81 -0
  546. package/dist/shared/locale/plural.js.map +1 -0
  547. package/dist/shared/locale/substitutions.d.ts +10 -0
  548. package/dist/shared/locale/substitutions.js +32 -0
  549. package/dist/shared/locale/substitutions.js.map +1 -0
  550. package/dist/types/background.d.ts +1 -1
  551. package/dist/types/background.js.map +1 -1
  552. package/dist/types/command.d.ts +1 -1
  553. package/dist/types/command.js.map +1 -1
  554. package/dist/types/content/adapters/index.d.ts +2 -0
  555. package/dist/types/content/adapters/index.js +1 -0
  556. package/dist/types/content/adapters/index.js.map +1 -0
  557. package/dist/types/content/adapters/react.d.ts +4 -0
  558. package/dist/types/content/adapters/react.js +1 -0
  559. package/dist/types/content/adapters/react.js.map +1 -0
  560. package/dist/types/content/adapters/vanilla.d.ts +1 -0
  561. package/dist/types/content/adapters/vanilla.js +1 -0
  562. package/dist/types/content/adapters/vanilla.js.map +1 -0
  563. package/dist/types/content/boundary.d.ts +17 -0
  564. package/dist/types/content/boundary.js +1 -0
  565. package/dist/types/content/boundary.js.map +1 -0
  566. package/dist/types/{content.d.ts → content/common.d.ts} +119 -59
  567. package/dist/types/{content.js → content/common.js} +23 -2
  568. package/dist/types/content/common.js.map +1 -0
  569. package/dist/types/content/definition.d.ts +61 -0
  570. package/dist/types/content/definition.js +1 -0
  571. package/dist/types/content/definition.js.map +1 -0
  572. package/dist/types/content/index.d.ts +7 -0
  573. package/dist/types/content/index.js +2 -0
  574. package/dist/types/content/index.js.map +1 -0
  575. package/dist/types/content/prepare.d.ts +9 -0
  576. package/dist/types/content/prepare.js +1 -0
  577. package/dist/types/content/prepare.js.map +1 -0
  578. package/dist/types/content/render.d.ts +6 -0
  579. package/dist/types/content/render.js +1 -0
  580. package/dist/types/content/render.js.map +1 -0
  581. package/dist/types/content/target.d.ts +13 -0
  582. package/dist/types/content/target.js +1 -0
  583. package/dist/types/content/target.js.map +1 -0
  584. package/dist/types/entrypoint.d.ts +20 -0
  585. package/dist/types/entrypoint.js +4 -0
  586. package/dist/types/entrypoint.js.map +1 -1
  587. package/dist/types/icon.d.ts +8 -0
  588. package/dist/types/icon.js.map +1 -1
  589. package/dist/types/language.d.ts +57 -0
  590. package/dist/types/language.js +62 -0
  591. package/dist/types/language.js.map +1 -0
  592. package/dist/types/locale.d.ts +34 -63
  593. package/dist/types/locale.js +62 -119
  594. package/dist/types/locale.js.map +1 -1
  595. package/dist/types/manifest.d.ts +11 -8
  596. package/dist/types/manifest.js.map +1 -1
  597. package/dist/types/message.d.ts +7 -0
  598. package/dist/types/message.js.map +1 -1
  599. package/dist/types/offscreen.d.ts +14 -1
  600. package/dist/types/offscreen.js.map +1 -1
  601. package/dist/types/page.d.ts +8 -0
  602. package/dist/types/popup.d.ts +9 -0
  603. package/dist/types/relay.d.ts +15 -7
  604. package/dist/types/relay.js.map +1 -1
  605. package/dist/types/sandbox.d.ts +12 -0
  606. package/dist/types/sandbox.js.map +1 -1
  607. package/dist/types/service.d.ts +10 -1
  608. package/dist/types/service.js.map +1 -1
  609. package/dist/types/sidebar.d.ts +9 -0
  610. package/dist/types/sidebar.js.map +1 -1
  611. package/dist/types/transport.d.ts +4 -0
  612. package/dist/virtual/icon.d.ts +2 -0
  613. package/dist/virtual/icon.js +5 -0
  614. package/dist/virtual/icon.js.map +1 -0
  615. package/dist/virtual/locale.d.ts +7 -0
  616. package/dist/virtual/locale.js +13 -0
  617. package/dist/virtual/locale.js.map +1 -0
  618. package/dist/virtual/modules.d.ts +41 -0
  619. package/dist/virtual/offscreen.d.ts +3 -0
  620. package/dist/virtual/offscreen.js +5 -0
  621. package/dist/virtual/offscreen.js.map +1 -0
  622. package/dist/virtual/page.d.ts +2 -0
  623. package/dist/virtual/page.js +5 -0
  624. package/dist/virtual/page.js.map +1 -0
  625. package/dist/virtual/popup.d.ts +3 -0
  626. package/dist/virtual/popup.js +5 -0
  627. package/dist/virtual/popup.js.map +1 -0
  628. package/dist/virtual/relay.d.ts +3 -0
  629. package/dist/virtual/relay.js +5 -0
  630. package/dist/virtual/relay.js.map +1 -0
  631. package/dist/virtual/runtime.d.ts +8 -0
  632. package/dist/virtual/runtime.js +9 -0
  633. package/dist/virtual/runtime.js.map +1 -0
  634. package/dist/virtual/sandbox.d.ts +3 -0
  635. package/dist/virtual/sandbox.js +5 -0
  636. package/dist/virtual/sandbox.js.map +1 -0
  637. package/dist/virtual/sidebar.d.ts +3 -0
  638. package/dist/virtual/sidebar.js +5 -0
  639. package/dist/virtual/sidebar.js.map +1 -0
  640. package/package.json +53 -23
  641. package/scripts/clean-dist.js +7 -0
  642. package/scripts/copy-dts.js +11 -1
  643. package/scripts/merge-coverage.mjs +12 -0
  644. package/scripts/pre-commit.mjs +22 -0
  645. package/scripts/test-inventory.mjs +38 -0
  646. package/scripts/test-run.mjs +25 -0
  647. package/types/client.d.ts +15 -0
  648. package/dist/cli/builders/manifest/utils.d.ts +0 -32
  649. package/dist/cli/builders/manifest/utils.js +0 -209
  650. package/dist/cli/builders/manifest/utils.js.map +0 -1
  651. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +0 -1
  652. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +0 -40
  653. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +0 -1
  654. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +0 -10
  655. package/dist/cli/bundler/plugins/ManifestPlugin.js +0 -78
  656. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +0 -1
  657. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +0 -1
  658. package/dist/cli/bundler/plugins/WatchPlugin.js +0 -21
  659. package/dist/cli/bundler/plugins/WatchPlugin.js.map +0 -1
  660. package/dist/cli/bundler/utils/output.d.ts +0 -2
  661. package/dist/cli/bundler/utils/output.js +0 -15
  662. package/dist/cli/bundler/utils/output.js.map +0 -1
  663. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/account.options.d.ts +0 -1
  664. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/advanced.options/index.d.ts +0 -1
  665. package/dist/cli/plugins/output.d.ts +0 -2
  666. package/dist/cli/plugins/output.js +0 -32
  667. package/dist/cli/plugins/output.js.map +0 -1
  668. package/dist/entry/content/adapters/react/resolvers/index.d.ts +0 -1
  669. package/dist/entry/content/adapters/react/resolvers/index.js +0 -2
  670. package/dist/entry/content/adapters/react/resolvers/index.js.map +0 -1
  671. package/dist/entry/content/core/AbstractMarker.js.map +0 -1
  672. package/dist/entry/content/core/AttributeMarker.js.map +0 -1
  673. package/dist/entry/content/core/Builder.d.ts +0 -27
  674. package/dist/entry/content/core/Builder.js +0 -124
  675. package/dist/entry/content/core/Builder.js.map +0 -1
  676. package/dist/entry/content/core/Context.js +0 -43
  677. package/dist/entry/content/core/Context.js.map +0 -1
  678. package/dist/entry/content/core/EventEmitter.js.map +0 -1
  679. package/dist/entry/content/core/EventNode.js.map +0 -1
  680. package/dist/entry/content/core/ManagedContext.d.ts +0 -5
  681. package/dist/entry/content/core/ManagedContext.js.map +0 -1
  682. package/dist/entry/content/core/MarkerNode.js.map +0 -1
  683. package/dist/entry/content/core/MountBuilder.d.ts +0 -10
  684. package/dist/entry/content/core/MountBuilder.js +0 -40
  685. package/dist/entry/content/core/MountBuilder.js.map +0 -1
  686. package/dist/entry/content/core/MountNode.js.map +0 -1
  687. package/dist/entry/content/core/Node.js.map +0 -1
  688. package/dist/entry/content/core/WeakMarker.js.map +0 -1
  689. package/dist/entry/content/core/resolvers/anchor.d.ts +0 -2
  690. package/dist/entry/content/core/resolvers/anchor.js.map +0 -1
  691. package/dist/entry/content/core/resolvers/container.d.ts +0 -2
  692. package/dist/entry/content/core/resolvers/container.js.map +0 -1
  693. package/dist/entry/content/core/resolvers/definition.d.ts +0 -3
  694. package/dist/entry/content/core/resolvers/definition.js +0 -12
  695. package/dist/entry/content/core/resolvers/definition.js.map +0 -1
  696. package/dist/entry/content/core/resolvers/index.js.map +0 -1
  697. package/dist/entry/content/core/resolvers/mount.d.ts +0 -2
  698. package/dist/entry/content/core/resolvers/mount.js.map +0 -1
  699. package/dist/entry/content/core/resolvers/render.d.ts +0 -3
  700. package/dist/entry/content/core/resolvers/render.js +0 -18
  701. package/dist/entry/content/core/resolvers/render.js.map +0 -1
  702. package/dist/entry/content/core/resolvers/watch.d.ts +0 -4
  703. package/dist/entry/content/core/resolvers/watch.js.map +0 -1
  704. package/dist/locale/adapters/react/LocaleProvider.d.ts +0 -7
  705. package/dist/locale/adapters/react/LocaleProvider.js +0 -58
  706. package/dist/locale/adapters/react/LocaleProvider.js.map +0 -1
  707. package/dist/locale/adapters/react/context.d.ts +0 -14
  708. package/dist/locale/adapters/react/context.js +0 -25
  709. package/dist/locale/adapters/react/context.js.map +0 -1
  710. package/dist/locale/utils.d.ts +0 -11
  711. package/dist/locale/utils.js +0 -67
  712. package/dist/locale/utils.js.map +0 -1
  713. package/dist/types/content.js.map +0 -1
  714. /package/dist/cli/bundler/plugins/{ReplacePlugin.d.ts → replace/ReplacePlugin.d.ts} +0 -0
  715. /package/dist/cli/bundler/plugins/{ReplacePlugin.js → replace/ReplacePlugin.js} +0 -0
  716. /package/dist/cli/bundler/plugins/{WatchPlugin.d.ts → watch/WatchPlugin.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/ContentManager.ts"],"sourcesContent":["import ContentName from \"./ContentName\";\n\nimport {ContentGroupItems, ContentProvider} from \"./types\";\nimport {getContentScriptConfigFromOptions} from \"./utils\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {ContentScriptDeclarative, ContentScriptEntrypointOptions} from \"@typing/content\";\nimport {EntrypointEntries, EntrypointFile, EntrypointType} from \"@typing/entrypoint\";\nimport {\n ManifestContentScripts,\n ManifestHostPermissions,\n ManifestOptionalPermissions,\n ManifestPermissions,\n} from \"@typing/manifest\";\n\nexport default class {\n protected readonly providers = new Set<ContentProvider<ContentScriptEntrypointOptions>>();\n\n protected readonly names: ContentName;\n\n protected _group?: ContentGroupItems<ContentScriptEntrypointOptions>;\n\n protected _hostPermissions?: [ManifestHostPermissions, ManifestHostPermissions];\n\n protected _permissions?: Promise<[ManifestPermissions, ManifestOptionalPermissions]>;\n\n constructor(config: ReadonlyConfig) {\n this.names = new ContentName(config);\n }\n\n public provider(provider: ContentProvider<ContentScriptEntrypointOptions>): this {\n this.providers.add(provider);\n\n return this;\n }\n\n protected async getGroup(): Promise<ContentGroupItems<ContentScriptEntrypointOptions>> {\n const content = await Promise.all(Array.from(this.providers, provider => provider.driver().items()));\n\n const group: ContentGroupItems<ContentScriptEntrypointOptions> = new Map();\n\n for (const items of content) {\n for (const [name, item] of items) {\n const entry = this.names.create(name, item.options);\n\n group.set(entry, new Set([...(group.get(entry) || []), item]));\n }\n }\n\n return group;\n }\n\n public async group(): Promise<ContentGroupItems<ContentScriptEntrypointOptions>> {\n return (this._group ??= await this.getGroup());\n }\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [entry, items] of await this.group()) {\n entries.set(entry, new Set(Array.from(items, ({file}) => file)));\n }\n\n return entries;\n }\n\n public async manifest(): Promise<ManifestContentScripts> {\n const manifest: ManifestContentScripts = new Set();\n\n for (const [entry, items] of await this.group()) {\n const options = Array.from(items, ({options}) => options).reduce((acc, opt) => {\n return {...acc, ...opt};\n }, {} as ContentScriptEntrypointOptions);\n\n manifest.add({entry, ...getContentScriptConfigFromOptions(options)});\n }\n\n return manifest;\n }\n\n public async hostPermissions(): Promise<ManifestHostPermissions> {\n return (await this.calculateHostPermissions())[0];\n }\n\n public async optionalHostPermissions(): Promise<ManifestHostPermissions> {\n return (await this.calculateHostPermissions())[1];\n }\n\n protected async calculateHostPermissions(): Promise<[ManifestHostPermissions, ManifestHostPermissions]> {\n if (this._hostPermissions) {\n return this._hostPermissions;\n }\n\n const hostPermissions = new Set<string>();\n const optionalHostPermissions = new Set<string>();\n\n const group = await this.group();\n\n for (const items of group.values()) {\n for (const {options} of items) {\n const {matches, declarative} = options;\n\n if (!declarative || !matches) {\n continue;\n }\n\n for (const match of matches) {\n switch (declarative) {\n case ContentScriptDeclarative.Optional:\n optionalHostPermissions.add(match);\n\n break;\n case ContentScriptDeclarative.Required:\n case true:\n hostPermissions.add(match);\n\n break;\n }\n }\n }\n }\n\n return (this._hostPermissions = [hostPermissions, optionalHostPermissions]);\n }\n\n public async permissions(): Promise<ManifestPermissions> {\n return (await this.getPermissions())[0];\n }\n\n public async optionalPermissions(): Promise<ManifestOptionalPermissions> {\n return (await this.getPermissions())[1];\n }\n\n protected getPermissions(): Promise<[ManifestPermissions, ManifestOptionalPermissions]> {\n return (this._permissions ??= this.calculatePermissions());\n }\n\n protected async calculatePermissions(): Promise<[ManifestPermissions, ManifestOptionalPermissions]> {\n const permissions: ManifestPermissions = new Set();\n const optionalPermissions: ManifestOptionalPermissions = new Set();\n\n const contributions = await Promise.all(\n Array.from(this.providers, async provider => {\n const driver = provider.driver();\n\n return Promise.all([driver.permissions(), driver.optionalPermissions()]);\n })\n );\n\n for (const [required, optional] of contributions) {\n for (const permission of required) {\n permissions.add(permission);\n }\n\n for (const permission of optional) {\n optionalPermissions.add(permission);\n }\n }\n\n for (const permission of optionalPermissions) {\n if (permissions.has(permission)) {\n optionalPermissions.delete(permission);\n }\n }\n\n return [permissions, optionalPermissions];\n }\n\n public virtual(file: EntrypointFile): string {\n for (const provider of this.providers) {\n try {\n return provider.virtual(file);\n } catch {}\n }\n\n throw new Error(`Virtual file \"${file.file}\" not found.`);\n }\n\n public async empty(): Promise<boolean> {\n return (await this.group()).size === 0;\n }\n\n public chunkName(): string {\n return this.names.getChunkName();\n }\n\n public likely(name?: string): boolean {\n if (!name) {\n return false;\n }\n\n return [EntrypointType.Relay, EntrypointType.ContentScript].some(\n type => name === type || name.endsWith(`.${type}`)\n );\n }\n\n public clear(): this {\n for (const provider of this.providers) {\n provider.clear();\n }\n\n this.names.reset();\n\n this._group = undefined;\n this._hostPermissions = undefined;\n this._permissions = undefined;\n\n return this;\n }\n}\n"],"mappings":"AAAA,OAAO,iBAAiB;AAGxB,SAAQ,yCAAwC;AAGhD,SAAQ,gCAA+D;AACvE,SAA2C,sBAAqB;AAQhE,MAAO,uBAAc;AAAA,EACE,YAAY,oBAAI,IAAqD;AAAA,EAErE;AAAA,EAET;AAAA,EAEA;AAAA,EAEA;AAAA,EAEV,YAAY,QAAwB;AAChC,SAAK,QAAQ,IAAI,YAAY,MAAM;AAAA,EACvC;AAAA,EAEO,SAAS,UAAiE;AAC7E,SAAK,UAAU,IAAI,QAAQ;AAE3B,WAAO;AAAA,EACX;AAAA,EAEA,MAAgB,WAAuE;AACnF,UAAM,UAAU,MAAM,QAAQ,IAAI,MAAM,KAAK,KAAK,WAAW,cAAY,SAAS,OAAO,EAAE,MAAM,CAAC,CAAC;AAEnG,UAAM,QAA2D,oBAAI,IAAI;AAEzE,eAAW,SAAS,SAAS;AACzB,iBAAW,CAAC,MAAM,IAAI,KAAK,OAAO;AAC9B,cAAM,QAAQ,KAAK,MAAM,OAAO,MAAM,KAAK,OAAO;AAElD,cAAM,IAAI,OAAO,oBAAI,IAAI,CAAC,GAAI,MAAM,IAAI,KAAK,KAAK,CAAC,GAAI,IAAI,CAAC,CAAC;AAAA,MACjE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,QAAoE;AAC7E,WAAQ,KAAK,WAAL,KAAK,SAAW,MAAM,KAAK,SAAS;AAAA,EAChD;AAAA,EAEA,MAAa,UAAsC;AAC/C,UAAM,UAA6B,oBAAI,IAAI;AAE3C,eAAW,CAAC,OAAO,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG;AAC7C,cAAQ,IAAI,OAAO,IAAI,IAAI,MAAM,KAAK,OAAO,CAAC,EAAC,KAAI,MAAM,IAAI,CAAC,CAAC;AAAA,IACnE;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,WAA4C;AACrD,UAAM,WAAmC,oBAAI,IAAI;AAEjD,eAAW,CAAC,OAAO,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG;AAC7C,YAAM,UAAU,MAAM,KAAK,OAAO,CAAC,EAAC,SAAAA,SAAO,MAAMA,QAAO,EAAE,OAAO,CAAC,KAAK,QAAQ;AAC3E,eAAO,EAAC,GAAG,KAAK,GAAG,IAAG;AAAA,MAC1B,GAAG,CAAC,CAAmC;AAEvC,eAAS,IAAI,EAAC,OAAO,GAAG,kCAAkC,OAAO,EAAC,CAAC;AAAA,IACvE;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,kBAAoD;AAC7D,YAAQ,MAAM,KAAK,yBAAyB,GAAG,CAAC;AAAA,EACpD;AAAA,EAEA,MAAa,0BAA4D;AACrE,YAAQ,MAAM,KAAK,yBAAyB,GAAG,CAAC;AAAA,EACpD;AAAA,EAEA,MAAgB,2BAAwF;AACpG,QAAI,KAAK,kBAAkB;AACvB,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,kBAAkB,oBAAI,IAAY;AACxC,UAAM,0BAA0B,oBAAI,IAAY;AAEhD,UAAM,QAAQ,MAAM,KAAK,MAAM;AAE/B,eAAW,SAAS,MAAM,OAAO,GAAG;AAChC,iBAAW,EAAC,QAAO,KAAK,OAAO;AAC3B,cAAM,EAAC,SAAS,YAAW,IAAI;AAE/B,YAAI,CAAC,eAAe,CAAC,SAAS;AAC1B;AAAA,QACJ;AAEA,mBAAW,SAAS,SAAS;AACzB,kBAAQ,aAAa;AAAA,YACjB,KAAK,yBAAyB;AAC1B,sCAAwB,IAAI,KAAK;AAEjC;AAAA,YACJ,KAAK,yBAAyB;AAAA,YAC9B,KAAK;AACD,8BAAgB,IAAI,KAAK;AAEzB;AAAA,UACR;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAQ,KAAK,mBAAmB,CAAC,iBAAiB,uBAAuB;AAAA,EAC7E;AAAA,EAEA,MAAa,cAA4C;AACrD,YAAQ,MAAM,KAAK,eAAe,GAAG,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAa,sBAA4D;AACrE,YAAQ,MAAM,KAAK,eAAe,GAAG,CAAC;AAAA,EAC1C;AAAA,EAEU,iBAA8E;AACpF,WAAQ,KAAK,iBAAL,KAAK,eAAiB,KAAK,qBAAqB;AAAA,EAC5D;AAAA,EAEA,MAAgB,uBAAoF;AAChG,UAAM,cAAmC,oBAAI,IAAI;AACjD,UAAM,sBAAmD,oBAAI,IAAI;AAEjE,UAAM,gBAAgB,MAAM,QAAQ;AAAA,MAChC,MAAM,KAAK,KAAK,WAAW,OAAM,aAAY;AACzC,cAAM,SAAS,SAAS,OAAO;AAE/B,eAAO,QAAQ,IAAI,CAAC,OAAO,YAAY,GAAG,OAAO,oBAAoB,CAAC,CAAC;AAAA,MAC3E,CAAC;AAAA,IACL;AAEA,eAAW,CAAC,UAAU,QAAQ,KAAK,eAAe;AAC9C,iBAAW,cAAc,UAAU;AAC/B,oBAAY,IAAI,UAAU;AAAA,MAC9B;AAEA,iBAAW,cAAc,UAAU;AAC/B,4BAAoB,IAAI,UAAU;AAAA,MACtC;AAAA,IACJ;AAEA,eAAW,cAAc,qBAAqB;AAC1C,UAAI,YAAY,IAAI,UAAU,GAAG;AAC7B,4BAAoB,OAAO,UAAU;AAAA,MACzC;AAAA,IACJ;AAEA,WAAO,CAAC,aAAa,mBAAmB;AAAA,EAC5C;AAAA,EAEO,QAAQ,MAA8B;AACzC,eAAW,YAAY,KAAK,WAAW;AACnC,UAAI;AACA,eAAO,SAAS,QAAQ,IAAI;AAAA,MAChC,QAAQ;AAAA,MAAC;AAAA,IACb;AAEA,UAAM,IAAI,MAAM,iBAAiB,KAAK,IAAI,cAAc;AAAA,EAC5D;AAAA,EAEA,MAAa,QAA0B;AACnC,YAAQ,MAAM,KAAK,MAAM,GAAG,SAAS;AAAA,EACzC;AAAA,EAEO,YAAoB;AACvB,WAAO,KAAK,MAAM,aAAa;AAAA,EACnC;AAAA,EAEO,OAAO,MAAwB;AAClC,QAAI,CAAC,MAAM;AACP,aAAO;AAAA,IACX;AAEA,WAAO,CAAC,eAAe,OAAO,eAAe,aAAa,EAAE;AAAA,MACxD,UAAQ,SAAS,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE;AAAA,IACrD;AAAA,EACJ;AAAA,EAEO,QAAc;AACjB,eAAW,YAAY,KAAK,WAAW;AACnC,eAAS,MAAM;AAAA,IACnB;AAEA,SAAK,MAAM,MAAM;AAEjB,SAAK,SAAS;AACd,SAAK,mBAAmB;AACxB,SAAK,eAAe;AAEpB,WAAO;AAAA,EACX;AACJ;","names":["options"]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/ContentManager.ts"],"sourcesContent":["import ContentName from \"./ContentName\";\n\nimport {ContentGroupItems, ContentProvider} from \"./types\";\nimport {getContentScriptConfigFromOptions, hasIsolatedTarget} from \"./utils\";\nimport {getContentChunkName} from \"./bundler\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {\n ContentScriptDeclarative,\n ContentScriptIsolation,\n ContentScriptEntrypointOptions,\n ContentScriptWorld,\n type ContentScriptWorldValue,\n} from \"@typing/content\";\nimport {EntrypointEntries, EntrypointFile} from \"@typing/entrypoint\";\nimport {\n ManifestContentScripts,\n ManifestHostPermissions,\n ManifestOptionalPermissions,\n ManifestPermissions,\n} from \"@typing/manifest\";\n\nexport default class ContentManager {\n protected readonly providers = new Set<ContentProvider<ContentScriptEntrypointOptions>>();\n\n protected readonly names: ContentName;\n\n protected _group?: ContentGroupItems<ContentScriptEntrypointOptions>;\n\n protected _hostPermissions?: [ManifestHostPermissions, ManifestHostPermissions];\n\n protected _permissions?: Promise<[ManifestPermissions, ManifestOptionalPermissions]>;\n\n constructor(protected readonly config: ReadonlyConfig) {\n this.names = new ContentName(config);\n\n Object.values(ContentScriptWorld).forEach(world => this.names.reserve(getContentChunkName(world)));\n }\n\n public provider(provider: ContentProvider<ContentScriptEntrypointOptions>): this {\n this.providers.add(provider);\n\n return this;\n }\n\n protected async getGroup(): Promise<ContentGroupItems<ContentScriptEntrypointOptions>> {\n // prettier-ignore\n const content = await Promise.all(\n Array.from(this.providers, provider => provider.driver().items())\n );\n\n const group: ContentGroupItems<ContentScriptEntrypointOptions> = new Map();\n\n for (const items of content) {\n for (const [name, item] of items) {\n const options = this.normalizeOptions(item.file, item.options);\n const entry = this.names.create(name, options);\n\n group.set(entry, new Set([...(group.get(entry) || []), {...item, options}]));\n }\n }\n\n return group;\n }\n\n protected normalizeOptions(\n file: EntrypointFile,\n options: ContentScriptEntrypointOptions\n ): ContentScriptEntrypointOptions {\n const world = this.resolveWorld(options.world);\n\n if (this.config.manifestVersion !== 2) {\n if (\n world === ContentScriptWorld.Main &&\n (options.isolation?.type === ContentScriptIsolation.Shadow ||\n (options.isolation?.type === ContentScriptIsolation.Iframe &&\n !(options.isolation?.src && /^https?:\\/\\//.test(options.isolation.src))))\n ) {\n throw new Error(\n `Content script \"${file.file}\" cannot use this isolation in the MAIN execution world; only external HTTP(S) isolation.src is supported`\n );\n }\n\n return options;\n }\n\n if (world === ContentScriptWorld.Main) {\n console.warn(\n `Content script \"${file.file}\" requests world \"MAIN\", but Addon Bone does not support MAIN content scripts in Manifest V2. It will be built and run in ISOLATED.`\n );\n }\n\n return {...options, world: ContentScriptWorld.Isolated};\n }\n\n public async group(): Promise<ContentGroupItems<ContentScriptEntrypointOptions>> {\n return (this._group ??= await this.getGroup());\n }\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [entry, items] of await this.group()) {\n entries.set(entry, new Set(Array.from(items, ({file}) => file)));\n }\n\n return entries;\n }\n\n /** Settings are keyed by the final grouped entrypoint name, not the original source files. */\n public async entryOptions(): Promise<ReadonlyMap<string, ContentScriptEntrypointOptions>> {\n const entries = new Map<string, ContentScriptEntrypointOptions>();\n\n for (const [entry, items] of await this.group()) {\n const options = Array.from(items, item => item.options);\n const worlds = new Set(options.map(option => this.resolveWorld(option.world)));\n if (worlds.size !== 1) {\n throw new Error(`Content entrypoint \"${entry}\" cannot mix execution worlds`);\n }\n\n if (new Set(options.map(hasIsolatedTarget)).size !== 1) {\n throw new Error(`Content entrypoint \"${entry}\" cannot mix isolation style delivery modes`);\n }\n\n entries.set(entry, Object.assign({}, ...options));\n }\n\n return entries;\n }\n\n public async manifest(): Promise<ManifestContentScripts> {\n return new Set(\n Array.from(await this.entryOptions(), ([entry, options]) => ({\n entry,\n ...getContentScriptConfigFromOptions(options),\n }))\n );\n }\n\n public async hostPermissions(): Promise<ManifestHostPermissions> {\n return (await this.calculateHostPermissions())[0];\n }\n\n public async optionalHostPermissions(): Promise<ManifestHostPermissions> {\n return (await this.calculateHostPermissions())[1];\n }\n\n protected async calculateHostPermissions(): Promise<[ManifestHostPermissions, ManifestHostPermissions]> {\n if (this._hostPermissions) {\n return this._hostPermissions;\n }\n\n const hostPermissions = new Set<string>();\n const optionalHostPermissions = new Set<string>();\n\n const group = await this.group();\n\n for (const items of group.values()) {\n for (const {options} of items) {\n const {matches, declarative} = options;\n\n if (!declarative || !matches) {\n continue;\n }\n\n for (const match of matches) {\n switch (declarative) {\n case ContentScriptDeclarative.Optional:\n optionalHostPermissions.add(match);\n\n break;\n case ContentScriptDeclarative.Required:\n case true:\n hostPermissions.add(match);\n\n break;\n }\n }\n }\n }\n\n return (this._hostPermissions = [hostPermissions, optionalHostPermissions]);\n }\n\n public async permissions(): Promise<ManifestPermissions> {\n return (await this.getPermissions())[0];\n }\n\n public async optionalPermissions(): Promise<ManifestOptionalPermissions> {\n return (await this.getPermissions())[1];\n }\n\n protected getPermissions(): Promise<[ManifestPermissions, ManifestOptionalPermissions]> {\n return (this._permissions ??= this.calculatePermissions());\n }\n\n protected async calculatePermissions(): Promise<[ManifestPermissions, ManifestOptionalPermissions]> {\n const permissions: ManifestPermissions = new Set();\n const optionalPermissions: ManifestOptionalPermissions = new Set();\n\n const contributions = await Promise.all(\n Array.from(this.providers, async provider => {\n const driver = provider.driver();\n\n return Promise.all([driver.permissions(), driver.optionalPermissions()]);\n })\n );\n\n for (const [required, optional] of contributions) {\n for (const permission of required) {\n permissions.add(permission);\n }\n\n for (const permission of optional) {\n optionalPermissions.add(permission);\n }\n }\n\n for (const permission of optionalPermissions) {\n if (permissions.has(permission)) {\n optionalPermissions.delete(permission);\n }\n }\n\n return [permissions, optionalPermissions];\n }\n\n public virtual(file: EntrypointFile): string {\n if (!this._group) {\n throw new Error(\n `Cannot create virtual file \"${file.file}\": content group is not prepared. Await entries() or entryOptions() before virtual().`\n );\n }\n\n const item = Array.from(this._group.values())\n .flatMap(items => Array.from(items))\n .find(item => item.file.file === file.file);\n\n if (!item) {\n throw new Error(`Virtual file \"${file.file}\" is not in the prepared content group.`);\n }\n\n for (const provider of this.providers) {\n try {\n return provider.virtual(file, item.options);\n } catch {}\n }\n\n throw new Error(`Virtual file \"${file.file}\" not found.`);\n }\n\n public async empty(): Promise<boolean> {\n return (await this.group()).size === 0;\n }\n\n protected resolveWorld(world?: ContentScriptWorldValue): ContentScriptWorld {\n switch (world) {\n case undefined:\n case ContentScriptWorld.Isolated:\n return ContentScriptWorld.Isolated;\n case ContentScriptWorld.Main:\n return ContentScriptWorld.Main;\n default:\n throw new Error(`Unsupported content script execution world \"${String(world)}\"`);\n }\n }\n\n public clear(): this {\n for (const provider of this.providers) {\n provider.clear();\n }\n\n this.names.reset();\n\n this._group = undefined;\n this._hostPermissions = undefined;\n this._permissions = undefined;\n\n return this;\n }\n}\n"],"mappings":"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","names":["item"]}
@@ -1,11 +1,11 @@
1
1
  import { ContentNameGenerator } from "./types.js";
2
2
  import { NameGenerator } from "../../entrypoint/index.js";
3
3
  import { ReadonlyConfig } from "../../../types/config.js";
4
- import { ContentScriptEntrypointOptions } from "../../../types/content.js";
4
+ import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
5
5
  export default class ContentName extends NameGenerator implements ContentNameGenerator<ContentScriptEntrypointOptions> {
6
6
  protected readonly config: ReadonlyConfig;
7
7
  protected readonly _names: Map<string, string>;
8
8
  constructor(config: ReadonlyConfig);
9
- getChunkName(): string;
10
9
  create(name: string, options: ContentScriptEntrypointOptions): string;
10
+ reset(): this;
11
11
  }
@@ -2,30 +2,31 @@ import stringify from "json-stringify-deterministic";
2
2
  import { getContentScriptConfigFromOptions } from "./utils.js";
3
3
  import { NameGenerator } from "./../../../cli/entrypoint/index.js";
4
4
  import { EntrypointType } from "./../../../types/entrypoint.js";
5
+ import { ContentScriptIsolation } from "./../../../types/content/index.js";
5
6
  class ContentName extends NameGenerator {
6
7
  constructor(config) {
7
8
  super(EntrypointType.ContentScript);
8
9
  this.config = config;
9
- this.reserve(this.getChunkName());
10
10
  }
11
11
  config;
12
12
  _names = /* @__PURE__ */ new Map();
13
- getChunkName() {
14
- return "common." + this.entrypoint;
15
- }
16
13
  create(name, options) {
17
- const entry = this.name(name);
18
- if (!this.config.concatContentScripts) {
19
- return entry;
14
+ if (!this.config.concatContentScripts || options.isolation !== void 0 && options.isolation.type !== ContentScriptIsolation.None) {
15
+ return this.name(name);
20
16
  }
21
17
  const key = stringify(getContentScriptConfigFromOptions(options));
22
18
  const existingEntry = this._names.get(key);
23
19
  if (existingEntry) {
24
20
  return existingEntry;
25
21
  }
22
+ const entry = this.name(name);
26
23
  this._names.set(key, entry);
27
24
  return entry;
28
25
  }
26
+ reset() {
27
+ this._names.clear();
28
+ return super.reset();
29
+ }
29
30
  }
30
31
  export {
31
32
  ContentName as default
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/ContentName.ts"],"sourcesContent":["import stringify from \"json-stringify-deterministic\";\n\nimport {getContentScriptConfigFromOptions} from \"./utils\";\nimport {ContentNameGenerator} from \"./types\";\n\nimport {NameGenerator} from \"@cli/entrypoint/index.js\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {EntrypointType} from \"@typing/entrypoint\";\nimport {ContentScriptEntrypointOptions} from \"@typing/content\";\n\nexport default class ContentName extends NameGenerator implements ContentNameGenerator<ContentScriptEntrypointOptions> {\n protected readonly _names = new Map<string, string>();\n\n constructor(protected readonly config: ReadonlyConfig) {\n super(EntrypointType.ContentScript);\n\n this.reserve(this.getChunkName());\n }\n\n public getChunkName(): string {\n return \"common.\" + this.entrypoint;\n }\n\n public create(name: string, options: ContentScriptEntrypointOptions): string {\n const entry = this.name(name);\n\n if (!this.config.concatContentScripts) {\n return entry;\n }\n\n const key = stringify(getContentScriptConfigFromOptions(options));\n\n const existingEntry = this._names.get(key);\n\n if (existingEntry) {\n return existingEntry;\n }\n\n this._names.set(key, entry);\n\n return entry;\n }\n}\n"],"mappings":"AAAA,OAAO,eAAe;AAEtB,SAAQ,yCAAwC;AAGhD,SAAQ,qBAAoB;AAG5B,SAAQ,sBAAqB;AAG7B,MAAO,oBAAkC,cAA8E;AAAA,EAGnH,YAA+B,QAAwB;AACnD,UAAM,eAAe,aAAa;AADP;AAG3B,SAAK,QAAQ,KAAK,aAAa,CAAC;AAAA,EACpC;AAAA,EAJ+B;AAAA,EAFZ,SAAS,oBAAI,IAAoB;AAAA,EAQ7C,eAAuB;AAC1B,WAAO,YAAY,KAAK;AAAA,EAC5B;AAAA,EAEO,OAAO,MAAc,SAAiD;AACzE,UAAM,QAAQ,KAAK,KAAK,IAAI;AAE5B,QAAI,CAAC,KAAK,OAAO,sBAAsB;AACnC,aAAO;AAAA,IACX;AAEA,UAAM,MAAM,UAAU,kCAAkC,OAAO,CAAC;AAEhE,UAAM,gBAAgB,KAAK,OAAO,IAAI,GAAG;AAEzC,QAAI,eAAe;AACf,aAAO;AAAA,IACX;AAEA,SAAK,OAAO,IAAI,KAAK,KAAK;AAE1B,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/ContentName.ts"],"sourcesContent":["import stringify from \"json-stringify-deterministic\";\n\nimport {getContentScriptConfigFromOptions} from \"./utils\";\nimport {ContentNameGenerator} from \"./types\";\n\nimport {NameGenerator} from \"@cli/entrypoint/index.js\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {EntrypointType} from \"@typing/entrypoint\";\nimport {ContentScriptIsolation, ContentScriptEntrypointOptions} from \"@typing/content\";\n\nexport default class ContentName extends NameGenerator implements ContentNameGenerator<ContentScriptEntrypointOptions> {\n protected readonly _names = new Map<string, string>();\n\n constructor(protected readonly config: ReadonlyConfig) {\n super(EntrypointType.ContentScript);\n }\n\n public create(name: string, options: ContentScriptEntrypointOptions): string {\n if (\n !this.config.concatContentScripts ||\n (options.isolation !== undefined && options.isolation.type !== ContentScriptIsolation.None)\n ) {\n return this.name(name);\n }\n\n const key = stringify(getContentScriptConfigFromOptions(options));\n\n const existingEntry = this._names.get(key);\n\n if (existingEntry) {\n return existingEntry;\n }\n\n const entry = this.name(name);\n\n this._names.set(key, entry);\n\n return entry;\n }\n\n public reset(): this {\n this._names.clear();\n\n return super.reset();\n }\n}\n"],"mappings":"AAAA,OAAO,eAAe;AAEtB,SAAQ,yCAAwC;AAGhD,SAAQ,qBAAoB;AAG5B,SAAQ,sBAAqB;AAC7B,SAAQ,8BAA6D;AAErE,MAAO,oBAAkC,cAA8E;AAAA,EAGnH,YAA+B,QAAwB;AACnD,UAAM,eAAe,aAAa;AADP;AAAA,EAE/B;AAAA,EAF+B;AAAA,EAFZ,SAAS,oBAAI,IAAoB;AAAA,EAM7C,OAAO,MAAc,SAAiD;AACzE,QACI,CAAC,KAAK,OAAO,wBACZ,QAAQ,cAAc,UAAa,QAAQ,UAAU,SAAS,uBAAuB,MACxF;AACE,aAAO,KAAK,KAAK,IAAI;AAAA,IACzB;AAEA,UAAM,MAAM,UAAU,kCAAkC,OAAO,CAAC;AAEhE,UAAM,gBAAgB,KAAK,OAAO,IAAI,GAAG;AAEzC,QAAI,eAAe;AACf,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,KAAK,KAAK,IAAI;AAE5B,SAAK,OAAO,IAAI,KAAK,KAAK;AAE1B,WAAO;AAAA,EACX;AAAA,EAEO,QAAc;AACjB,SAAK,OAAO,MAAM;AAElB,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
@@ -2,7 +2,7 @@ import RelayDriver from "./RelayDriver.js";
2
2
  import { ContentProvider } from "./types.js";
3
3
  import { RelayFinder } from "../../entrypoint/index.js";
4
4
  import { RelayOptions } from "../../../types/relay.js";
5
- import { ContentScriptEntrypointOptions } from "../../../types/content.js";
5
+ import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
6
6
  import { EntrypointFile } from "../../../types/entrypoint.js";
7
7
  export default class extends RelayFinder implements ContentProvider<ContentScriptEntrypointOptions> {
8
8
  protected _driver?: RelayDriver;
@@ -11,7 +11,7 @@ export default class extends RelayFinder implements ContentProvider<ContentScrip
11
11
  * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Relays.
12
12
  * This command is executed during the type declaration generation stage for the Relays.
13
13
  */
14
- virtual(file: EntrypointFile): string;
14
+ virtual(file: EntrypointFile, contentOptions?: ContentScriptEntrypointOptions): string;
15
15
  getOptionsMap(): Promise<Record<string, RelayOptions>>;
16
16
  clear(): this;
17
17
  }
@@ -1,6 +1,7 @@
1
1
  import RelayDriver from "./RelayDriver.js";
2
2
  import { RelayFinder } from "./../../../cli/entrypoint/index.js";
3
3
  import { virtualRelayModule } from "./../../../cli/virtual/index.js";
4
+ import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
4
5
  import { RelayMethod } from "./../../../types/relay.js";
5
6
  class Relay_default extends RelayFinder {
6
7
  _driver;
@@ -11,13 +12,13 @@ class Relay_default extends RelayFinder {
11
12
  * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Relays.
12
13
  * This command is executed during the type declaration generation stage for the Relays.
13
14
  */
14
- virtual(file) {
15
+ virtual(file, contentOptions) {
15
16
  var _a, _b;
16
17
  const options = (_b = (_a = this._transport) == null ? void 0 : _a.get(file)) == null ? void 0 : _b.options;
17
18
  if (!options) {
18
19
  throw new Error(`Relay options not found for "${file}"`);
19
20
  }
20
- return virtualRelayModule(file, options.name);
21
+ return virtualRelayModule(file, options.name, isContentScriptFrameNavigation(contentOptions == null ? void 0 : contentOptions.isolation));
21
22
  }
22
23
  async getOptionsMap() {
23
24
  const transport = await this.transport();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/Relay.ts"],"sourcesContent":["import RelayDriver from \"./RelayDriver\";\n\nimport {ContentProvider} from \"./types\";\n\nimport {RelayFinder} from \"@cli/entrypoint/index.js\";\nimport {virtualRelayModule} from \"@cli/virtual/index.js\";\n\nimport {RelayMethod, RelayOptions} from \"@typing/relay\";\nimport {ContentScriptEntrypointOptions} from \"@typing/content\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nexport default class extends RelayFinder implements ContentProvider<ContentScriptEntrypointOptions> {\n protected _driver?: RelayDriver;\n\n public driver(): RelayDriver {\n return (this._driver ??= new RelayDriver(this));\n }\n\n /**\n * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Relays.\n * This command is executed during the type declaration generation stage for the Relays.\n */\n public virtual(file: EntrypointFile): string {\n const options = this._transport?.get(file)?.options;\n\n if (!options) {\n throw new Error(`Relay options not found for \"${file}\"`);\n }\n\n return virtualRelayModule(file, options.name);\n }\n\n public async getOptionsMap(): Promise<Record<string, RelayOptions>> {\n const transport = await this.transport();\n\n return Array.from(transport.values()).reduce(\n (map, {options}) => {\n map[options.name] = {\n ...options,\n method: options.method || RelayMethod.Messaging,\n };\n\n return map;\n },\n {} as Record<string, RelayOptions>\n );\n }\n\n public clear(): this {\n this._driver?.clear();\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,OAAO,iBAAiB;AAIxB,SAAQ,mBAAkB;AAC1B,SAAQ,0BAAyB;AAEjC,SAAQ,mBAAgC;AAIxC,MAAO,sBAAsB,YAAuE;AAAA,EACtF;AAAA,EAEH,SAAsB;AACzB,WAAQ,KAAK,YAAL,KAAK,UAAY,IAAI,YAAY,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,QAAQ,MAA8B;AAtBjD;AAuBQ,UAAM,WAAU,gBAAK,eAAL,mBAAiB,IAAI,UAArB,mBAA4B;AAE5C,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,gCAAgC,IAAI,GAAG;AAAA,IAC3D;AAEA,WAAO,mBAAmB,MAAM,QAAQ,IAAI;AAAA,EAChD;AAAA,EAEA,MAAa,gBAAuD;AAChE,UAAM,YAAY,MAAM,KAAK,UAAU;AAEvC,WAAO,MAAM,KAAK,UAAU,OAAO,CAAC,EAAE;AAAA,MAClC,CAAC,KAAK,EAAC,QAAO,MAAM;AAChB,YAAI,QAAQ,IAAI,IAAI;AAAA,UAChB,GAAG;AAAA,UACH,QAAQ,QAAQ,UAAU,YAAY;AAAA,QAC1C;AAEA,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEO,QAAc;AAhDzB;AAiDQ,eAAK,YAAL,mBAAc;AAEd,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/Relay.ts"],"sourcesContent":["import RelayDriver from \"./RelayDriver\";\n\nimport {ContentProvider} from \"./types\";\n\nimport {RelayFinder} from \"@cli/entrypoint/index.js\";\nimport {virtualRelayModule} from \"@cli/virtual/index.js\";\nimport {isContentScriptFrameNavigation} from \"@shared/content\";\n\nimport {RelayMethod, RelayOptions} from \"@typing/relay\";\nimport {ContentScriptEntrypointOptions} from \"@typing/content\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nexport default class extends RelayFinder implements ContentProvider<ContentScriptEntrypointOptions> {\n protected _driver?: RelayDriver;\n\n public driver(): RelayDriver {\n return (this._driver ??= new RelayDriver(this));\n }\n\n /**\n * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Relays.\n * This command is executed during the type declaration generation stage for the Relays.\n */\n public virtual(file: EntrypointFile, contentOptions?: ContentScriptEntrypointOptions): string {\n const options = this._transport?.get(file)?.options;\n\n if (!options) {\n throw new Error(`Relay options not found for \"${file}\"`);\n }\n\n return virtualRelayModule(file, options.name, isContentScriptFrameNavigation(contentOptions?.isolation));\n }\n\n public async getOptionsMap(): Promise<Record<string, RelayOptions>> {\n const transport = await this.transport();\n\n return Array.from(transport.values()).reduce(\n (map, {options}) => {\n map[options.name] = {\n ...options,\n method: options.method || RelayMethod.Messaging,\n };\n\n return map;\n },\n {} as Record<string, RelayOptions>\n );\n }\n\n public clear(): this {\n this._driver?.clear();\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,OAAO,iBAAiB;AAIxB,SAAQ,mBAAkB;AAC1B,SAAQ,0BAAyB;AACjC,SAAQ,sCAAqC;AAE7C,SAAQ,mBAAgC;AAIxC,MAAO,sBAAsB,YAAuE;AAAA,EACtF;AAAA,EAEH,SAAsB;AACzB,WAAQ,KAAK,YAAL,KAAK,UAAY,IAAI,YAAY,IAAI;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,QAAQ,MAAsB,gBAAyD;AAvBlG;AAwBQ,UAAM,WAAU,gBAAK,eAAL,mBAAiB,IAAI,UAArB,mBAA4B;AAE5C,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,gCAAgC,IAAI,GAAG;AAAA,IAC3D;AAEA,WAAO,mBAAmB,MAAM,QAAQ,MAAM,+BAA+B,iDAAgB,SAAS,CAAC;AAAA,EAC3G;AAAA,EAEA,MAAa,gBAAuD;AAChE,UAAM,YAAY,MAAM,KAAK,UAAU;AAEvC,WAAO,MAAM,KAAK,UAAU,OAAO,CAAC,EAAE;AAAA,MAClC,CAAC,KAAK,EAAC,QAAO,MAAM;AAChB,YAAI,QAAQ,IAAI,IAAI;AAAA,UAChB,GAAG;AAAA,UACH,QAAQ,QAAQ,UAAU,YAAY;AAAA,QAC1C;AAEA,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEO,QAAc;AAjDzB;AAkDQ,eAAK,YAAL,mBAAc;AAEd,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import ContentDriver from "./ContentDriver.js";
2
2
  import RelayFinder from "../../entrypoint/finder/RelayFinder.js";
3
- import { type ContentScriptEntrypointOptions } from "../../../types/content.js";
3
+ import { type ContentScriptEntrypointOptions } from "../../../types/content/index.js";
4
4
  import { type RelayEntrypointOptions } from "../../../types/relay.js";
5
5
  import type { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
6
6
  export default class extends ContentDriver<ContentScriptEntrypointOptions, RelayEntrypointOptions> {
@@ -1,5 +1,5 @@
1
1
  import ContentDriver from "./ContentDriver.js";
2
- import { ContentScriptDeclarative } from "./../../../types/content.js";
2
+ import { ContentScriptDeclarative } from "./../../../types/content/index.js";
3
3
  import { RelayAllFrames, RelayMethod } from "./../../../types/relay.js";
4
4
  class RelayDriver_default extends ContentDriver {
5
5
  constructor(finder) {
@@ -0,0 +1,7 @@
1
+ import type { ResourceAccessPluginRequirement } from "../../bundler/plugins/resource-access/index.js";
2
+ import type { IsolatedStylesPluginFiles } from "../../bundler/plugins/isolated-styles/index.js";
3
+ import { ContentScriptWorld, type ContentScriptEntrypointOptions } from "../../../types/content/index.js";
4
+ /** Reject unavailable destinations and warn about likely missing query flags without changing CSS routing. */
5
+ export declare const validateContentStyles: (entry: string, options: ContentScriptEntrypointOptions | undefined, files: IsolatedStylesPluginFiles) => readonly string[];
6
+ export declare const createPageAccessRequirements: (entries: ReadonlyMap<string, ContentScriptEntrypointOptions>, pages: ReadonlyMap<string, string>) => ResourceAccessPluginRequirement[];
7
+ export declare const getContentChunkName: (world: ContentScriptWorld) => string;
@@ -0,0 +1,47 @@
1
+ import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
2
+ import { hasIsolatedTarget } from "./utils.js";
3
+ import { ContentScriptMatches, ContentScriptWorld } from "./../../../types/content/index.js";
4
+ import { EntrypointType } from "./../../../types/entrypoint.js";
5
+ const validateContentStyles = (entry, options, files) => {
6
+ var _a;
7
+ if (!options) return [];
8
+ if (files.isolated.length > 0 && isContentScriptFrameNavigation(options.isolation)) {
9
+ throw new Error(
10
+ `Entrypoint "${entry}" uses ?isolation CSS with isolation.page/isolation.src, but has no local render target. Import these styles in the embedded page instead.`
11
+ );
12
+ }
13
+ if (hasIsolatedTarget(options) && files.document.length > 0 && files.isolated.length === 0) {
14
+ return [
15
+ `[adnbn:missing-isolation-css] Entrypoint "${entry}" uses isolation: "${(_a = options.isolation) == null ? void 0 : _a.type}", but has no CSS marked with ?isolation. Imported CSS will be delivered to the page document. If these styles belong to the isolated UI, import them with ?isolation. Document-only styles are valid; this warning can be suppressed with bundler ignoreWarnings.`
16
+ ];
17
+ }
18
+ return [];
19
+ };
20
+ const createPageAccessRequirements = (entries, pages) => {
21
+ var _a;
22
+ const requirements = [];
23
+ for (const [entry, options] of entries) {
24
+ const alias = (_a = options.isolation) == null ? void 0 : _a.page;
25
+ if (alias === void 0) continue;
26
+ const resource = pages.get(alias);
27
+ if (!resource) {
28
+ throw new Error(`Content entrypoint "${entry}" references unknown page "${alias}"`);
29
+ }
30
+ requirements.push({
31
+ resource,
32
+ matches: options.matches ?? ContentScriptMatches,
33
+ issuer: `Content entrypoint "${entry}" embedding page "${alias}"`,
34
+ hint: "add matches to the page or narrow the content matches"
35
+ });
36
+ }
37
+ return requirements;
38
+ };
39
+ const getContentChunkName = (world) => {
40
+ return `${world === ContentScriptWorld.Main ? "common-main" : "common"}.${EntrypointType.ContentScript}`;
41
+ };
42
+ export {
43
+ createPageAccessRequirements,
44
+ getContentChunkName,
45
+ validateContentStyles
46
+ };
47
+ //# sourceMappingURL=bundler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/bundler.ts"],"sourcesContent":["import type {ResourceAccessPluginRequirement} from \"@cli/bundler/plugins/resource-access\";\nimport type {IsolatedStylesPluginFiles} from \"@cli/bundler/plugins/isolated-styles\";\nimport {isContentScriptFrameNavigation} from \"@shared/content\";\nimport {hasIsolatedTarget} from \"./utils\";\n\nimport {ContentScriptMatches, ContentScriptWorld, type ContentScriptEntrypointOptions} from \"@typing/content\";\nimport {EntrypointType} from \"@typing/entrypoint\";\n\n/** Reject unavailable destinations and warn about likely missing query flags without changing CSS routing. */\nexport const validateContentStyles = (\n entry: string,\n options: ContentScriptEntrypointOptions | undefined,\n files: IsolatedStylesPluginFiles\n): readonly string[] => {\n if (!options) return [];\n if (files.isolated.length > 0 && isContentScriptFrameNavigation(options.isolation)) {\n throw new Error(\n `Entrypoint \"${entry}\" uses ?isolation CSS with isolation.page/isolation.src, but has no local render target. Import these styles in the embedded page instead.`\n );\n }\n if (hasIsolatedTarget(options) && files.document.length > 0 && files.isolated.length === 0) {\n return [\n `[adnbn:missing-isolation-css] Entrypoint \"${entry}\" uses isolation: \"${options.isolation?.type}\", but has no CSS marked with ?isolation. Imported CSS will be delivered to the page document. If these styles belong to the isolated UI, import them with ?isolation. Document-only styles are valid; this warning can be suppressed with bundler ignoreWarnings.`,\n ];\n }\n return [];\n};\n\nexport const createPageAccessRequirements = (\n entries: ReadonlyMap<string, ContentScriptEntrypointOptions>,\n pages: ReadonlyMap<string, string>\n): ResourceAccessPluginRequirement[] => {\n const requirements: ResourceAccessPluginRequirement[] = [];\n\n for (const [entry, options] of entries) {\n const alias = options.isolation?.page;\n if (alias === undefined) continue;\n\n const resource = pages.get(alias);\n if (!resource) {\n throw new Error(`Content entrypoint \"${entry}\" references unknown page \"${alias}\"`);\n }\n\n requirements.push({\n resource,\n matches: options.matches ?? ContentScriptMatches,\n issuer: `Content entrypoint \"${entry}\" embedding page \"${alias}\"`,\n hint: \"add matches to the page or narrow the content matches\",\n });\n }\n\n return requirements;\n};\n\nexport const getContentChunkName = (world: ContentScriptWorld): string => {\n return `${world === ContentScriptWorld.Main ? \"common-main\" : \"common\"}.${EntrypointType.ContentScript}`;\n};\n"],"mappings":"AAEA,SAAQ,sCAAqC;AAC7C,SAAQ,yBAAwB;AAEhC,SAAQ,sBAAsB,0BAA8D;AAC5F,SAAQ,sBAAqB;AAGtB,MAAM,wBAAwB,CACjC,OACA,SACA,UACoB;AAbxB;AAcI,MAAI,CAAC,QAAS,QAAO,CAAC;AACtB,MAAI,MAAM,SAAS,SAAS,KAAK,+BAA+B,QAAQ,SAAS,GAAG;AAChF,UAAM,IAAI;AAAA,MACN,eAAe,KAAK;AAAA,IACxB;AAAA,EACJ;AACA,MAAI,kBAAkB,OAAO,KAAK,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS,WAAW,GAAG;AACxF,WAAO;AAAA,MACH,6CAA6C,KAAK,uBAAsB,aAAQ,cAAR,mBAAmB,IAAI;AAAA,IACnG;AAAA,EACJ;AACA,SAAO,CAAC;AACZ;AAEO,MAAM,+BAA+B,CACxC,SACA,UACoC;AA/BxC;AAgCI,QAAM,eAAkD,CAAC;AAEzD,aAAW,CAAC,OAAO,OAAO,KAAK,SAAS;AACpC,UAAM,SAAQ,aAAQ,cAAR,mBAAmB;AACjC,QAAI,UAAU,OAAW;AAEzB,UAAM,WAAW,MAAM,IAAI,KAAK;AAChC,QAAI,CAAC,UAAU;AACX,YAAM,IAAI,MAAM,uBAAuB,KAAK,8BAA8B,KAAK,GAAG;AAAA,IACtF;AAEA,iBAAa,KAAK;AAAA,MACd;AAAA,MACA,SAAS,QAAQ,WAAW;AAAA,MAC5B,QAAQ,uBAAuB,KAAK,qBAAqB,KAAK;AAAA,MAC9D,MAAM;AAAA,IACV,CAAC;AAAA,EACL;AAEA,SAAO;AACX;AAEO,MAAM,sBAAsB,CAAC,UAAsC;AACtE,SAAO,GAAG,UAAU,mBAAmB,OAAO,gBAAgB,QAAQ,IAAI,eAAe,aAAa;AAC1G;","names":[]}
@@ -1,87 +1,146 @@
1
- import { DefinePlugin } from "@rspack/core";
2
- import { merge as mergeConfig } from "webpack-merge";
3
1
  import ContentManager from "./ContentManager.js";
4
2
  import Content from "./Content.js";
5
3
  import Relay from "./Relay.js";
6
4
  import RelayDeclaration from "./RelayDeclaration.js";
5
+ import { hasIsolatedTarget } from "./utils.js";
6
+ import { createPageAccessRequirements, getContentChunkName, validateContentStyles } from "./bundler.js";
7
+ import { createRelayModule, RelayModuleName } from "./relay-module.js";
7
8
  import { definePlugin } from "./../../../main/plugin.js";
8
- import { EntrypointPlugin, onlyViaTopLevelEntry } from "./../../../cli/bundler/index.js";
9
- import { getResolvePath, getSourcePath } from "./../../../cli/resolvers/path.js";
9
+ import { PageFinder } from "./../../../cli/entrypoint/index.js";
10
+ import { getContentLayer } from "./../../../cli/bundler/layers.js";
11
+ import {
12
+ appFilenameResolver,
13
+ ChunkLoaderPlugin,
14
+ EntrypointPlugin,
15
+ onlyViaTopLevelEntry,
16
+ IsolatedStylesPlugin,
17
+ ResourceAccessPlugin,
18
+ GenerateModulePlugin
19
+ } from "./../../../cli/bundler/index.js";
10
20
  import { Command } from "./../../../types/app.js";
21
+ import { ContentScriptStylesRuntimeProperty, ContentScriptWorld } from "./../../../types/content/index.js";
11
22
  var content_default = definePlugin(() => {
12
- let content;
13
- let relay;
14
- let manager;
23
+ let contentProvider;
24
+ let relayProvider;
25
+ let contentManager;
15
26
  let relayDeclaration;
16
27
  return {
17
28
  name: "adnbn:content",
18
- startup: async ({ config }) => {
19
- content = new Content(config);
20
- relay = new Relay(config);
21
- manager = new ContentManager(config).provider(content).provider(relay);
29
+ startup: ({ config }) => {
30
+ contentProvider = new Content(config);
31
+ relayProvider = new Relay(config);
32
+ contentManager = new ContentManager(config).provider(contentProvider).provider(relayProvider);
22
33
  relayDeclaration = new RelayDeclaration(config);
23
34
  },
24
- content: () => content.files(),
25
- relay: () => relay.files(),
35
+ content: () => contentProvider.files(),
36
+ relay: () => relayProvider.files(),
26
37
  bundler: async ({ config }) => {
27
- relayDeclaration.dictionary(await relay.dictionary()).build();
28
- let rspack = {};
29
- let options = {};
30
- if (await manager.empty()) {
38
+ relayDeclaration.dictionary(await relayProvider.dictionary()).build();
39
+ let entryOptionsByName = await contentManager.entryOptions();
40
+ const getModules = async () => ({
41
+ [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap())
42
+ });
43
+ const modulePlugin = new GenerateModulePlugin(await getModules());
44
+ if (config.command === Command.Watch) {
45
+ modulePlugin.watch(getModules);
46
+ }
47
+ const basePlugins = [
48
+ modulePlugin,
49
+ new ResourceAccessPlugin({
50
+ requirements: async () => {
51
+ if (!Array.from(entryOptionsByName.values()).some(
52
+ (options) => {
53
+ var _a;
54
+ return ((_a = options.isolation) == null ? void 0 : _a.page) !== void 0;
55
+ }
56
+ )) {
57
+ return [];
58
+ }
59
+ const views = await new PageFinder(config).views();
60
+ const pages = new Map(Array.from(views.values(), (view) => [view.alias, view.filename]));
61
+ return createPageAccessRequirements(entryOptionsByName, pages);
62
+ }
63
+ })
64
+ ];
65
+ if (await contentManager.empty()) {
31
66
  if (config.debug) {
32
67
  console.warn("Content script or relay entries not found");
33
68
  }
34
- } else {
35
- options = await relay.getOptionsMap();
36
- const plugin = EntrypointPlugin.from(await manager.entries()).virtual((file) => manager.virtual(file));
37
- if (config.command === Command.Watch) {
38
- plugin.watch(async () => {
39
- manager.clear();
40
- relayDeclaration.dictionary(await relay.dictionary()).build();
41
- return manager.entries();
42
- });
69
+ return { plugins: basePlugins };
70
+ }
71
+ const entries = await contentManager.entries();
72
+ const getEntryWorld = (name) => {
73
+ const options = entryOptionsByName.get(name);
74
+ if (!options) {
75
+ throw new Error(`Execution world for content entrypoint "${name}" is unavailable`);
43
76
  }
44
- const entryTypeFilter = onlyViaTopLevelEntry(["content", "relay"]);
45
- rspack = {
46
- plugins: [plugin],
47
- optimization: {
48
- splitChunks: {
49
- cacheGroups: {
50
- adnbnContent: {
51
- minChunks: 2,
52
- name: manager.chunkName(),
53
- test: (module, context) => {
54
- const nm = module;
55
- if (!nm.resource) {
56
- return false;
57
- }
58
- if (nm.resource.startsWith(getResolvePath(getSourcePath(config)))) {
59
- return false;
60
- }
61
- return entryTypeFilter(module, context);
62
- },
63
- chunks: (chunk) => {
64
- return manager.likely(chunk.name);
65
- },
66
- enforce: false,
67
- reuseExistingChunk: true,
68
- priority: 20
69
- }
70
- }
71
- }
72
- }
77
+ return options.world === ContentScriptWorld.Main ? ContentScriptWorld.Main : ContentScriptWorld.Isolated;
78
+ };
79
+ const entrypointPlugin = EntrypointPlugin.from(entries).virtual((file) => contentManager.virtual(file)).entryOptions((name) => {
80
+ const world = getEntryWorld(name);
81
+ return {
82
+ // MAIN cannot resolve an installed extension URL without crossing contexts.
83
+ // ISOLATED keeps physical async chunks and resolves them through the extension API.
84
+ asyncChunks: world === ContentScriptWorld.Isolated,
85
+ layer: getContentLayer(world),
86
+ publicPath: ""
73
87
  };
88
+ });
89
+ if (config.command === Command.Watch) {
90
+ entrypointPlugin.watch(async () => {
91
+ contentManager.clear();
92
+ relayDeclaration.dictionary(await relayProvider.dictionary()).build();
93
+ const entries2 = await contentManager.entries();
94
+ entryOptionsByName = await contentManager.entryOptions();
95
+ return entries2;
96
+ });
74
97
  }
75
- return mergeConfig(rspack, {
76
- plugins: [
77
- new DefinePlugin({
78
- __ADNBN_RELAY_OPTIONS__: JSON.stringify(options)
79
- })
80
- ]
98
+ const isContentModule = onlyViaTopLevelEntry(["content", "relay"]);
99
+ const createCacheGroup = (world) => ({
100
+ minChunks: 2,
101
+ name: getContentChunkName(world),
102
+ test: (module, context) => {
103
+ const normalModule = module;
104
+ if (!normalModule.resource) {
105
+ return false;
106
+ }
107
+ return isContentModule(module, context);
108
+ },
109
+ chunks: (chunk) => chunk.name !== void 0 && entryOptionsByName.has(chunk.name) && getEntryWorld(chunk.name) === world,
110
+ enforce: false,
111
+ reuseExistingChunk: false,
112
+ priority: 20
81
113
  });
114
+ return {
115
+ plugins: [
116
+ entrypointPlugin,
117
+ new ChunkLoaderPlugin({
118
+ test: (entry) => entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated
119
+ }),
120
+ new IsolatedStylesPlugin({
121
+ cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),
122
+ cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),
123
+ property: ContentScriptStylesRuntimeProperty,
124
+ test: (entry) => {
125
+ const options = entryOptionsByName.get(entry);
126
+ return options !== void 0 && hasIsolatedTarget(options);
127
+ },
128
+ validate: (entry, files) => validateContentStyles(entry, entryOptionsByName.get(entry), files)
129
+ }),
130
+ ...basePlugins
131
+ ],
132
+ optimization: config.commonChunks ? {
133
+ splitChunks: {
134
+ cacheGroups: {
135
+ adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),
136
+ adnbnContentMain: createCacheGroup(ContentScriptWorld.Main)
137
+ }
138
+ }
139
+ } : void 0
140
+ };
82
141
  },
83
142
  manifest: async ({ manifest }) => {
84
- manifest.setContentScripts(await manager.manifest()).appendHostPermissions(await manager.hostPermissions()).appendOptionalHostPermissions(await manager.optionalHostPermissions()).appendPermissions(await manager.permissions()).appendOptionalPermissions(await manager.optionalPermissions());
143
+ manifest.setContentScripts(await contentManager.manifest()).appendHostPermissions(await contentManager.hostPermissions()).appendOptionalHostPermissions(await contentManager.optionalHostPermissions()).appendPermissions(await contentManager.permissions()).appendOptionalPermissions(await contentManager.optionalPermissions());
85
144
  }
86
145
  };
87
146
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, DefinePlugin, NormalModule} from \"@rspack/core\";\nimport {merge as mergeConfig} from \"webpack-merge\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, onlyViaTopLevelEntry} from \"@cli/bundler\";\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nimport {Command} from \"@typing/app\";\nimport {RelayOptions} from \"@typing/relay\";\n\nexport default definePlugin(() => {\n let content: Content;\n let relay: Relay;\n let manager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: async ({config}) => {\n content = new Content(config);\n relay = new Relay(config);\n\n // prettier-ignore\n manager = new ContentManager(config)\n .provider(content)\n .provider(relay);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => content.files(),\n relay: () => relay.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n let rspack: RspackConfig = {};\n let options: Record<string, RelayOptions> = {};\n\n if (await manager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n } else {\n options = await relay.getOptionsMap();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await manager.entries())\n .virtual(file => manager.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n manager.clear();\n\n relayDeclaration.dictionary(await relay.dictionary()).build();\n\n return manager.entries();\n });\n }\n\n const entryTypeFilter = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n rspack = {\n plugins: [plugin],\n optimization: {\n splitChunks: {\n cacheGroups: {\n adnbnContent: {\n minChunks: 2,\n name: manager.chunkName(),\n test: (module, context) => {\n const nm = module as NormalModule;\n\n if (!nm.resource) {\n return false;\n }\n\n if (nm.resource.startsWith(getResolvePath(getSourcePath(config)))) {\n return false;\n }\n\n return entryTypeFilter(module, context);\n },\n chunks: (chunk): boolean => {\n return manager.likely(chunk.name);\n },\n enforce: false,\n reuseExistingChunk: true,\n priority: 20,\n },\n },\n },\n },\n };\n }\n\n return mergeConfig(rspack, {\n plugins: [\n new DefinePlugin({\n __ADNBN_RELAY_OPTIONS__: JSON.stringify(options),\n }),\n ],\n });\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await manager.manifest())\n .appendHostPermissions(await manager.hostPermissions())\n .appendOptionalHostPermissions(await manager.optionalHostPermissions())\n .appendPermissions(await manager.permissions())\n .appendOptionalPermissions(await manager.optionalPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,oBAAiC;AACxE,SAAQ,SAAS,mBAAkB;AAEnC,OAAO,oBAAoB;AAC3B,OAAO,aAAa;AACpB,OAAO,WAAW;AAClB,OAAO,sBAAsB;AAE7B,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,gBAAgB,qBAAoB;AAE5C,SAAQ,eAAc;AAGtB,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,cAAQ,IAAI,MAAM,MAAM;AAGxB,gBAAU,IAAI,eAAe,MAAM,EAC9B,SAAS,OAAO,EAChB,SAAS,KAAK;AAEnB,yBAAmB,IAAI,iBAAiB,MAAM;AAAA,IAClD;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,uBAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,UAAI,SAAuB,CAAC;AAC5B,UAAI,UAAwC,CAAC;AAE7C,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2CAA2C;AAAA,QAC5D;AAAA,MACJ,OAAO;AACH,kBAAU,MAAM,MAAM,cAAc;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,QAAQ,CAAC,EACvD,QAAQ,UAAQ,QAAQ,QAAQ,IAAI,CAAC;AAE1C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,oBAAQ,MAAM;AAEd,6BAAiB,WAAW,MAAM,MAAM,WAAW,CAAC,EAAE,MAAM;AAE5D,mBAAO,QAAQ,QAAQ;AAAA,UAC3B,CAAC;AAAA,QACL;AAEA,cAAM,kBAAkB,qBAAqB,CAAC,WAAW,OAAO,CAAC;AAEjE,iBAAS;AAAA,UACL,SAAS,CAAC,MAAM;AAAA,UAChB,cAAc;AAAA,YACV,aAAa;AAAA,cACT,aAAa;AAAA,gBACT,cAAc;AAAA,kBACV,WAAW;AAAA,kBACX,MAAM,QAAQ,UAAU;AAAA,kBACxB,MAAM,CAAC,QAAQ,YAAY;AACvB,0BAAM,KAAK;AAEX,wBAAI,CAAC,GAAG,UAAU;AACd,6BAAO;AAAA,oBACX;AAEA,wBAAI,GAAG,SAAS,WAAW,eAAe,cAAc,MAAM,CAAC,CAAC,GAAG;AAC/D,6BAAO;AAAA,oBACX;AAEA,2BAAO,gBAAgB,QAAQ,OAAO;AAAA,kBAC1C;AAAA,kBACA,QAAQ,CAAC,UAAmB;AACxB,2BAAO,QAAQ,OAAO,MAAM,IAAI;AAAA,kBACpC;AAAA,kBACA,SAAS;AAAA,kBACT,oBAAoB;AAAA,kBACpB,UAAU;AAAA,gBACd;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO,YAAY,QAAQ;AAAA,QACvB,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,yBAAyB,KAAK,UAAU,OAAO;AAAA,UACnD,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAE5B,eACK,kBAAkB,MAAM,QAAQ,SAAS,CAAC,EAC1C,sBAAsB,MAAM,QAAQ,gBAAgB,CAAC,EACrD,8BAA8B,MAAM,QAAQ,wBAAwB,CAAC,EACrE,kBAAkB,MAAM,QAAQ,YAAY,CAAC,EAC7C,0BAA0B,MAAM,QAAQ,oBAAoB,CAAC;AAAA,IACtE;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import type {Chunk, Configuration as RspackConfig, NormalModule, Plugins} from \"@rspack/core\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\nimport {hasIsolatedTarget} from \"./utils\";\nimport {createPageAccessRequirements, getContentChunkName, validateContentStyles} from \"./bundler\";\nimport {createRelayModule, RelayModuleName} from \"./relay-module\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {PageFinder} from \"@cli/entrypoint/index.js\";\nimport {getContentLayer} from \"@cli/bundler/layers\";\n\nimport {\n appFilenameResolver,\n ChunkLoaderPlugin,\n EntrypointPlugin,\n onlyViaTopLevelEntry,\n IsolatedStylesPlugin,\n ResourceAccessPlugin,\n GenerateModulePlugin,\n} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {ContentScriptStylesRuntimeProperty, ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let contentProvider: Content;\n let relayProvider: Relay;\n let contentManager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: ({config}) => {\n contentProvider = new Content(config);\n relayProvider = new Relay(config);\n\n // prettier-ignore\n contentManager = new ContentManager(config)\n .provider(contentProvider)\n .provider(relayProvider);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => contentProvider.files(),\n relay: () => relayProvider.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n let entryOptionsByName = await contentManager.entryOptions();\n\n const getModules = async () => ({\n [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap()),\n });\n const modulePlugin = new GenerateModulePlugin(await getModules());\n\n if (config.command === Command.Watch) {\n modulePlugin.watch(getModules);\n }\n\n const basePlugins: Plugins = [\n modulePlugin,\n new ResourceAccessPlugin({\n requirements: async () => {\n if (\n !Array.from(entryOptionsByName.values()).some(\n options => options.isolation?.page !== undefined\n )\n ) {\n return [];\n }\n\n const views = await new PageFinder(config).views();\n const pages = new Map(Array.from(views.values(), view => [view.alias, view.filename]));\n return createPageAccessRequirements(entryOptionsByName, pages);\n },\n }),\n ];\n\n if (await contentManager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n\n return {plugins: basePlugins};\n }\n\n const entries = await contentManager.entries();\n const getEntryWorld = (name: string): ContentScriptWorld => {\n const options = entryOptionsByName.get(name);\n\n if (!options) {\n throw new Error(`Execution world for content entrypoint \"${name}\" is unavailable`);\n }\n\n return options.world === ContentScriptWorld.Main\n ? ContentScriptWorld.Main\n : ContentScriptWorld.Isolated;\n };\n\n // prettier-ignore\n const entrypointPlugin = EntrypointPlugin.from(entries)\n .virtual(file => contentManager.virtual(file))\n .entryOptions(name => {\n const world = getEntryWorld(name);\n\n return {\n // MAIN cannot resolve an installed extension URL without crossing contexts.\n // ISOLATED keeps physical async chunks and resolves them through the extension API.\n asyncChunks: world === ContentScriptWorld.Isolated,\n layer: getContentLayer(world),\n publicPath: \"\",\n };\n });\n\n if (config.command === Command.Watch) {\n entrypointPlugin.watch(async () => {\n contentManager.clear();\n\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n const entries = await contentManager.entries();\n entryOptionsByName = await contentManager.entryOptions();\n\n return entries;\n });\n }\n\n const isContentModule = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n const createCacheGroup = (world: ContentScriptWorld) => ({\n minChunks: 2,\n name: getContentChunkName(world),\n test: (\n module: Parameters<typeof isContentModule>[0],\n context: Parameters<typeof isContentModule>[1]\n ) => {\n const normalModule = module as NormalModule;\n\n if (!normalModule.resource) {\n return false;\n }\n\n return isContentModule(module, context);\n },\n chunks: (chunk: Chunk): boolean =>\n chunk.name !== undefined &&\n entryOptionsByName.has(chunk.name) &&\n getEntryWorld(chunk.name) === world,\n enforce: false,\n reuseExistingChunk: false,\n priority: 20,\n });\n\n return {\n plugins: [\n entrypointPlugin,\n new ChunkLoaderPlugin({\n test: entry =>\n entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated,\n }),\n new IsolatedStylesPlugin({\n cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n property: ContentScriptStylesRuntimeProperty,\n test: entry => {\n const options = entryOptionsByName.get(entry);\n return options !== undefined && hasIsolatedTarget(options);\n },\n validate: (entry, files) => validateContentStyles(entry, entryOptionsByName.get(entry), files),\n }),\n ...basePlugins,\n ],\n optimization: config.commonChunks\n ? {\n splitChunks: {\n cacheGroups: {\n adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),\n adnbnContentMain: createCacheGroup(ContentScriptWorld.Main),\n },\n },\n }\n : undefined,\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await contentManager.manifest())\n .appendHostPermissions(await contentManager.hostPermissions())\n .appendOptionalHostPermissions(await contentManager.optionalHostPermissions())\n .appendPermissions(await contentManager.permissions())\n .appendOptionalPermissions(await contentManager.optionalPermissions());\n },\n };\n});\n"],"mappings":"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","names":["entries"]}
@@ -0,0 +1,3 @@
1
+ import type { RelayOptions } from "../../../types/relay.js";
2
+ export declare const RelayModuleName = "#adnbn/relay";
3
+ export declare const createRelayModule: (options: Record<string, RelayOptions>) => string;
@@ -0,0 +1,11 @@
1
+ const RelayModuleName = "#adnbn/relay";
2
+ const createRelayModule = (options) => (
3
+ // Preserve the JSON payload, including omitted optional values, without retaining unused data.
4
+ `export const options = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(options))});
5
+ `
6
+ );
7
+ export {
8
+ RelayModuleName,
9
+ createRelayModule
10
+ };
11
+ //# sourceMappingURL=relay-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/relay-module.ts"],"sourcesContent":["import type {RelayOptions} from \"@typing/relay\";\n\nexport const RelayModuleName = \"#adnbn/relay\";\n\nexport const createRelayModule = (options: Record<string, RelayOptions>): string =>\n // Preserve the JSON payload, including omitted optional values, without retaining unused data.\n `export const options = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(options))});\\n`;\n"],"mappings":"AAEO,MAAM,kBAAkB;AAExB,MAAM,oBAAoB,CAAC;AAAA;AAAA,EAE9B,mDAAmD,KAAK,UAAU,KAAK,UAAU,OAAO,CAAC,CAAC;AAAA;AAAA;","names":[]}
@@ -1,4 +1,4 @@
1
- import { ContentScriptEntrypointOptions } from "../../../types/content.js";
1
+ import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
2
2
  import { EntrypointFile } from "../../../types/entrypoint.js";
3
3
  import { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
4
4
  export interface ContentItem<O extends ContentScriptEntrypointOptions> {
@@ -16,7 +16,7 @@ export interface ContentDriver<O extends ContentScriptEntrypointOptions> {
16
16
  optionalPermissions(): Promise<ManifestOptionalPermissions>;
17
17
  }
18
18
  export interface ContentProvider<O extends ContentScriptEntrypointOptions> {
19
- virtual(file: EntrypointFile): string;
19
+ virtual(file: EntrypointFile, options?: ContentScriptEntrypointOptions): string;
20
20
  driver(): ContentDriver<O>;
21
21
  clear(): this;
22
22
  }
@@ -1,2 +1,4 @@
1
- import { ContentScriptConfig, ContentScriptEntrypointOptions } from "../../../types/content.js";
1
+ import { ContentScriptConfig, ContentScriptEntrypointOptions } from "../../../types/content/index.js";
2
+ /** ShadowRoot or a blank iframe provides a local target for isolated styles and UI. */
3
+ export declare const hasIsolatedTarget: (options: ContentScriptEntrypointOptions) => boolean;
2
4
  export declare const getContentScriptConfigFromOptions: (options: ContentScriptEntrypointOptions) => ContentScriptConfig;
@@ -1,4 +1,10 @@
1
1
  import _ from "lodash";
2
+ import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
3
+ import { ContentScriptIsolation } from "./../../../types/content/index.js";
4
+ const hasIsolatedTarget = (options) => {
5
+ var _a, _b;
6
+ return ((_a = options.isolation) == null ? void 0 : _a.type) === ContentScriptIsolation.Shadow || ((_b = options.isolation) == null ? void 0 : _b.type) === ContentScriptIsolation.Iframe && !isContentScriptFrameNavigation(options.isolation);
7
+ };
2
8
  const getContentScriptConfigFromOptions = (options) => {
3
9
  const config = _.pick(options, [
4
10
  "matches",
@@ -21,6 +27,7 @@ const getContentScriptConfigFromOptions = (options) => {
21
27
  };
22
28
  };
23
29
  export {
24
- getContentScriptConfigFromOptions
30
+ getContentScriptConfigFromOptions,
31
+ hasIsolatedTarget
25
32
  };
26
33
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/utils.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {ContentScriptConfig, ContentScriptEntrypointOptions} from \"@typing/content\";\n\nexport const getContentScriptConfigFromOptions = (options: ContentScriptEntrypointOptions): ContentScriptConfig => {\n const config = _.pick(options, [\n \"matches\",\n \"excludeMatches\",\n \"includeGlobs\",\n \"excludeGlobs\",\n \"allFrames\",\n \"runAt\",\n \"world\",\n \"matchAboutBlank\",\n \"matchOriginAsFallback\",\n ]) as ContentScriptConfig;\n\n const sort = (arr?: string[]) => arr?.toSorted((a, b) => a.localeCompare(b));\n\n return {\n ...config,\n matches: sort(config.matches),\n excludeMatches: sort(config.excludeMatches),\n includeGlobs: sort(config.includeGlobs),\n excludeGlobs: sort(config.excludeGlobs),\n };\n};\n"],"mappings":"AAAA,OAAO,OAAO;AAIP,MAAM,oCAAoC,CAAC,YAAiE;AAC/G,QAAM,SAAS,EAAE,KAAK,SAAS;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,QAAM,OAAO,CAAC,QAAmB,2BAAK,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC;AAE1E,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS,KAAK,OAAO,OAAO;AAAA,IAC5B,gBAAgB,KAAK,OAAO,cAAc;AAAA,IAC1C,cAAc,KAAK,OAAO,YAAY;AAAA,IACtC,cAAc,KAAK,OAAO,YAAY;AAAA,EAC1C;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/utils.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {isContentScriptFrameNavigation} from \"@shared/content\";\n\nimport {ContentScriptConfig, ContentScriptEntrypointOptions, ContentScriptIsolation} from \"@typing/content\";\n\n/** ShadowRoot or a blank iframe provides a local target for isolated styles and UI. */\nexport const hasIsolatedTarget = (options: ContentScriptEntrypointOptions): boolean =>\n options.isolation?.type === ContentScriptIsolation.Shadow ||\n (options.isolation?.type === ContentScriptIsolation.Iframe && !isContentScriptFrameNavigation(options.isolation));\n\nexport const getContentScriptConfigFromOptions = (options: ContentScriptEntrypointOptions): ContentScriptConfig => {\n const config = _.pick(options, [\n \"matches\",\n \"excludeMatches\",\n \"includeGlobs\",\n \"excludeGlobs\",\n \"allFrames\",\n \"runAt\",\n \"world\",\n \"matchAboutBlank\",\n \"matchOriginAsFallback\",\n ]) as ContentScriptConfig;\n\n const sort = (arr?: string[]) => arr?.toSorted((a, b) => a.localeCompare(b));\n\n return {\n ...config,\n matches: sort(config.matches),\n excludeMatches: sort(config.excludeMatches),\n includeGlobs: sort(config.includeGlobs),\n excludeGlobs: sort(config.excludeGlobs),\n };\n};\n"],"mappings":"AAAA,OAAO,OAAO;AACd,SAAQ,sCAAqC;AAE7C,SAA6D,8BAA6B;AAGnF,MAAM,oBAAoB,CAAC,YAAkD;AANpF;AAOI,wBAAQ,cAAR,mBAAmB,UAAS,uBAAuB,YAClD,aAAQ,cAAR,mBAAmB,UAAS,uBAAuB,UAAU,CAAC,+BAA+B,QAAQ,SAAS;AAAA;AAE5G,MAAM,oCAAoC,CAAC,YAAiE;AAC/G,QAAM,SAAS,EAAE,KAAK,SAAS;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAED,QAAM,OAAO,CAAC,QAAmB,2BAAK,SAAS,CAAC,GAAG,MAAM,EAAE,cAAc,CAAC;AAE1E,SAAO;AAAA,IACH,GAAG;AAAA,IACH,SAAS,KAAK,OAAO,OAAO;AAAA,IAC5B,gBAAgB,KAAK,OAAO,cAAc;AAAA,IAC1C,cAAc,KAAK,OAAO,YAAY;AAAA,IACtC,cAAc,KAAK,OAAO,YAAY;AAAA,EAC1C;AACJ;","names":[]}