adnbn 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) 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/{utils/layers.d.ts → layers.d.ts} +2 -1
  7. package/dist/cli/bundler/{utils/layers.js → layers.js} +2 -0
  8. package/dist/cli/bundler/layers.js.map +1 -0
  9. package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +2 -1
  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/usage.d.ts +3 -6
  15. package/dist/cli/bundler/plugins/build-assets-map/usage.js +6 -3
  16. package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -1
  17. package/dist/cli/bundler/plugins/index.d.ts +2 -2
  18. package/dist/cli/bundler/plugins/index.js +2 -6
  19. package/dist/cli/bundler/plugins/index.js.map +1 -1
  20. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +1 -1
  21. package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -1
  22. package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +3 -0
  23. package/dist/cli/bundler/{utils/styles.js → plugins/isolated-styles/chunks.js} +8 -6
  24. package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -0
  25. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +1 -2
  26. package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -1
  27. package/dist/cli/bundler/plugins/types.d.ts +4 -0
  28. package/dist/cli/bundler/plugins/utils/compilation-assets.d.ts +4 -0
  29. package/dist/cli/bundler/plugins/utils/compilation-assets.js +12 -0
  30. package/dist/cli/bundler/plugins/utils/compilation-assets.js.map +1 -0
  31. package/dist/cli/bundler/plugins/utils/index.d.ts +2 -0
  32. package/dist/cli/bundler/plugins/utils/index.js +5 -0
  33. package/dist/cli/bundler/plugins/utils/index.js.map +1 -1
  34. package/dist/cli/bundler/plugins/utils/runtime-module.d.ts +3 -0
  35. package/dist/cli/bundler/plugins/utils/runtime-module.js +11 -0
  36. package/dist/cli/bundler/plugins/utils/runtime-module.js.map +1 -0
  37. package/dist/cli/bundler/utils/app-filename.d.ts +2 -0
  38. package/dist/cli/bundler/utils/app-filename.js +19 -0
  39. package/dist/cli/bundler/utils/app-filename.js.map +1 -0
  40. package/dist/cli/bundler/utils/assets.d.ts +3 -0
  41. package/dist/cli/bundler/utils/{output.js → assets.js} +22 -33
  42. package/dist/cli/bundler/utils/assets.js.map +1 -0
  43. package/dist/cli/bundler/utils/index.d.ts +2 -3
  44. package/dist/cli/bundler/utils/index.js +2 -3
  45. package/dist/cli/bundler/utils/index.js.map +1 -1
  46. package/dist/cli/entrypoint/file/injectors/core.js +1 -1
  47. package/dist/cli/entrypoint/finder/ContentFinder.d.ts +1 -1
  48. package/dist/cli/entrypoint/parser/ContentParser.d.ts +2 -2
  49. package/dist/cli/entrypoint/parser/ContentParser.js +6 -22
  50. package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
  51. package/dist/cli/entrypoint/parser/RelayParser.js +1 -1
  52. package/dist/cli/entrypoint/parser/utils/content/default-render.d.ts +3 -0
  53. package/dist/cli/entrypoint/parser/utils/content/default-render.js +21 -0
  54. package/dist/cli/entrypoint/parser/utils/content/default-render.js.map +1 -0
  55. package/dist/cli/plugins/content/Content.d.ts +1 -1
  56. package/dist/cli/plugins/content/ContentDriver.d.ts +1 -1
  57. package/dist/cli/plugins/content/ContentManager.d.ts +1 -1
  58. package/dist/cli/plugins/content/ContentManager.js +1 -1
  59. package/dist/cli/plugins/content/ContentName.d.ts +1 -1
  60. package/dist/cli/plugins/content/ContentName.js +1 -1
  61. package/dist/cli/plugins/content/Relay.d.ts +1 -1
  62. package/dist/cli/plugins/content/RelayDriver.d.ts +1 -1
  63. package/dist/cli/plugins/content/RelayDriver.js +1 -1
  64. package/dist/cli/plugins/content/bundler.d.ts +1 -1
  65. package/dist/cli/plugins/content/bundler.js +1 -1
  66. package/dist/cli/plugins/content/index.js +2 -2
  67. package/dist/cli/plugins/content/index.js.map +1 -1
  68. package/dist/cli/plugins/content/types.d.ts +1 -1
  69. package/dist/cli/plugins/content/utils.d.ts +1 -1
  70. package/dist/cli/plugins/content/utils.js +1 -1
  71. package/dist/cli/plugins/index.d.ts +1 -1
  72. package/dist/cli/plugins/index.js +1 -1
  73. package/dist/cli/plugins/locale/index.js +2 -2
  74. package/dist/cli/plugins/locale/index.js.map +1 -1
  75. package/dist/cli/plugins/output/index.d.ts +2 -0
  76. package/dist/cli/plugins/{output.js → output/index.js} +11 -13
  77. package/dist/cli/plugins/output/index.js.map +1 -0
  78. package/dist/cli/plugins/output/runtime.d.ts +26 -0
  79. package/dist/cli/plugins/output/runtime.js +19 -0
  80. package/dist/cli/plugins/output/runtime.js.map +1 -0
  81. package/dist/cli/plugins/style/index.js +1 -1
  82. package/dist/cli/plugins/style/index.js.map +1 -1
  83. package/dist/cli/resolvers/config.js +1 -1
  84. package/dist/cli/resolvers/config.js.map +1 -1
  85. package/dist/cli/virtual/index.js +4 -4
  86. package/dist/cli/virtual/virtual.d.ts +8 -3
  87. package/dist/content/index.d.ts +3 -0
  88. package/dist/content/index.js +8 -0
  89. package/dist/content/index.js.map +1 -0
  90. package/dist/entry/content/adapters/react/Builder.d.ts +5 -6
  91. package/dist/entry/content/adapters/react/Builder.js +8 -21
  92. package/dist/entry/content/adapters/react/Builder.js.map +1 -1
  93. package/dist/entry/content/adapters/react/Node.d.ts +6 -14
  94. package/dist/entry/content/adapters/react/Node.js +9 -33
  95. package/dist/entry/content/adapters/react/Node.js.map +1 -1
  96. package/dist/entry/content/adapters/react/index.d.ts +2 -1
  97. package/dist/entry/content/adapters/react/index.js +3 -1
  98. package/dist/entry/content/adapters/react/index.js.map +1 -1
  99. package/dist/entry/content/adapters/react/resolvers/definition.d.ts +2 -0
  100. package/dist/entry/content/adapters/react/resolvers/definition.js +12 -0
  101. package/dist/entry/content/adapters/react/resolvers/definition.js.map +1 -0
  102. package/dist/entry/content/adapters/react/resolvers/render.d.ts +2 -2
  103. package/dist/entry/content/adapters/react/resolvers/render.js +4 -6
  104. package/dist/entry/content/adapters/react/resolvers/render.js.map +1 -1
  105. package/dist/entry/content/adapters/vanilla/Builder.d.ts +5 -5
  106. package/dist/entry/content/adapters/vanilla/Builder.js +9 -15
  107. package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
  108. package/dist/entry/content/adapters/vanilla/Node.d.ts +5 -11
  109. package/dist/entry/content/adapters/vanilla/Node.js +11 -37
  110. package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
  111. package/dist/entry/content/adapters/vanilla/index.d.ts +2 -1
  112. package/dist/entry/content/adapters/vanilla/index.js +3 -1
  113. package/dist/entry/content/adapters/vanilla/index.js.map +1 -1
  114. package/dist/entry/content/adapters/vanilla/resolvers/definition.d.ts +2 -0
  115. package/dist/entry/content/adapters/vanilla/resolvers/definition.js +9 -0
  116. package/dist/entry/content/adapters/vanilla/resolvers/definition.js.map +1 -0
  117. package/dist/entry/content/adapters/vanilla/resolvers/render.d.ts +3 -0
  118. package/dist/entry/content/adapters/vanilla/resolvers/render.js +15 -0
  119. package/dist/entry/content/adapters/vanilla/resolvers/render.js.map +1 -0
  120. package/dist/entry/content/index.d.ts +5 -1
  121. package/dist/entry/content/index.js +8 -1
  122. package/dist/entry/content/index.js.map +1 -1
  123. package/dist/entry/content/lifecycle/Builder.d.ts +26 -0
  124. package/dist/entry/content/lifecycle/Builder.js +212 -0
  125. package/dist/entry/content/lifecycle/Builder.js.map +1 -0
  126. package/dist/entry/content/lifecycle/IsolationSetup.d.ts +16 -0
  127. package/dist/entry/content/lifecycle/IsolationSetup.js +37 -0
  128. package/dist/entry/content/lifecycle/IsolationSetup.js.map +1 -0
  129. package/dist/entry/content/lifecycle/MountBuilder.d.ts +8 -0
  130. package/dist/entry/content/lifecycle/MountBuilder.js +57 -0
  131. package/dist/entry/content/lifecycle/MountBuilder.js.map +1 -0
  132. package/dist/entry/content/{core → lifecycle}/context/Context.d.ts +4 -2
  133. package/dist/entry/content/lifecycle/context/Context.js +73 -0
  134. package/dist/entry/content/lifecycle/context/Context.js.map +1 -0
  135. package/dist/entry/content/{core → lifecycle}/context/EventEmitter.d.ts +2 -2
  136. package/dist/entry/content/{core → lifecycle}/context/EventEmitter.js +3 -3
  137. package/dist/entry/content/lifecycle/context/EventEmitter.js.map +1 -0
  138. package/dist/entry/content/lifecycle/context/ManagedContext.d.ts +5 -0
  139. package/dist/entry/content/{core → lifecycle}/context/ManagedContext.js +2 -2
  140. package/dist/entry/content/lifecycle/context/ManagedContext.js.map +1 -0
  141. package/dist/entry/content/lifecycle/context/index.js.map +1 -0
  142. package/dist/entry/content/{core → lifecycle}/markers/AbstractMarker.d.ts +2 -2
  143. package/dist/entry/content/{core → lifecycle}/markers/AbstractMarker.js +3 -3
  144. package/dist/entry/content/lifecycle/markers/AbstractMarker.js.map +1 -0
  145. package/dist/entry/content/{core → lifecycle}/markers/AttributeMarker.d.ts +2 -2
  146. package/dist/entry/content/{core → lifecycle}/markers/AttributeMarker.js +2 -2
  147. package/dist/entry/content/lifecycle/markers/AttributeMarker.js.map +1 -0
  148. package/dist/entry/content/{core → lifecycle}/markers/WeakMarker.d.ts +2 -2
  149. package/dist/entry/content/{core → lifecycle}/markers/WeakMarker.js +2 -2
  150. package/dist/entry/content/lifecycle/markers/WeakMarker.js.map +1 -0
  151. package/dist/entry/content/lifecycle/markers/index.js.map +1 -0
  152. package/dist/entry/content/{core → lifecycle}/nodes/EventNode.d.ts +4 -2
  153. package/dist/entry/content/{core → lifecycle}/nodes/EventNode.js +11 -2
  154. package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -0
  155. package/dist/entry/content/{core → lifecycle}/nodes/FrameNode.d.ts +11 -5
  156. package/dist/entry/content/lifecycle/nodes/FrameNode.js +187 -0
  157. package/dist/entry/content/lifecycle/nodes/FrameNode.js.map +1 -0
  158. package/dist/entry/content/{core → lifecycle}/nodes/MarkerNode.d.ts +3 -2
  159. package/dist/entry/content/{core → lifecycle}/nodes/MarkerNode.js +5 -2
  160. package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -0
  161. package/dist/entry/content/{core → lifecycle}/nodes/MountNode.d.ts +3 -2
  162. package/dist/entry/content/{core → lifecycle}/nodes/MountNode.js +5 -2
  163. package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -0
  164. package/dist/entry/content/{core → lifecycle}/nodes/Node.d.ts +2 -2
  165. package/dist/entry/content/{core → lifecycle}/nodes/Node.js +2 -2
  166. package/dist/entry/content/lifecycle/nodes/Node.js.map +1 -0
  167. package/dist/entry/content/lifecycle/nodes/RenderNode.d.ts +19 -0
  168. package/dist/entry/content/lifecycle/nodes/RenderNode.js +75 -0
  169. package/dist/entry/content/lifecycle/nodes/RenderNode.js.map +1 -0
  170. package/dist/entry/content/lifecycle/nodes/ShadowNode.d.ts +21 -0
  171. package/dist/entry/content/lifecycle/nodes/ShadowNode.js +121 -0
  172. package/dist/entry/content/lifecycle/nodes/ShadowNode.js.map +1 -0
  173. package/dist/entry/content/{core → lifecycle}/nodes/index.d.ts +1 -0
  174. package/dist/entry/content/lifecycle/nodes/index.js +17 -0
  175. package/dist/entry/content/lifecycle/nodes/index.js.map +1 -0
  176. package/dist/entry/content/{core → lifecycle}/nodes/isolated-styles.d.ts +1 -1
  177. package/dist/entry/content/{core → lifecycle}/nodes/isolated-styles.js +2 -2
  178. package/dist/entry/content/lifecycle/nodes/isolated-styles.js.map +1 -0
  179. package/dist/entry/content/resolvers/anchor.d.ts +2 -0
  180. package/dist/entry/content/{core/resolvers → resolvers}/anchor.js +2 -2
  181. package/dist/entry/content/resolvers/anchor.js.map +1 -0
  182. package/dist/entry/content/resolvers/container.d.ts +2 -0
  183. package/dist/entry/content/{core/resolvers → resolvers}/container.js +2 -2
  184. package/dist/entry/content/resolvers/container.js.map +1 -0
  185. package/dist/entry/content/resolvers/definition.d.ts +5 -0
  186. package/dist/entry/content/resolvers/definition.js +24 -0
  187. package/dist/entry/content/resolvers/definition.js.map +1 -0
  188. package/dist/entry/content/{core/resolvers → resolvers}/index.d.ts +1 -1
  189. package/dist/entry/content/{core/resolvers → resolvers}/index.js +1 -1
  190. package/dist/entry/content/resolvers/index.js.map +1 -0
  191. package/dist/entry/content/resolvers/mount.d.ts +2 -0
  192. package/dist/entry/content/{core/resolvers → resolvers}/mount.js +3 -3
  193. package/dist/entry/content/resolvers/mount.js.map +1 -0
  194. package/dist/entry/content/resolvers/target.d.ts +3 -0
  195. package/dist/entry/content/resolvers/target.js +34 -0
  196. package/dist/entry/content/resolvers/target.js.map +1 -0
  197. package/dist/entry/content/resolvers/watch.d.ts +6 -0
  198. package/dist/entry/content/{core/resolvers → resolvers}/watch.js +14 -10
  199. package/dist/entry/content/resolvers/watch.js.map +1 -0
  200. package/dist/entry/relay/Builder.d.ts +8 -8
  201. package/dist/entry/relay/Builder.js +28 -19
  202. package/dist/entry/relay/Builder.js.map +1 -1
  203. package/dist/entry/relay/TransportBuilder.d.ts +3 -2
  204. package/dist/entry/relay/TransportBuilder.js +3 -3
  205. package/dist/entry/relay/TransportBuilder.js.map +1 -1
  206. package/dist/entry/relay/index.d.ts +5 -2
  207. package/dist/entry/relay/index.js +8 -2
  208. package/dist/entry/relay/index.js.map +1 -1
  209. package/dist/entry/relay/resolvers/definition.d.ts +4 -0
  210. package/dist/entry/relay/resolvers/definition.js +16 -0
  211. package/dist/entry/relay/resolvers/definition.js.map +1 -0
  212. package/dist/main/content.d.ts +4 -6
  213. package/dist/main/content.js +3 -16
  214. package/dist/main/content.js.map +1 -1
  215. package/dist/main/entrypoint.js +1 -1
  216. package/dist/main/entrypoint.js.map +1 -1
  217. package/dist/main/relay.d.ts +2 -1
  218. package/dist/main/relay.js.map +1 -1
  219. package/dist/relay/RelayPermission.js +1 -1
  220. package/dist/shared/content/isolation.d.ts +1 -1
  221. package/dist/shared/content/isolation.js +13 -20
  222. package/dist/shared/content/isolation.js.map +1 -1
  223. package/dist/types/content/adapters/index.d.ts +2 -0
  224. package/dist/types/content/adapters/index.js +1 -0
  225. package/dist/types/content/adapters/index.js.map +1 -0
  226. package/dist/types/content/adapters/react.d.ts +4 -0
  227. package/dist/types/content/adapters/react.js +1 -0
  228. package/dist/types/content/adapters/react.js.map +1 -0
  229. package/dist/types/content/adapters/vanilla.d.ts +1 -0
  230. package/dist/types/content/adapters/vanilla.js +1 -0
  231. package/dist/types/content/adapters/vanilla.js.map +1 -0
  232. package/dist/types/content/boundary.d.ts +17 -0
  233. package/dist/types/content/boundary.js +1 -0
  234. package/dist/types/content/boundary.js.map +1 -0
  235. package/dist/types/{content.d.ts → content/common.d.ts} +24 -53
  236. package/dist/types/{content.js → content/common.js} +1 -1
  237. package/dist/types/content/common.js.map +1 -0
  238. package/dist/types/content/definition.d.ts +61 -0
  239. package/dist/types/content/definition.js +1 -0
  240. package/dist/types/content/definition.js.map +1 -0
  241. package/dist/types/content/index.d.ts +7 -0
  242. package/dist/types/content/index.js +2 -0
  243. package/dist/types/content/index.js.map +1 -0
  244. package/dist/types/content/prepare.d.ts +9 -0
  245. package/dist/types/content/prepare.js +1 -0
  246. package/dist/types/content/prepare.js.map +1 -0
  247. package/dist/types/content/render.d.ts +6 -0
  248. package/dist/types/content/render.js +1 -0
  249. package/dist/types/content/render.js.map +1 -0
  250. package/dist/types/content/target.d.ts +13 -0
  251. package/dist/types/content/target.js +1 -0
  252. package/dist/types/content/target.js.map +1 -0
  253. package/dist/types/manifest.d.ts +1 -1
  254. package/dist/types/relay.d.ts +3 -4
  255. package/dist/types/relay.js.map +1 -1
  256. package/dist/virtual/modules.d.ts +4 -3
  257. package/dist/virtual/{entrypoint.d.ts → runtime.d.ts} +3 -0
  258. package/dist/virtual/runtime.js +9 -0
  259. package/dist/virtual/runtime.js.map +1 -0
  260. package/package.json +32 -23
  261. package/scripts/merge-coverage.mjs +12 -0
  262. package/scripts/pre-commit.mjs +22 -0
  263. package/scripts/test-inventory.mjs +38 -0
  264. package/scripts/test-run.mjs +25 -0
  265. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.d.ts +0 -13
  266. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js +0 -16
  267. package/dist/cli/bundler/plugins/build-assets-map/entrypoint-module.js.map +0 -1
  268. package/dist/cli/bundler/utils/layers.js.map +0 -1
  269. package/dist/cli/bundler/utils/output.d.ts +0 -6
  270. package/dist/cli/bundler/utils/output.js.map +0 -1
  271. package/dist/cli/bundler/utils/styles.d.ts +0 -5
  272. package/dist/cli/bundler/utils/styles.js.map +0 -1
  273. package/dist/cli/plugins/output.d.ts +0 -2
  274. package/dist/cli/plugins/output.js.map +0 -1
  275. package/dist/entry/content/adapters/react/resolvers/index.d.ts +0 -1
  276. package/dist/entry/content/adapters/react/resolvers/index.js +0 -2
  277. package/dist/entry/content/adapters/react/resolvers/index.js.map +0 -1
  278. package/dist/entry/content/core/Builder.d.ts +0 -26
  279. package/dist/entry/content/core/Builder.js +0 -128
  280. package/dist/entry/content/core/Builder.js.map +0 -1
  281. package/dist/entry/content/core/MountBuilder.d.ts +0 -10
  282. package/dist/entry/content/core/MountBuilder.js +0 -48
  283. package/dist/entry/content/core/MountBuilder.js.map +0 -1
  284. package/dist/entry/content/core/context/Context.js +0 -50
  285. package/dist/entry/content/core/context/Context.js.map +0 -1
  286. package/dist/entry/content/core/context/EventEmitter.js.map +0 -1
  287. package/dist/entry/content/core/context/ManagedContext.d.ts +0 -5
  288. package/dist/entry/content/core/context/ManagedContext.js.map +0 -1
  289. package/dist/entry/content/core/context/index.js.map +0 -1
  290. package/dist/entry/content/core/markers/AbstractMarker.js.map +0 -1
  291. package/dist/entry/content/core/markers/AttributeMarker.js.map +0 -1
  292. package/dist/entry/content/core/markers/WeakMarker.js.map +0 -1
  293. package/dist/entry/content/core/markers/index.js.map +0 -1
  294. package/dist/entry/content/core/nodes/EventNode.js.map +0 -1
  295. package/dist/entry/content/core/nodes/FrameNode.js +0 -125
  296. package/dist/entry/content/core/nodes/FrameNode.js.map +0 -1
  297. package/dist/entry/content/core/nodes/MarkerNode.js.map +0 -1
  298. package/dist/entry/content/core/nodes/MountNode.js.map +0 -1
  299. package/dist/entry/content/core/nodes/Node.js.map +0 -1
  300. package/dist/entry/content/core/nodes/ShadowNode.d.ts +0 -14
  301. package/dist/entry/content/core/nodes/ShadowNode.js +0 -67
  302. package/dist/entry/content/core/nodes/ShadowNode.js.map +0 -1
  303. package/dist/entry/content/core/nodes/index.js +0 -15
  304. package/dist/entry/content/core/nodes/index.js.map +0 -1
  305. package/dist/entry/content/core/nodes/isolated-styles.js.map +0 -1
  306. package/dist/entry/content/core/resolvers/anchor.d.ts +0 -2
  307. package/dist/entry/content/core/resolvers/anchor.js.map +0 -1
  308. package/dist/entry/content/core/resolvers/container.d.ts +0 -2
  309. package/dist/entry/content/core/resolvers/container.js.map +0 -1
  310. package/dist/entry/content/core/resolvers/definition.d.ts +0 -3
  311. package/dist/entry/content/core/resolvers/definition.js +0 -12
  312. package/dist/entry/content/core/resolvers/definition.js.map +0 -1
  313. package/dist/entry/content/core/resolvers/index.js.map +0 -1
  314. package/dist/entry/content/core/resolvers/mount.d.ts +0 -2
  315. package/dist/entry/content/core/resolvers/mount.js.map +0 -1
  316. package/dist/entry/content/core/resolvers/render.d.ts +0 -3
  317. package/dist/entry/content/core/resolvers/render.js +0 -18
  318. package/dist/entry/content/core/resolvers/render.js.map +0 -1
  319. package/dist/entry/content/core/resolvers/watch.d.ts +0 -4
  320. package/dist/entry/content/core/resolvers/watch.js.map +0 -1
  321. package/dist/entry/content/frame/Builder.d.ts +0 -7
  322. package/dist/entry/content/frame/Builder.js +0 -14
  323. package/dist/entry/content/frame/Builder.js.map +0 -1
  324. package/dist/entry/content/frame/index.d.ts +0 -4
  325. package/dist/entry/content/frame/index.js +0 -7
  326. package/dist/entry/content/frame/index.js.map +0 -1
  327. package/dist/types/content.js.map +0 -1
  328. package/dist/virtual/entrypoint.js +0 -7
  329. package/dist/virtual/entrypoint.js.map +0 -1
  330. /package/dist/entry/content/{core → lifecycle}/context/index.d.ts +0 -0
  331. /package/dist/entry/content/{core → lifecycle}/context/index.js +0 -0
  332. /package/dist/entry/content/{core → lifecycle}/markers/index.d.ts +0 -0
  333. /package/dist/entry/content/{core → lifecycle}/markers/index.js +0 -0
