adnbn 0.10.0 → 0.11.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 (570) hide show
  1. package/dist/cli/builders/locale/LocaleBuilder.js +2 -11
  2. package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
  3. package/dist/cli/builders/locale/index.js +1 -1
  4. package/dist/cli/builders/locale/index.js.map +1 -1
  5. package/dist/cli/builders/manifest/ManifestBase.js +16 -6
  6. package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
  7. package/dist/cli/builders/manifest/ManifestV2.js +1 -1
  8. package/dist/cli/builders/manifest/ManifestV3.js +12 -5
  9. package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
  10. package/dist/cli/builders/manifest/utils/data-collection-permissions.d.ts +15 -0
  11. package/dist/cli/builders/manifest/utils/data-collection-permissions.js +26 -0
  12. package/dist/cli/builders/manifest/utils/data-collection-permissions.js.map +1 -0
  13. package/dist/cli/builders/manifest/utils/host-patterns.d.ts +1 -0
  14. package/dist/cli/builders/manifest/utils/host-patterns.js +40 -0
  15. package/dist/cli/builders/manifest/utils/host-patterns.js.map +1 -0
  16. package/dist/cli/builders/manifest/utils/index.d.ts +4 -0
  17. package/dist/cli/builders/manifest/utils/index.js +19 -0
  18. package/dist/cli/builders/manifest/utils/index.js.map +1 -0
  19. package/dist/cli/builders/manifest/utils/permissions.d.ts +14 -0
  20. package/dist/cli/builders/manifest/utils/permissions.js +34 -0
  21. package/dist/cli/builders/manifest/utils/permissions.js.map +1 -0
  22. package/dist/cli/builders/manifest/utils/web-accessible-resources.d.ts +2 -0
  23. package/dist/cli/builders/manifest/utils/web-accessible-resources.js +92 -0
  24. package/dist/cli/builders/manifest/utils/web-accessible-resources.js.map +1 -0
  25. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.d.ts +14 -0
  26. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +523 -0
  27. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -0
  28. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.d.ts +13 -0
  29. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js +16 -0
  30. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js.map +1 -0
  31. package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +3 -0
  32. package/dist/cli/bundler/plugins/build-assets-map/index.js +8 -0
  33. package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -0
  34. package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +12 -0
  35. package/dist/cli/bundler/plugins/build-assets-map/usage.js +28 -0
  36. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -0
  37. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.d.ts +9 -0
  38. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js +43 -0
  39. package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js.map +1 -0
  40. package/dist/cli/bundler/plugins/chunk-loader/index.d.ts +1 -0
  41. package/dist/cli/bundler/plugins/chunk-loader/index.js +5 -0
  42. package/dist/cli/bundler/plugins/chunk-loader/index.js.map +1 -0
  43. package/dist/cli/bundler/plugins/chunk-loader/templates/runtime.template.d.ts +2 -0
  44. package/dist/cli/bundler/plugins/chunk-loader/templates.d.ts +7 -0
  45. package/dist/cli/bundler/plugins/chunk-loader/templates.js +30 -0
  46. package/dist/cli/bundler/plugins/{EntrypointPlugin.d.ts → entrypoint/EntrypointPlugin.d.ts} +7 -2
  47. package/dist/cli/bundler/plugins/{EntrypointPlugin.js → entrypoint/EntrypointPlugin.js} +46 -26
  48. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -0
  49. package/dist/cli/bundler/plugins/entrypoint/index.d.ts +1 -0
  50. package/dist/cli/bundler/plugins/entrypoint/index.js +7 -0
  51. package/dist/cli/bundler/plugins/entrypoint/index.js.map +1 -0
  52. package/dist/cli/bundler/plugins/{GenerateJsonPlugin.d.ts → generate-json/GenerateJsonPlugin.d.ts} +1 -0
  53. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js +73 -0
  54. package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js.map +1 -0
  55. package/dist/cli/bundler/plugins/generate-json/index.d.ts +1 -0
  56. package/dist/cli/bundler/plugins/generate-json/index.js +5 -0
  57. package/dist/cli/bundler/plugins/generate-json/index.js.map +1 -0
  58. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.d.ts +23 -0
  59. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js +88 -0
  60. package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js.map +1 -0
  61. package/dist/cli/bundler/plugins/generate-module/index.d.ts +1 -0
  62. package/dist/cli/bundler/plugins/generate-module/index.js +7 -0
  63. package/dist/cli/bundler/plugins/generate-module/index.js.map +1 -0
  64. package/dist/cli/bundler/plugins/index.d.ts +11 -5
  65. package/dist/cli/bundler/plugins/index.js +32 -10
  66. package/dist/cli/bundler/plugins/index.js.map +1 -1
  67. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +21 -0
  68. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +174 -0
  69. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -0
  70. package/dist/cli/bundler/plugins/isolated-styles/index.d.ts +1 -0
  71. package/dist/cli/bundler/plugins/isolated-styles/index.js +5 -0
  72. package/dist/cli/bundler/plugins/isolated-styles/index.js.map +1 -0
  73. package/dist/cli/bundler/plugins/isolated-styles/templates/css-loader.template.d.ts +1 -0
  74. package/dist/cli/bundler/plugins/isolated-styles/templates/runtime.template.d.ts +7 -0
  75. package/dist/cli/bundler/plugins/isolated-styles/templates.d.ts +18 -0
  76. package/dist/cli/bundler/plugins/isolated-styles/templates.js +174 -0
  77. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.d.ts +10 -0
  78. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +55 -0
  79. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -0
  80. package/dist/cli/bundler/plugins/manifest/index.d.ts +1 -0
  81. package/dist/cli/bundler/plugins/manifest/index.js +6 -0
  82. package/dist/cli/bundler/plugins/manifest/index.js.map +1 -0
  83. package/dist/cli/bundler/plugins/replace/ReplacePlugin.js.map +1 -0
  84. package/dist/cli/bundler/plugins/replace/index.d.ts +1 -0
  85. package/dist/cli/bundler/plugins/replace/index.js +5 -0
  86. package/dist/cli/bundler/plugins/replace/index.js.map +1 -0
  87. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.d.ts +19 -0
  88. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js +20 -0
  89. package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js.map +1 -0
  90. package/dist/cli/bundler/plugins/resource-access/index.d.ts +1 -0
  91. package/dist/cli/bundler/plugins/resource-access/index.js +5 -0
  92. package/dist/cli/bundler/plugins/resource-access/index.js.map +1 -0
  93. package/dist/cli/bundler/plugins/resource-access/utils.d.ts +8 -0
  94. package/dist/cli/bundler/plugins/resource-access/utils.js +42 -0
  95. package/dist/cli/bundler/plugins/resource-access/utils.js.map +1 -0
  96. package/dist/cli/bundler/plugins/types.d.ts +4 -0
  97. package/dist/cli/bundler/plugins/types.js +1 -0
  98. package/dist/cli/bundler/plugins/types.js.map +1 -0
  99. package/dist/cli/bundler/plugins/utils/index.d.ts +3 -0
  100. package/dist/cli/bundler/plugins/utils/index.js +9 -0
  101. package/dist/cli/bundler/plugins/utils/index.js.map +1 -0
  102. package/dist/cli/bundler/plugins/utils/manifest-hooks.d.ts +13 -0
  103. package/dist/cli/bundler/plugins/utils/manifest-hooks.js +17 -0
  104. package/dist/cli/bundler/plugins/utils/manifest-hooks.js.map +1 -0
  105. package/dist/cli/bundler/plugins/utils/runtime-template.d.ts +1 -0
  106. package/dist/cli/bundler/plugins/utils/runtime-template.js +18 -0
  107. package/dist/cli/bundler/plugins/utils/runtime-template.js.map +1 -0
  108. package/dist/cli/bundler/plugins/utils/watch-compilation.d.ts +3 -0
  109. package/dist/cli/bundler/plugins/utils/watch-compilation.js +18 -0
  110. package/dist/cli/bundler/plugins/utils/watch-compilation.js.map +1 -0
  111. package/dist/cli/bundler/plugins/watch/WatchPlugin.js +16 -0
  112. package/dist/cli/bundler/plugins/watch/WatchPlugin.js.map +1 -0
  113. package/dist/cli/bundler/plugins/watch/index.d.ts +1 -0
  114. package/dist/cli/bundler/plugins/watch/index.js +5 -0
  115. package/dist/cli/bundler/plugins/watch/index.js.map +1 -0
  116. package/dist/cli/bundler/utils/chunk-filename.d.ts +6 -0
  117. package/dist/cli/bundler/utils/chunk-filename.js +93 -0
  118. package/dist/cli/bundler/utils/chunk-filename.js.map +1 -0
  119. package/dist/cli/bundler/utils/index.d.ts +2 -0
  120. package/dist/cli/bundler/utils/index.js +2 -0
  121. package/dist/cli/bundler/utils/index.js.map +1 -1
  122. package/dist/cli/bundler/utils/layers.d.ts +4 -0
  123. package/dist/cli/bundler/utils/layers.js +10 -0
  124. package/dist/cli/bundler/utils/layers.js.map +1 -0
  125. package/dist/cli/bundler/utils/output.d.ts +6 -2
  126. package/dist/cli/bundler/utils/output.js +165 -7
  127. package/dist/cli/bundler/utils/output.js.map +1 -1
  128. package/dist/cli/bundler/utils/styles.d.ts +5 -0
  129. package/dist/cli/bundler/utils/styles.js +30 -0
  130. package/dist/cli/bundler/utils/styles.js.map +1 -0
  131. package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -1
  132. package/dist/cli/entrypoint/file/ExpressionFile.js +11 -0
  133. package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
  134. package/dist/cli/entrypoint/file/OptionFile.d.ts +4 -2
  135. package/dist/cli/entrypoint/file/OptionFile.js +35 -31
  136. package/dist/cli/entrypoint/file/OptionFile.js.map +1 -1
  137. package/dist/cli/entrypoint/file/SourceFile.d.ts +18 -7
  138. package/dist/cli/entrypoint/file/SourceFile.js +260 -156
  139. package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
  140. package/dist/cli/entrypoint/file/index.d.ts +2 -0
  141. package/dist/cli/entrypoint/file/index.js +2 -0
  142. package/dist/cli/entrypoint/file/index.js.map +1 -1
  143. package/dist/cli/entrypoint/file/injectors/core.js +22 -1
  144. package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
  145. package/dist/cli/entrypoint/file/parsers/ExportParser.d.ts +14 -0
  146. package/dist/cli/entrypoint/file/parsers/ExportParser.js +71 -0
  147. package/dist/cli/entrypoint/file/parsers/ExportParser.js.map +1 -0
  148. package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +2 -0
  149. package/dist/cli/entrypoint/file/parsers/NodeFinder.js +9 -0
  150. package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
  151. package/dist/cli/entrypoint/file/parsers/ObjectParser.js +5 -1
  152. package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
  153. package/dist/cli/entrypoint/file/parsers/index.d.ts +1 -0
  154. package/dist/cli/entrypoint/file/parsers/index.js +2 -0
  155. package/dist/cli/entrypoint/file/parsers/index.js.map +1 -1
  156. package/dist/cli/entrypoint/file/parsers/types.d.ts +16 -0
  157. package/dist/cli/entrypoint/file/parsers/types.js +13 -0
  158. package/dist/cli/entrypoint/file/parsers/types.js.map +1 -1
  159. package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +1 -0
  160. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +3 -0
  161. package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
  162. package/dist/cli/entrypoint/file/types.d.ts +26 -1
  163. package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
  164. package/dist/cli/entrypoint/parser/AbstractParser.d.ts +3 -2
  165. package/dist/cli/entrypoint/parser/AbstractParser.js +6 -3
  166. package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
  167. package/dist/cli/entrypoint/parser/CommandParser.js +1 -1
  168. package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
  169. package/dist/cli/entrypoint/parser/ContentParser.d.ts +5 -1
  170. package/dist/cli/entrypoint/parser/ContentParser.js +55 -3
  171. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  172. package/dist/cli/entrypoint/parser/RelayParser.d.ts +21 -2
  173. package/dist/cli/entrypoint/parser/RelayParser.js +4 -0
  174. package/dist/cli/entrypoint/parser/RelayParser.js.map +1 -1
  175. package/dist/cli/plugins/asset.js +9 -4
  176. package/dist/cli/plugins/asset.js.map +1 -1
  177. package/dist/cli/plugins/background/index.js +1 -1
  178. package/dist/cli/plugins/background/index.js.map +1 -1
  179. package/dist/cli/plugins/content/Content.d.ts +1 -1
  180. package/dist/cli/plugins/content/Content.js +3 -2
  181. package/dist/cli/plugins/content/Content.js.map +1 -1
  182. package/dist/cli/plugins/content/ContentManager.d.ts +8 -5
  183. package/dist/cli/plugins/content/ContentManager.js +79 -28
  184. package/dist/cli/plugins/content/ContentManager.js.map +1 -1
  185. package/dist/cli/plugins/content/ContentName.d.ts +1 -1
  186. package/dist/cli/plugins/content/ContentName.js +8 -7
  187. package/dist/cli/plugins/content/ContentName.js.map +1 -1
  188. package/dist/cli/plugins/content/Relay.d.ts +1 -1
  189. package/dist/cli/plugins/content/Relay.js +3 -2
  190. package/dist/cli/plugins/content/Relay.js.map +1 -1
  191. package/dist/cli/plugins/content/bundler.d.ts +7 -0
  192. package/dist/cli/plugins/content/bundler.js +47 -0
  193. package/dist/cli/plugins/content/bundler.js.map +1 -0
  194. package/dist/cli/plugins/content/index.js +121 -62
  195. package/dist/cli/plugins/content/index.js.map +1 -1
  196. package/dist/cli/plugins/content/relay-module.d.ts +3 -0
  197. package/dist/cli/plugins/content/relay-module.js +11 -0
  198. package/dist/cli/plugins/content/relay-module.js.map +1 -0
  199. package/dist/cli/plugins/content/types.d.ts +1 -1
  200. package/dist/cli/plugins/content/utils.d.ts +2 -0
  201. package/dist/cli/plugins/content/utils.js +8 -1
  202. package/dist/cli/plugins/content/utils.js.map +1 -1
  203. package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +1 -1
  204. package/dist/cli/plugins/icon/declaration/IconDeclaration.js +6 -6
  205. package/dist/cli/plugins/icon/declaration/IconDeclaration.js.map +1 -1
  206. package/dist/cli/plugins/icon/declaration/icon.d.ts +3 -5
  207. package/dist/cli/plugins/icon/icon-module.d.ts +2 -0
  208. package/dist/cli/plugins/icon/icon-module.js +11 -0
  209. package/dist/cli/plugins/icon/icon-module.js.map +1 -0
  210. package/dist/cli/plugins/icon/index.js +5 -3
  211. package/dist/cli/plugins/icon/index.js.map +1 -1
  212. package/dist/cli/plugins/locale/Locale.d.ts +9 -2
  213. package/dist/cli/plugins/locale/Locale.js +37 -5
  214. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  215. package/dist/cli/plugins/locale/declaration/locale.d.ts +1 -1
  216. package/dist/cli/plugins/locale/index.js +57 -22
  217. package/dist/cli/plugins/locale/index.js.map +1 -1
  218. package/dist/cli/plugins/locale/locale-module.d.ts +4 -0
  219. package/dist/cli/plugins/locale/locale-module.js +16 -0
  220. package/dist/cli/plugins/locale/locale-module.js.map +1 -0
  221. package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -3
  222. package/dist/cli/plugins/offscreen/Offscreen.js.map +1 -1
  223. package/dist/cli/plugins/offscreen/index.js +5 -4
  224. package/dist/cli/plugins/offscreen/index.js.map +1 -1
  225. package/dist/cli/plugins/offscreen/offscreen-module.d.ts +3 -0
  226. package/dist/cli/plugins/offscreen/offscreen-module.js +11 -0
  227. package/dist/cli/plugins/offscreen/offscreen-module.js.map +1 -0
  228. package/dist/cli/plugins/output.js +33 -3
  229. package/dist/cli/plugins/output.js.map +1 -1
  230. package/dist/cli/plugins/page/declaration/PageDeclaration.js +4 -4
  231. package/dist/cli/plugins/page/declaration/PageDeclaration.js.map +1 -1
  232. package/dist/cli/plugins/page/declaration/page.d.ts +3 -3
  233. package/dist/cli/plugins/page/index.js +14 -10
  234. package/dist/cli/plugins/page/index.js.map +1 -1
  235. package/dist/cli/plugins/page/page-module.d.ts +2 -0
  236. package/dist/cli/plugins/page/page-module.js +11 -0
  237. package/dist/cli/plugins/page/page-module.js.map +1 -0
  238. package/dist/cli/plugins/popup/Popup.d.ts +1 -1
  239. package/dist/cli/plugins/popup/Popup.js +2 -2
  240. package/dist/cli/plugins/popup/Popup.js.map +1 -1
  241. package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +1 -1
  242. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js +6 -6
  243. package/dist/cli/plugins/popup/declaration/PopupDeclaration.js.map +1 -1
  244. package/dist/cli/plugins/popup/declaration/popup.d.ts +3 -3
  245. package/dist/cli/plugins/popup/index.js +6 -5
  246. package/dist/cli/plugins/popup/index.js.map +1 -1
  247. package/dist/cli/plugins/popup/popup-module.d.ts +3 -0
  248. package/dist/cli/plugins/popup/popup-module.js +11 -0
  249. package/dist/cli/plugins/popup/popup-module.js.map +1 -0
  250. package/dist/cli/plugins/sandbox/Sandbox.d.ts +1 -2
  251. package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -1
  252. package/dist/cli/plugins/sandbox/index.js +5 -4
  253. package/dist/cli/plugins/sandbox/index.js.map +1 -1
  254. package/dist/cli/plugins/sandbox/sandbox-module.d.ts +3 -0
  255. package/dist/cli/plugins/sandbox/sandbox-module.js +11 -0
  256. package/dist/cli/plugins/sandbox/sandbox-module.js.map +1 -0
  257. package/dist/cli/plugins/sidebar/Sidebar.d.ts +1 -1
  258. package/dist/cli/plugins/sidebar/Sidebar.js +2 -2
  259. package/dist/cli/plugins/sidebar/Sidebar.js.map +1 -1
  260. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +1 -1
  261. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js +6 -6
  262. package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js.map +1 -1
  263. package/dist/cli/plugins/sidebar/declaration/sidebar.d.ts +3 -3
  264. package/dist/cli/plugins/sidebar/index.js +6 -5
  265. package/dist/cli/plugins/sidebar/index.js.map +1 -1
  266. package/dist/cli/plugins/sidebar/sidebar-module.d.ts +3 -0
  267. package/dist/cli/plugins/sidebar/sidebar-module.js +11 -0
  268. package/dist/cli/plugins/sidebar/sidebar-module.js.map +1 -0
  269. package/dist/cli/plugins/style/index.d.ts +2 -1
  270. package/dist/cli/plugins/style/index.js +52 -25
  271. package/dist/cli/plugins/style/index.js.map +1 -1
  272. package/dist/cli/plugins/style/types.d.ts +5 -0
  273. package/dist/cli/plugins/style/types.js +1 -0
  274. package/dist/cli/plugins/style/types.js.map +1 -0
  275. package/dist/cli/raw.d.ts +4 -0
  276. package/dist/cli/resolvers/bundler.js +9 -7
  277. package/dist/cli/resolvers/bundler.js.map +1 -1
  278. package/dist/cli/resolvers/config.js +2 -1
  279. package/dist/cli/resolvers/config.js.map +1 -1
  280. package/dist/cli/virtual/index.d.ts +2 -2
  281. package/dist/cli/virtual/index.js +11 -8
  282. package/dist/cli/virtual/virtual.d.ts +8 -10
  283. package/dist/entry/content/adapters/react/Builder.js +1 -1
  284. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  285. package/dist/entry/content/adapters/react/Node.d.ts +2 -0
  286. package/dist/entry/content/adapters/react/Node.js +10 -2
  287. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  288. package/dist/entry/content/adapters/vanilla/Builder.js +1 -1
  289. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  290. package/dist/entry/content/adapters/vanilla/Node.d.ts +2 -1
  291. package/dist/entry/content/adapters/vanilla/Node.js +10 -7
  292. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  293. package/dist/entry/content/core/Builder.d.ts +1 -2
  294. package/dist/entry/content/core/Builder.js +9 -5
  295. package/dist/entry/content/core/Builder.js.map +1 -1
  296. package/dist/entry/content/core/MountBuilder.js +14 -6
  297. package/dist/entry/content/core/MountBuilder.js.map +1 -1
  298. package/dist/entry/content/core/{Context.d.ts → context/Context.d.ts} +2 -1
  299. package/dist/entry/content/core/{Context.js → context/Context.js} +7 -0
  300. package/dist/entry/content/core/context/Context.js.map +1 -0
  301. package/dist/entry/content/core/{EventEmitter.d.ts → context/EventEmitter.d.ts} +1 -1
  302. package/dist/entry/content/core/{EventEmitter.js → context/EventEmitter.js} +1 -1
  303. package/dist/entry/content/core/context/EventEmitter.js.map +1 -0
  304. package/dist/entry/content/core/{ManagedContext.d.ts → context/ManagedContext.d.ts} +1 -1
  305. package/dist/entry/content/core/context/ManagedContext.js.map +1 -0
  306. package/dist/entry/content/core/context/index.d.ts +3 -0
  307. package/dist/entry/content/core/context/index.js +9 -0
  308. package/dist/entry/content/core/context/index.js.map +1 -0
  309. package/dist/entry/content/core/{AbstractMarker.d.ts → markers/AbstractMarker.d.ts} +1 -1
  310. package/dist/entry/content/core/{AbstractMarker.js → markers/AbstractMarker.js} +1 -1
  311. package/dist/entry/content/core/markers/AbstractMarker.js.map +1 -0
  312. package/dist/entry/content/core/{AttributeMarker.d.ts → markers/AttributeMarker.d.ts} +1 -1
  313. package/dist/entry/content/core/markers/AttributeMarker.js.map +1 -0
  314. package/dist/entry/content/core/{WeakMarker.d.ts → markers/WeakMarker.d.ts} +1 -1
  315. package/dist/entry/content/core/markers/WeakMarker.js.map +1 -0
  316. package/dist/entry/content/core/markers/index.d.ts +3 -0
  317. package/dist/entry/content/core/markers/index.js +9 -0
  318. package/dist/entry/content/core/markers/index.js.map +1 -0
  319. package/dist/entry/content/core/{EventNode.d.ts → nodes/EventNode.d.ts} +2 -1
  320. package/dist/entry/content/core/{EventNode.js → nodes/EventNode.js} +3 -0
  321. package/dist/entry/content/core/nodes/EventNode.js.map +1 -0
  322. package/dist/entry/content/core/nodes/FrameNode.d.ts +23 -0
  323. package/dist/entry/content/core/nodes/FrameNode.js +125 -0
  324. package/dist/entry/content/core/nodes/FrameNode.js.map +1 -0
  325. package/dist/entry/content/core/{MarkerNode.d.ts → nodes/MarkerNode.d.ts} +2 -1
  326. package/dist/entry/content/core/{MarkerNode.js → nodes/MarkerNode.js} +3 -0
  327. package/dist/entry/content/core/nodes/MarkerNode.js.map +1 -0
  328. package/dist/entry/content/core/{MountNode.d.ts → nodes/MountNode.d.ts} +2 -1
  329. package/dist/entry/content/core/{MountNode.js → nodes/MountNode.js} +3 -0
  330. package/dist/entry/content/core/nodes/MountNode.js.map +1 -0
  331. package/dist/entry/content/core/{Node.d.ts → nodes/Node.d.ts} +2 -1
  332. package/dist/entry/content/core/{Node.js → nodes/Node.js} +3 -0
  333. package/dist/entry/content/core/nodes/Node.js.map +1 -0
  334. package/dist/entry/content/core/nodes/ShadowNode.d.ts +14 -0
  335. package/dist/entry/content/core/nodes/ShadowNode.js +67 -0
  336. package/dist/entry/content/core/nodes/ShadowNode.js.map +1 -0
  337. package/dist/entry/content/core/nodes/index.d.ts +6 -0
  338. package/dist/entry/content/core/nodes/index.js +15 -0
  339. package/dist/entry/content/core/nodes/index.js.map +1 -0
  340. package/dist/entry/content/core/nodes/isolated-styles.d.ts +2 -0
  341. package/dist/entry/content/core/nodes/isolated-styles.js +14 -0
  342. package/dist/entry/content/core/nodes/isolated-styles.js.map +1 -0
  343. package/dist/entry/content/core/resolvers/watch.js +1 -1
  344. package/dist/entry/content/core/resolvers/watch.js.map +1 -1
  345. package/dist/entry/content/frame/Builder.d.ts +7 -0
  346. package/dist/entry/content/frame/Builder.js +14 -0
  347. package/dist/entry/content/frame/Builder.js.map +1 -0
  348. package/dist/entry/content/frame/index.d.ts +4 -0
  349. package/dist/entry/content/frame/index.js +7 -0
  350. package/dist/entry/content/frame/index.js.map +1 -0
  351. package/dist/entry/relay/Builder.js +5 -1
  352. package/dist/entry/relay/Builder.js.map +1 -1
  353. package/dist/entry/relay/index.d.ts +1 -1
  354. package/dist/locale/adapters/react/ReactLocale.d.ts +18 -0
  355. package/dist/locale/adapters/react/ReactLocale.js +41 -0
  356. package/dist/locale/adapters/react/ReactLocale.js.map +1 -0
  357. package/dist/locale/adapters/react/hooks/use-locale-attributes.d.ts +7 -0
  358. package/dist/locale/adapters/react/hooks/use-locale-attributes.js +30 -0
  359. package/dist/locale/adapters/react/hooks/use-locale-attributes.js.map +1 -0
  360. package/dist/locale/adapters/react/hooks/use-locale.d.ts +3 -0
  361. package/dist/locale/adapters/react/hooks/use-locale.js +17 -0
  362. package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -0
  363. package/dist/locale/adapters/react/hooks/use-native-locale.d.ts +3 -0
  364. package/dist/locale/adapters/react/hooks/use-native-locale.js +10 -0
  365. package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -0
  366. package/dist/locale/adapters/react/index.d.ts +4 -2
  367. package/dist/locale/adapters/react/index.js +6 -4
  368. package/dist/locale/adapters/react/index.js.map +1 -1
  369. package/dist/locale/adapters/react/types.d.ts +22 -0
  370. package/dist/locale/adapters/react/types.js +1 -0
  371. package/dist/locale/adapters/react/types.js.map +1 -0
  372. package/dist/locale/helpers.d.ts +4 -5
  373. package/dist/locale/helpers.js +1 -1
  374. package/dist/locale/helpers.js.map +1 -1
  375. package/dist/locale/index.d.ts +2 -1
  376. package/dist/locale/index.js +1 -0
  377. package/dist/locale/index.js.map +1 -1
  378. package/dist/locale/providers/AbstractLocale.d.ts +4 -4
  379. package/dist/locale/providers/AbstractLocale.js +13 -94
  380. package/dist/locale/providers/AbstractLocale.js.map +1 -1
  381. package/dist/locale/providers/CustomLocale.d.ts +3 -3
  382. package/dist/locale/providers/CustomLocale.js +6 -5
  383. package/dist/locale/providers/CustomLocale.js.map +1 -1
  384. package/dist/locale/providers/DynamicLocale.d.ts +18 -11
  385. package/dist/locale/providers/DynamicLocale.js +60 -47
  386. package/dist/locale/providers/DynamicLocale.js.map +1 -1
  387. package/dist/locale/providers/NativeLocale.d.ts +4 -7
  388. package/dist/locale/providers/NativeLocale.js +5 -14
  389. package/dist/locale/providers/NativeLocale.js.map +1 -1
  390. package/dist/locale/providers/ObservableLocale.d.ts +35 -0
  391. package/dist/locale/providers/ObservableLocale.js +179 -0
  392. package/dist/locale/providers/ObservableLocale.js.map +1 -0
  393. package/dist/locale/providers/index.d.ts +2 -1
  394. package/dist/locale/providers/index.js +3 -1
  395. package/dist/locale/providers/index.js.map +1 -1
  396. package/dist/locale/storage/LocaleStorage.d.ts +11 -0
  397. package/dist/locale/storage/LocaleStorage.js +40 -0
  398. package/dist/locale/storage/LocaleStorage.js.map +1 -0
  399. package/dist/locale/storage/index.d.ts +1 -0
  400. package/dist/locale/storage/index.js +5 -0
  401. package/dist/locale/storage/index.js.map +1 -0
  402. package/dist/main/entrypoint.d.ts +4 -0
  403. package/dist/main/entrypoint.js +20 -0
  404. package/dist/main/entrypoint.js.map +1 -0
  405. package/dist/main/icon.d.ts +2 -3
  406. package/dist/main/icon.js +2 -1
  407. package/dist/main/icon.js.map +1 -1
  408. package/dist/main/index.d.ts +1 -0
  409. package/dist/main/index.js +1 -0
  410. package/dist/main/index.js.map +1 -1
  411. package/dist/main/offscreen.d.ts +2 -5
  412. package/dist/main/offscreen.js +5 -2
  413. package/dist/main/offscreen.js.map +1 -1
  414. package/dist/main/page.d.ts +2 -4
  415. package/dist/main/page.js +2 -1
  416. package/dist/main/page.js.map +1 -1
  417. package/dist/main/popup.d.ts +2 -5
  418. package/dist/main/popup.js +3 -3
  419. package/dist/main/popup.js.map +1 -1
  420. package/dist/main/relay.d.ts +1 -2
  421. package/dist/main/relay.js +2 -1
  422. package/dist/main/relay.js.map +1 -1
  423. package/dist/main/sandbox.d.ts +1 -4
  424. package/dist/main/sandbox.js +2 -1
  425. package/dist/main/sandbox.js.map +1 -1
  426. package/dist/main/service.d.ts +1 -2
  427. package/dist/main/service.js.map +1 -1
  428. package/dist/main/sidebar.d.ts +2 -5
  429. package/dist/main/sidebar.js +3 -3
  430. package/dist/main/sidebar.js.map +1 -1
  431. package/dist/message/index.d.ts +2 -4
  432. package/dist/message/index.js.map +1 -1
  433. package/dist/offscreen/index.d.ts +2 -6
  434. package/dist/offscreen/index.js.map +1 -1
  435. package/dist/relay/index.d.ts +2 -5
  436. package/dist/relay/index.js.map +1 -1
  437. package/dist/sandbox/index.d.ts +1 -5
  438. package/dist/sandbox/index.js.map +1 -1
  439. package/dist/service/index.d.ts +2 -6
  440. package/dist/service/index.js.map +1 -1
  441. package/dist/shared/content/index.d.ts +1 -0
  442. package/dist/shared/content/index.js +6 -0
  443. package/dist/shared/content/index.js.map +1 -0
  444. package/dist/shared/content/isolation.d.ts +4 -0
  445. package/dist/shared/content/isolation.js +70 -0
  446. package/dist/shared/content/isolation.js.map +1 -0
  447. package/dist/shared/locale/index.d.ts +5 -0
  448. package/dist/shared/locale/index.js +21 -0
  449. package/dist/shared/locale/index.js.map +1 -0
  450. package/dist/shared/locale/keys.d.ts +5 -0
  451. package/dist/shared/locale/keys.js +33 -0
  452. package/dist/shared/locale/keys.js.map +1 -0
  453. package/dist/shared/locale/language.d.ts +4 -0
  454. package/dist/shared/locale/language.js +23 -0
  455. package/dist/shared/locale/language.js.map +1 -0
  456. package/dist/shared/locale/messages.d.ts +3 -0
  457. package/dist/shared/locale/messages.js +9 -0
  458. package/dist/shared/locale/messages.js.map +1 -0
  459. package/dist/shared/locale/plural.d.ts +2 -0
  460. package/dist/shared/locale/plural.js +81 -0
  461. package/dist/shared/locale/plural.js.map +1 -0
  462. package/dist/shared/locale/substitutions.d.ts +10 -0
  463. package/dist/shared/locale/substitutions.js +32 -0
  464. package/dist/shared/locale/substitutions.js.map +1 -0
  465. package/dist/types/background.d.ts +1 -1
  466. package/dist/types/background.js.map +1 -1
  467. package/dist/types/command.d.ts +1 -1
  468. package/dist/types/command.js.map +1 -1
  469. package/dist/types/content.d.ts +120 -31
  470. package/dist/types/content.js +22 -1
  471. package/dist/types/content.js.map +1 -1
  472. package/dist/types/entrypoint.d.ts +20 -0
  473. package/dist/types/entrypoint.js +4 -0
  474. package/dist/types/entrypoint.js.map +1 -1
  475. package/dist/types/icon.d.ts +8 -0
  476. package/dist/types/icon.js.map +1 -1
  477. package/dist/types/language.d.ts +57 -0
  478. package/dist/types/language.js +62 -0
  479. package/dist/types/language.js.map +1 -0
  480. package/dist/types/locale.d.ts +34 -63
  481. package/dist/types/locale.js +62 -119
  482. package/dist/types/locale.js.map +1 -1
  483. package/dist/types/manifest.d.ts +10 -7
  484. package/dist/types/manifest.js.map +1 -1
  485. package/dist/types/message.d.ts +7 -0
  486. package/dist/types/message.js.map +1 -1
  487. package/dist/types/offscreen.d.ts +14 -1
  488. package/dist/types/offscreen.js.map +1 -1
  489. package/dist/types/page.d.ts +8 -0
  490. package/dist/types/popup.d.ts +9 -0
  491. package/dist/types/relay.d.ts +16 -7
  492. package/dist/types/relay.js.map +1 -1
  493. package/dist/types/sandbox.d.ts +12 -0
  494. package/dist/types/sandbox.js.map +1 -1
  495. package/dist/types/service.d.ts +10 -1
  496. package/dist/types/service.js.map +1 -1
  497. package/dist/types/sidebar.d.ts +9 -0
  498. package/dist/types/sidebar.js.map +1 -1
  499. package/dist/types/transport.d.ts +4 -0
  500. package/dist/virtual/entrypoint.d.ts +5 -0
  501. package/dist/virtual/entrypoint.js +7 -0
  502. package/dist/virtual/entrypoint.js.map +1 -0
  503. package/dist/virtual/icon.d.ts +2 -0
  504. package/dist/virtual/icon.js +5 -0
  505. package/dist/virtual/icon.js.map +1 -0
  506. package/dist/virtual/locale.d.ts +7 -0
  507. package/dist/virtual/locale.js +13 -0
  508. package/dist/virtual/locale.js.map +1 -0
  509. package/dist/virtual/modules.d.ts +40 -0
  510. package/dist/virtual/offscreen.d.ts +3 -0
  511. package/dist/virtual/offscreen.js +5 -0
  512. package/dist/virtual/offscreen.js.map +1 -0
  513. package/dist/virtual/page.d.ts +2 -0
  514. package/dist/virtual/page.js +5 -0
  515. package/dist/virtual/page.js.map +1 -0
  516. package/dist/virtual/popup.d.ts +3 -0
  517. package/dist/virtual/popup.js +5 -0
  518. package/dist/virtual/popup.js.map +1 -0
  519. package/dist/virtual/relay.d.ts +3 -0
  520. package/dist/virtual/relay.js +5 -0
  521. package/dist/virtual/relay.js.map +1 -0
  522. package/dist/virtual/sandbox.d.ts +3 -0
  523. package/dist/virtual/sandbox.js +5 -0
  524. package/dist/virtual/sandbox.js.map +1 -0
  525. package/dist/virtual/sidebar.d.ts +3 -0
  526. package/dist/virtual/sidebar.js +5 -0
  527. package/dist/virtual/sidebar.js.map +1 -0
  528. package/package.json +31 -10
  529. package/scripts/clean-dist.js +7 -0
  530. package/scripts/copy-dts.js +11 -1
  531. package/types/client.d.ts +15 -0
  532. package/dist/cli/builders/manifest/utils.d.ts +0 -32
  533. package/dist/cli/builders/manifest/utils.js +0 -209
  534. package/dist/cli/builders/manifest/utils.js.map +0 -1
  535. package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +0 -1
  536. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +0 -40
  537. package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +0 -1
  538. package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +0 -10
  539. package/dist/cli/bundler/plugins/ManifestPlugin.js +0 -78
  540. package/dist/cli/bundler/plugins/ManifestPlugin.js.map +0 -1
  541. package/dist/cli/bundler/plugins/ReplacePlugin.js.map +0 -1
  542. package/dist/cli/bundler/plugins/WatchPlugin.js +0 -21
  543. package/dist/cli/bundler/plugins/WatchPlugin.js.map +0 -1
  544. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/account.options.d.ts +0 -1
  545. package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/advanced.options/index.d.ts +0 -1
  546. package/dist/entry/content/core/AbstractMarker.js.map +0 -1
  547. package/dist/entry/content/core/AttributeMarker.js.map +0 -1
  548. package/dist/entry/content/core/Context.js.map +0 -1
  549. package/dist/entry/content/core/EventEmitter.js.map +0 -1
  550. package/dist/entry/content/core/EventNode.js.map +0 -1
  551. package/dist/entry/content/core/ManagedContext.js.map +0 -1
  552. package/dist/entry/content/core/MarkerNode.js.map +0 -1
  553. package/dist/entry/content/core/MountNode.js.map +0 -1
  554. package/dist/entry/content/core/Node.js.map +0 -1
  555. package/dist/entry/content/core/WeakMarker.js.map +0 -1
  556. package/dist/locale/adapters/react/LocaleProvider.d.ts +0 -7
  557. package/dist/locale/adapters/react/LocaleProvider.js +0 -58
  558. package/dist/locale/adapters/react/LocaleProvider.js.map +0 -1
  559. package/dist/locale/adapters/react/context.d.ts +0 -14
  560. package/dist/locale/adapters/react/context.js +0 -25
  561. package/dist/locale/adapters/react/context.js.map +0 -1
  562. package/dist/locale/utils.d.ts +0 -11
  563. package/dist/locale/utils.js +0 -67
  564. package/dist/locale/utils.js.map +0 -1
  565. /package/dist/cli/bundler/plugins/{ReplacePlugin.d.ts → replace/ReplacePlugin.d.ts} +0 -0
  566. /package/dist/cli/bundler/plugins/{ReplacePlugin.js → replace/ReplacePlugin.js} +0 -0
  567. /package/dist/cli/bundler/plugins/{WatchPlugin.d.ts → watch/WatchPlugin.d.ts} +0 -0
  568. /package/dist/entry/content/core/{ManagedContext.js → context/ManagedContext.js} +0 -0
  569. /package/dist/entry/content/core/{AttributeMarker.js → markers/AttributeMarker.js} +0 -0
  570. /package/dist/entry/content/core/{WeakMarker.js → markers/WeakMarker.js} +0 -0
