adnbn 0.11.0 → 0.13.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 (378) hide show
  1. package/README.md +3 -0
  2. package/dist/cli/builders/manifest/ManifestBase.js +1 -1
  3. package/dist/cli/bundler/index.d.ts +1 -0
  4. package/dist/cli/bundler/index.js +1 -0
  5. package/dist/cli/bundler/index.js.map +1 -1
  6. package/dist/cli/bundler/layers.d.ts +5 -0
  7. package/dist/cli/bundler/layers.js +11 -0
  8. package/dist/cli/bundler/layers.js.map +1 -0
  9. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +44 -15
  10. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -1
  11. package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +1 -2
  12. package/dist/cli/bundler/plugins/build-assets-map/index.js +0 -3
  13. package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -1
  14. package/dist/cli/bundler/plugins/build-assets-map/normalize.d.ts +3 -0
  15. package/dist/cli/bundler/plugins/build-assets-map/normalize.js +24 -0
  16. package/dist/cli/bundler/plugins/build-assets-map/normalize.js.map +1 -0
  17. package/dist/cli/bundler/plugins/build-assets-map/templates/runtime.template.d.ts +2 -0
  18. package/dist/cli/bundler/plugins/build-assets-map/templates.d.ts +9 -0
  19. package/dist/cli/bundler/plugins/build-assets-map/templates.js +32 -0
  20. package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +3 -6
  21. package/dist/cli/bundler/plugins/build-assets-map/usage.js +6 -3
  22. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -1
  23. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js +11 -0
  24. package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -1
  25. package/dist/cli/bundler/plugins/index.d.ts +2 -2
  26. package/dist/cli/bundler/plugins/index.js +2 -6
  27. package/dist/cli/bundler/plugins/index.js.map +1 -1
  28. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +1 -1
  29. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +38 -13
  30. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -1
  31. package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +7 -0
  32. package/dist/cli/bundler/plugins/isolated-styles/chunks.js +33 -0
  33. package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -0
  34. package/dist/cli/bundler/plugins/isolated-styles/split-chunks.d.ts +4 -0
  35. package/dist/cli/bundler/plugins/isolated-styles/split-chunks.js +51 -0
  36. package/dist/cli/bundler/plugins/isolated-styles/split-chunks.js.map +1 -0
  37. package/dist/cli/bundler/plugins/isolated-styles/templates.js +36 -6
  38. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +1 -2
  39. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -1
  40. package/dist/cli/bundler/plugins/types.d.ts +4 -0
  41. package/dist/cli/bundler/plugins/utils/compilation-assets.d.ts +4 -0
  42. package/dist/cli/bundler/plugins/utils/compilation-assets.js +12 -0
  43. package/dist/cli/bundler/plugins/utils/compilation-assets.js.map +1 -0
  44. package/dist/cli/bundler/plugins/utils/index.d.ts +2 -0
  45. package/dist/cli/bundler/plugins/utils/index.js +5 -0
  46. package/dist/cli/bundler/plugins/utils/index.js.map +1 -1
  47. package/dist/cli/bundler/plugins/utils/runtime-module.d.ts +3 -0
  48. package/dist/cli/bundler/plugins/utils/runtime-module.js +11 -0
  49. package/dist/cli/bundler/plugins/utils/runtime-module.js.map +1 -0
  50. package/dist/cli/bundler/utils/app-filename.d.ts +2 -0
  51. package/dist/cli/bundler/utils/app-filename.js +19 -0
  52. package/dist/cli/bundler/utils/app-filename.js.map +1 -0
  53. package/dist/cli/bundler/utils/assets.d.ts +3 -0
  54. package/dist/cli/bundler/utils/{output.js → assets.js} +22 -33
  55. package/dist/cli/bundler/utils/assets.js.map +1 -0
  56. package/dist/cli/bundler/utils/index.d.ts +2 -3
  57. package/dist/cli/bundler/utils/index.js +2 -3
  58. package/dist/cli/bundler/utils/index.js.map +1 -1
  59. package/dist/cli/entrypoint/file/injectors/core.js +1 -1
  60. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +1 -1
  61. package/dist/cli/entrypoint/parser/ContentParser.d.ts +2 -2
  62. package/dist/cli/entrypoint/parser/ContentParser.js +6 -22
  63. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  64. package/dist/cli/entrypoint/parser/RelayParser.js +1 -1
  65. package/dist/cli/entrypoint/parser/utils/content/default-render.d.ts +3 -0
  66. package/dist/cli/entrypoint/parser/utils/content/default-render.js +21 -0
  67. package/dist/cli/entrypoint/parser/utils/content/default-render.js.map +1 -0
  68. package/dist/cli/plugins/content/Content.d.ts +1 -1
  69. package/dist/cli/plugins/content/ContentDriver.d.ts +1 -1
  70. package/dist/cli/plugins/content/ContentManager.d.ts +1 -1
  71. package/dist/cli/plugins/content/ContentManager.js +1 -1
  72. package/dist/cli/plugins/content/ContentName.d.ts +1 -1
  73. package/dist/cli/plugins/content/ContentName.js +1 -1
  74. package/dist/cli/plugins/content/Relay.d.ts +1 -1
  75. package/dist/cli/plugins/content/RelayDriver.d.ts +1 -1
  76. package/dist/cli/plugins/content/RelayDriver.js +1 -1
  77. package/dist/cli/plugins/content/bundler.d.ts +1 -4
  78. package/dist/cli/plugins/content/bundler.js +5 -21
  79. package/dist/cli/plugins/content/bundler.js.map +1 -1
  80. package/dist/cli/plugins/content/index.js +4 -5
  81. package/dist/cli/plugins/content/index.js.map +1 -1
  82. package/dist/cli/plugins/content/types.d.ts +1 -1
  83. package/dist/cli/plugins/content/utils.d.ts +1 -1
  84. package/dist/cli/plugins/content/utils.js +1 -1
  85. package/dist/cli/plugins/index.d.ts +1 -1
  86. package/dist/cli/plugins/index.js +1 -1
  87. package/dist/cli/plugins/locale/Locale.js +5 -2
  88. package/dist/cli/plugins/locale/Locale.js.map +1 -1
  89. package/dist/cli/plugins/locale/index.js +2 -2
  90. package/dist/cli/plugins/locale/index.js.map +1 -1
  91. package/dist/cli/plugins/output/index.d.ts +2 -0
  92. package/dist/cli/plugins/{output.js → output/index.js} +11 -13
  93. package/dist/cli/plugins/output/index.js.map +1 -0
  94. package/dist/cli/plugins/output/runtime.d.ts +26 -0
  95. package/dist/cli/plugins/output/runtime.js +19 -0
  96. package/dist/cli/plugins/output/runtime.js.map +1 -0
  97. package/dist/cli/plugins/style/index.d.ts +1 -2
  98. package/dist/cli/plugins/style/index.js +19 -30
  99. package/dist/cli/plugins/style/index.js.map +1 -1
  100. package/dist/cli/resolvers/config.js +1 -2
  101. package/dist/cli/resolvers/config.js.map +1 -1
  102. package/dist/cli/virtual/index.js +4 -4
  103. package/dist/cli/virtual/virtual.d.ts +8 -3
  104. package/dist/content/index.d.ts +3 -0
  105. package/dist/content/index.js +8 -0
  106. package/dist/content/index.js.map +1 -0
  107. package/dist/entry/content/adapters/react/Builder.d.ts +7 -6
  108. package/dist/entry/content/adapters/react/Builder.js +12 -19
  109. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  110. package/dist/entry/content/adapters/react/Node.d.ts +6 -14
  111. package/dist/entry/content/adapters/react/Node.js +11 -35
  112. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  113. package/dist/entry/content/adapters/react/definition.d.ts +2 -0
  114. package/dist/entry/content/adapters/react/definition.js +12 -0
  115. package/dist/entry/content/adapters/react/definition.js.map +1 -0
  116. package/dist/entry/content/adapters/react/index.d.ts +2 -1
  117. package/dist/entry/content/adapters/react/index.js +3 -1
  118. package/dist/entry/content/adapters/react/index.js.map +1 -1
  119. package/dist/entry/content/adapters/vanilla/Builder.d.ts +7 -5
  120. package/dist/entry/content/adapters/vanilla/Builder.js +17 -14
  121. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  122. package/dist/entry/content/adapters/vanilla/Node.d.ts +5 -11
  123. package/dist/entry/content/adapters/vanilla/Node.js +11 -37
  124. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  125. package/dist/entry/content/adapters/vanilla/definition.d.ts +2 -0
  126. package/dist/entry/content/adapters/vanilla/definition.js +9 -0
  127. package/dist/entry/content/adapters/vanilla/definition.js.map +1 -0
  128. package/dist/entry/content/adapters/vanilla/index.d.ts +2 -1
  129. package/dist/entry/content/adapters/vanilla/index.js +3 -1
  130. package/dist/entry/content/adapters/vanilla/index.js.map +1 -1
  131. package/dist/entry/content/adapters/vanilla/utils.d.ts +1 -0
  132. package/dist/entry/content/adapters/vanilla/utils.js +7 -0
  133. package/dist/entry/content/adapters/vanilla/utils.js.map +1 -0
  134. package/dist/entry/content/index.d.ts +5 -1
  135. package/dist/entry/content/index.js +8 -1
  136. package/dist/entry/content/index.js.map +1 -1
  137. package/dist/entry/content/lifecycle/Builder.d.ts +32 -0
  138. package/dist/entry/content/lifecycle/Builder.js +254 -0
  139. package/dist/entry/content/lifecycle/Builder.js.map +1 -0
  140. package/dist/entry/content/lifecycle/IsolationSetup.d.ts +16 -0
  141. package/dist/entry/content/lifecycle/IsolationSetup.js +37 -0
  142. package/dist/entry/content/lifecycle/IsolationSetup.js.map +1 -0
  143. package/dist/entry/content/lifecycle/MountBuilder.d.ts +11 -0
  144. package/dist/entry/content/lifecycle/MountBuilder.js +73 -0
  145. package/dist/entry/content/lifecycle/MountBuilder.js.map +1 -0
  146. package/dist/entry/content/lifecycle/context/ContainerRegistry.d.ts +7 -0
  147. package/dist/entry/content/lifecycle/context/ContainerRegistry.js +45 -0
  148. package/dist/entry/content/lifecycle/context/ContainerRegistry.js.map +1 -0
  149. package/dist/entry/content/lifecycle/context/Context.d.ts +17 -0
  150. package/dist/entry/content/lifecycle/context/Context.js +88 -0
  151. package/dist/entry/content/lifecycle/context/Context.js.map +1 -0
  152. package/dist/entry/content/{core → lifecycle}/context/EventEmitter.d.ts +2 -2
  153. package/dist/entry/content/{core → lifecycle}/context/EventEmitter.js +3 -3
  154. package/dist/entry/content/lifecycle/context/EventEmitter.js.map +1 -0
  155. package/dist/entry/content/lifecycle/context/ManagedContext.d.ts +8 -0
  156. package/dist/entry/content/lifecycle/context/ManagedContext.js +19 -0
  157. package/dist/entry/content/lifecycle/context/ManagedContext.js.map +1 -0
  158. package/dist/entry/content/{core → lifecycle}/context/index.d.ts +1 -0
  159. package/dist/entry/content/lifecycle/context/index.js +11 -0
  160. package/dist/entry/content/lifecycle/context/index.js.map +1 -0
  161. package/dist/entry/content/{core → lifecycle}/markers/AbstractMarker.d.ts +2 -2
  162. package/dist/entry/content/{core → lifecycle}/markers/AbstractMarker.js +3 -3
  163. package/dist/entry/content/lifecycle/markers/AbstractMarker.js.map +1 -0
  164. package/dist/entry/content/{core → lifecycle}/markers/AttributeMarker.d.ts +2 -2
  165. package/dist/entry/content/{core → lifecycle}/markers/AttributeMarker.js +5 -3
  166. package/dist/entry/content/lifecycle/markers/AttributeMarker.js.map +1 -0
  167. package/dist/entry/content/{core → lifecycle}/markers/WeakMarker.d.ts +2 -2
  168. package/dist/entry/content/{core → lifecycle}/markers/WeakMarker.js +2 -2
  169. package/dist/entry/content/lifecycle/markers/WeakMarker.js.map +1 -0
  170. package/dist/entry/content/lifecycle/markers/index.js.map +1 -0
  171. package/dist/entry/content/lifecycle/nodes/EventNode.d.ts +15 -0
  172. package/dist/entry/content/lifecycle/nodes/EventNode.js +49 -0
  173. package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -0
  174. package/dist/entry/content/lifecycle/nodes/FrameNode.d.ts +30 -0
  175. package/dist/entry/content/lifecycle/nodes/FrameNode.js +190 -0
  176. package/dist/entry/content/lifecycle/nodes/FrameNode.js.map +1 -0
  177. package/dist/entry/content/{core → lifecycle}/nodes/MarkerNode.d.ts +3 -2
  178. package/dist/entry/content/{core → lifecycle}/nodes/MarkerNode.js +5 -2
  179. package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -0
  180. package/dist/entry/content/lifecycle/nodes/MountNode.d.ts +17 -0
  181. package/dist/entry/content/lifecycle/nodes/MountNode.js +80 -0
  182. package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -0
  183. package/dist/entry/content/{core → lifecycle}/nodes/Node.d.ts +2 -2
  184. package/dist/entry/content/{core → lifecycle}/nodes/Node.js +2 -2
  185. package/dist/entry/content/lifecycle/nodes/Node.js.map +1 -0
  186. package/dist/entry/content/lifecycle/nodes/RenderNode.d.ts +28 -0
  187. package/dist/entry/content/lifecycle/nodes/RenderNode.js +140 -0
  188. package/dist/entry/content/lifecycle/nodes/RenderNode.js.map +1 -0
  189. package/dist/entry/content/lifecycle/nodes/ShadowNode.d.ts +22 -0
  190. package/dist/entry/content/lifecycle/nodes/ShadowNode.js +124 -0
  191. package/dist/entry/content/lifecycle/nodes/ShadowNode.js.map +1 -0
  192. package/dist/entry/content/{core → lifecycle}/nodes/index.d.ts +1 -0
  193. package/dist/entry/content/lifecycle/nodes/index.js +17 -0
  194. package/dist/entry/content/lifecycle/nodes/index.js.map +1 -0
  195. package/dist/entry/content/{core → lifecycle}/nodes/isolated-styles.d.ts +1 -1
  196. package/dist/entry/content/{core → lifecycle}/nodes/isolated-styles.js +2 -2
  197. package/dist/entry/content/lifecycle/nodes/isolated-styles.js.map +1 -0
  198. package/dist/entry/content/lifecycle/types.d.ts +28 -0
  199. package/dist/entry/content/resolvers/anchor.d.ts +2 -0
  200. package/dist/entry/content/{core/resolvers → resolvers}/anchor.js +2 -2
  201. package/dist/entry/content/resolvers/anchor.js.map +1 -0
  202. package/dist/entry/content/resolvers/container.d.ts +2 -0
  203. package/dist/entry/content/{core/resolvers → resolvers}/container.js +2 -2
  204. package/dist/entry/content/resolvers/container.js.map +1 -0
  205. package/dist/entry/content/resolvers/definition.d.ts +5 -0
  206. package/dist/entry/content/resolvers/definition.js +24 -0
  207. package/dist/entry/content/resolvers/definition.js.map +1 -0
  208. package/dist/entry/content/{core/resolvers → resolvers}/index.d.ts +1 -1
  209. package/dist/entry/content/{core/resolvers → resolvers}/index.js +1 -1
  210. package/dist/entry/content/resolvers/index.js.map +1 -0
  211. package/dist/entry/content/resolvers/mount.d.ts +2 -0
  212. package/dist/entry/content/{core/resolvers → resolvers}/mount.js +3 -3
  213. package/dist/entry/content/resolvers/mount.js.map +1 -0
  214. package/dist/entry/content/resolvers/target.d.ts +3 -0
  215. package/dist/entry/content/resolvers/target.js +34 -0
  216. package/dist/entry/content/resolvers/target.js.map +1 -0
  217. package/dist/entry/content/resolvers/watch.d.ts +6 -0
  218. package/dist/entry/content/resolvers/watch.js +81 -0
  219. package/dist/entry/content/resolvers/watch.js.map +1 -0
  220. package/dist/entry/relay/Builder.d.ts +8 -8
  221. package/dist/entry/relay/Builder.js +28 -19
  222. package/dist/entry/relay/Builder.js.map +1 -1
  223. package/dist/entry/relay/TransportBuilder.d.ts +3 -2
  224. package/dist/entry/relay/TransportBuilder.js +3 -3
  225. package/dist/entry/relay/TransportBuilder.js.map +1 -1
  226. package/dist/entry/relay/index.d.ts +5 -2
  227. package/dist/entry/relay/index.js +8 -2
  228. package/dist/entry/relay/index.js.map +1 -1
  229. package/dist/entry/relay/resolvers/definition.d.ts +4 -0
  230. package/dist/entry/relay/resolvers/definition.js +16 -0
  231. package/dist/entry/relay/resolvers/definition.js.map +1 -0
  232. package/dist/main/content.d.ts +4 -6
  233. package/dist/main/content.js +3 -16
  234. package/dist/main/content.js.map +1 -1
  235. package/dist/main/entrypoint.js +1 -1
  236. package/dist/main/entrypoint.js.map +1 -1
  237. package/dist/main/relay.d.ts +2 -1
  238. package/dist/main/relay.js.map +1 -1
  239. package/dist/relay/RelayPermission.js +1 -1
  240. package/dist/shared/content/isolation.d.ts +1 -1
  241. package/dist/shared/content/isolation.js +13 -20
  242. package/dist/shared/content/isolation.js.map +1 -1
  243. package/dist/shared/locale/index.d.ts +1 -1
  244. package/dist/shared/locale/index.js +3 -1
  245. package/dist/shared/locale/index.js.map +1 -1
  246. package/dist/shared/locale/messages.d.ts +4 -0
  247. package/dist/shared/locale/messages.js +12 -0
  248. package/dist/shared/locale/messages.js.map +1 -1
  249. package/dist/types/content/adapters/index.d.ts +2 -0
  250. package/dist/types/content/adapters/index.js +1 -0
  251. package/dist/types/content/adapters/index.js.map +1 -0
  252. package/dist/types/content/adapters/react.d.ts +4 -0
  253. package/dist/types/content/adapters/react.js +1 -0
  254. package/dist/types/content/adapters/react.js.map +1 -0
  255. package/dist/types/content/adapters/vanilla.d.ts +1 -0
  256. package/dist/types/content/adapters/vanilla.js +1 -0
  257. package/dist/types/content/adapters/vanilla.js.map +1 -0
  258. package/dist/types/content/boundary.d.ts +17 -0
  259. package/dist/types/content/boundary.js +1 -0
  260. package/dist/types/content/boundary.js.map +1 -0
  261. package/dist/types/{content.d.ts → content/common.d.ts} +32 -53
  262. package/dist/types/{content.js → content/common.js} +1 -1
  263. package/dist/types/content/common.js.map +1 -0
  264. package/dist/types/content/definition.d.ts +66 -0
  265. package/dist/types/content/definition.js +1 -0
  266. package/dist/types/content/definition.js.map +1 -0
  267. package/dist/types/content/index.d.ts +7 -0
  268. package/dist/types/content/index.js +2 -0
  269. package/dist/types/content/index.js.map +1 -0
  270. package/dist/types/content/prepare.d.ts +9 -0
  271. package/dist/types/content/prepare.js +1 -0
  272. package/dist/types/content/prepare.js.map +1 -0
  273. package/dist/types/content/render.d.ts +6 -0
  274. package/dist/types/content/render.js +1 -0
  275. package/dist/types/content/render.js.map +1 -0
  276. package/dist/types/content/target.d.ts +13 -0
  277. package/dist/types/content/target.js +1 -0
  278. package/dist/types/content/target.js.map +1 -0
  279. package/dist/types/locale.d.ts +3 -0
  280. package/dist/types/locale.js.map +1 -1
  281. package/dist/types/manifest.d.ts +1 -1
  282. package/dist/types/relay.d.ts +3 -4
  283. package/dist/types/relay.js.map +1 -1
  284. package/dist/virtual/modules.d.ts +4 -3
  285. package/dist/virtual/{entrypoint.d.ts → runtime.d.ts} +3 -0
  286. package/dist/virtual/runtime.js +9 -0
  287. package/dist/virtual/runtime.js.map +1 -0
  288. package/package.json +32 -25
  289. package/scripts/merge-coverage.mjs +12 -0
  290. package/scripts/pre-commit.mjs +22 -0
  291. package/scripts/test-inventory.mjs +38 -0
  292. package/scripts/test-run.mjs +25 -0
  293. package/types/client.d.ts +3 -3
  294. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.d.ts +0 -13
  295. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js +0 -16
  296. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js.map +0 -1
  297. package/dist/cli/bundler/utils/layers.d.ts +0 -4
  298. package/dist/cli/bundler/utils/layers.js +0 -10
  299. package/dist/cli/bundler/utils/layers.js.map +0 -1
  300. package/dist/cli/bundler/utils/output.d.ts +0 -6
  301. package/dist/cli/bundler/utils/output.js.map +0 -1
  302. package/dist/cli/bundler/utils/styles.d.ts +0 -5
  303. package/dist/cli/bundler/utils/styles.js +0 -30
  304. package/dist/cli/bundler/utils/styles.js.map +0 -1
  305. package/dist/cli/plugins/output.d.ts +0 -2
  306. package/dist/cli/plugins/output.js.map +0 -1
  307. package/dist/cli/plugins/style/types.d.ts +0 -5
  308. package/dist/entry/content/adapters/react/resolvers/index.d.ts +0 -1
  309. package/dist/entry/content/adapters/react/resolvers/index.js +0 -2
  310. package/dist/entry/content/adapters/react/resolvers/index.js.map +0 -1
  311. package/dist/entry/content/adapters/react/resolvers/render.d.ts +0 -2
  312. package/dist/entry/content/adapters/react/resolvers/render.js +0 -11
  313. package/dist/entry/content/adapters/react/resolvers/render.js.map +0 -1
  314. package/dist/entry/content/core/Builder.d.ts +0 -26
  315. package/dist/entry/content/core/Builder.js +0 -128
  316. package/dist/entry/content/core/Builder.js.map +0 -1
  317. package/dist/entry/content/core/MountBuilder.d.ts +0 -10
  318. package/dist/entry/content/core/MountBuilder.js +0 -48
  319. package/dist/entry/content/core/MountBuilder.js.map +0 -1
  320. package/dist/entry/content/core/context/Context.d.ts +0 -12
  321. package/dist/entry/content/core/context/Context.js +0 -50
  322. package/dist/entry/content/core/context/Context.js.map +0 -1
  323. package/dist/entry/content/core/context/EventEmitter.js.map +0 -1
  324. package/dist/entry/content/core/context/ManagedContext.d.ts +0 -5
  325. package/dist/entry/content/core/context/ManagedContext.js +0 -12
  326. package/dist/entry/content/core/context/ManagedContext.js.map +0 -1
  327. package/dist/entry/content/core/context/index.js +0 -9
  328. package/dist/entry/content/core/context/index.js.map +0 -1
  329. package/dist/entry/content/core/markers/AbstractMarker.js.map +0 -1
  330. package/dist/entry/content/core/markers/AttributeMarker.js.map +0 -1
  331. package/dist/entry/content/core/markers/WeakMarker.js.map +0 -1
  332. package/dist/entry/content/core/markers/index.js.map +0 -1
  333. package/dist/entry/content/core/nodes/EventNode.d.ts +0 -11
  334. package/dist/entry/content/core/nodes/EventNode.js +0 -35
  335. package/dist/entry/content/core/nodes/EventNode.js.map +0 -1
  336. package/dist/entry/content/core/nodes/FrameNode.d.ts +0 -23
  337. package/dist/entry/content/core/nodes/FrameNode.js +0 -125
  338. package/dist/entry/content/core/nodes/FrameNode.js.map +0 -1
  339. package/dist/entry/content/core/nodes/MarkerNode.js.map +0 -1
  340. package/dist/entry/content/core/nodes/MountNode.d.ts +0 -12
  341. package/dist/entry/content/core/nodes/MountNode.js +0 -42
  342. package/dist/entry/content/core/nodes/MountNode.js.map +0 -1
  343. package/dist/entry/content/core/nodes/Node.js.map +0 -1
  344. package/dist/entry/content/core/nodes/ShadowNode.d.ts +0 -14
  345. package/dist/entry/content/core/nodes/ShadowNode.js +0 -67
  346. package/dist/entry/content/core/nodes/ShadowNode.js.map +0 -1
  347. package/dist/entry/content/core/nodes/index.js +0 -15
  348. package/dist/entry/content/core/nodes/index.js.map +0 -1
  349. package/dist/entry/content/core/nodes/isolated-styles.js.map +0 -1
  350. package/dist/entry/content/core/resolvers/anchor.d.ts +0 -2
  351. package/dist/entry/content/core/resolvers/anchor.js.map +0 -1
  352. package/dist/entry/content/core/resolvers/container.d.ts +0 -2
  353. package/dist/entry/content/core/resolvers/container.js.map +0 -1
  354. package/dist/entry/content/core/resolvers/definition.d.ts +0 -3
  355. package/dist/entry/content/core/resolvers/definition.js +0 -12
  356. package/dist/entry/content/core/resolvers/definition.js.map +0 -1
  357. package/dist/entry/content/core/resolvers/index.js.map +0 -1
  358. package/dist/entry/content/core/resolvers/mount.d.ts +0 -2
  359. package/dist/entry/content/core/resolvers/mount.js.map +0 -1
  360. package/dist/entry/content/core/resolvers/render.d.ts +0 -3
  361. package/dist/entry/content/core/resolvers/render.js +0 -18
  362. package/dist/entry/content/core/resolvers/render.js.map +0 -1
  363. package/dist/entry/content/core/resolvers/watch.d.ts +0 -4
  364. package/dist/entry/content/core/resolvers/watch.js +0 -62
  365. package/dist/entry/content/core/resolvers/watch.js.map +0 -1
  366. package/dist/entry/content/frame/Builder.d.ts +0 -7
  367. package/dist/entry/content/frame/Builder.js +0 -14
  368. package/dist/entry/content/frame/Builder.js.map +0 -1
  369. package/dist/entry/content/frame/index.d.ts +0 -4
  370. package/dist/entry/content/frame/index.js +0 -7
  371. package/dist/entry/content/frame/index.js.map +0 -1
  372. package/dist/types/content.js.map +0 -1
  373. package/dist/virtual/entrypoint.js +0 -7
  374. package/dist/virtual/entrypoint.js.map +0 -1
  375. /package/dist/entry/content/{core → lifecycle}/markers/index.d.ts +0 -0
  376. /package/dist/entry/content/{core → lifecycle}/markers/index.js +0 -0
  377. /package/dist/{cli/plugins/style → entry/content/lifecycle}/types.js +0 -0
  378. /package/dist/{cli/plugins/style → entry/content/lifecycle}/types.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import type {Chunk, Configuration as RspackConfig, NormalModule, Plugins} from \"@rspack/core\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\nimport {hasIsolatedTarget} from \"./utils\";\nimport {createPageAccessRequirements, getContentChunkName, validateContentStyles} from \"./bundler\";\nimport {createRelayModule, RelayModuleName} from \"./relay-module\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {PageFinder} from \"@cli/entrypoint/index.js\";\nimport {getContentLayer} from \"@cli/bundler/utils/layers\";\n\nimport {\n appFilenameResolver,\n ChunkLoaderPlugin,\n EntrypointPlugin,\n onlyViaTopLevelEntry,\n IsolatedStylesPlugin,\n ResourceAccessPlugin,\n GenerateModulePlugin,\n} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {ContentScriptStylesRuntimeProperty, ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let contentProvider: Content;\n let relayProvider: Relay;\n let contentManager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: ({config}) => {\n contentProvider = new Content(config);\n relayProvider = new Relay(config);\n\n // prettier-ignore\n contentManager = new ContentManager(config)\n .provider(contentProvider)\n .provider(relayProvider);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => contentProvider.files(),\n relay: () => relayProvider.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n let entryOptionsByName = await contentManager.entryOptions();\n\n const getModules = async () => ({\n [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap()),\n });\n const modulePlugin = new GenerateModulePlugin(await getModules());\n\n if (config.command === Command.Watch) {\n modulePlugin.watch(getModules);\n }\n\n const basePlugins: Plugins = [\n modulePlugin,\n new ResourceAccessPlugin({\n requirements: async () => {\n if (\n !Array.from(entryOptionsByName.values()).some(\n options => options.isolation?.page !== undefined\n )\n ) {\n return [];\n }\n\n const views = await new PageFinder(config).views();\n const pages = new Map(Array.from(views.values(), view => [view.alias, view.filename]));\n return createPageAccessRequirements(entryOptionsByName, pages);\n },\n }),\n ];\n\n if (await contentManager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n\n return {plugins: basePlugins};\n }\n\n const entries = await contentManager.entries();\n const getEntryWorld = (name: string): ContentScriptWorld => {\n const options = entryOptionsByName.get(name);\n\n if (!options) {\n throw new Error(`Execution world for content entrypoint \"${name}\" is unavailable`);\n }\n\n return options.world === ContentScriptWorld.Main\n ? ContentScriptWorld.Main\n : ContentScriptWorld.Isolated;\n };\n\n // prettier-ignore\n const entrypointPlugin = EntrypointPlugin.from(entries)\n .virtual(file => contentManager.virtual(file))\n .entryOptions(name => {\n const world = getEntryWorld(name);\n\n return {\n // MAIN cannot resolve an installed extension URL without crossing contexts.\n // ISOLATED keeps physical async chunks and resolves them through the extension API.\n asyncChunks: world === ContentScriptWorld.Isolated,\n layer: getContentLayer(world),\n publicPath: \"\",\n };\n });\n\n if (config.command === Command.Watch) {\n entrypointPlugin.watch(async () => {\n contentManager.clear();\n\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n const entries = await contentManager.entries();\n entryOptionsByName = await contentManager.entryOptions();\n\n return entries;\n });\n }\n\n const isContentModule = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n const createCacheGroup = (world: ContentScriptWorld) => ({\n minChunks: 2,\n name: getContentChunkName(world),\n test: (\n module: Parameters<typeof isContentModule>[0],\n context: Parameters<typeof isContentModule>[1]\n ) => {\n const normalModule = module as NormalModule;\n\n if (!normalModule.resource) {\n return false;\n }\n\n return isContentModule(module, context);\n },\n chunks: (chunk: Chunk): boolean =>\n chunk.name !== undefined &&\n entryOptionsByName.has(chunk.name) &&\n getEntryWorld(chunk.name) === world,\n enforce: false,\n reuseExistingChunk: false,\n priority: 20,\n });\n\n return {\n plugins: [\n entrypointPlugin,\n new ChunkLoaderPlugin({\n test: entry =>\n entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated,\n }),\n new IsolatedStylesPlugin({\n cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n property: ContentScriptStylesRuntimeProperty,\n test: entry => {\n const options = entryOptionsByName.get(entry);\n return options !== undefined && hasIsolatedTarget(options);\n },\n validate: (entry, files) => validateContentStyles(entry, entryOptionsByName.get(entry), files),\n }),\n ...basePlugins,\n ],\n optimization: config.commonChunks\n ? {\n splitChunks: {\n cacheGroups: {\n adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),\n adnbnContentMain: createCacheGroup(ContentScriptWorld.Main),\n },\n },\n }\n : undefined,\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await contentManager.manifest())\n .appendHostPermissions(await contentManager.hostPermissions())\n .appendOptionalHostPermissions(await contentManager.optionalHostPermissions())\n .appendPermissions(await contentManager.permissions())\n .appendOptionalPermissions(await contentManager.optionalPermissions());\n },\n };\n});\n"],"mappings":"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","names":["entries"]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import type {Chunk, Configuration as RspackConfig, NormalModule, Plugins} from \"@rspack/core\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\nimport {hasIsolatedTarget} from \"./utils\";\nimport {createPageAccessRequirements, getContentChunkName} from \"./bundler\";\nimport {createRelayModule, RelayModuleName} from \"./relay-module\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {PageFinder} from \"@cli/entrypoint/index.js\";\nimport {getContentLayer} from \"@cli/bundler/layers\";\n\nimport {\n appFilenameResolver,\n ChunkLoaderPlugin,\n EntrypointPlugin,\n onlyViaTopLevelEntry,\n IsolatedStylesPlugin,\n ResourceAccessPlugin,\n GenerateModulePlugin,\n} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {ContentScriptStylesRuntimeProperty, ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let contentProvider: Content;\n let relayProvider: Relay;\n let contentManager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: ({config}) => {\n contentProvider = new Content(config);\n relayProvider = new Relay(config);\n\n // prettier-ignore\n contentManager = new ContentManager(config)\n .provider(contentProvider)\n .provider(relayProvider);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => contentProvider.files(),\n relay: () => relayProvider.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n let entryOptionsByName = await contentManager.entryOptions();\n\n const getModules = async () => ({\n [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap()),\n });\n\n const modulePlugin = new GenerateModulePlugin(await getModules());\n\n if (config.command === Command.Watch) {\n modulePlugin.watch(getModules);\n }\n\n const basePlugins: Plugins = [\n modulePlugin,\n new ResourceAccessPlugin({\n requirements: async () => {\n if (\n !Array.from(entryOptionsByName.values()).some(\n options => options.isolation?.page !== undefined\n )\n ) {\n return [];\n }\n\n const views = await new PageFinder(config).views();\n const pages = new Map(Array.from(views.values(), view => [view.alias, view.filename]));\n\n return createPageAccessRequirements(entryOptionsByName, pages);\n },\n }),\n ];\n\n if (await contentManager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n\n return {plugins: basePlugins};\n }\n\n const entries = await contentManager.entries();\n\n const getEntryWorld = (name: string): ContentScriptWorld => {\n const options = entryOptionsByName.get(name);\n\n if (!options) {\n throw new Error(`Execution world for content entrypoint \"${name}\" is unavailable`);\n }\n\n return options.world === ContentScriptWorld.Main\n ? ContentScriptWorld.Main\n : ContentScriptWorld.Isolated;\n };\n\n // prettier-ignore\n const entrypointPlugin = EntrypointPlugin.from(entries)\n .virtual(file => contentManager.virtual(file))\n .entryOptions(name => {\n const world = getEntryWorld(name);\n\n return {\n // MAIN cannot resolve an installed extension URL without crossing contexts.\n // ISOLATED keeps physical async chunks and resolves them through the extension API.\n asyncChunks: world === ContentScriptWorld.Isolated,\n layer: getContentLayer(world),\n publicPath: \"\",\n };\n });\n\n if (config.command === Command.Watch) {\n entrypointPlugin.watch(async () => {\n contentManager.clear();\n\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n const entries = await contentManager.entries();\n entryOptionsByName = await contentManager.entryOptions();\n\n return entries;\n });\n }\n\n const isContentModule = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n const createCacheGroup = (world: ContentScriptWorld) => ({\n minChunks: 2,\n name: getContentChunkName(world),\n test: (\n module: Parameters<typeof isContentModule>[0],\n context: Parameters<typeof isContentModule>[1]\n ) => {\n const normalModule = module as NormalModule;\n\n if (!normalModule.resource) {\n return false;\n }\n\n return isContentModule(module, context);\n },\n chunks: (chunk: Chunk): boolean =>\n chunk.name !== undefined &&\n entryOptionsByName.has(chunk.name) &&\n getEntryWorld(chunk.name) === world,\n enforce: false,\n reuseExistingChunk: false,\n priority: 20,\n });\n\n return {\n plugins: [\n entrypointPlugin,\n new ChunkLoaderPlugin({\n test: entry =>\n entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated,\n }),\n new IsolatedStylesPlugin({\n cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n property: ContentScriptStylesRuntimeProperty,\n test: entry => {\n const options = entryOptionsByName.get(entry);\n\n return options !== undefined && hasIsolatedTarget(options);\n },\n }),\n ...basePlugins,\n ],\n optimization: config.commonChunks\n ? {\n splitChunks: {\n cacheGroups: {\n adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),\n adnbnContentMain: createCacheGroup(ContentScriptWorld.Main),\n },\n },\n }\n : undefined,\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await contentManager.manifest())\n .appendHostPermissions(await contentManager.hostPermissions())\n .appendOptionalHostPermissions(await contentManager.optionalHostPermissions())\n .appendPermissions(await contentManager.permissions())\n .appendOptionalPermissions(await contentManager.optionalPermissions());\n },\n };\n});\n"],"mappings":"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","names":["entries"]}