@@ -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,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":[]}
@@ -3,7 +3,7 @@ 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 { IsolatedStylesLayer } 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";
@@ -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":"AAAA,OAAO,OAAO;AACd,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAuC,8BAAyD;AAEhG,SAAQ,yBAAwB;AAEhC,SAAQ,2BAA0B;AAElC,SAAQ,oBAAmB;AAE3B,SAAQ,2BAA0B;AAClC,SAAQ,kBAAkB,gBAAgB,qBAAoB;AAC9D,SAAQ,eAAc;AAMtB,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;AAGnC,MAAM,oBACF,CAAC,WACG,CAAC,aAAqB,eAAsC;AACxD,QAAM,YAAY,eAAe,cAAc,MAAM,CAAC;AAEtD,MAAI,WAAW,WAAW,SAAS,GAAG;AAClC,UAAM,eAAe,KAAK,SAAS,WAAW,UAAU;AAExD,UAAM,SAAS,eAAe,iBAAiB,MAAM,CAAC;AACtD,UAAM,UAAU,eAAe,KAAK,KAAK,QAAQ,YAAY,CAAC;AAE9D,QAAI,GAAG,WAAW,OAAO,GAAG;AACxB,UAAI,WAAW,GAAG,aAAa,SAAS,MAAM;AAE9C,iBAAW,SAAS,QAAQ,0BAA0B,CAAC,OAAO,OAAO,aAAa;AAC9E,YACI,SAAS,WAAW,GAAG,KACvB,SAAS,WAAW,MAAM,KAC1B,SAAS,WAAW,OAAO,GAC7B;AACE,iBAAO;AAAA,QACX;AAEA,cAAM,SAAS,KAAK,QAAQ,OAAO;AACnC,cAAM,WAAW,KAAK,QAAQ,QAAQ,QAAQ;AAE9C,cAAM,gBAAgB,KAAK,QAAQ,UAAU;AAE7C,cAAM,uBAAuB,KAAK,SAAS,eAAe,QAAQ;AAElE,eAAO,QAAQ,QAAQ,oBAAoB,CAAC;AAAA,MAChD,CAAC;AAED,aAAO,kBAAkB,aAAa,QAAQ;AAAA,IAClD;AAAA,EACJ;AACJ;AAER,IAAO,gBAAQ,aAAa,CAAC,EAAC,qBAAoB,IAAwB,CAAC,MAAM;AAC7E,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,EAAC,KAAK,QAAQ,aAAa,cAAc,YAAW,IAAI;AAE9D,YAAM,WAAW,oBAAoB,KAAK,aAAa,MAAM;AAC7D,YAAM,WAAW,EAAE,UAAU,GAAG;AAEhC,YAAM,oBAAoB,CAAC,SAAqC;AAC5D,cAAM,QAAoB,CAAC,uBAAuB,QAAQ,MAAM,aAAa;AAE7E,YAAI,aAAa;AACb,gBAAM,KAAK;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,cACL,QAAQ,kBAAkB,MAAM;AAAA,YACpC;AAAA,UACJ,CAAC;AAAA,QACL;AAEA,eAAO;AAAA,MACX;AAEA,YAAM,mBAAmB,CAAC,WAAW,UAAU;AAAA,QAC3C;AAAA,UACI,eAAe;AAAA,UACf,KAAK,kBAAkB;AAAA,YACnB,QAAQ;AAAA,YACR,GAAI,WAAW,EAAC,OAAO,wBAAuB,IAAI,CAAC;AAAA,YACnD,SAAS,EAAC,UAAU,MAAM,SAAS,MAAK;AAAA,UAC5C,CAAC;AAAA,QACL;AAAA,QACA;AAAA,UACI,KAAK,kBAAkB;AAAA,YACnB,QAAQ;AAAA,YACR,GAAI,WAAW,EAAC,OAAO,2BAA0B,IAAI,CAAC;AAAA,YACtD,SAAS;AAAA,cACL,UAAU;AAAA,cACV,SAAS;AAAA,gBACL,wBAAwB;AAAA,gBACxB,aAAa;AAAA,gBACb,gBAAgB,aAAa,WAAW,SAAS,QAAQ;AAAA,gBACzD,oBAAoB;AAAA,cACxB;AAAA,YACJ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,YAAY,CAAC,QAAQ,OAAO;AAAA,QAChC;AAAA,QACA,SAAS;AAAA,UACL,IAAI,uBAAuB;AAAA,YACvB;AAAA,YACA,eAAe;AAAA,UACnB,CAAC;AAAA,QACL;AAAA,QACA,cAAc;AAAA,UACV,aAAa;AAAA,YACT,aAAa;AAAA,cACT,qBAAqB;AAAA,gBACjB,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,UAAU;AAAA,cACd;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,QACA,QAAQ;AAAA,UACJ,OAAO;AAAA,YACH;AAAA,cACI,MAAM;AAAA,cACN,MAAM;AAAA,cACN,OAAO;AAAA,gBACH,GAAI,yBAAyB,SACvB,CAAC,IACD;AAAA,kBACI;AAAA,oBACI,aAAa;AAAA,oBACb,eAAe;AAAA,oBACf,OAAO;AAAA,oBACP,OAAO,iBAAiB,IAAI;AAAA,kBAChC;AAAA,gBACJ;AAAA,gBACN,EAAC,OAAO,iBAAiB,EAAC;AAAA,cAC9B;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","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 type {StylePluginOptions} from \"./types\";\nimport {IsolatedStylesLayer} 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 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":[]}
@@ -29,7 +29,7 @@ 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";
32
+ import { isContentLayer } from "./../../cli/bundler/layers.js";
33
33
  import { Command, Mode, Workspace } from "./../../types/app.js";