@@ -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":[]}
@@ -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/utils/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.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/utils/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":[]}
@@ -1,16 +1,36 @@
1
1
  import _ from "lodash";
2
2
  import { definePlugin } from "./../../main/plugin.js";
3
- import { appFilenameResolver } from "./../../cli/bundler/index.js";
3
+ import {
4
+ appFilenameResolver,
5
+ BuildAssetsMapPlugin,
6
+ GenerateModulePlugin,
7
+ createEntrypointModule,
8
+ EntrypointAssetsModule
9
+ } from "./../../cli/bundler/index.js";
4
10
  import { getOutputPath, getResolvePath } from "./../../cli/resolvers/path.js";
5
11
  import { Command } from "./../../types/app.js";
12
+ import { BackgroundEntryName } from "./../../types/background.js";
13
+ const serializeFilename = (filename) => {
14
+ return typeof filename === "function" ? filename.toString() : String(filename ?? "");
15
+ };
6
16
  var output_default = definePlugin(() => {
7
17
  return {
8
18
  name: "adnbn:output",
9
19
  bundler: ({ config }) => {
10
- const { app, jsDir, jsFilename } = config;
20
+ const { app, assetsDir, assetsFilename, cssDir, cssFilename, jsDir, jsFilename } = config;
11
21
  const kebabApp = _.kebabCase(app);
12
22
  const camelApp = _.camelCase(app);
13
23
  const filename = appFilenameResolver(app, jsFilename, jsDir);
24
+ const cssOutputFilename = appFilenameResolver(app, cssFilename, cssDir);
25
+ const buildHashSalt = JSON.stringify({
26
+ app,
27
+ assetsDir,
28
+ assetsFilename: serializeFilename(assetsFilename),
29
+ cssDir,
30
+ cssFilename: serializeFilename(cssFilename),
31
+ jsDir,
32
+ jsFilename: serializeFilename(jsFilename)
33
+ });
14
34
  return {
15
35
  output: {
16
36
  path: getResolvePath(getOutputPath(config)),
@@ -21,7 +41,17 @@ var output_default = definePlugin(() => {
21
41
  chunkLoadingGlobal: camelApp + "ChunkLoading",
22
42
  uniqueName: kebabApp,
23
43
  clean: config.command === Command.Build
24
- }
44
+ },
45
+ plugins: [
46
+ new GenerateModulePlugin({ [EntrypointAssetsModule.request]: createEntrypointModule() }),
47
+ new BuildAssetsMapPlugin({
48
+ module: EntrypointAssetsModule,
49
+ buildHashSalt,
50
+ cssChunkFilename: cssOutputFilename,
51
+ cssFilename: cssOutputFilename,
52
+ fullMapEntrypoint: BackgroundEntryName
53
+ })
54
+ ]
25
55
  };
26
56
  }
27
57
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/plugins/output.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getOutputPath, getResolvePath} from \"@cli/resolvers/path\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:output\",\n bundler: ({config}) => {\n const {app, jsDir, jsFilename} = config;\n\n const kebabApp = _.kebabCase(app);\n const camelApp = _.camelCase(app);\n\n const filename = appFilenameResolver(app, jsFilename, jsDir);\n\n return {\n output: {\n path: getResolvePath(getOutputPath(config)),\n filename,\n chunkFilename: filename,\n hashSalt: kebabApp,\n hotUpdateGlobal: camelApp + \"HotUpdate\",\n chunkLoadingGlobal: camelApp + \"ChunkLoading\",\n uniqueName: kebabApp,\n clean: config.command === Command.Build,\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAGd,SAAQ,oBAAmB;AAE3B,SAAQ,2BAA0B;AAClC,SAAQ,eAAe,sBAAqB;AAE5C,SAAQ,eAAc;AAEtB,IAAO,iBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,OAAO,WAAU,IAAI;AAEjC,YAAM,WAAW,EAAE,UAAU,GAAG;AAChC,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,WAAW,oBAAoB,KAAK,YAAY,KAAK;AAE3D,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,MAAM,eAAe,cAAc,MAAM,CAAC;AAAA,UAC1C;AAAA,UACA,eAAe;AAAA,UACf,UAAU;AAAA,UACV,iBAAiB,WAAW;AAAA,UAC5B,oBAAoB,WAAW;AAAA,UAC/B,YAAY;AAAA,UACZ,OAAO,OAAO,YAAY,QAAQ;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/plugins/output.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {\n appFilenameResolver,\n BuildAssetsMapPlugin,\n GenerateModulePlugin,\n createEntrypointModule,\n EntrypointAssetsModule,\n} from \"@cli/bundler\";\nimport {getOutputPath, getResolvePath} from \"@cli/resolvers/path\";\n\nimport {Command} from \"@typing/app\";\nimport {BackgroundEntryName} from \"@typing/background\";\n\nconst serializeFilename = (filename: unknown): string => {\n return typeof filename === \"function\" ? filename.toString() : String(filename ?? \"\");\n};\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:output\",\n bundler: ({config}) => {\n const {app, assetsDir, assetsFilename, cssDir, cssFilename, jsDir, jsFilename} = config;\n\n const kebabApp = _.kebabCase(app);\n const camelApp = _.camelCase(app);\n\n const filename = appFilenameResolver(app, jsFilename, jsDir);\n const cssOutputFilename = appFilenameResolver(app, cssFilename, cssDir);\n const buildHashSalt = JSON.stringify({\n app,\n assetsDir,\n assetsFilename: serializeFilename(assetsFilename),\n cssDir,\n cssFilename: serializeFilename(cssFilename),\n jsDir,\n jsFilename: serializeFilename(jsFilename),\n });\n\n return {\n output: {\n path: getResolvePath(getOutputPath(config)),\n filename,\n chunkFilename: filename,\n hashSalt: kebabApp,\n hotUpdateGlobal: camelApp + \"HotUpdate\",\n chunkLoadingGlobal: camelApp + \"ChunkLoading\",\n uniqueName: kebabApp,\n clean: config.command === Command.Build,\n },\n plugins: [\n new GenerateModulePlugin({[EntrypointAssetsModule.request]: createEntrypointModule()}),\n new BuildAssetsMapPlugin({\n module: EntrypointAssetsModule,\n buildHashSalt,\n cssChunkFilename: cssOutputFilename,\n cssFilename: cssOutputFilename,\n fullMapEntrypoint: BackgroundEntryName,\n }),\n ],\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"AAAA,OAAO,OAAO;AAGd,SAAQ,oBAAmB;AAE3B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAQ,eAAe,sBAAqB;AAE5C,SAAQ,eAAc;AACtB,SAAQ,2BAA0B;AAElC,MAAM,oBAAoB,CAAC,aAA8B;AACrD,SAAO,OAAO,aAAa,aAAa,SAAS,SAAS,IAAI,OAAO,YAAY,EAAE;AACvF;AAEA,IAAO,iBAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,WAAW,gBAAgB,QAAQ,aAAa,OAAO,WAAU,IAAI;AAEjF,YAAM,WAAW,EAAE,UAAU,GAAG;AAChC,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,WAAW,oBAAoB,KAAK,YAAY,KAAK;AAC3D,YAAM,oBAAoB,oBAAoB,KAAK,aAAa,MAAM;AACtE,YAAM,gBAAgB,KAAK,UAAU;AAAA,QACjC;AAAA,QACA;AAAA,QACA,gBAAgB,kBAAkB,cAAc;AAAA,QAChD;AAAA,QACA,aAAa,kBAAkB,WAAW;AAAA,QAC1C;AAAA,QACA,YAAY,kBAAkB,UAAU;AAAA,MAC5C,CAAC;AAED,aAAO;AAAA,QACH,QAAQ;AAAA,UACJ,MAAM,eAAe,cAAc,MAAM,CAAC;AAAA,UAC1C;AAAA,UACA,eAAe;AAAA,UACf,UAAU;AAAA,UACV,iBAAiB,WAAW;AAAA,UAC5B,oBAAoB,WAAW;AAAA,UAC/B,YAAY;AAAA,UACZ,OAAO,OAAO,YAAY,QAAQ;AAAA,QACtC;AAAA,QACA,SAAS;AAAA,UACL,IAAI,qBAAqB,EAAC,CAAC,uBAAuB,OAAO,GAAG,uBAAuB,EAAC,CAAC;AAAA,UACrF,IAAI,qBAAqB;AAAA,YACrB,QAAQ;AAAA,YACR;AAAA,YACA,kBAAkB;AAAA,YAClB,aAAa;AAAA,YACb,mBAAmB;AAAA,UACvB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
@@ -12,10 +12,10 @@ class PageDeclaration_default extends FileBuilder {
12
12
  }
13
13
  template() {
14
14
  let content = this.readFile();
15
- if (this.alias.size > 0) {
16
- const type = '"' + Array.from(this.alias).join('" | "') + '"';
17
- content = content.replace("type PageAlias = string", `type PageAlias = ${type}`);
18
- }
15
+ content = content.replace(
16
+ "// :page-aliases",
17
+ Array.from(this.alias, (alias) => `${JSON.stringify(alias)}: true;`).join("\n ")
18
+ );
19
19
  return content;
20
20
  }
21
21
  setAlias(alias) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/cli/plugins/page/declaration/PageDeclaration.ts"],"sourcesContent":["import {FileBuilder} from \"@cli/plugins/typescript\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class extends FileBuilder {\n protected alias = new Set<string>();\n\n constructor(config: ReadonlyConfig) {\n super(config);\n }\n\n protected filename(): string {\n return \"page.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.alias.size > 0) {\n const type = '\"' + Array.from(this.alias).join('\" | \"') + '\"';\n\n content = content.replace(\"type PageAlias = string\", `type PageAlias = ${type}`);\n }\n\n return content;\n }\n\n public setAlias(alias: Set<string>): this {\n this.alias = alias;\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,2BAA2B,oBAAoB,IAAI,EAAE;AAAA,IACnF;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,SAAS,OAA0B;AACtC,SAAK,QAAQ;AAEb,WAAO;AAAA,EACX;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/cli/plugins/page/declaration/PageDeclaration.ts"],"sourcesContent":["import {FileBuilder} from \"@cli/plugins/typescript\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class extends FileBuilder {\n protected alias = new Set<string>();\n\n constructor(config: ReadonlyConfig) {\n super(config);\n }\n\n protected filename(): string {\n return \"page.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 \"// :page-aliases\",\n Array.from(this.alias, alias => `${JSON.stringify(alias)}: true;`).join(\"\\n \")\n );\n\n return content;\n }\n\n public setAlias(alias: Set<string>): this {\n this.alias = alias;\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,cAAU,QAAQ;AAAA,MACd;AAAA,MACA,MAAM,KAAK,KAAK,OAAO,WAAS,GAAG,KAAK,UAAU,KAAK,CAAC,SAAS,EAAE,KAAK,YAAY;AAAA,IACxF;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,SAAS,OAA0B;AACtC,SAAK,QAAQ;AAEb,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import ":package";
2
2
 
3
3
  declare module ":package" {
4
- export type PageAlias = string;
5
-
6
- export function getPageUrl(alias: PageAlias): string;
4
+ interface PageAliasRegistry {
5
+ // :page-aliases
6
+ }
7
7
  }
@@ -1,10 +1,11 @@
1
- import { DefinePlugin, HtmlRspackPlugin } from "@rspack/core";
1
+ import { HtmlRspackPlugin } from "@rspack/core";
2
2
  import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
3
3
  import Page from "./Page.js";
4
4
  import { PageDeclaration } from "./declaration/index.js";
5
+ import { createPageModule, PageModuleName } from "./page-module.js";
5
6
  import { definePlugin } from "./../../../main/plugin.js";
6
7
  import { virtualViewModule } from "./../../../cli/virtual/index.js";
7
- import { EntrypointPlugin } from "./../../../cli/bundler/index.js";
8
+ import { EntrypointPlugin, GenerateModulePlugin } from "./../../../cli/bundler/index.js";
8
9
  import { Command } from "./../../../types/app.js";
9
10
  var page_default = definePlugin(() => {
10
11
  let page;
@@ -18,14 +19,21 @@ var page_default = definePlugin(() => {
18
19
  page: () => page.files(),
19
20
  bundler: async ({ config }) => {
20
21
  declaration.setAlias(await page.getAlias()).build();
22
+ const getModules = async () => ({
23
+ [PageModuleName]: createPageModule(
24
+ Object.fromEntries(Array.from((await page.views()).values(), (item) => [item.alias, item.filename]))
25
+ )
26
+ });
27
+ const modulePlugin = new GenerateModulePlugin(await getModules());
28
+ if (config.command === Command.Watch) {
29
+ modulePlugin.watch(getModules);
30
+ }
21
31
  const plugins = [];
22
- let alias = /* @__PURE__ */ new Map();
23
32
  if (await page.empty()) {
24
33
  if (config.debug) {
25
34
  console.info("Page entries not found");
26
35
  }
27
36
  } else {
28
- alias = await page.getAliasToFilename();
29
37
  const plugin = EntrypointPlugin.from(await page.view().entries()).virtual((file) => virtualViewModule(file));
30
38
  if (config.command === Command.Watch) {
31
39
  plugin.watch(async () => {
@@ -38,12 +46,8 @@ var page_default = definePlugin(() => {
38
46
  plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);
39
47
  }
40
48
  return {
41
- plugins: [
42
- new DefinePlugin({
43
- __ADNBN_PAGE_ALIAS__: JSON.stringify(alias)
44
- }),
45
- ...plugins
46
- ]
49
+ // Entrypoint watch refreshes the finder and declarations before generating the module.
50
+ plugins: [...plugins, modulePlugin]
47
51
  };
48
52
  },
49
53
  manifest: async ({ manifest }) => {