@@ -1,4 +1,4 @@
1
- import { ContentScriptEntrypointOptions } from "../../../types/content.js";
1
+ import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
2
2
  import { EntrypointFile } from "../../../types/entrypoint.js";
3
3
  import { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
4
4
  export interface ContentItem<O extends ContentScriptEntrypointOptions> {
@@ -1,4 +1,4 @@
1
- import { ContentScriptConfig, ContentScriptEntrypointOptions } from "../../../types/content.js";
1
+ import { ContentScriptConfig, ContentScriptEntrypointOptions } from "../../../types/content/index.js";
2
2
  /** ShadowRoot or a blank iframe provides a local target for isolated styles and UI. */
3
3
  export declare const hasIsolatedTarget: (options: ContentScriptEntrypointOptions) => boolean;
4
4
  export declare const getContentScriptConfigFromOptions: (options: ContentScriptEntrypointOptions) => ContentScriptConfig;
@@ -1,6 +1,6 @@
1
1
  import _ from "lodash";
2
2
  import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
3
- import { ContentScriptIsolation } from "./../../../types/content.js";
3
+ import { ContentScriptIsolation } from "./../../../types/content/index.js";
4
4
  const hasIsolatedTarget = (options) => {
5
5
  var _a, _b;
6
6
  return ((_a = options.isolation) == null ? void 0 : _a.type) === ContentScriptIsolation.Shadow || ((_b = options.isolation) == null ? void 0 : _b.type) === ContentScriptIsolation.Iframe && !isContentScriptFrameNavigation(options.isolation);
@@ -6,7 +6,7 @@ export { default as pluginDotenv } from "./dotenv/index.js";
6
6
  export { default as pluginHtml } from "./html.js";
7
7
  export { default as pluginManifest } from "./manifest.js";
8
8
  export { default as pluginOptimization } from "./optimization.js";
9
- export { default as pluginOutput } from "./output.js";
9
+ export { default as pluginOutput } from "./output/index.js";
10
10
  export { default as pluginIcon } from "./icon/index.js";
11
11
  export { default as pluginLocale } from "./locale/index.js";
12
12
  export { default as pluginMeta } from "./meta/index.js";
@@ -6,7 +6,7 @@ import { default as default6 } from "./dotenv/index.js";
6
6
  import { default as default7 } from "./html.js";
7
7
  import { default as default8 } from "./manifest.js";
8
8
  import { default as default9 } from "./optimization.js";
9
- import { default as default10 } from "./output.js";
9
+ import { default as default10 } from "./output/index.js";
10
10
  import { default as default11 } from "./icon/index.js";
11
11
  import { default as default12 } from "./locale/index.js";
12
12
  import { default as default13 } from "./meta/index.js";
@@ -1,7 +1,7 @@
1
1
  import path from "path";
2
2
  import { LocaleFinder } from "./../../../cli/entrypoint/index.js";
3
3
  import { getSourcePath, getSharedPath, getAppPath, getAppSourcePath } from "./../../../cli/resolvers/path.js";
4
- import { flattenLocaleMessages, getLocaleFilename } from "./../../../shared/locale/index.js";
4
+ import { escapeLocaleMessages, flattenLocaleMessages, getLocaleFilename } from "./../../../shared/locale/index.js";
5
5
  class Locale extends LocaleFinder {
6
6
  _messages;
7
7
  async dependencies() {
@@ -18,7 +18,10 @@ class Locale extends LocaleFinder {
18
18
  }
19
19
  async json() {
20
20
  return Object.fromEntries(
21
- [...await this.messages()].map(([lang, messages]) => [getLocaleFilename(lang), messages])
21
+ [...await this.messages()].map(([lang, messages]) => [
22
+ getLocaleFilename(lang),
23
+ escapeLocaleMessages(messages)
24
+ ])
22
25
  );
23
26
  }
24
27
  async catalogue() {
@@ -1 +1 @@
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":[]}
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 {escapeLocaleMessages, 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]) => [\n getLocaleFilename(lang),\n escapeLocaleMessages(messages),\n ])\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,sBAAsB,uBAAuB,yBAAwB;AAI7E,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;AAAA,QACnD,kBAAkB,IAAI;AAAA,QACtB,qBAAqB,QAAQ;AAAA,MACjC,CAAC;AAAA,IACL;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":[]}
@@ -1,14 +1,14 @@
1
1
  import _ from "lodash";
2
2
  import { definePlugin } from "./../../../main/plugin.js";
3
3
  import { GenerateJsonPlugin, GenerateModulePlugin, WatchPlugin } from "./../../../cli/bundler/index.js";
4
- import { getContentLayer } from "./../../../cli/bundler/utils/layers.js";
4
+ import { getContentLayer } from "./../../../cli/bundler/layers.js";
5
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
8
  import { createLocaleModule, LocaleModuleLayer, LocaleModuleName } from "./locale-module.js";
9
9
  import { Command } from "./../../../types/app.js";
10
10
  import { Browser } from "./../../../types/browser.js";
11
- import { ContentScriptWorld } from "./../../../types/content.js";
11
+ import { ContentScriptWorld } from "./../../../types/content/index.js";
12
12
  var locale_default = definePlugin(() => {
13
13
  let locale;
14
14
  let declaration;
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/locale/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport type {Configuration as RspackConfig, RspackPluginInstance} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {GenerateJsonPlugin, GenerateModulePlugin, WatchPlugin} from \"@cli/bundler\";\nimport {getContentLayer} from \"@cli/bundler/layers\";\nimport {extractLocaleKey, modifyLocaleMessageKey} from \"@shared/locale\";\n\nimport Locale from \"./Locale\";\nimport {LocaleDeclaration} from \"./declaration\";\nimport {createLocaleModule, LocaleModuleLayer, LocaleModuleName} from \"./locale-module\";\n\nimport {Command} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let locale: Locale;\n let declaration: LocaleDeclaration;\n\n return {\n name: \"adnbn:locale\",\n startup: ({config}) => {\n locale = new Locale(config);\n declaration = new LocaleDeclaration(config);\n },\n locale: () => locale.files(),\n bundler: async ({config}) => {\n const prepareLocale = async () => {\n await locale.validate();\n declaration.structure(await locale.structure()).build();\n };\n\n const getModules = async () => ({\n [LocaleModuleName]: createLocaleModule(await locale.catalogue(), await locale.keys(), config.lang),\n });\n\n await prepareLocale();\n\n const jsonPlugin = new GenerateJsonPlugin(await locale.json());\n // MAIN keeps its content layer and uses the regular common-main.content group.\n const modulePlugin = new GenerateModulePlugin(await getModules()).layer(LocaleModuleLayer, {\n not: [getContentLayer(ContentScriptWorld.Main)],\n });\n const plugins: RspackPluginInstance[] = [];\n\n if (config.command === Command.Watch) {\n plugins.push(\n new WatchPlugin(async () => {\n locale.clear();\n await prepareLocale();\n })\n );\n\n jsonPlugin.watch(() => locale.json());\n modulePlugin.watch(getModules, () => locale.dependencies());\n }\n\n plugins.push(jsonPlugin, modulePlugin);\n\n return {\n plugins,\n optimization: {\n emitOnErrors: false,\n splitChunks: config.commonChunks\n ? {\n cacheGroups: {\n adnbnLocaleShared: {\n layer: LocaleModuleLayer,\n name: \"locale\",\n // Share the module across consumers of different exports.\n usedExports: false,\n minChunks: 2,\n minSize: 0,\n enforce: true,\n priority: 60,\n },\n adnbnLocaleLarge: {\n layer: LocaleModuleLayer,\n name: \"locale\",\n usedExports: false,\n minChunks: 1,\n minSize: 100_000,\n enforce: true,\n priority: 70,\n },\n },\n }\n : undefined,\n },\n } satisfies RspackConfig;\n },\n manifest: async ({config, manifest}) => {\n const {lang: language, name, shortName, description, browser} = config;\n const availableLanguages = await locale.languages();\n const builders = await locale.builders();\n const hasLocales = builders.size > 0;\n\n if (availableLanguages.size > 0 && !availableLanguages.has(language)) {\n throw new Error(\n `Language \"${language}\" not found in available translations. Available languages: ${[...availableLanguages].join(\", \")}`\n );\n }\n\n await locale.validate();\n\n const keys = await locale.keys();\n\n const assertLocaleKey = (value: string, label: string): void => {\n const key = extractLocaleKey(value);\n\n if (!key) {\n return;\n }\n\n if (!hasLocales) {\n throw new Error(`Locale ${label} key \"${key}\" provided but no translations were found`);\n }\n\n if (!keys.has(key)) {\n throw new Error(`Locale ${label} key \"${key}\" not found in translation`);\n }\n };\n\n manifest.setLocale(hasLocales ? language : undefined);\n\n if (shortName) {\n let manifestShortName = modifyLocaleMessageKey(shortName) ?? shortName;\n const shortNameKey = extractLocaleKey(shortName);\n\n assertLocaleKey(shortName, \"short name\");\n\n /** Opera/Edge do not support localization in manifest's short_name field */\n if (shortNameKey && (browser === Browser.Opera || browser === Browser.Edge)) {\n const defaultBuilder = builders.get(language);\n\n if (!defaultBuilder) {\n throw new Error(`Locale not found for \"${language}\"`);\n }\n\n manifestShortName = defaultBuilder.get().get(shortNameKey) ?? manifestShortName;\n }\n\n manifest.setShortName(manifestShortName);\n }\n\n if (description) {\n assertLocaleKey(description, \"description\");\n manifest.setDescription(modifyLocaleMessageKey(description));\n }\n\n if (name) {\n assertLocaleKey(name, \"name\");\n\n const manifestName = modifyLocaleMessageKey(name);\n\n if (manifestName) {\n manifest.setName(manifestName);\n\n return;\n }\n }\n\n manifest.setName(_.startCase(config.app));\n },\n };\n});\n"],"mappings":"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","names":[]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../../../main/plugin.js").PluginDefinition<[]>;
2
+ export default _default;
@@ -1,15 +1,11 @@
1
1
  import _ from "lodash";
2
- import { definePlugin } from "./../../main/plugin.js";
3
- import {
4
- appFilenameResolver,
5
- BuildAssetsMapPlugin,
6
- GenerateModulePlugin,
7
- createEntrypointModule,
8
- EntrypointAssetsModule
9
- } from "./../../cli/bundler/index.js";
10
- import { getOutputPath, getResolvePath } from "./../../cli/resolvers/path.js";
11
- import { Command } from "./../../types/app.js";
12
- import { BackgroundEntryName } from "./../../types/background.js";
2
+ import { definePlugin } from "./../../../main/plugin.js";
3
+ import { appFilenameResolver, BuildAssetsMapPlugin, GenerateModulePlugin } from "./../../../cli/bundler/index.js";
4
+ import { createRuntimeModule } from "./../../../cli/bundler/plugins/utils/index.js";
5
+ import { getOutputPath, getResolvePath } from "./../../../cli/resolvers/path.js";
6
+ import { RuntimeModuleRequest, RuntimeModuleReaders, EntrypointAssetsModule } from "./runtime.js";
7
+ import { Command } from "./../../../types/app.js";
8
+ import { BackgroundEntryName } from "./../../../types/background.js";
13
9
  const serializeFilename = (filename) => {
14
10
  return typeof filename === "function" ? filename.toString() : String(filename ?? "");
15
11
  };
@@ -43,7 +39,9 @@ var output_default = definePlugin(() => {
43
39
  clean: config.command === Command.Build
44
40
  },
45
41
  plugins: [
46
- new GenerateModulePlugin({ [EntrypointAssetsModule.request]: createEntrypointModule() }),
42
+ new GenerateModulePlugin({
43
+ [RuntimeModuleRequest]: createRuntimeModule(Object.values(RuntimeModuleReaders))
44
+ }),
47
45
  new BuildAssetsMapPlugin({
48
46
  module: EntrypointAssetsModule,
49
47
  buildHashSalt,
@@ -59,4 +57,4 @@ var output_default = definePlugin(() => {
59
57
  export {
60
58
  output_default as default
61
59
  };
62
- //# sourceMappingURL=output.js.map
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/output/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {Configuration as RspackConfig} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver, BuildAssetsMapPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {createRuntimeModule} from \"@cli/bundler/plugins/utils\";\nimport {getOutputPath, getResolvePath} from \"@cli/resolvers/path\";\n\nimport {RuntimeModuleRequest, RuntimeModuleReaders, EntrypointAssetsModule} from \"./runtime\";\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({\n [RuntimeModuleRequest]: createRuntimeModule(Object.values(RuntimeModuleReaders)),\n }),\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,SAAQ,qBAAqB,sBAAsB,4BAA2B;AAC9E,SAAQ,2BAA0B;AAClC,SAAQ,eAAe,sBAAqB;AAE5C,SAAQ,sBAAsB,sBAAsB,8BAA6B;AAEjF,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;AAAA,YACrB,CAAC,oBAAoB,GAAG,oBAAoB,OAAO,OAAO,oBAAoB,CAAC;AAAA,UACnF,CAAC;AAAA,UACD,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":[]}
@@ -0,0 +1,26 @@
1
+ export declare const RuntimeModuleRequest = "#adnbn/runtime";
2
+ export declare const RuntimeModuleReaders: {
3
+ readonly assets: {
4
+ readonly export: "readAssets";
5
+ readonly property: "__adnbnCurrentEntrypointAssets";
6
+ };
7
+ readonly assetsMap: {
8
+ readonly export: "readAssetsMap";
9
+ readonly property: "__adnbnBuildAssets";
10
+ };
11
+ readonly contentStyles: {
12
+ readonly export: "readContentStyles";
13
+ readonly property: "__adnbnIsolatedStyles";
14
+ };
15
+ };
16
+ export declare const EntrypointAssetsModule: {
17
+ request: string;
18
+ current: {
19
+ readonly export: "readAssets";
20
+ readonly property: "__adnbnCurrentEntrypointAssets";
21
+ };
22
+ full: {
23
+ readonly export: "readAssetsMap";
24
+ readonly property: "__adnbnBuildAssets";
25
+ };
26
+ };
@@ -0,0 +1,19 @@
1
+ import { ContentScriptStylesRuntimeProperty } from "./../../../types/content/index.js";
2
+ import { EntrypointAssetsMapRuntimeProperty, EntrypointAssetsRuntimeProperty } from "./../../../types/entrypoint.js";
3
+ const RuntimeModuleRequest = "#adnbn/runtime";
4
+ const RuntimeModuleReaders = {
5
+ assets: { export: "readAssets", property: EntrypointAssetsRuntimeProperty },
6
+ assetsMap: { export: "readAssetsMap", property: EntrypointAssetsMapRuntimeProperty },
7
+ contentStyles: { export: "readContentStyles", property: ContentScriptStylesRuntimeProperty }
8
+ };
9
+ const EntrypointAssetsModule = {
10
+ request: RuntimeModuleRequest,
11
+ current: RuntimeModuleReaders.assets,
12
+ full: RuntimeModuleReaders.assetsMap
13
+ };
14
+ export {
15
+ EntrypointAssetsModule,
16
+ RuntimeModuleReaders,
17
+ RuntimeModuleRequest
18
+ };
19
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cli/plugins/output/runtime.ts"],"sourcesContent":["import type {BuildAssetsMapPluginModuleOptions, RuntimeModuleReaderOptions} from \"@cli/bundler/plugins\";\n\nimport {ContentScriptStylesRuntimeProperty} from \"@typing/content\";\nimport {EntrypointAssetsMapRuntimeProperty, EntrypointAssetsRuntimeProperty} from \"@typing/entrypoint\";\n\nexport const RuntimeModuleRequest = \"#adnbn/runtime\";\n\nexport const RuntimeModuleReaders = {\n assets: {export: \"readAssets\", property: EntrypointAssetsRuntimeProperty},\n assetsMap: {export: \"readAssetsMap\", property: EntrypointAssetsMapRuntimeProperty},\n contentStyles: {export: \"readContentStyles\", property: ContentScriptStylesRuntimeProperty},\n} as const satisfies Record<string, RuntimeModuleReaderOptions>;\n\nexport const EntrypointAssetsModule = {\n request: RuntimeModuleRequest,\n current: RuntimeModuleReaders.assets,\n full: RuntimeModuleReaders.assetsMap,\n} satisfies BuildAssetsMapPluginModuleOptions;\n"],"mappings":"AAEA,SAAQ,0CAAyC;AACjD,SAAQ,oCAAoC,uCAAsC;AAE3E,MAAM,uBAAuB;AAE7B,MAAM,uBAAuB;AAAA,EAChC,QAAQ,EAAC,QAAQ,cAAc,UAAU,gCAA+B;AAAA,EACxE,WAAW,EAAC,QAAQ,iBAAiB,UAAU,mCAAkC;AAAA,EACjF,eAAe,EAAC,QAAQ,qBAAqB,UAAU,mCAAkC;AAC7F;AAEO,MAAM,yBAAyB;AAAA,EAClC,SAAS;AAAA,EACT,SAAS,qBAAqB;AAAA,EAC9B,MAAM,qBAAqB;AAC/B;","names":[]}
@@ -1,3 +1,2 @@
1
- import type { StylePluginOptions } from "./types.js";
2
- declare const _default: import("../../../main/plugin.js").PluginDefinition<[(StylePluginOptions | undefined)?]>;
1
+ declare const _default: import("../../../main/plugin.js").PluginDefinition<[]>;
3
2
  export default _default;
@@ -3,13 +3,13 @@ import path from "path";
3
3
  import fs from "fs";
4
4
  import { CssExtractRspackPlugin } from "@rspack/core";
5
5
  import { mergeStyleSources } from "./utils.js";
6
- import { IsolatedStylesLayer } from "./../../../cli/bundler/utils/styles.js";
6
+ import { DocumentStylesLayer, DefaultStylesLayer } from "./../../../cli/bundler/layers.js";
7
7
  import { definePlugin } from "./../../../main/plugin.js";
8
8
  import { appFilenameResolver } from "./../../../cli/bundler/index.js";
9
9
  import { getAppSourcePath, getResolvePath, getSharedPath } from "./../../../cli/resolvers/path.js";
10
10
  import { toPosix } from "./../../../cli/utils/path.js";
11
- const IsolatedAsIsLoaderIdent = "adnbn-isolated-asis";
12
- const IsolatedModulesLoaderIdent = "adnbn-isolated-modules";
11
+ const DefaultAsIsLoaderIdent = "adnbn-default-asis";
12
+ const DefaultModulesLoaderIdent = "adnbn-default-modules";
13
13
  const styleMergerLoader = (config) => (sharedStyle, sharedPath) => {
14
14
  const sharedDir = getResolvePath(getSharedPath(config));
15
15
  if (sharedPath.startsWith(sharedDir)) {
@@ -32,7 +32,7 @@ const styleMergerLoader = (config) => (sharedStyle, sharedPath) => {
32
32
  }
33
33
  }
34
34
  };
35
- var style_default = definePlugin(({ isolationIssuerLayer } = {}) => {
35
+ var style_default = definePlugin(() => {
36
36
  return {
37
37
  name: "adnbn:styles",
38
38
  bundler: ({ config }) => {
@@ -51,19 +51,19 @@ var style_default = definePlugin(({ isolationIssuerLayer } = {}) => {
51
51
  }
52
52
  return rules;
53
53
  };
54
- const createStyleRules = (isolated = false) => [
54
+ const createStyleRules = (defaultStyles = false) => [
55
55
  {
56
56
  resourceQuery: /[?&]asis(?:[=&]|$)/,
57
57
  use: createSassRuleSet({
58
58
  loader: "css-loader",
59
- ...isolated ? { ident: IsolatedAsIsLoaderIdent } : {},
59
+ ...defaultStyles ? { ident: DefaultAsIsLoaderIdent } : {},
60
60
  options: { esModule: true, modules: false }
61
61
  })
62
62
  },
63
63
  {
64
64
  use: createSassRuleSet({
65
65
  loader: "css-loader",
66
- ...isolated ? { ident: IsolatedModulesLoaderIdent } : {},
66
+ ...defaultStyles ? { ident: DefaultModulesLoaderIdent } : {},
67
67
  options: {
68
68
  esModule: true,
69
69
  modules: {
@@ -86,35 +86,24 @@ var style_default = definePlugin(({ isolationIssuerLayer } = {}) => {
86
86
  chunkFilename: filename
87
87
  })
88
88
  ],
89
- optimization: {
90
- splitChunks: {
91
- cacheGroups: {
92
- adnbnIsolatedStyles: {
93
- type: "css/mini-extract",
94
- layer: IsolatedStylesLayer,
95
- chunks: "all",
96
- enforce: true,
97
- name: false,
98
- priority: 100
99
- }
100
- }
101
- }
102
- },
103
89
  module: {
104
90
  rules: [
105
91
  {
106
92
  test: /\.(scss|css)$/,
107
93
  type: "javascript/auto",
108
94
  oneOf: [
109
- ...isolationIssuerLayer === void 0 ? [] : [
110
- {
111
- issuerLayer: isolationIssuerLayer,
112
- resourceQuery: /[?&]isolation(?:[=&]|$)/,
113
- layer: IsolatedStylesLayer,
114
- oneOf: createStyleRules(true)
115
- }
116
- ],
117
- { oneOf: createStyleRules() }
95
+ {
96
+ resourceQuery: /[?&]unisolated(?:[=&]|$)/,
97
+ layer: DocumentStylesLayer,
98
+ oneOf: createStyleRules()
99
+ },
100
+ {
101
+ // Nested CSS imports preserve an explicit document destination.
102
+ issuerLayer: DocumentStylesLayer,
103
+ layer: DocumentStylesLayer,
104
+ oneOf: createStyleRules()
105
+ },
106
+ { layer: DefaultStylesLayer, oneOf: createStyleRules(true) }
118
107
  ]
119
108
  }
120
109
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/cli/plugins/style/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {Configuration as RspackConfig, CssExtractRspackPlugin, RuleSetUse, RuleSetUseItem} from \"@rspack/core\";\n\nimport {mergeStyleSources} from \"./utils\";\nimport type {StylePluginOptions} from \"./types\";\nimport {IsolatedStylesLayer} from \"@cli/bundler/utils/styles\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\nimport {toPosix} from \"@cli/utils/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\n// CssExtract also identifies dependencies by loader request, not just by layer.\n// Keep isolated requests distinct from ordinary CSS and from each other's options.\nconst IsolatedAsIsLoaderIdent = \"adnbn-isolated-asis\";\nconst IsolatedModulesLoaderIdent = \"adnbn-isolated-modules\";\n\n// prettier-ignore\nconst styleMergerLoader =\n (config: ReadonlyConfig) =>\n (sharedStyle: string, sharedPath: string): string | void => {\n const sharedDir = getResolvePath(getSharedPath(config));\n\n if (sharedPath.startsWith(sharedDir)) {\n const relativePath = path.relative(sharedDir, sharedPath);\n\n const appDir = getResolvePath(getAppSourcePath(config));\n const appPath = getResolvePath(path.join(appDir, relativePath));\n\n if (fs.existsSync(appPath)) {\n let appStyle = fs.readFileSync(appPath, \"utf8\");\n\n appStyle = appStyle.replace(/url\\((['\"]?)(.*?)\\1\\)/g, (match, quote, filePath) => {\n if (\n filePath.startsWith(\"/\") ||\n filePath.startsWith(\"http\") ||\n filePath.startsWith(\"data:\")\n ) {\n return match;\n }\n\n const cssDir = path.dirname(appPath);\n const assetAbs = path.resolve(cssDir, filePath);\n\n const sharedFileDir = path.dirname(sharedPath);\n\n const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);\n\n return `url(\"${toPosix(relativeToSharedFile)}\")`;\n });\n\n return mergeStyleSources(sharedStyle, appStyle);\n }\n }\n };\n\nexport default definePlugin(({isolationIssuerLayer}: StylePluginOptions = {}) => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n const kebabApp = _.kebabCase(app);\n\n const createSassRuleSet = (rule: RuleSetUseItem): RuleSetUse => {\n const rules: RuleSetUse = [CssExtractRspackPlugin.loader, rule, \"sass-loader\"];\n\n if (mergeStyles) {\n rules.push({\n loader: \"source-modifier-loader\",\n options: {\n modify: styleMergerLoader(config),\n },\n });\n }\n\n return rules;\n };\n\n const createStyleRules = (isolated = false) => [\n {\n resourceQuery: /[?&]asis(?:[=&]|$)/,\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(isolated ? {ident: IsolatedAsIsLoaderIdent} : {}),\n options: {esModule: true, modules: false},\n }),\n },\n {\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(isolated ? {ident: IsolatedModulesLoaderIdent} : {}),\n options: {\n esModule: true,\n modules: {\n exportLocalsConvention: \"as-is\",\n namedExport: false,\n localIdentName: cssIdentName.replaceAll(\"[app]\", kebabApp),\n localIdentHashSalt: kebabApp,\n },\n },\n }),\n },\n ];\n\n return {\n resolve: {\n extensions: [\".css\", \".scss\"],\n },\n plugins: [\n new CssExtractRspackPlugin({\n filename,\n chunkFilename: filename,\n }),\n ],\n optimization: {\n splitChunks: {\n cacheGroups: {\n adnbnIsolatedStyles: {\n type: \"css/mini-extract\",\n layer: IsolatedStylesLayer,\n chunks: \"all\",\n enforce: true,\n name: false,\n priority: 100,\n },\n },\n },\n },\n module: {\n rules: [\n {\n test: /\\.(scss|css)$/,\n type: \"javascript/auto\",\n oneOf: [\n ...(isolationIssuerLayer === undefined\n ? []\n : [\n {\n issuerLayer: isolationIssuerLayer,\n resourceQuery: /[?&]isolation(?:[=&]|$)/,\n layer: IsolatedStylesLayer,\n oneOf: createStyleRules(true),\n },\n ]),\n {oneOf: createStyleRules()},\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/cli/plugins/style/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {Configuration as RspackConfig, CssExtractRspackPlugin, RuleSetUse, RuleSetUseItem} from \"@rspack/core\";\n\nimport {mergeStyleSources} from \"./utils\";\nimport {DocumentStylesLayer, DefaultStylesLayer} from \"@cli/bundler/layers\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\nimport {toPosix} from \"@cli/utils/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\n// CssExtract also identifies dependencies by loader request, not just by layer.\n// Keep default and document styles distinct even when their contents are identical.\nconst DefaultAsIsLoaderIdent = \"adnbn-default-asis\";\nconst DefaultModulesLoaderIdent = \"adnbn-default-modules\";\n\n// prettier-ignore\nconst styleMergerLoader =\n (config: ReadonlyConfig) =>\n (sharedStyle: string, sharedPath: string): string | void => {\n const sharedDir = getResolvePath(getSharedPath(config));\n\n if (sharedPath.startsWith(sharedDir)) {\n const relativePath = path.relative(sharedDir, sharedPath);\n\n const appDir = getResolvePath(getAppSourcePath(config));\n const appPath = getResolvePath(path.join(appDir, relativePath));\n\n if (fs.existsSync(appPath)) {\n let appStyle = fs.readFileSync(appPath, \"utf8\");\n\n appStyle = appStyle.replace(/url\\((['\"]?)(.*?)\\1\\)/g, (match, quote, filePath) => {\n if (\n filePath.startsWith(\"/\") ||\n filePath.startsWith(\"http\") ||\n filePath.startsWith(\"data:\")\n ) {\n return match;\n }\n\n const cssDir = path.dirname(appPath);\n const assetAbs = path.resolve(cssDir, filePath);\n\n const sharedFileDir = path.dirname(sharedPath);\n\n const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);\n\n return `url(\"${toPosix(relativeToSharedFile)}\")`;\n });\n\n return mergeStyleSources(sharedStyle, appStyle);\n }\n }\n };\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n const kebabApp = _.kebabCase(app);\n\n const createSassRuleSet = (rule: RuleSetUseItem): RuleSetUse => {\n const rules: RuleSetUse = [CssExtractRspackPlugin.loader, rule, \"sass-loader\"];\n\n if (mergeStyles) {\n rules.push({\n loader: \"source-modifier-loader\",\n options: {\n modify: styleMergerLoader(config),\n },\n });\n }\n\n return rules;\n };\n\n const createStyleRules = (defaultStyles = false) => [\n {\n resourceQuery: /[?&]asis(?:[=&]|$)/,\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(defaultStyles ? {ident: DefaultAsIsLoaderIdent} : {}),\n options: {esModule: true, modules: false},\n }),\n },\n {\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(defaultStyles ? {ident: DefaultModulesLoaderIdent} : {}),\n options: {\n esModule: true,\n modules: {\n exportLocalsConvention: \"as-is\",\n namedExport: false,\n localIdentName: cssIdentName.replaceAll(\"[app]\", kebabApp),\n localIdentHashSalt: kebabApp,\n },\n },\n }),\n },\n ];\n\n return {\n resolve: {\n extensions: [\".css\", \".scss\"],\n },\n plugins: [\n new CssExtractRspackPlugin({\n filename,\n chunkFilename: filename,\n }),\n ],\n module: {\n rules: [\n {\n test: /\\.(scss|css)$/,\n type: \"javascript/auto\",\n oneOf: [\n {\n resourceQuery: /[?&]unisolated(?:[=&]|$)/,\n layer: DocumentStylesLayer,\n oneOf: createStyleRules(),\n },\n {\n // Nested CSS imports preserve an explicit document destination.\n issuerLayer: DocumentStylesLayer,\n layer: DocumentStylesLayer,\n oneOf: createStyleRules(),\n },\n {layer: DefaultStylesLayer, oneOf: createStyleRules(true)},\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
@@ -29,7 +29,6 @@ import {
29
29
  pluginView
30
30
  } from "../plugins/index.js";
31
31
  import { fromRootPath, getAppPath, getAppSourcePath, getConfigFile } from "../resolvers/path.js";
32
- import { isContentLayer } from "./../../cli/bundler/utils/layers.js";
33
32
  import { Command, Mode, Workspace } from "./../../types/app.js";
34
33
  import { Browser } from "./../../types/browser.js";
35
34
  import { Language, LanguageCodes } from "./../../types/locale.js";
@@ -303,7 +302,7 @@ var config_default = async (config) => {
303
302
  pluginReact(),
304
303
  pluginIcon(),
305
304
  pluginAsset(),
306
- pluginStyle({ isolationIssuerLayer: isContentLayer }),
305
+ pluginStyle(),
307
306
  pluginLocale(),
308
307
  pluginMeta(),
309
308
  pluginContent(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/resolvers/config.ts"],"sourcesContent":["import {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from \"dotenv\";\nimport {loadConfig} from \"c12\";\nimport _ from \"lodash\";\n\nimport {\n pluginAsset,\n pluginBackground,\n pluginBundler,\n pluginContent,\n pluginDotenv,\n pluginHtml,\n pluginIcon,\n pluginLocale,\n pluginMeta,\n pluginOffscreen,\n pluginManifest,\n pluginOptimization,\n pluginOptions,\n pluginOutput,\n pluginPage,\n pluginPopup,\n pluginPublic,\n pluginReact,\n pluginSandbox,\n pluginSidebar,\n pluginStyle,\n pluginTypescript,\n pluginVersion,\n pluginView,\n} from \"../plugins\";\n\nimport {fromRootPath, getAppPath, getAppSourcePath, getConfigFile} from \"../resolvers/path\";\nimport {isContentLayer} from \"@cli/bundler/utils/layers\";\n\nimport type {Config, OptionalConfig, ReadonlyConfig, UserConfig} from \"@typing/config\";\nimport {Command, Mode, Workspace} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Language, LanguageCodes} from \"@typing/locale\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\n\nconst resolveLanguage = (lang?: `${Language}` | Language): Language => {\n if (!lang) {\n return Language.English;\n }\n\n if (LanguageCodes.has(lang)) {\n return lang as Language;\n }\n\n throw new Error(`Invalid language \"${lang}\" provided by config`);\n};\n\nconst resolveWorkspace = (workspace?: Workspace | `${Workspace}`): Workspace => {\n if (!workspace) {\n return Workspace.Single;\n }\n\n if (Object.values(Workspace).includes(workspace as Workspace)) {\n return workspace as Workspace;\n }\n\n throw new Error(`Invalid workspace \"${workspace}\" provided by config`);\n};\n\nconst resolveSharedDir = (workspace: Workspace, sharedDir: string): string => {\n return workspace === Workspace.Multi ? sharedDir : \".\";\n};\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log(\"Loaded user config:\", configFilePath);\n }\n\n return userConfig || {};\n } else if (config.debug) {\n console.warn(\"Config file not found:\", configFilePath);\n }\n\n return {};\n};\n\nconst validateConfig = (config: ReadonlyConfig): ReadonlyConfig => {\n const {\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n } = config;\n\n if (\n [\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n ]\n .filter(dir => _.isString(dir))\n .some(dir => dir.includes(\"..\"))\n ) {\n throw new Error('Directory paths cannot contain relative paths (\"..\") for security reasons.');\n }\n\n if (appsDir === sharedDir) {\n throw new Error(\"Apps directory (appsDir) and shared directory (sharedDir) cannot be the same.\");\n }\n\n if (srcDir === outDir) {\n throw new Error(\"Source directory (srcDir) and destination directory (outputDir) cannot be the same.\");\n }\n\n if (srcDir === \".\") {\n throw new Error('Source directory cannot be the root directory (\".\") for security reasons.');\n }\n\n if (publicDir === \".\" || [srcDir, outDir, appSrcDir].includes(publicDir)) {\n throw new Error(\n 'Public directory cannot be the root directory (\".\") or intersect with other root directories for security reasons.'\n );\n }\n\n return config;\n};\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n};\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, browser, debug} = config;\n\n const preset = [\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ];\n\n const appSourcePaths = preset.map(file => getAppSourcePath(config, file));\n const appPaths = preset.map(file => getAppPath(config, file));\n const rootPaths = preset.map(file => fromRootPath(config, file));\n\n const paths = [...appSourcePaths, ...appPaths, ...rootPaths];\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths, quiet: !debug});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n};\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n command = Command.Build,\n debug = false,\n configFile = \"adnbn.config.ts\",\n browser = Browser.Chrome,\n app = \"myapp\",\n name = app,\n description,\n shortName,\n version = \"VERSION\",\n minimumVersion = \"MINIMUM_VERSION\",\n author = undefined,\n homepage = \"HOMEPAGE\",\n icon = DefaultIconGroupName,\n lang = Language.English,\n incognito,\n specific,\n workspace = Workspace.Single,\n rootDir = \".\",\n outDir = \"dist\",\n srcDir = \"src\",\n sharedDir = \"shared\",\n appsDir = \"apps\",\n appSrcDir = \".\",\n localeDir = \"locales\",\n iconSrcDir = \"icons\",\n iconOutDir = \"icons\",\n jsDir = \"js\",\n cssDir = \"css\",\n assetsDir = \"assets\",\n publicDir = \"public\",\n htmlDir = \".\",\n html = [],\n bundler = {},\n env = {},\n manifest,\n manifestVersion = (new Set<Browser>([Browser.Safari]).has(browser) ? 2 : 3) as ManifestVersion,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeCommands = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n mergeStyles = true,\n mergeIcons = false,\n mergeLocales = true,\n mergePages = false,\n mergePopup = false,\n mergePublic = false,\n multiplePopup = false,\n mergeSidebar = false,\n multipleSidebar = false,\n mergeRelay = false,\n mergeService = false,\n mergeOffscreen = false,\n mergeSandbox = false,\n commonChunks = true,\n artifactName = \"[name]-[browser]-[mv]\",\n assetsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:4][ext]\"\n : \"[name]-[contenthash:4][ext]\",\n jsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].js\"\n : \"[name].js\",\n cssFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].css\"\n : \"[name].css\",\n cssIdentName = mode === Mode.Production && command === Command.Build && !debug\n ? \"[app]-[hash:base64:5]\"\n : \"[local]-[hash:base64:5]\",\n } = config;\n\n let resolvedConfig: Config = {\n command,\n debug,\n mode,\n browser,\n app,\n name,\n description,\n shortName,\n version,\n minimumVersion,\n author,\n homepage,\n lang: resolveLanguage(lang),\n icon,\n incognito,\n specific,\n manifest,\n manifestVersion,\n workspace: resolveWorkspace(workspace),\n rootDir,\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n publicDir,\n htmlDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n html,\n bundler,\n env,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeCommands,\n mergeContentScripts,\n concatContentScripts,\n mergeStyles,\n mergeIcons,\n mergeLocales,\n mergePages,\n mergePopup,\n mergePublic,\n multiplePopup,\n mergeSidebar,\n multipleSidebar,\n mergeRelay,\n mergeService,\n mergeOffscreen,\n mergeSandbox,\n commonChunks,\n artifactName,\n assetsFilename,\n jsFilename,\n cssFilename,\n cssIdentName,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {\n plugins: userPlugins = [],\n lang: userLang,\n workspace: userWorkspace,\n ...userConfig\n } = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {\n ...resolvedConfig,\n ...userConfig,\n lang: resolveLanguage(userLang ?? resolvedConfig.lang),\n workspace: resolveWorkspace(userWorkspace ?? resolvedConfig.workspace),\n };\n\n resolvedConfig.sharedDir = resolveSharedDir(resolvedConfig.workspace, resolvedConfig.sharedDir);\n\n resolvedConfig = validateConfig(resolvedConfig);\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n /**\n * IMPORTANT: the order of plugins matters. Early plugins prepare the environment and artifacts for the following ones\n * (e.g., environment variables/output/transpilation/assets → page/version generation → bundling).\n * Reordering may result in missing artifacts, incorrect configuration, or build failures.\n */\n const corePlugins: Plugin[] = [\n pluginDotenv(vars),\n pluginOutput(),\n pluginOptimization(),\n pluginTypescript(),\n pluginReact(),\n pluginIcon(),\n pluginAsset(),\n pluginStyle({isolationIssuerLayer: isContentLayer}),\n pluginLocale(),\n pluginMeta(),\n pluginContent(),\n pluginBackground(),\n pluginOptions(),\n pluginPopup(),\n pluginPublic(),\n pluginSidebar(),\n pluginOffscreen(),\n pluginSandbox(),\n pluginPage(),\n pluginView(),\n pluginHtml(),\n pluginVersion(),\n pluginBundler(),\n pluginManifest(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [...plugins, ...userPlugins, ...corePlugins],\n };\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/cli/resolvers/config.ts"],"sourcesContent":["import {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from \"dotenv\";\nimport {loadConfig} from \"c12\";\nimport _ from \"lodash\";\n\nimport {\n pluginAsset,\n pluginBackground,\n pluginBundler,\n pluginContent,\n pluginDotenv,\n pluginHtml,\n pluginIcon,\n pluginLocale,\n pluginMeta,\n pluginOffscreen,\n pluginManifest,\n pluginOptimization,\n pluginOptions,\n pluginOutput,\n pluginPage,\n pluginPopup,\n pluginPublic,\n pluginReact,\n pluginSandbox,\n pluginSidebar,\n pluginStyle,\n pluginTypescript,\n pluginVersion,\n pluginView,\n} from \"../plugins\";\n\nimport {fromRootPath, getAppPath, getAppSourcePath, getConfigFile} from \"../resolvers/path\";\n\nimport type {Config, OptionalConfig, ReadonlyConfig, UserConfig} from \"@typing/config\";\nimport {Command, Mode, Workspace} from \"@typing/app\";\nimport {Browser} from \"@typing/browser\";\nimport {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Language, LanguageCodes} from \"@typing/locale\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\n\nconst resolveLanguage = (lang?: `${Language}` | Language): Language => {\n if (!lang) {\n return Language.English;\n }\n\n if (LanguageCodes.has(lang)) {\n return lang as Language;\n }\n\n throw new Error(`Invalid language \"${lang}\" provided by config`);\n};\n\nconst resolveWorkspace = (workspace?: Workspace | `${Workspace}`): Workspace => {\n if (!workspace) {\n return Workspace.Single;\n }\n\n if (Object.values(Workspace).includes(workspace as Workspace)) {\n return workspace as Workspace;\n }\n\n throw new Error(`Invalid workspace \"${workspace}\" provided by config`);\n};\n\nconst resolveSharedDir = (workspace: Workspace, sharedDir: string): string => {\n return workspace === Workspace.Multi ? sharedDir : \".\";\n};\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log(\"Loaded user config:\", configFilePath);\n }\n\n return userConfig || {};\n } else if (config.debug) {\n console.warn(\"Config file not found:\", configFilePath);\n }\n\n return {};\n};\n\nconst validateConfig = (config: ReadonlyConfig): ReadonlyConfig => {\n const {\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n } = config;\n\n if (\n [\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n publicDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n ]\n .filter(dir => _.isString(dir))\n .some(dir => dir.includes(\"..\"))\n ) {\n throw new Error('Directory paths cannot contain relative paths (\"..\") for security reasons.');\n }\n\n if (appsDir === sharedDir) {\n throw new Error(\"Apps directory (appsDir) and shared directory (sharedDir) cannot be the same.\");\n }\n\n if (srcDir === outDir) {\n throw new Error(\"Source directory (srcDir) and destination directory (outputDir) cannot be the same.\");\n }\n\n if (srcDir === \".\") {\n throw new Error('Source directory cannot be the root directory (\".\") for security reasons.');\n }\n\n if (publicDir === \".\" || [srcDir, outDir, appSrcDir].includes(publicDir)) {\n throw new Error(\n 'Public directory cannot be the root directory (\".\") or intersect with other root directories for security reasons.'\n );\n }\n\n return config;\n};\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n};\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, browser, debug} = config;\n\n const preset = [\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ];\n\n const appSourcePaths = preset.map(file => getAppSourcePath(config, file));\n const appPaths = preset.map(file => getAppPath(config, file));\n const rootPaths = preset.map(file => fromRootPath(config, file));\n\n const paths = [...appSourcePaths, ...appPaths, ...rootPaths];\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths, quiet: !debug});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n};\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n command = Command.Build,\n debug = false,\n configFile = \"adnbn.config.ts\",\n browser = Browser.Chrome,\n app = \"myapp\",\n name = app,\n description,\n shortName,\n version = \"VERSION\",\n minimumVersion = \"MINIMUM_VERSION\",\n author = undefined,\n homepage = \"HOMEPAGE\",\n icon = DefaultIconGroupName,\n lang = Language.English,\n incognito,\n specific,\n workspace = Workspace.Single,\n rootDir = \".\",\n outDir = \"dist\",\n srcDir = \"src\",\n sharedDir = \"shared\",\n appsDir = \"apps\",\n appSrcDir = \".\",\n localeDir = \"locales\",\n iconSrcDir = \"icons\",\n iconOutDir = \"icons\",\n jsDir = \"js\",\n cssDir = \"css\",\n assetsDir = \"assets\",\n publicDir = \"public\",\n htmlDir = \".\",\n html = [],\n bundler = {},\n env = {},\n manifest,\n manifestVersion = (new Set<Browser>([Browser.Safari]).has(browser) ? 2 : 3) as ManifestVersion,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeCommands = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n mergeStyles = true,\n mergeIcons = false,\n mergeLocales = true,\n mergePages = false,\n mergePopup = false,\n mergePublic = false,\n multiplePopup = false,\n mergeSidebar = false,\n multipleSidebar = false,\n mergeRelay = false,\n mergeService = false,\n mergeOffscreen = false,\n mergeSandbox = false,\n commonChunks = true,\n artifactName = \"[name]-[browser]-[mv]\",\n assetsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:4][ext]\"\n : \"[name]-[contenthash:4][ext]\",\n jsFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].js\"\n : \"[name].js\",\n cssFilename = mode === Mode.Production && command === Command.Build && !debug\n ? \"[contenthash:5].css\"\n : \"[name].css\",\n cssIdentName = mode === Mode.Production && command === Command.Build && !debug\n ? \"[app]-[hash:base64:5]\"\n : \"[local]-[hash:base64:5]\",\n } = config;\n\n let resolvedConfig: Config = {\n command,\n debug,\n mode,\n browser,\n app,\n name,\n description,\n shortName,\n version,\n minimumVersion,\n author,\n homepage,\n lang: resolveLanguage(lang),\n icon,\n incognito,\n specific,\n manifest,\n manifestVersion,\n workspace: resolveWorkspace(workspace),\n rootDir,\n outDir,\n srcDir,\n sharedDir,\n appsDir,\n appSrcDir,\n jsDir,\n cssDir,\n assetsDir,\n publicDir,\n htmlDir,\n localeDir,\n iconSrcDir,\n iconOutDir,\n html,\n bundler,\n env,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeCommands,\n mergeContentScripts,\n concatContentScripts,\n mergeStyles,\n mergeIcons,\n mergeLocales,\n mergePages,\n mergePopup,\n mergePublic,\n multiplePopup,\n mergeSidebar,\n multipleSidebar,\n mergeRelay,\n mergeService,\n mergeOffscreen,\n mergeSandbox,\n commonChunks,\n artifactName,\n assetsFilename,\n jsFilename,\n cssFilename,\n cssIdentName,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {\n plugins: userPlugins = [],\n lang: userLang,\n workspace: userWorkspace,\n ...userConfig\n } = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {\n ...resolvedConfig,\n ...userConfig,\n lang: resolveLanguage(userLang ?? resolvedConfig.lang),\n workspace: resolveWorkspace(userWorkspace ?? resolvedConfig.workspace),\n };\n\n resolvedConfig.sharedDir = resolveSharedDir(resolvedConfig.workspace, resolvedConfig.sharedDir);\n\n resolvedConfig = validateConfig(resolvedConfig);\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n /**\n * IMPORTANT: the order of plugins matters. Early plugins prepare the environment and artifacts for the following ones\n * (e.g., environment variables/output/transpilation/assets → page/version generation → bundling).\n * Reordering may result in missing artifacts, incorrect configuration, or build failures.\n */\n const corePlugins: Plugin[] = [\n pluginDotenv(vars),\n pluginOutput(),\n pluginOptimization(),\n pluginTypescript(),\n pluginReact(),\n pluginIcon(),\n pluginAsset(),\n pluginStyle(),\n pluginLocale(),\n pluginMeta(),\n pluginContent(),\n pluginBackground(),\n pluginOptions(),\n pluginPopup(),\n pluginPublic(),\n pluginSidebar(),\n pluginOffscreen(),\n pluginSandbox(),\n pluginPage(),\n pluginView(),\n pluginHtml(),\n pluginVersion(),\n pluginBundler(),\n pluginManifest(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [...plugins, ...userPlugins, ...corePlugins],\n };\n};\n"],"mappings":"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","names":[]}