34
34
  import { Browser } from "./../../types/browser.js";
35
35
  import { Language, LanguageCodes } from "./../../types/locale.js";
@@ -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\";\nimport {isContentLayer} from \"@cli/bundler/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":[]}
@@ -5,7 +5,7 @@ var background_default = 'import type {BackgroundDefinition} from "adnbn";\nimpo
5
5
  var command_default = 'import type {CommandUnresolvedDefinition} from "adnbn";\nimport command, {isValidCommandDefinition, isValidCommandExecuteFunction} from "adnbn/entry/command";\n\nimport * as module from "virtual:command-entrypoint";\n\ntry {\n const commandName = "virtual:command-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: CommandUnresolvedDefinition = otherDefinition;\n\n if (isValidCommandDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidCommandExecuteFunction(defaultDefinition)) {\n definition = {...definition, execute: defaultDefinition};\n }\n\n const {execute, name = commandName, ...options} = definition;\n\n command({\n name,\n execute,\n ...options,\n });\n} catch (e) {\n console.error("The command crashed on startup:", e);\n}\n';
6
6
 
7
7
  // raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/content.ts?raw
8
- var content_default = 'import type {ContentScriptDefinition} from "adnbn";\nimport {isContentScriptDefinition, isValidContentScriptDefinitionRenderValue} from "adnbn/entry/content";\n\nimport contentScript from "virtual:content-builder";\n\nimport * as module from "virtual:content-entrypoint";\n\ntry {\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: object = otherDefinition;\n\n if (isContentScriptDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidContentScriptDefinitionRenderValue(defaultDefinition)) {\n definition = {...definition, render: defaultDefinition} as ContentScriptDefinition;\n }\n\n contentScript(definition as ContentScriptDefinition);\n} catch (e) {\n console.error("The content script crashed on startup:", e);\n}\n';
8
+ var content_default = 'import contentScript, {resolveDefinition} from "virtual:content-builder";\n\nimport * as module from "virtual:content-entrypoint";\n\ntry {\n contentScript(resolveDefinition(module));\n} catch (e) {\n console.error("The content script crashed on startup:", e);\n}\n';
9
9
 
