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,6 +1,6 @@
1
1
  import { FileBuilder } from "../../../plugins/typescript/index.js";
2
2
  import { ReadonlyConfig } from "../../../../types/config.js";
3
- export default class extends FileBuilder {
3
+ export default class IconDeclaration extends FileBuilder {
4
4
  protected names: Set<string>;
5
5
  constructor(config: ReadonlyConfig);
6
6
  protected filename(): string;
@@ -1,5 +1,5 @@
1
1
  import { FileBuilder } from "./../../../../cli/plugins/typescript/index.js";
2
- class IconDeclaration_default extends FileBuilder {
2
+ class IconDeclaration extends FileBuilder {
3
3
  names = /* @__PURE__ */ new Set();
4
4
  constructor(config) {
5
5
  super(config);
@@ -12,10 +12,10 @@ class IconDeclaration_default extends FileBuilder {
12
12
  }
13
13
  template() {
14
14
  let content = this.readFile();
15
- if (this.names.size > 0) {
16
- const type = '"' + Array.from(this.names).join('" | "') + '"';
17
- content = content.replace("type IconName = string", `type IconName = ${type}`);
18
- }
15
+ content = content.replace(
16
+ "// :icon-names",
17
+ Array.from(this.names, (name) => `${JSON.stringify(name)}: true;`).join("\n ")
18
+ );
19
19
  return content;
20
20
  }
21
21
  setNames(names) {
@@ -24,6 +24,6 @@ class IconDeclaration_default extends FileBuilder {
24
24
  }
25
25
  }
26
26
  export {
27
- IconDeclaration_default as default
27
+ IconDeclaration as default
28
28
  };
29
29
  //# sourceMappingURL=IconDeclaration.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/plugins/icon/declaration/IconDeclaration.ts"],"sourcesContent":["import {FileBuilder} from \"@cli/plugins/typescript\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class extends FileBuilder {\n protected names = new Set<string>();\n\n constructor(config: ReadonlyConfig) {\n super(config);\n }\n\n protected filename(): string {\n return \"icon.d.ts\";\n }\n\n protected url(): string {\n return import.meta.url;\n }\n\n protected template(): string {\n let content = this.readFile();\n\n if (this.names.size > 0) {\n const type = '\"' + Array.from(this.names).join('\" | \"') + '\"';\n\n content = content.replace(\"type IconName = string\", `type IconName = ${type}`);\n }\n\n return content;\n }\n\n public setNames(names: Set<string>): this {\n this.names = names;\n\n return this;\n }\n}\n"],"mappings":"AAAA,SAAQ,mBAAkB;AAI1B,MAAO,gCAAsB,YAAY;AAAA,EAC3B,QAAQ,oBAAI,IAAY;AAAA,EAElC,YAAY,QAAwB;AAChC,UAAM,MAAM;AAAA,EAChB;AAAA,EAEU,WAAmB;AACzB,WAAO;AAAA,EACX;AAAA,EAEU,MAAc;AACpB,WAAO,YAAY;AAAA,EACvB;AAAA,EAEU,WAAmB;AACzB,QAAI,UAAU,KAAK,SAAS;AAE5B,QAAI,KAAK,MAAM,OAAO,GAAG;AACrB,YAAM,OAAO,MAAM,MAAM,KAAK,KAAK,KAAK,EAAE,KAAK,OAAO,IAAI;AAE1D,gBAAU,QAAQ,QAAQ,0BAA0B,mBAAmB,IAAI,EAAE;AAAA,IACjF;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,SAAS,OAA0B;AACtC,SAAK,QAAQ;AAEb,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/plugins/icon/declaration/IconDeclaration.ts"],"sourcesContent":["import {FileBuilder} from \"@cli/plugins/typescript\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class IconDeclaration extends FileBuilder {\n protected names = new Set<string>();\n\n constructor(config: ReadonlyConfig) {\n super(config);\n }\n\n protected filename(): string {\n return \"icon.d.ts\";\n }\n\n protected url(): string {\n return import.meta.url;\n }\n\n protected template(): string {\n let content = this.readFile();\n\n content = content.replace(\n \"// :icon-names\",\n Array.from(this.names, name => `${JSON.stringify(name)}: true;`).join(\"\\n \")\n );\n\n return content;\n }\n\n public setNames(names: Set<string>): this {\n this.names = names;\n\n return this;\n }\n}\n"],"mappings":"AAAA,SAAQ,mBAAkB;AAI1B,MAAO,wBAAsC,YAAY;AAAA,EAC3C,QAAQ,oBAAI,IAAY;AAAA,EAElC,YAAY,QAAwB;AAChC,UAAM,MAAM;AAAA,EAChB;AAAA,EAEU,WAAmB;AACzB,WAAO;AAAA,EACX;AAAA,EAEU,MAAc;AACpB,WAAO,YAAY;AAAA,EACvB;AAAA,EAEU,WAAmB;AACzB,QAAI,UAAU,KAAK,SAAS;AAE5B,cAAU,QAAQ;AAAA,MACd;AAAA,MACA,MAAM,KAAK,KAAK,OAAO,UAAQ,GAAG,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,KAAK,YAAY;AAAA,IACtF;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,SAAS,OAA0B;AACtC,SAAK,QAAQ;AAEb,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,9 +1,7 @@
1
1
  import ":package";
2
2
 
3
3
  declare module ":package" {
4
- export type IconName = string;
5
-
6
- export function changeActionIcon(icon?: IconName, tab?: number | chrome.tabs.Tab): Promise<void>;
7
-
8
- export function changeSidebarIcon(icon?: IconName, tab?: number | chrome.tabs.Tab): Promise<void>;
4
+ export interface IconNameRegistry {
5
+ // :icon-names
6
+ }
9
7
  }
@@ -0,0 +1,2 @@
1
+ export declare const IconModuleName = "#adnbn/icon";
2
+ export declare const createIconModule: (groups: Record<string, Record<number, string>>) => string;
@@ -0,0 +1,11 @@
1
+ const IconModuleName = "#adnbn/icon";
2
+ const createIconModule = (groups) => (
3
+ // Preserve own __proto__ keys and allow unused data to be removed from optimized bundles.
4
+ `export const groups = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(groups))});
5
+ `
6
+ );
7
+ export {
8
+ IconModuleName,
9
+ createIconModule
10
+ };
11
+ //# sourceMappingURL=icon-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/icon/icon-module.ts"],"sourcesContent":["export const IconModuleName = \"#adnbn/icon\";\n\nexport const createIconModule = (groups: Record<string, Record<number, string>>): string =>\n // Preserve own __proto__ keys and allow unused data to be removed from optimized bundles.\n `export const groups = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(groups))});\\n`;\n"],"mappings":"AAAO,MAAM,iBAAiB;AAEvB,MAAM,mBAAmB,CAAC;AAAA;AAAA,EAE7B,kDAAkD,KAAK,UAAU,KAAK,UAAU,MAAM,CAAC,CAAC;AAAA;AAAA;","names":[]}
@@ -1,6 +1,8 @@
1
- import { CopyRspackPlugin, DefinePlugin } from "@rspack/core";
1
+ import { CopyRspackPlugin } from "@rspack/core";
2
2
  import { definePlugin } from "./../../../main/plugin.js";
3
+ import { GenerateModulePlugin } from "./../../../cli/bundler/index.js";
3
4
  import Icon from "./Icon.js";
5
+ import { createIconModule, IconModuleName } from "./icon-module.js";
4
6
  import { IconDeclaration } from "./declaration/index.js";
5
7
  var icon_default = definePlugin(() => {
6
8
  let icon;
@@ -17,8 +19,8 @@ var icon_default = definePlugin(() => {
17
19
  new CopyRspackPlugin({
18
20
  patterns: await icon.copy()
19
21
  }),
20
- new DefinePlugin({
21
- __ADNBN_ICONS__: JSON.stringify(await icon.define())
22
+ new GenerateModulePlugin({
23
+ [IconModuleName]: createIconModule(await icon.define())
22
24
  })
23
25
  ]
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/icon/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, CopyRspackPlugin, DefinePlugin} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport Icon, {CopyPatterns, IconDefinition} from \"./Icon\";\n\nimport {IconDeclaration} from \"./declaration\";\n\nexport {Icon, type IconDefinition, type CopyPatterns};\n\nexport default definePlugin(() => {\n let icon: Icon;\n\n return {\n name: \"adnbn:icon\",\n startup: ({config}) => {\n icon = new Icon(config);\n },\n icon: () => icon.files(),\n bundler: async ({config}) => {\n new IconDeclaration(config).setNames(await icon.names()).build();\n\n return {\n plugins: [\n new CopyRspackPlugin({\n patterns: await icon.copy(),\n }),\n new DefinePlugin({\n __ADNBN_ICONS__: JSON.stringify(await icon.define()),\n }),\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.setIcons(await icon.manifest()).setIcon(config.icon);\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,kBAAkB,oBAAmB;AAE5E,SAAQ,oBAAmB;AAE3B,OAAO,UAA0C;AAEjD,SAAQ,uBAAsB;AAI9B,IAAO,eAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B;AAAA,IACA,MAAM,MAAM,KAAK,MAAM;AAAA,IACvB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,UAAI,gBAAgB,MAAM,EAAE,SAAS,MAAM,KAAK,MAAM,CAAC,EAAE,MAAM;AAE/D,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,iBAAiB;AAAA,YACjB,UAAU,MAAM,KAAK,KAAK;AAAA,UAC9B,CAAC;AAAA,UACD,IAAI,aAAa;AAAA,YACb,iBAAiB,KAAK,UAAU,MAAM,KAAK,OAAO,CAAC;AAAA,UACvD,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,SAAS,MAAM,KAAK,SAAS,CAAC,EAAE,QAAQ,OAAO,IAAI;AAAA,IAChE;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/icon/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, CopyRspackPlugin} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {GenerateModulePlugin} from \"@cli/bundler\";\n\nimport Icon, {CopyPatterns, IconDefinition} from \"./Icon\";\nimport {createIconModule, IconModuleName} from \"./icon-module\";\n\nimport {IconDeclaration} from \"./declaration\";\n\nexport {Icon, type IconDefinition, type CopyPatterns};\n\nexport default definePlugin(() => {\n let icon: Icon;\n\n return {\n name: \"adnbn:icon\",\n startup: ({config}) => {\n icon = new Icon(config);\n },\n icon: () => icon.files(),\n bundler: async ({config}) => {\n new IconDeclaration(config).setNames(await icon.names()).build();\n\n return {\n plugins: [\n new CopyRspackPlugin({\n patterns: await icon.copy(),\n }),\n new GenerateModulePlugin({\n [IconModuleName]: createIconModule(await icon.define()),\n }),\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.setIcons(await icon.manifest()).setIcon(config.icon);\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAuB;AAE9D,SAAQ,oBAAmB;AAC3B,SAAQ,4BAA2B;AAEnC,OAAO,UAA0C;AACjD,SAAQ,kBAAkB,sBAAqB;AAE/C,SAAQ,uBAAsB;AAI9B,IAAO,eAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B;AAAA,IACA,MAAM,MAAM,KAAK,MAAM;AAAA,IACvB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,UAAI,gBAAgB,MAAM,EAAE,SAAS,MAAM,KAAK,MAAM,CAAC,EAAE,MAAM;AAE/D,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,iBAAiB;AAAA,YACjB,UAAU,MAAM,KAAK,KAAK;AAAA,UAC9B,CAAC;AAAA,UACD,IAAI,qBAAqB;AAAA,YACrB,CAAC,cAAc,GAAG,iBAAiB,MAAM,KAAK,OAAO,CAAC;AAAA,UAC1D,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,SAAS,MAAM,KAAK,SAAS,CAAC,EAAE,QAAQ,OAAO,IAAI;AAAA,IAChE;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -6,7 +6,7 @@ export { default as pluginDotenv } from "./dotenv/index.js";
6
6
  export { default as pluginHtml } from "./html.js";
7
7
  export { default as pluginManifest } from "./manifest.js";
8
8
  export { default as pluginOptimization } from "./optimization.js";
9
- export { default as pluginOutput } from "./output.js";
9
+ export { default as pluginOutput } from "./output/index.js";
10
10
  export { default as pluginIcon } from "./icon/index.js";
11
11
  export { default as pluginLocale } from "./locale/index.js";
12
12
  export { default as pluginMeta } from "./meta/index.js";
@@ -6,7 +6,7 @@ import { default as default6 } from "./dotenv/index.js";
6
6
  import { default as default7 } from "./html.js";
7
7
  import { default as default8 } from "./manifest.js";
8
8
  import { default as default9 } from "./optimization.js";
9
- import { default as default10 } from "./output.js";
9
+ import { default as default10 } from "./output/index.js";
10
10
  import { default as default11 } from "./icon/index.js";
11
11
  import { default as default12 } from "./locale/index.js";
12
12
  import { default as default13 } from "./meta/index.js";
@@ -1,5 +1,12 @@
1
1
  import { LocaleFinder } from "../../entrypoint/index.js";
2
- import { GenerateJsonPluginData } from "../../bundler/index.js";
3
- export default class extends LocaleFinder {
2
+ import type { GenerateJsonPluginData, GenerateModulePluginDependencies } from "../../bundler/index.js";
3
+ import type { LocaleCatalogue } from "../../../types/locale.js";
4
+ export default class Locale extends LocaleFinder {
5
+ private _messages?;
6
+ dependencies(): Promise<GenerateModulePluginDependencies>;
4
7
  json(): Promise<GenerateJsonPluginData>;
8
+ catalogue(): Promise<LocaleCatalogue>;
9
+ private messages;
10
+ private createMessages;
11
+ clear(): this;
5
12
  }
@@ -1,20 +1,52 @@
1
- import { getLocaleFilename } from "./../../../locale/utils.js";
1
+ import path from "path";
2
2
  import { LocaleFinder } from "./../../../cli/entrypoint/index.js";
3
- class Locale_default extends LocaleFinder {
3
+ import { getSourcePath, getSharedPath, getAppPath, getAppSourcePath } from "./../../../cli/resolvers/path.js";
4
+ import { flattenLocaleMessages, getLocaleFilename } from "./../../../shared/locale/index.js";
5
+ class Locale extends LocaleFinder {
6
+ _messages;
7
+ async dependencies() {
8
+ const files = [...await this.plugin().files()].map(({ file }) => file);
9
+ const directory = this.getDirectory();
10
+ const directories = /* @__PURE__ */ new Set([
11
+ getSourcePath(this.config, directory),
12
+ getSharedPath(this.config, directory),
13
+ getAppPath(this.config, directory),
14
+ getAppSourcePath(this.config, directory),
15
+ ...files.map((file) => path.dirname(file))
16
+ ]);
17
+ return { files, directories };
18
+ }
4
19
  async json() {
20
+ return Object.fromEntries(
21
+ [...await this.messages()].map(([lang, messages]) => [getLocaleFilename(lang), messages])
22
+ );
23
+ }
24
+ async catalogue() {
25
+ return Object.fromEntries(
26
+ [...await this.messages()].map(([lang, messages]) => [lang, flattenLocaleMessages(messages)])
27
+ );
28
+ }
29
+ messages() {
30
+ return this._messages ?? (this._messages = this.createMessages());
31
+ }
32
+ async createMessages() {
5
33
  await this.validate();
6
- const data = {};
34
+ const data = /* @__PURE__ */ new Map();
7
35
  const builders = await this.builders();
8
36
  const defaultBuilder = this.getValidator().getDefaultBuilder(builders);
9
37
  const defaultMessages = (defaultBuilder == null ? void 0 : defaultBuilder.build()) ?? {};
10
38
  for (const builder of builders.values()) {
11
39
  const messages = builder === defaultBuilder ? defaultMessages : builder.build();
12
- data[getLocaleFilename(builder.lang())] = { ...defaultMessages, ...messages };
40
+ data.set(builder.lang(), { ...defaultMessages, ...messages });
13
41
  }
14
42
  return data;
15
43
  }
44
+ clear() {
45
+ this._messages = void 0;
46
+ return super.clear();
47
+ }
16
48
  }
17
49
  export {
18
- Locale_default as default
50
+ Locale as default
19
51
  };
20
52
  //# sourceMappingURL=Locale.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/locale/Locale.ts"],"sourcesContent":["import {getLocaleFilename} from \"@locale/utils\";\n\nimport {LocaleFinder} from \"@cli/entrypoint/index.js\";\nimport {GenerateJsonPluginData} from \"@cli/bundler\";\n\nexport default class extends LocaleFinder {\n public async json(): Promise<GenerateJsonPluginData> {\n await this.validate();\n\n const data: GenerateJsonPluginData = {};\n\n const builders = await this.builders();\n const defaultBuilder = this.getValidator().getDefaultBuilder(builders);\n const defaultMessages = defaultBuilder?.build() ?? {};\n\n for (const builder of builders.values()) {\n // Builders already include this app's layers and browser overrides.\n // Every target plural has been validated; only ordinary gaps remain.\n const messages = builder === defaultBuilder ? defaultMessages : builder.build();\n data[getLocaleFilename(builder.lang())] = {...defaultMessages, ...messages};\n }\n\n return data;\n }\n}\n"],"mappings":"AAAA,SAAQ,yBAAwB;AAEhC,SAAQ,oBAAmB;AAG3B,MAAO,uBAAsB,aAAa;AAAA,EACtC,MAAa,OAAwC;AACjD,UAAM,KAAK,SAAS;AAEpB,UAAM,OAA+B,CAAC;AAEtC,UAAM,WAAW,MAAM,KAAK,SAAS;AACrC,UAAM,iBAAiB,KAAK,aAAa,EAAE,kBAAkB,QAAQ;AACrE,UAAM,mBAAkB,iDAAgB,YAAW,CAAC;AAEpD,eAAW,WAAW,SAAS,OAAO,GAAG;AAGrC,YAAM,WAAW,YAAY,iBAAiB,kBAAkB,QAAQ,MAAM;AAC9E,WAAK,kBAAkB,QAAQ,KAAK,CAAC,CAAC,IAAI,EAAC,GAAG,iBAAiB,GAAG,SAAQ;AAAA,IAC9E;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/locale/Locale.ts"],"sourcesContent":["import path from \"path\";\nimport {LocaleFinder} from \"@cli/entrypoint/index.js\";\nimport type {GenerateJsonPluginData, GenerateModulePluginDependencies} from \"@cli/bundler\";\nimport {getSourcePath, getSharedPath, getAppPath, getAppSourcePath} from \"@cli/resolvers/path\";\n\nimport {flattenLocaleMessages, getLocaleFilename} from \"@shared/locale\";\n\nimport type {Language, LocaleCatalogue, LocaleMessages} from \"@typing/locale\";\n\nexport default class Locale extends LocaleFinder {\n private _messages?: Promise<Map<Language, LocaleMessages>>;\n\n public async dependencies(): Promise<GenerateModulePluginDependencies> {\n const files = [...(await this.plugin().files())].map(({file}) => file);\n const directory = this.getDirectory();\n const directories = new Set([\n getSourcePath(this.config, directory),\n getSharedPath(this.config, directory),\n getAppPath(this.config, directory),\n getAppSourcePath(this.config, directory),\n ...files.map(file => path.dirname(file)),\n ]);\n\n return {files, directories};\n }\n\n public async json(): Promise<GenerateJsonPluginData> {\n return Object.fromEntries(\n [...(await this.messages())].map(([lang, messages]) => [getLocaleFilename(lang), messages])\n );\n }\n\n public async catalogue(): Promise<LocaleCatalogue> {\n return Object.fromEntries(\n [...(await this.messages())].map(([lang, messages]) => [lang, flattenLocaleMessages(messages)])\n );\n }\n\n private messages(): Promise<Map<Language, LocaleMessages>> {\n return (this._messages ??= this.createMessages());\n }\n\n private async createMessages(): Promise<Map<Language, LocaleMessages>> {\n await this.validate();\n\n const data = new Map<Language, LocaleMessages>();\n\n const builders = await this.builders();\n const defaultBuilder = this.getValidator().getDefaultBuilder(builders);\n const defaultMessages = defaultBuilder?.build() ?? {};\n\n for (const builder of builders.values()) {\n // Builders already include this app's layers and browser overrides.\n // Every target plural has been validated; only ordinary gaps remain.\n const messages = builder === defaultBuilder ? defaultMessages : builder.build();\n\n data.set(builder.lang(), {...defaultMessages, ...messages});\n }\n\n return data;\n }\n\n public clear(): this {\n this._messages = undefined;\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAQ,oBAAmB;AAE3B,SAAQ,eAAe,eAAe,YAAY,wBAAuB;AAEzE,SAAQ,uBAAuB,yBAAwB;AAIvD,MAAO,eAA6B,aAAa;AAAA,EACrC;AAAA,EAER,MAAa,eAA0D;AACnE,UAAM,QAAQ,CAAC,GAAI,MAAM,KAAK,OAAO,EAAE,MAAM,CAAE,EAAE,IAAI,CAAC,EAAC,KAAI,MAAM,IAAI;AACrE,UAAM,YAAY,KAAK,aAAa;AACpC,UAAM,cAAc,oBAAI,IAAI;AAAA,MACxB,cAAc,KAAK,QAAQ,SAAS;AAAA,MACpC,cAAc,KAAK,QAAQ,SAAS;AAAA,MACpC,WAAW,KAAK,QAAQ,SAAS;AAAA,MACjC,iBAAiB,KAAK,QAAQ,SAAS;AAAA,MACvC,GAAG,MAAM,IAAI,UAAQ,KAAK,QAAQ,IAAI,CAAC;AAAA,IAC3C,CAAC;AAED,WAAO,EAAC,OAAO,YAAW;AAAA,EAC9B;AAAA,EAEA,MAAa,OAAwC;AACjD,WAAO,OAAO;AAAA,MACV,CAAC,GAAI,MAAM,KAAK,SAAS,CAAE,EAAE,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,kBAAkB,IAAI,GAAG,QAAQ,CAAC;AAAA,IAC9F;AAAA,EACJ;AAAA,EAEA,MAAa,YAAsC;AAC/C,WAAO,OAAO;AAAA,MACV,CAAC,GAAI,MAAM,KAAK,SAAS,CAAE,EAAE,IAAI,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,MAAM,sBAAsB,QAAQ,CAAC,CAAC;AAAA,IAClG;AAAA,EACJ;AAAA,EAEQ,WAAmD;AACvD,WAAQ,KAAK,cAAL,KAAK,YAAc,KAAK,eAAe;AAAA,EACnD;AAAA,EAEA,MAAc,iBAAyD;AACnE,UAAM,KAAK,SAAS;AAEpB,UAAM,OAAO,oBAAI,IAA8B;AAE/C,UAAM,WAAW,MAAM,KAAK,SAAS;AACrC,UAAM,iBAAiB,KAAK,aAAa,EAAE,kBAAkB,QAAQ;AACrE,UAAM,mBAAkB,iDAAgB,YAAW,CAAC;AAEpD,eAAW,WAAW,SAAS,OAAO,GAAG;AAGrC,YAAM,WAAW,YAAY,iBAAiB,kBAAkB,QAAQ,MAAM;AAE9E,WAAK,IAAI,QAAQ,KAAK,GAAG,EAAC,GAAG,iBAAiB,GAAG,SAAQ,CAAC;AAAA,IAC9D;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,QAAc;AACjB,SAAK,YAAY;AAEjB,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
@@ -2,7 +2,7 @@ import ":package/locale";
2
2
 
3
3
  declare module ":package/locale" {
4
4
  // prettier-ignore
5
- export interface LocaleNativeStructure {
5
+ export interface LocaleRegistry {
6
6
  __LOCALE_DICTIONARY__
7
7
  }
8
8
  }
@@ -1,12 +1,14 @@
1
1
  import _ from "lodash";
2
- import { DefinePlugin } from "@rspack/core";
3
2
  import { definePlugin } from "./../../../main/plugin.js";
4
- import { GenerateJsonPlugin } from "./../../../cli/bundler/index.js";
5
- import { extractLocaleKey, modifyLocaleMessageKey } from "./../../../locale/utils.js";
3
+ import { GenerateJsonPlugin, GenerateModulePlugin, WatchPlugin } from "./../../../cli/bundler/index.js";
4
+ import { getContentLayer } from "./../../../cli/bundler/layers.js";
5
+ import { extractLocaleKey, modifyLocaleMessageKey } from "./../../../shared/locale/index.js";
6
6
  import Locale from "./Locale.js";
7
7
  import { LocaleDeclaration } from "./declaration/index.js";
8
+ import { createLocaleModule, LocaleModuleLayer, LocaleModuleName } from "./locale-module.js";
8
9
  import { Command } from "./../../../types/app.js";
9
10
  import { Browser } from "./../../../types/browser.js";
11
+ import { ContentScriptWorld } from "./../../../types/content/index.js";
10
12
  var locale_default = definePlugin(() => {
11
13
  let locale;
12
14
  let declaration;
@@ -18,25 +20,58 @@ var locale_default = definePlugin(() => {
18
20
  },
19
21
  locale: () => locale.files(),
20
22
  bundler: async ({ config }) => {
21
- await locale.validate();
22
- declaration.structure(await locale.structure()).build();
23
- const plugin = new GenerateJsonPlugin(await locale.json());
23
+ const prepareLocale = async () => {
24
+ await locale.validate();
25
+ declaration.structure(await locale.structure()).build();
26
+ };
27
+ const getModules = async () => ({
28
+ [LocaleModuleName]: createLocaleModule(await locale.catalogue(), await locale.keys(), config.lang)
29
+ });
30
+ await prepareLocale();
31
+ const jsonPlugin = new GenerateJsonPlugin(await locale.json());
32
+ const modulePlugin = new GenerateModulePlugin(await getModules()).layer(LocaleModuleLayer, {
33
+ not: [getContentLayer(ContentScriptWorld.Main)]
34
+ });
35
+ const plugins = [];
24
36
  if (config.command === Command.Watch) {
25
- plugin.watch(async () => {
26
- locale.clear();
27
- await locale.validate();
28
- declaration.structure(await locale.structure()).build();
29
- return await locale.json();
30
- });
37
+ plugins.push(
38
+ new WatchPlugin(async () => {
39
+ locale.clear();
40
+ await prepareLocale();
41
+ })
42
+ );
43
+ jsonPlugin.watch(() => locale.json());
44
+ modulePlugin.watch(getModules, () => locale.dependencies());
31
45
  }
46
+ plugins.push(jsonPlugin, modulePlugin);
32
47
  return {
33
- plugins: [
34
- plugin,
35
- new DefinePlugin({
36
- __ADNBN_LOCALE_KEYS__: JSON.stringify([...await locale.keys()]),
37
- __ADNBN_DEFINED_LOCALES__: JSON.stringify([...await locale.languages()])
38
- })
39
- ]
48
+ plugins,
49
+ optimization: {
50
+ emitOnErrors: false,
51
+ splitChunks: config.commonChunks ? {
52
+ cacheGroups: {
53
+ adnbnLocaleShared: {
54
+ layer: LocaleModuleLayer,
55
+ name: "locale",
56
+ // Share the module across consumers of different exports.
57
+ usedExports: false,
58
+ minChunks: 2,
59
+ minSize: 0,
60
+ enforce: true,
61
+ priority: 60
62
+ },
63
+ adnbnLocaleLarge: {
64
+ layer: LocaleModuleLayer,
65
+ name: "locale",
66
+ usedExports: false,
67
+ minChunks: 1,
68
+ minSize: 1e5,
69
+ enforce: true,
70
+ priority: 70
71
+ }
72
+ }
73
+ } : void 0
74
+ }
40
75
  };
41
76
  },
42
77
  manifest: async ({ config, manifest }) => {
@@ -69,11 +104,11 @@ var locale_default = definePlugin(() => {
69
104
  const shortNameKey = extractLocaleKey(shortName);
70
105
  assertLocaleKey(shortName, "short name");
71
106
  if (shortNameKey && (browser === Browser.Opera || browser === Browser.Edge)) {
72
- const instance = builders.get(language);
73
- if (!instance) {
107
+ const defaultBuilder = builders.get(language);
108
+ if (!defaultBuilder) {
74
109
  throw new Error(`Locale not found for "${language}"`);
75
110
  }
76
- manifestShortName = instance.get().get(shortNameKey) ?? manifestShortName;
111
+ manifestShortName = defaultBuilder.get().get(shortNameKey) ?? manifestShortName;
77
112
  }
78
113
  manifest.setShortName(manifestShortName);
79
114
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/locale/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig, DefinePlugin} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {GenerateJsonPlugin} from \"@cli/bundler\";\nimport {extractLocaleKey, modifyLocaleMessageKey} from \"@locale/utils\";\n\nimport Locale from \"./Locale\";\n\nimport {LocaleDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\n\nexport default definePlugin(() => {\n let locale: Locale;\n let declaration: LocaleDeclaration;\n\n return {\n name: \"adnbn:locale\",\n startup: ({config}) => {\n locale = new Locale(config);\n declaration = new LocaleDeclaration(config);\n },\n locale: () => locale.files(),\n bundler: async ({config}) => {\n await locale.validate();\n\n declaration.structure(await locale.structure()).build();\n\n const plugin = new GenerateJsonPlugin(await locale.json());\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n locale.clear();\n\n await locale.validate();\n\n declaration.structure(await locale.structure()).build();\n\n return await locale.json();\n });\n }\n\n return {\n plugins: [\n plugin,\n new DefinePlugin({\n __ADNBN_LOCALE_KEYS__: JSON.stringify([...(await locale.keys())]),\n __ADNBN_DEFINED_LOCALES__: JSON.stringify([...(await locale.languages())]),\n }),\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({config, manifest}) => {\n const {lang: language, name, shortName, description, browser} = config;\n const availableLanguages = await locale.languages();\n const builders = await locale.builders();\n const hasLocales = builders.size > 0;\n\n if (availableLanguages.size > 0 && !availableLanguages.has(language)) {\n throw new Error(\n `Language \"${language}\" not found in available translations. Available languages: ${[...availableLanguages].join(\", \")}`\n );\n }\n\n await locale.validate();\n\n const keys = await locale.keys();\n\n const assertLocaleKey = (value: string, label: string): void => {\n const key = extractLocaleKey(value);\n\n if (!key) {\n return;\n }\n\n if (!hasLocales) {\n throw new Error(`Locale ${label} key \"${key}\" provided but no translations were found`);\n }\n\n if (!keys.has(key)) {\n throw new Error(`Locale ${label} key \"${key}\" not found in translation`);\n }\n };\n\n manifest.setLocale(hasLocales ? language : undefined);\n\n if (shortName) {\n let manifestShortName = modifyLocaleMessageKey(shortName) ?? shortName;\n const shortNameKey = extractLocaleKey(shortName);\n\n assertLocaleKey(shortName, \"short name\");\n\n /** Opera/Edge do not support localization in manifest's short_name field */\n if (shortNameKey && (browser === Browser.Opera || browser === Browser.Edge)) {\n const instance = builders.get(language);\n\n if (!instance) {\n throw new Error(`Locale not found for \"${language}\"`);\n }\n\n manifestShortName = instance.get().get(shortNameKey) ?? manifestShortName;\n }\n\n manifest.setShortName(manifestShortName);\n }\n\n if (description) {\n assertLocaleKey(description, \"description\");\n manifest.setDescription(modifyLocaleMessageKey(description));\n }\n\n if (name) {\n assertLocaleKey(name, \"name\");\n\n const manifestName = modifyLocaleMessageKey(name);\n\n if (manifestName) {\n manifest.setName(manifestName);\n\n return;\n }\n }\n\n manifest.setName(_.startCase(config.app));\n },\n };\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/locale/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport type {Configuration as RspackConfig, RspackPluginInstance} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {GenerateJsonPlugin, GenerateModulePlugin, WatchPlugin} from \"@cli/bundler\";\nimport {getContentLayer} from \"@cli/bundler/layers\";\nimport {extractLocaleKey, modifyLocaleMessageKey} from \"@shared/locale\";\n\nimport Locale from \"./Locale\";\nimport {LocaleDeclaration} from \"./declaration\";\nimport {createLocaleModule, LocaleModuleLayer, LocaleModuleName} from \"./locale-module\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let locale: Locale;\n let declaration: LocaleDeclaration;\n\n return {\n name: \"adnbn:locale\",\n startup: ({config}) => {\n locale = new Locale(config);\n declaration = new LocaleDeclaration(config);\n },\n locale: () => locale.files(),\n bundler: async ({config}) => {\n const prepareLocale = async () => {\n await locale.validate();\n declaration.structure(await locale.structure()).build();\n };\n\n const getModules = async () => ({\n [LocaleModuleName]: createLocaleModule(await locale.catalogue(), await locale.keys(), config.lang),\n });\n\n await prepareLocale();\n\n const jsonPlugin = new GenerateJsonPlugin(await locale.json());\n // MAIN keeps its content layer and uses the regular common-main.content group.\n const modulePlugin = new GenerateModulePlugin(await getModules()).layer(LocaleModuleLayer, {\n not: [getContentLayer(ContentScriptWorld.Main)],\n });\n const plugins: RspackPluginInstance[] = [];\n\n if (config.command === Command.Watch) {\n plugins.push(\n new WatchPlugin(async () => {\n locale.clear();\n await prepareLocale();\n })\n );\n\n jsonPlugin.watch(() => locale.json());\n modulePlugin.watch(getModules, () => locale.dependencies());\n }\n\n plugins.push(jsonPlugin, modulePlugin);\n\n return {\n plugins,\n optimization: {\n emitOnErrors: false,\n splitChunks: config.commonChunks\n ? {\n cacheGroups: {\n adnbnLocaleShared: {\n layer: LocaleModuleLayer,\n name: \"locale\",\n // Share the module across consumers of different exports.\n usedExports: false,\n minChunks: 2,\n minSize: 0,\n enforce: true,\n priority: 60,\n },\n adnbnLocaleLarge: {\n layer: LocaleModuleLayer,\n name: \"locale\",\n usedExports: false,\n minChunks: 1,\n minSize: 100_000,\n enforce: true,\n priority: 70,\n },\n },\n }\n : undefined,\n },\n } satisfies RspackConfig;\n },\n manifest: async ({config, manifest}) => {\n const {lang: language, name, shortName, description, browser} = config;\n const availableLanguages = await locale.languages();\n const builders = await locale.builders();\n const hasLocales = builders.size > 0;\n\n if (availableLanguages.size > 0 && !availableLanguages.has(language)) {\n throw new Error(\n `Language \"${language}\" not found in available translations. Available languages: ${[...availableLanguages].join(\", \")}`\n );\n }\n\n await locale.validate();\n\n const keys = await locale.keys();\n\n const assertLocaleKey = (value: string, label: string): void => {\n const key = extractLocaleKey(value);\n\n if (!key) {\n return;\n }\n\n if (!hasLocales) {\n throw new Error(`Locale ${label} key \"${key}\" provided but no translations were found`);\n }\n\n if (!keys.has(key)) {\n throw new Error(`Locale ${label} key \"${key}\" not found in translation`);\n }\n };\n\n manifest.setLocale(hasLocales ? language : undefined);\n\n if (shortName) {\n let manifestShortName = modifyLocaleMessageKey(shortName) ?? shortName;\n const shortNameKey = extractLocaleKey(shortName);\n\n assertLocaleKey(shortName, \"short name\");\n\n /** Opera/Edge do not support localization in manifest's short_name field */\n if (shortNameKey && (browser === Browser.Opera || browser === Browser.Edge)) {\n const defaultBuilder = builders.get(language);\n\n if (!defaultBuilder) {\n throw new Error(`Locale not found for \"${language}\"`);\n }\n\n manifestShortName = defaultBuilder.get().get(shortNameKey) ?? manifestShortName;\n }\n\n manifest.setShortName(manifestShortName);\n }\n\n if (description) {\n assertLocaleKey(description, \"description\");\n manifest.setDescription(modifyLocaleMessageKey(description));\n }\n\n if (name) {\n assertLocaleKey(name, \"name\");\n\n const manifestName = modifyLocaleMessageKey(name);\n\n if (manifestName) {\n manifest.setName(manifestName);\n\n return;\n }\n }\n\n manifest.setName(_.startCase(config.app));\n },\n };\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { Language, LocaleCatalogue } from "../../../types/locale.js";
2
+ export declare const LocaleModuleName = "#adnbn/locale";
3
+ export declare const LocaleModuleLayer = "adnbn:locale";
4
+ export declare const createLocaleModule: (catalogue: LocaleCatalogue, keys: ReadonlySet<string>, lang: Language) => string;
@@ -0,0 +1,16 @@
1
+ const LocaleModuleName = "#adnbn/locale";
2
+ const LocaleModuleLayer = "adnbn:locale";
3
+ const createLocaleModule = (catalogue, keys, lang) => (
4
+ // JSON.parse preserves own __proto__ keys; the pure annotation lets native consumers omit the catalogue.
5
+ `export const lang = ${JSON.stringify(lang)};
6
+ export const keys = ${JSON.stringify([...keys])};
7
+ export const languages = ${JSON.stringify(Object.keys(catalogue))};
8
+ export default /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(catalogue))});
9
+ `
10
+ );
11
+ export {
12
+ LocaleModuleLayer,
13
+ LocaleModuleName,
14
+ createLocaleModule
15
+ };
16
+ //# sourceMappingURL=locale-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/locale/locale-module.ts"],"sourcesContent":["import type {Language, LocaleCatalogue} from \"@typing/locale\";\n\nexport const LocaleModuleName = \"#adnbn/locale\";\nexport const LocaleModuleLayer = \"adnbn:locale\";\n\nexport const createLocaleModule = (catalogue: LocaleCatalogue, keys: ReadonlySet<string>, lang: Language): string =>\n // JSON.parse preserves own __proto__ keys; the pure annotation lets native consumers omit the catalogue.\n `export const lang = ${JSON.stringify(lang)};\\n` +\n `export const keys = ${JSON.stringify([...keys])};\\n` +\n `export const languages = ${JSON.stringify(Object.keys(catalogue))};\\n` +\n `export default /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(catalogue))});\\n`;\n"],"mappings":"AAEO,MAAM,mBAAmB;AACzB,MAAM,oBAAoB;AAE1B,MAAM,qBAAqB,CAAC,WAA4B,MAA2B;AAAA;AAAA,EAEtF,uBAAuB,KAAK,UAAU,IAAI,CAAC;AAAA,sBACpB,KAAK,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;AAAA,2BACpB,KAAK,UAAU,OAAO,KAAK,SAAS,CAAC,CAAC;AAAA,0CACvB,KAAK,UAAU,KAAK,UAAU,SAAS,CAAC,CAAC;AAAA;AAAA;","names":[]}
@@ -1,9 +1,8 @@
1
1
  import { View } from "../view/index.js";
2
2
  import { OffscreenFinder, OffscreenViewFinder } from "../../entrypoint/index.js";
3
3
  import { ReadonlyConfig } from "../../../types/config.js";
4
- import { OffscreenEntrypointOptions } from "../../../types/offscreen.js";
4
+ import { OffscreenEntrypointOptions, OffscreenParametersMap } from "../../../types/offscreen.js";
5
5
  import { EntrypointFile } from "../../../types/entrypoint.js";
6
- export type OffscreenParameters = Record<string, chrome.offscreen.CreateParameters>;
7
6
  export default class extends OffscreenFinder {
8
7
  protected _view?: View<OffscreenEntrypointOptions>;
9
8
  protected _views?: OffscreenViewFinder;
@@ -17,6 +16,6 @@ export default class extends OffscreenFinder {
17
16
  * This command is executed during the type declaration generation stage for the Offscreens.
18
17
  */
19
18
  virtual(file: EntrypointFile): string;
20
- parameters(): Promise<OffscreenParameters>;
19
+ parameters(): Promise<OffscreenParametersMap>;
21
20
  clear(): this;
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/offscreen/Offscreen.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {View} from \"../view\";\n\nimport {OffscreenFinder, OffscreenViewFinder} from \"@cli/entrypoint/index.js\";\n\nimport {virtualOffscreenModule} from \"@cli/virtual/index.js\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {OffscreenEntrypointOptions} from \"@typing/offscreen\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nexport type OffscreenParameters = Record<string, chrome.offscreen.CreateParameters>;\n\nexport default class extends OffscreenFinder {\n protected _view?: View<OffscreenEntrypointOptions>;\n\n protected _views?: OffscreenViewFinder;\n\n constructor(config: ReadonlyConfig) {\n super(config);\n\n this.names.reserve(this.chunkName());\n }\n\n public chunkName(): string {\n return \"common.\" + this.type();\n }\n\n public likely(name?: string): boolean {\n return this.names.likely(name);\n }\n\n public view(): View<OffscreenEntrypointOptions> {\n return (this._view ??= new View(this.config, this.views()));\n }\n\n public views(): OffscreenViewFinder {\n return (this._views ??= new OffscreenViewFinder(this.config, this));\n }\n\n /**\n * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Offscreens.\n * This command is executed during the type declaration generation stage for the Offscreens.\n */\n public virtual(file: EntrypointFile): string {\n const options = this._transport?.get(file)?.options;\n\n if (!options) {\n throw new Error(`Offscreen options not found for \"${file}\"`);\n }\n\n return virtualOffscreenModule(file, options.name);\n }\n\n public async parameters(): Promise<OffscreenParameters> {\n const offscreens: OffscreenParameters = {};\n\n const files = await this.transport();\n const filenames = await this.views().getFilenames();\n\n for (const [file, transport] of files) {\n const url = filenames.get(file);\n\n if (!url) {\n throw new Error(`Offscreen filename not found for \"${file.file}\"`);\n }\n\n let {name, reasons = \"DOM_PARSER\", justification = \"Just for testing\"} = transport.options;\n\n if (_.isString(reasons)) {\n reasons = [reasons];\n }\n\n offscreens[name] = {\n url,\n reasons,\n justification,\n };\n }\n\n return offscreens;\n }\n\n public clear(): this {\n this._view = undefined;\n this._views = undefined;\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,OAAO,OAAO;AAEd,SAAQ,YAAW;AAEnB,SAAQ,iBAAiB,2BAA0B;AAEnD,SAAQ,8BAA6B;AAQrC,MAAO,0BAAsB,gBAAgB;AAAA,EAC/B;AAAA,EAEA;AAAA,EAEV,YAAY,QAAwB;AAChC,UAAM,MAAM;AAEZ,SAAK,MAAM,QAAQ,KAAK,UAAU,CAAC;AAAA,EACvC;AAAA,EAEO,YAAoB;AACvB,WAAO,YAAY,KAAK,KAAK;AAAA,EACjC;AAAA,EAEO,OAAO,MAAwB;AAClC,WAAO,KAAK,MAAM,OAAO,IAAI;AAAA,EACjC;AAAA,EAEO,OAAyC;AAC5C,WAAQ,KAAK,UAAL,KAAK,QAAU,IAAI,KAAK,KAAK,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC7D;AAAA,EAEO,QAA6B;AAChC,WAAQ,KAAK,WAAL,KAAK,SAAW,IAAI,oBAAoB,KAAK,QAAQ,IAAI;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,QAAQ,MAA8B;AA7CjD;AA8CQ,UAAM,WAAU,gBAAK,eAAL,mBAAiB,IAAI,UAArB,mBAA4B;AAE5C,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,oCAAoC,IAAI,GAAG;AAAA,IAC/D;AAEA,WAAO,uBAAuB,MAAM,QAAQ,IAAI;AAAA,EACpD;AAAA,EAEA,MAAa,aAA2C;AACpD,UAAM,aAAkC,CAAC;AAEzC,UAAM,QAAQ,MAAM,KAAK,UAAU;AACnC,UAAM,YAAY,MAAM,KAAK,MAAM,EAAE,aAAa;AAElD,eAAW,CAAC,MAAM,SAAS,KAAK,OAAO;AACnC,YAAM,MAAM,UAAU,IAAI,IAAI;AAE9B,UAAI,CAAC,KAAK;AACN,cAAM,IAAI,MAAM,qCAAqC,KAAK,IAAI,GAAG;AAAA,MACrE;AAEA,UAAI,EAAC,MAAM,UAAU,cAAc,gBAAgB,mBAAkB,IAAI,UAAU;AAEnF,UAAI,EAAE,SAAS,OAAO,GAAG;AACrB,kBAAU,CAAC,OAAO;AAAA,MACtB;AAEA,iBAAW,IAAI,IAAI;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,QAAc;AACjB,SAAK,QAAQ;AACb,SAAK,SAAS;AAEd,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/offscreen/Offscreen.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {View} from \"../view\";\n\nimport {OffscreenFinder, OffscreenViewFinder} from \"@cli/entrypoint/index.js\";\n\nimport {virtualOffscreenModule} from \"@cli/virtual/index.js\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {OffscreenEntrypointOptions, OffscreenParametersMap} from \"@typing/offscreen\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nexport default class extends OffscreenFinder {\n protected _view?: View<OffscreenEntrypointOptions>;\n\n protected _views?: OffscreenViewFinder;\n\n constructor(config: ReadonlyConfig) {\n super(config);\n\n this.names.reserve(this.chunkName());\n }\n\n public chunkName(): string {\n return \"common.\" + this.type();\n }\n\n public likely(name?: string): boolean {\n return this.names.likely(name);\n }\n\n public view(): View<OffscreenEntrypointOptions> {\n return (this._view ??= new View(this.config, this.views()));\n }\n\n public views(): OffscreenViewFinder {\n return (this._views ??= new OffscreenViewFinder(this.config, this));\n }\n\n /**\n * Before creating the virtual module, it is necessary to run a command `await this.transport()` that caches the Offscreens.\n * This command is executed during the type declaration generation stage for the Offscreens.\n */\n public virtual(file: EntrypointFile): string {\n const options = this._transport?.get(file)?.options;\n\n if (!options) {\n throw new Error(`Offscreen options not found for \"${file}\"`);\n }\n\n return virtualOffscreenModule(file, options.name);\n }\n\n public async parameters(): Promise<OffscreenParametersMap> {\n const offscreens: OffscreenParametersMap = {};\n\n const files = await this.transport();\n const filenames = await this.views().getFilenames();\n\n for (const [file, transport] of files) {\n const url = filenames.get(file);\n\n if (!url) {\n throw new Error(`Offscreen filename not found for \"${file.file}\"`);\n }\n\n let {name, reasons = \"DOM_PARSER\", justification = \"Just for testing\"} = transport.options;\n\n if (_.isString(reasons)) {\n reasons = [reasons];\n }\n\n offscreens[name] = {\n url,\n reasons,\n justification,\n };\n }\n\n return offscreens;\n }\n\n public clear(): this {\n this._view = undefined;\n this._views = undefined;\n\n return super.clear();\n }\n}\n"],"mappings":"AAAA,OAAO,OAAO;AAEd,SAAQ,YAAW;AAEnB,SAAQ,iBAAiB,2BAA0B;AAEnD,SAAQ,8BAA6B;AAMrC,MAAO,0BAAsB,gBAAgB;AAAA,EAC/B;AAAA,EAEA;AAAA,EAEV,YAAY,QAAwB;AAChC,UAAM,MAAM;AAEZ,SAAK,MAAM,QAAQ,KAAK,UAAU,CAAC;AAAA,EACvC;AAAA,EAEO,YAAoB;AACvB,WAAO,YAAY,KAAK,KAAK;AAAA,EACjC;AAAA,EAEO,OAAO,MAAwB;AAClC,WAAO,KAAK,MAAM,OAAO,IAAI;AAAA,EACjC;AAAA,EAEO,OAAyC;AAC5C,WAAQ,KAAK,UAAL,KAAK,QAAU,IAAI,KAAK,KAAK,QAAQ,KAAK,MAAM,CAAC;AAAA,EAC7D;AAAA,EAEO,QAA6B;AAChC,WAAQ,KAAK,WAAL,KAAK,SAAW,IAAI,oBAAoB,KAAK,QAAQ,IAAI;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,QAAQ,MAA8B;AA3CjD;AA4CQ,UAAM,WAAU,gBAAK,eAAL,mBAAiB,IAAI,UAArB,mBAA4B;AAE5C,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,oCAAoC,IAAI,GAAG;AAAA,IAC/D;AAEA,WAAO,uBAAuB,MAAM,QAAQ,IAAI;AAAA,EACpD;AAAA,EAEA,MAAa,aAA8C;AACvD,UAAM,aAAqC,CAAC;AAE5C,UAAM,QAAQ,MAAM,KAAK,UAAU;AACnC,UAAM,YAAY,MAAM,KAAK,MAAM,EAAE,aAAa;AAElD,eAAW,CAAC,MAAM,SAAS,KAAK,OAAO;AACnC,YAAM,MAAM,UAAU,IAAI,IAAI;AAE9B,UAAI,CAAC,KAAK;AACN,cAAM,IAAI,MAAM,qCAAqC,KAAK,IAAI,GAAG;AAAA,MACrE;AAEA,UAAI,EAAC,MAAM,UAAU,cAAc,gBAAgB,mBAAkB,IAAI,UAAU;AAEnF,UAAI,EAAE,SAAS,OAAO,GAAG;AACrB,kBAAU,CAAC,OAAO;AAAA,MACtB;AAEA,iBAAW,IAAI,IAAI;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,QAAc;AACjB,SAAK,QAAQ;AACb,SAAK,SAAS;AAEd,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;","names":[]}
@@ -1,12 +1,13 @@
1
1
  import path from "path";
2
- import { DefinePlugin, HtmlRspackPlugin } from "@rspack/core";
2
+ import { HtmlRspackPlugin } from "@rspack/core";
3
3
  import { RspackVirtualModulePlugin } from "rspack-plugin-virtual-module";
4
4
  import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
5
5
  import { definePlugin } from "./../../../main/plugin.js";
6
- import { EntrypointPlugin } from "./../../../cli/bundler/index.js";
6
+ import { EntrypointPlugin, GenerateModulePlugin } from "./../../../cli/bundler/index.js";
7
7
  import { virtualOffscreenBackgroundModule } from "./../../../cli/virtual/index.js";
8
8
  import Offscreen from "./Offscreen.js";
9
9
  import OffscreenDeclaration from "./OffscreenDeclaration.js";
10
+ import { createOffscreenModule, OffscreenModuleName } from "./offscreen-module.js";
10
11
  import { Command } from "./../../../types/app.js";
11
12
  import { Browser } from "./../../../types/browser.js";
12
13
  import { BackgroundEntryName } from "./../../../types/background.js";
@@ -67,8 +68,8 @@ var offscreen_default = definePlugin(() => {
67
68
  return {
68
69
  ...rspack,
69
70
  plugins: [
70
- new DefinePlugin({
71
- __ADNBN_OFFSCREEN_PARAMETERS__: JSON.stringify(parameters)
71
+ new GenerateModulePlugin({
72
+ [OffscreenModuleName]: createOffscreenModule(parameters)
72
73
  }),
73
74
  ...plugins
74
75
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/offscreen/index.ts"],"sourcesContent":["import path from \"path\";\nimport {Configuration as RspackConfig, DefinePlugin, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin} from \"rspack-plugin-virtual-module\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualOffscreenBackgroundModule} from \"@cli/virtual/index.js\";\n\nimport Offscreen, {OffscreenParameters} from \"./Offscreen\";\nimport OffscreenDeclaration from \"./OffscreenDeclaration\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {BackgroundEntryName} from \"@typing/background\";\n\nconst OffscreenTempDir = \"virtual\";\nconst OffscreenBackgroundModule = \"offscreen.background.ts\";\n\nexport default definePlugin(() => {\n let offscreen: Offscreen;\n let declaration: OffscreenDeclaration;\n\n return {\n name: \"adnbn:offscreen\",\n startup: ({config}) => {\n offscreen = new Offscreen(config);\n declaration = new OffscreenDeclaration(config);\n },\n offscreen: () => offscreen.files(),\n bundler: async ({config}) => {\n declaration.dictionary(await offscreen.dictionary()).build();\n\n let build: boolean = true;\n let rspack: RspackConfig = {};\n\n if (await offscreen.empty()) {\n if (config.debug) {\n console.info(\"Offscreen entries not found\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let parameters: OffscreenParameters = {};\n\n if (build) {\n parameters = await offscreen.parameters();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await offscreen.view().entries())\n .virtual(file => offscreen.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.dictionary(await offscreen.clear().dictionary()).build();\n\n return offscreen.view().entries();\n });\n }\n\n const htmlPlugins = (await offscreen.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await offscreen.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n\n if (config.manifestVersion === 2 || config.browser === Browser.Firefox) {\n plugins.push(\n new RspackVirtualModulePlugin(\n {\n [OffscreenBackgroundModule]: virtualOffscreenBackgroundModule(),\n },\n OffscreenTempDir\n )\n );\n\n rspack = {\n entry: {\n [BackgroundEntryName]: {\n import: [path.join(OffscreenTempDir, OffscreenBackgroundModule)],\n },\n },\n };\n }\n }\n\n return {\n ...rspack,\n plugins: [\n new DefinePlugin({\n __ADNBN_OFFSCREEN_PARAMETERS__: JSON.stringify(parameters),\n }),\n ...plugins,\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.appendCsp(await offscreen.views().csp());\n\n if (config.manifestVersion !== 2 && config.browser !== Browser.Firefox && (await offscreen.exists())) {\n manifest.addPermission(\"offscreen\");\n }\n },\n };\n});\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAuC,cAAc,wBAAgC;AACrF,SAAQ,iCAAgC;AACxC,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,wBAAuB;AAC/B,SAAQ,wCAAuC;AAE/C,OAAO,eAAsC;AAC7C,OAAO,0BAA0B;AAEjC,SAAQ,eAAc;AACtB,SAAQ,eAAc;AACtB,SAAQ,2BAA0B;AAElC,MAAM,mBAAmB;AACzB,MAAM,4BAA4B;AAElC,IAAO,oBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,kBAAY,IAAI,UAAU,MAAM;AAChC,oBAAc,IAAI,qBAAqB,MAAM;AAAA,IACjD;AAAA,IACA,WAAW,MAAM,UAAU,MAAM;AAAA,IACjC,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,WAAW,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM;AAE3D,UAAI,QAAiB;AACrB,UAAI,SAAuB,CAAC;AAE5B,UAAI,MAAM,UAAU,MAAM,GAAG;AACzB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,6BAA6B;AAAA,QAC9C;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,aAAkC,CAAC;AAEvC,UAAI,OAAO;AACP,qBAAa,MAAM,UAAU,WAAW;AAGxC,cAAM,SAAS,iBAAiB,KAAK,MAAM,UAAU,KAAK,EAAE,QAAQ,CAAC,EAChE,QAAQ,UAAQ,UAAU,QAAQ,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,WAAW,MAAM,UAAU,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;AAEnE,mBAAO,UAAU,KAAK,EAAE,QAAQ;AAAA,UACpC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAChG,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEpG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAEnD,YAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,SAAS;AACpE,kBAAQ;AAAA,YACJ,IAAI;AAAA,cACA;AAAA,gBACI,CAAC,yBAAyB,GAAG,iCAAiC;AAAA,cAClE;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAEA,mBAAS;AAAA,YACL,OAAO;AAAA,cACH,CAAC,mBAAmB,GAAG;AAAA,gBACnB,QAAQ,CAAC,KAAK,KAAK,kBAAkB,yBAAyB,CAAC;AAAA,cACnE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,IAAI,aAAa;AAAA,YACb,gCAAgC,KAAK,UAAU,UAAU;AAAA,UAC7D,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,UAAU,MAAM,UAAU,MAAM,EAAE,IAAI,CAAC;AAEhD,UAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,WAAY,MAAM,UAAU,OAAO,GAAI;AAClG,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/offscreen/index.ts"],"sourcesContent":["import path from \"path\";\nimport {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin} from \"rspack-plugin-virtual-module\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualOffscreenBackgroundModule} from \"@cli/virtual/index.js\";\n\nimport Offscreen from \"./Offscreen\";\nimport OffscreenDeclaration from \"./OffscreenDeclaration\";\nimport {createOffscreenModule, OffscreenModuleName} from \"./offscreen-module\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {BackgroundEntryName} from \"@typing/background\";\nimport type {OffscreenParametersMap} from \"@typing/offscreen\";\n\nconst OffscreenTempDir = \"virtual\";\nconst OffscreenBackgroundModule = \"offscreen.background.ts\";\n\nexport default definePlugin(() => {\n let offscreen: Offscreen;\n let declaration: OffscreenDeclaration;\n\n return {\n name: \"adnbn:offscreen\",\n startup: ({config}) => {\n offscreen = new Offscreen(config);\n declaration = new OffscreenDeclaration(config);\n },\n offscreen: () => offscreen.files(),\n bundler: async ({config}) => {\n declaration.dictionary(await offscreen.dictionary()).build();\n\n let build: boolean = true;\n let rspack: RspackConfig = {};\n\n if (await offscreen.empty()) {\n if (config.debug) {\n console.info(\"Offscreen entries not found\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let parameters: OffscreenParametersMap = {};\n\n if (build) {\n parameters = await offscreen.parameters();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await offscreen.view().entries())\n .virtual(file => offscreen.virtual(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.dictionary(await offscreen.clear().dictionary()).build();\n\n return offscreen.view().entries();\n });\n }\n\n const htmlPlugins = (await offscreen.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await offscreen.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n\n if (config.manifestVersion === 2 || config.browser === Browser.Firefox) {\n plugins.push(\n new RspackVirtualModulePlugin(\n {\n [OffscreenBackgroundModule]: virtualOffscreenBackgroundModule(),\n },\n OffscreenTempDir\n )\n );\n\n rspack = {\n entry: {\n [BackgroundEntryName]: {\n import: [path.join(OffscreenTempDir, OffscreenBackgroundModule)],\n },\n },\n };\n }\n }\n\n return {\n ...rspack,\n plugins: [\n new GenerateModulePlugin({\n [OffscreenModuleName]: createOffscreenModule(parameters),\n }),\n ...plugins,\n ],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n manifest.appendCsp(await offscreen.views().csp());\n\n if (config.manifestVersion !== 2 && config.browser !== Browser.Firefox && (await offscreen.exists())) {\n manifest.addPermission(\"offscreen\");\n }\n },\n };\n});\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAuC,wBAAgC;AACvE,SAAQ,iCAAgC;AACxC,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,wCAAuC;AAE/C,OAAO,eAAe;AACtB,OAAO,0BAA0B;AACjC,SAAQ,uBAAuB,2BAA0B;AAEzD,SAAQ,eAAc;AACtB,SAAQ,eAAc;AACtB,SAAQ,2BAA0B;AAGlC,MAAM,mBAAmB;AACzB,MAAM,4BAA4B;AAElC,IAAO,oBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,kBAAY,IAAI,UAAU,MAAM;AAChC,oBAAc,IAAI,qBAAqB,MAAM;AAAA,IACjD;AAAA,IACA,WAAW,MAAM,UAAU,MAAM;AAAA,IACjC,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,WAAW,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM;AAE3D,UAAI,QAAiB;AACrB,UAAI,SAAuB,CAAC;AAE5B,UAAI,MAAM,UAAU,MAAM,GAAG;AACzB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,6BAA6B;AAAA,QAC9C;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,aAAqC,CAAC;AAE1C,UAAI,OAAO;AACP,qBAAa,MAAM,UAAU,WAAW;AAGxC,cAAM,SAAS,iBAAiB,KAAK,MAAM,UAAU,KAAK,EAAE,QAAQ,CAAC,EAChE,QAAQ,UAAQ,UAAU,QAAQ,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,WAAW,MAAM,UAAU,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;AAEnE,mBAAO,UAAU,KAAK,EAAE,QAAQ;AAAA,UACpC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAChG,cAAM,eAAe,MAAM,UAAU,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEpG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAEnD,YAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,SAAS;AACpE,kBAAQ;AAAA,YACJ,IAAI;AAAA,cACA;AAAA,gBACI,CAAC,yBAAyB,GAAG,iCAAiC;AAAA,cAClE;AAAA,cACA;AAAA,YACJ;AAAA,UACJ;AAEA,mBAAS;AAAA,YACL,OAAO;AAAA,cACH,CAAC,mBAAmB,GAAG;AAAA,gBACnB,QAAQ,CAAC,KAAK,KAAK,kBAAkB,yBAAyB,CAAC;AAAA,cACnE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,GAAG;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,mBAAmB,GAAG,sBAAsB,UAAU;AAAA,UAC3D,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,eAAS,UAAU,MAAM,UAAU,MAAM,EAAE,IAAI,CAAC;AAEhD,UAAI,OAAO,oBAAoB,KAAK,OAAO,YAAY,QAAQ,WAAY,MAAM,UAAU,OAAO,GAAI;AAClG,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { OffscreenParametersMap } from "../../../types/offscreen.js";
2
+ export declare const OffscreenModuleName = "#adnbn/offscreen";
3
+ export declare const createOffscreenModule: (parameters: OffscreenParametersMap) => string;
@@ -0,0 +1,11 @@
1
+ const OffscreenModuleName = "#adnbn/offscreen";
2
+ const createOffscreenModule = (parameters) => (
3
+ // Preserve the JSON payload without retaining unused data.
4
+ `export const parameters = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(parameters))});
5
+ `
6
+ );
7
+ export {
8
+ OffscreenModuleName,
9
+ createOffscreenModule
10
+ };
11
+ //# sourceMappingURL=offscreen-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/offscreen/offscreen-module.ts"],"sourcesContent":["import type {OffscreenParametersMap} from \"@typing/offscreen\";\n\nexport const OffscreenModuleName = \"#adnbn/offscreen\";\n\nexport const createOffscreenModule = (parameters: OffscreenParametersMap): string =>\n // Preserve the JSON payload without retaining unused data.\n `export const parameters = /*#__PURE__*/ JSON.parse(${JSON.stringify(JSON.stringify(parameters))});\\n`;\n"],"mappings":"AAEO,MAAM,sBAAsB;AAE5B,MAAM,wBAAwB,CAAC;AAAA;AAAA,EAElC,sDAAsD,KAAK,UAAU,KAAK,UAAU,UAAU,CAAC,CAAC;AAAA;AAAA;","names":[]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../../main/plugin.js").PluginDefinition<[]>;
2
+ export default _default;