10
10
  // raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/transport.ts?raw
11
11
  var transport_default = 'import type {TransportOptions, TransportType, TransportUnresolvedDefinition} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\n\n//@ts-ignore\nimport transport from "adnbn/entry/:entry";\n\nimport * as module from "virtual:transport-entrypoint";\n\ntry {\n const transportName = "virtual:transport-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: TransportUnresolvedDefinition<TransportOptions, TransportType> = otherDefinition;\n\n if (isValidTransportDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidTransportInitFunction(defaultDefinition)) {\n definition = {...definition, init: defaultDefinition};\n }\n\n const {init, name, ...options} = definition;\n\n transport({name: transportName, init, ...options});\n} catch (e) {\n console.error("The :entry crashed on startup:", e);\n}\n';
@@ -17,7 +17,7 @@ var offscreen_default = 'import type {OffscreenUnresolvedDefinition} from "adnbn
17
17
  var offscreen_background_default = 'import {OffscreenBackground} from "adnbn/offscreen";\n\ntry {\n new OffscreenBackground().build();\n} catch (e) {\n console.error("Failed to build offscreen layer on background:", e);\n}\n';
18
18
 
19
19
  // raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/relay.ts?raw
20
- var relay_default = 'import type {ContentScriptDefinition} from "adnbn";\nimport type {TransportType} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\nimport {Builder as RelayBuilder, type RelayUnresolvedDefinition} from "adnbn/entry/relay";\n\nimport {Builder as ContentScriptBuilder} from "virtual:content-builder";\n\nimport * as module from "virtual:relay-entrypoint";\n\ntry {\n const relayName = "virtual:relay-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: RelayUnresolvedDefinition<TransportType> = otherDefinition;\n\n if (isValidTransportDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidTransportInitFunction(defaultDefinition)) {\n definition = {...definition, init: defaultDefinition};\n }\n\n const {init, main, name, ...options} = definition;\n const {method, allFrames, ...contentOptions} = options;\n\n new RelayBuilder({\n name: relayName,\n init,\n main,\n ...options,\n })\n .content(\n new ContentScriptBuilder({\n ...contentOptions,\n ...(allFrames === undefined ? {} : {allFrames: allFrames !== false}),\n } as ContentScriptDefinition)\n )\n .build()\n .catch(e => {\n console.error("Failed to build relay: ", e);\n });\n} catch (e) {\n console.error("The relay crashed on startup:", e);\n}\n';
20
+ var relay_default = 'import relay, {resolveDefinition} from "adnbn/entry/relay";\n\nimport {Builder as ContentBuilder} from "virtual:content-builder";\n\nimport * as module from "virtual:relay-entrypoint";\n\ntry {\n relay(resolveDefinition(module, "virtual:relay-name"), ContentBuilder);\n} catch (error) {\n console.error("The relay crashed on startup:", error);\n}\n';
21
21
 
22
22
  // raw-loader:/home/runner/work/addon-bone/addon-bone/src/cli/virtual/sandbox.ts?raw
23
23
  var sandbox_default = 'import type {SandboxUnresolvedDefinition} from "adnbn";\nimport type {TransportType} from "adnbn/transport";\nimport {isValidTransportDefinition, isValidTransportInitFunction} from "adnbn/entry/transport";\nimport {Builder as SandboxBuilder} from "adnbn/entry/sandbox";\n\nimport {Builder as ViewBuilder} from "virtual:view-framework";\n\nimport * as module from "virtual:sandbox-entrypoint";\n\ntry {\n const sandboxName = "virtual:sandbox-name";\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: SandboxUnresolvedDefinition<TransportType> = otherDefinition;\n\n if (isValidTransportDefinition(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (isValidTransportInitFunction(defaultDefinition)) {\n definition = {...definition, init: defaultDefinition};\n }\n\n const {init, main, name, ...options} = definition;\n\n new SandboxBuilder({\n name: sandboxName,\n init,\n main,\n ...options,\n })\n .view(new ViewBuilder(options))\n .build()\n .catch(e => {\n console.error("Failed to build sandbox: ", e);\n });\n} catch (e) {\n console.error("The sandbox crashed on startup:", e);\n}\n';
@@ -49,7 +49,7 @@ var virtualCommandModule = (file, name) => {
49
49
  return getVirtualModule(file, "command").replace("virtual:command-name", name);
50
50
  };
51
51
  var virtualContentScriptModule = (file, navigation = false) => {
52
- return getVirtualModule(file, "content").replace(`virtual:content-builder`, navigation ? `${PackageName}/entry/content/frame` : getEntryFramework(file, "content"));
52
+ return getVirtualModule(file, "content").replace(`virtual:content-builder`, navigation ? `${PackageName}/entry/content` : getEntryFramework(file, "content"));
53
53
  };
54
54
  var virtualOffscreenModule = (file, name) => {
55
55
  return getVirtualModule(file, "offscreen").replace("virtual:offscreen-name", name).replace(`virtual:view-framework`, getEntryFramework(file, "view"));
@@ -60,7 +60,7 @@ var virtualOffscreenBackgroundModule = () => {
60
60
  var virtualRelayModule = (file, name, navigation = false) => {
61
61
  return getVirtualModule(file, "relay").replace("virtual:relay-name", name).replace(
62
62
  `virtual:content-builder`,
63
- navigation ? `${PackageName}/entry/content/frame` : getEntryFramework(file, "content")
63
+ navigation ? `${PackageName}/entry/content` : getEntryFramework(file, "content")
64
64
  );
65
65
  };
66
66
  var virtualSandboxModule = (file, name) => {
@@ -21,7 +21,7 @@ declare module "virtual:command-entrypoint" {
21
21
  }
22
22
 
23
23
  declare module "virtual:content-entrypoint" {
24
- type ContentScriptDefinition = import("../../types/content.js").ContentScriptDefinition;
24
+ type ContentScriptDefinition = import("../../types/content/index.js").ContentScriptDefinition;
25
25
 
26
26
  interface ModuleType {
27
27
  [name: string]: unknown;
@@ -33,15 +33,17 @@ declare module "virtual:content-entrypoint" {
33
33
  }
34
34
 
35
35
  declare module "virtual:content-builder" {
36
+ export const resolveDefinition: (module: object) => import("../../types/content/index.js").ContentScriptDefinition;
37
+
36
38
  export const Builder:
37
39
  | typeof import("../../entry/content/adapters/vanilla/index.js").Builder
38
40
  | typeof import("../../entry/content/adapters/react/index.js").Builder
39
- | typeof import("../../entry/content/frame/index.js").Builder;
41
+ | typeof import("../../entry/content/index.js").Builder;
40
42
 
41
43
  const content:
42
44
  | typeof import("../../entry/content/adapters/vanilla/index.js").default
43
45
  | typeof import("../../entry/content/adapters/react/index.js").default
44
- | typeof import("../../entry/content/frame/index.js").default;
46
+ | typeof import("../../entry/content/index.js").default;
45
47
  export default content;
46
48
  }
47
49
 
@@ -80,8 +82,11 @@ declare module "virtual:relay-entrypoint" {
80
82
  marker,
81
83
  anchor,
82
84
  mount,
85
+ prepare,
83
86
  render,
84
87
  container,
88
+ boundary,
89
+ target,
85
90
  watch,
86
91
  includeBrowser,
87
92
  excludeBrowser,
@@ -0,0 +1,3 @@
1
+ export { createMutationObserverStrategy, createAwaitFirstStrategy } from "../entry/content/resolvers/watch.js";
2
+ export { ContentScriptEvent } from "../types/content/index.js";
3
+ export type { ContentScriptWatchStrategy, ContentScriptContext, ContentScriptEventCallback, ContentScriptNode, } from "../types/content/index.js";
@@ -0,0 +1,8 @@
1
+ import { createMutationObserverStrategy, createAwaitFirstStrategy } from "./../entry/content/resolvers/watch.js";
2
+ import { ContentScriptEvent } from "./../types/content/index.js";
3
+ export {
4
+ ContentScriptEvent,
5
+ createAwaitFirstStrategy,
6
+ createMutationObserverStrategy
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/content/index.ts"],"sourcesContent":["export {createMutationObserverStrategy, createAwaitFirstStrategy} from \"@entry/content/resolvers/watch\";\n\nexport {ContentScriptEvent} from \"@typing/content\";\nexport type {\n ContentScriptWatchStrategy,\n ContentScriptContext,\n ContentScriptEventCallback,\n ContentScriptNode,\n} from \"@typing/content\";\n"],"mappings":"AAAA,SAAQ,gCAAgC,gCAA+B;AAEvE,SAAQ,0BAAyB;","names":[]}
@@ -1,7 +1,6 @@
1
- import MountBuilder from "../../core/MountBuilder.js";
2
- import { ContentScriptDefinition, ContentScriptNode, ContentScriptRenderHandler, ContentScriptRenderValue } from "../../../../types/content.js";
3
- export default class extends MountBuilder {
4
- constructor(definition: ContentScriptDefinition);
5
- protected resolveRender(render?: ContentScriptRenderValue): ContentScriptRenderHandler | undefined;
6
- protected createNode(anchor: Element): Promise<ContentScriptNode>;
1
+ import MountBuilder from "../../lifecycle/MountBuilder.js";
2
+ import type { ContentScriptNode, ContentScriptIsolation, ContentScriptProps, ContentScriptRenderHandler, ContentScriptRenderValue } from "../../../../types/content/index.js";
3
+ export default class Builder<Data = unknown, Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`> extends MountBuilder<Data, Isolation> {
4
+ protected resolveRender(render?: ContentScriptRenderValue<Data> | ContentScriptRenderHandler<Data>): ContentScriptRenderHandler<Data> | undefined;
5
+ protected createRenderer(node: ContentScriptNode, render: ContentScriptRenderHandler<Data>, props: () => ContentScriptProps<Data>): ContentScriptNode;
7
6
  }
@@ -1,28 +1,15 @@
1
- import { isValidElement } from "react";
2
- import MountBuilder from "../../core/MountBuilder.js";
3
- import EventNode from "../../core/nodes/EventNode.js";
4
- import ReactNode from "./Node.js";
5
- import { contentScriptReactRenderResolver } from "./resolvers/index.js";
6
- class Builder_default extends MountBuilder {
7
- constructor(definition) {
8
- super(definition);
9
- }
1
+ import MountBuilder from "../../lifecycle/MountBuilder.js";
2
+ import RenderNode from "./Node.js";
3
+ import { createRenderResolver } from "./resolvers/render.js";
4
+ class Builder extends MountBuilder {
10
5
  resolveRender(render) {
11
- if (render === void 0) {
12
- return;
13
- }
14
- return contentScriptReactRenderResolver(render);
6
+ return render === void 0 ? void 0 : createRenderResolver(render);
15
7
  }
16
- async createNode(anchor) {
17
- let value = await this.getValue(anchor);
18
- if (!isValidElement(value)) {
19
- value = void 0;
20
- console.warn("Content script react value is not a valid React element");
21
- }
22
- return new EventNode(new ReactNode(await super.createNode(anchor), value), this.emitter);
8
+ createRenderer(node, render, props) {
9
+ return new RenderNode(node, render, props);
23
10
  }
24
11
  }
25
12
  export {
26
- Builder_default as default
13
+ Builder as default
27
14
  };
28
15
  //# sourceMappingURL=Builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/adapters/react/Builder.ts"],"sourcesContent":["import {isValidElement} from \"react\";\n\nimport MountBuilder from \"../../core/MountBuilder\";\nimport EventNode from \"../../core/nodes/EventNode\";\nimport ReactNode from \"./Node\";\n\nimport {contentScriptReactRenderResolver} from \"./resolvers\";\n\nimport {\n ContentScriptDefinition,\n ContentScriptNode,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\nexport default class extends MountBuilder {\n constructor(definition: ContentScriptDefinition) {\n super(definition);\n }\n\n protected resolveRender(render?: ContentScriptRenderValue): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptReactRenderResolver(render);\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let value = await this.getValue(anchor);\n\n if (!isValidElement(value)) {\n value = undefined;\n\n console.warn(\"Content script react value is not a valid React element\");\n }\n\n return new EventNode(new ReactNode(await super.createNode(anchor), value), this.emitter);\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAE7B,OAAO,kBAAkB;AACzB,OAAO,eAAe;AACtB,OAAO,eAAe;AAEtB,SAAQ,wCAAuC;AAS/C,MAAO,wBAAsB,aAAa;AAAA,EACtC,YAAY,YAAqC;AAC7C,UAAM,UAAU;AAAA,EACpB;AAAA,EAEU,cAAc,QAA2E;AAC/F,QAAI,WAAW,QAAW;AACtB;AAAA,IACJ;AAEA,WAAO,iCAAiC,MAAM;AAAA,EAClD;AAAA,EAEA,MAAgB,WAAW,QAA6C;AACpE,QAAI,QAAQ,MAAM,KAAK,SAAS,MAAM;AAEtC,QAAI,CAAC,eAAe,KAAK,GAAG;AACxB,cAAQ;AAER,cAAQ,KAAK,yDAAyD;AAAA,IAC1E;AAEA,WAAO,IAAI,UAAU,IAAI,UAAU,MAAM,MAAM,WAAW,MAAM,GAAG,KAAK,GAAG,KAAK,OAAO;AAAA,EAC3F;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/entry/content/adapters/react/Builder.ts"],"sourcesContent":["import MountBuilder from \"../../lifecycle/MountBuilder\";\nimport RenderNode from \"./Node\";\nimport {createRenderResolver} from \"./resolvers/render\";\n\nimport type {\n ContentScriptNode,\n ContentScriptIsolation,\n ContentScriptProps,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\nexport default class Builder<\n Data = unknown,\n Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`,\n> extends MountBuilder<Data, Isolation> {\n protected resolveRender(\n render?: ContentScriptRenderValue<Data> | ContentScriptRenderHandler<Data>\n ): ContentScriptRenderHandler<Data> | undefined {\n return render === undefined ? undefined : createRenderResolver(render);\n }\n\n protected createRenderer(\n node: ContentScriptNode,\n render: ContentScriptRenderHandler<Data>,\n props: () => ContentScriptProps<Data>\n ): ContentScriptNode {\n return new RenderNode(node, render, props);\n }\n}\n"],"mappings":"AAAA,OAAO,kBAAkB;AACzB,OAAO,gBAAgB;AACvB,SAAQ,4BAA2B;AAUnC,MAAO,gBAGG,aAA8B;AAAA,EAC1B,cACN,QAC4C;AAC5C,WAAO,WAAW,SAAY,SAAY,qBAAqB,MAAM;AAAA,EACzE;AAAA,EAEU,eACN,MACA,QACA,OACiB;AACjB,WAAO,IAAI,WAAW,MAAM,QAAQ,KAAK;AAAA,EAC7C;AACJ;","names":[]}
@@ -1,15 +1,7 @@
1
- import { ReactNode as ReactComponent } from "react";
2
- import { Root } from "react-dom/client";
3
- import { ContentScriptNode } from "../../../../types/content.js";
4
- export default class implements ContentScriptNode {
5
- protected readonly node: ContentScriptNode;
6
- protected readonly component?: ReactComponent;
7
- protected root?: Root;
8
- private renderedTarget?;
9
- constructor(node: ContentScriptNode, component?: ReactComponent);
10
- get anchor(): Element;
11
- get container(): Element | undefined;
12
- get target(): Element | undefined;
13
- mount(): boolean;
14
- unmount(): boolean;
1
+ import { RenderNode } from "../../lifecycle/nodes/index.js";
2
+ import type { ContentScriptRenderValue } from "../../../../types/content/index.js";
3
+ export default class Node<Data = unknown> extends RenderNode<Data> {
4
+ private root?;
5
+ protected render(value: ContentScriptRenderValue<Data> | undefined, target: Element): boolean;
6
+ protected clear(): void;
15
7
  }