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
@@ -0,0 +1,121 @@
1
+ import { getContentScriptStylesRuntime } from "./isolated-styles.js";
2
+ import {
3
+ ContentScriptShadowMode
4
+ } from "./../../../../types/content/index.js";
5
+ class ShadowNode {
6
+ constructor(node, options = {}, isolation) {
7
+ this.node = node;
8
+ this.options = options;
9
+ this.isolation = isolation;
10
+ }
11
+ node;
12
+ options;
13
+ isolation;
14
+ root;
15
+ _target;
16
+ runtime;
17
+ cleanupBoundary;
18
+ mounting = false;
19
+ unmounting = false;
20
+ get anchor() {
21
+ return this.node.anchor;
22
+ }
23
+ get container() {
24
+ return this.node.container;
25
+ }
26
+ get target() {
27
+ return this._target;
28
+ }
29
+ get boundary() {
30
+ return this.root;
31
+ }
32
+ mount() {
33
+ if (this.mounting || this.unmounting) {
34
+ return false;
35
+ }
36
+ this.mounting = true;
37
+ try {
38
+ return this.mountNode();
39
+ } finally {
40
+ this.mounting = false;
41
+ }
42
+ }
43
+ mountNode() {
44
+ const mounted = !!this.node.mount();
45
+ if (!this.container || this.root) {
46
+ return mounted;
47
+ }
48
+ if (!("attachShadow" in this.container) || typeof this.container.attachShadow !== "function") {
49
+ throw new Error("Content script container does not support Shadow DOM");
50
+ }
51
+ if (this.container.shadowRoot) {
52
+ throw new Error("Content script container already has an open ShadowRoot");
53
+ }
54
+ let root;
55
+ try {
56
+ root = this.container.attachShadow({ mode: this.options.mode ?? ContentScriptShadowMode.Open });
57
+ } catch (cause) {
58
+ throw new Error(
59
+ "Cannot attach ShadowRoot: the content script container may already have a root or not support Shadow DOM",
60
+ { cause }
61
+ );
62
+ }
63
+ this.root = root;
64
+ try {
65
+ const cleanup = this.isolation.setup(root);
66
+ if (this.root !== root) {
67
+ cleanup == null ? void 0 : cleanup();
68
+ return false;
69
+ }
70
+ this.cleanupBoundary = cleanup || void 0;
71
+ const target = this.isolation.createTarget(root, this.container.ownerDocument);
72
+ if (this.root !== root) {
73
+ return false;
74
+ }
75
+ root.appendChild(target);
76
+ this._target = target;
77
+ this.runtime = getContentScriptStylesRuntime();
78
+ this.runtime.add(root, target);
79
+ } catch (error) {
80
+ if (this.root === root) {
81
+ this.unmount();
82
+ }
83
+ throw error;
84
+ }
85
+ return mounted;
86
+ }
87
+ unmount() {
88
+ var _a;
89
+ if (this.unmounting) {
90
+ return false;
91
+ }
92
+ this.unmounting = true;
93
+ this._target = void 0;
94
+ const cleanup = this.cleanupBoundary;
95
+ this.cleanupBoundary = void 0;
96
+ let removed = false;
97
+ try {
98
+ try {
99
+ cleanup == null ? void 0 : cleanup();
100
+ } finally {
101
+ try {
102
+ if (this.root) {
103
+ (_a = this.runtime) == null ? void 0 : _a.delete(this.root);
104
+ }
105
+ } finally {
106
+ this.root = void 0;
107
+ this._target = void 0;
108
+ this.runtime = void 0;
109
+ removed = !!this.node.unmount();
110
+ }
111
+ }
112
+ return removed;
113
+ } finally {
114
+ this.unmounting = false;
115
+ }
116
+ }
117
+ }
118
+ export {
119
+ ShadowNode as default
120
+ };
121
+ //# sourceMappingURL=ShadowNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/ShadowNode.ts"],"sourcesContent":["import type IsolationSetup from \"../IsolationSetup\";\n\nimport {getContentScriptStylesRuntime} from \"./isolated-styles\";\n\nimport {\n ContentScriptShadowMode,\n type ContentScriptShadowOptions,\n type ContentScriptStylesRuntime,\n type ContentScriptNode,\n type ContentScriptBoundaryCleanup,\n} from \"@typing/content\";\n\nexport default class ShadowNode<Data = unknown> implements ContentScriptNode {\n private root?: ShadowRoot;\n\n private _target?: Element;\n\n private runtime?: ContentScriptStylesRuntime;\n private cleanupBoundary?: ContentScriptBoundaryCleanup;\n\n private mounting = false;\n private unmounting = false;\n\n public constructor(\n protected readonly node: ContentScriptNode,\n private readonly options: ContentScriptShadowOptions = {},\n private readonly isolation: IsolationSetup<Data, \"shadow\">\n ) {}\n\n public get anchor(): Element {\n return this.node.anchor;\n }\n\n public get container(): Element | undefined {\n return this.node.container;\n }\n\n public get target(): Element | undefined {\n return this._target;\n }\n\n public get boundary(): ShadowRoot | undefined {\n return this.root;\n }\n\n public mount(): boolean {\n if (this.mounting || this.unmounting) {\n return false;\n }\n\n this.mounting = true;\n\n try {\n return this.mountNode();\n } finally {\n this.mounting = false;\n }\n }\n\n private mountNode(): boolean {\n const mounted = !!this.node.mount();\n\n if (!this.container || this.root) {\n return mounted;\n }\n\n if (!(\"attachShadow\" in this.container) || typeof this.container.attachShadow !== \"function\") {\n throw new Error(\"Content script container does not support Shadow DOM\");\n }\n\n if (this.container.shadowRoot) {\n throw new Error(\"Content script container already has an open ShadowRoot\");\n }\n\n let root: ShadowRoot;\n\n try {\n root = this.container.attachShadow({mode: this.options.mode ?? ContentScriptShadowMode.Open});\n } catch (cause) {\n // A pre-existing closed root is not observable through container.shadowRoot.\n throw new Error(\n \"Cannot attach ShadowRoot: the content script container may already have a root or not support Shadow DOM\",\n {cause}\n );\n }\n\n this.root = root;\n\n try {\n const cleanup = this.isolation.setup(root);\n\n if (this.root !== root) {\n cleanup?.();\n\n return false;\n }\n\n this.cleanupBoundary = cleanup || undefined;\n const target = this.isolation.createTarget(root, this.container.ownerDocument);\n\n if (this.root !== root) {\n return false;\n }\n\n root.appendChild(target);\n\n this._target = target;\n this.runtime = getContentScriptStylesRuntime();\n this.runtime.add(root, target);\n } catch (error) {\n if (this.root === root) {\n this.unmount();\n }\n\n throw error;\n }\n\n return mounted;\n }\n\n public unmount(): boolean {\n if (this.unmounting) {\n return false;\n }\n\n this.unmounting = true;\n this._target = undefined;\n\n const cleanup = this.cleanupBoundary;\n\n this.cleanupBoundary = undefined;\n\n let removed = false;\n\n try {\n try {\n cleanup?.();\n } finally {\n try {\n if (this.root) {\n this.runtime?.delete(this.root);\n }\n } finally {\n this.root = undefined;\n this._target = undefined;\n this.runtime = undefined;\n removed = !!this.node.unmount();\n }\n }\n\n return removed;\n } finally {\n this.unmounting = false;\n }\n }\n}\n"],"mappings":"AAEA,SAAQ,qCAAoC;AAE5C;AAAA,EACI;AAAA,OAKG;AAEP,MAAO,WAAsE;AAAA,EAWlE,YACgB,MACF,UAAsC,CAAC,GACvC,WACnB;AAHqB;AACF;AACA;AAAA,EAClB;AAAA,EAHoB;AAAA,EACF;AAAA,EACA;AAAA,EAbb;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA,WAAW;AAAA,EACX,aAAa;AAAA,EAQrB,IAAW,SAAkB;AACzB,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,YAAiC;AACxC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,SAA8B;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAW,WAAmC;AAC1C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,QAAiB;AACpB,QAAI,KAAK,YAAY,KAAK,YAAY;AAClC,aAAO;AAAA,IACX;AAEA,SAAK,WAAW;AAEhB,QAAI;AACA,aAAO,KAAK,UAAU;AAAA,IAC1B,UAAE;AACE,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEQ,YAAqB;AACzB,UAAM,UAAU,CAAC,CAAC,KAAK,KAAK,MAAM;AAElC,QAAI,CAAC,KAAK,aAAa,KAAK,MAAM;AAC9B,aAAO;AAAA,IACX;AAEA,QAAI,EAAE,kBAAkB,KAAK,cAAc,OAAO,KAAK,UAAU,iBAAiB,YAAY;AAC1F,YAAM,IAAI,MAAM,sDAAsD;AAAA,IAC1E;AAEA,QAAI,KAAK,UAAU,YAAY;AAC3B,YAAM,IAAI,MAAM,yDAAyD;AAAA,IAC7E;AAEA,QAAI;AAEJ,QAAI;AACA,aAAO,KAAK,UAAU,aAAa,EAAC,MAAM,KAAK,QAAQ,QAAQ,wBAAwB,KAAI,CAAC;AAAA,IAChG,SAAS,OAAO;AAEZ,YAAM,IAAI;AAAA,QACN;AAAA,QACA,EAAC,MAAK;AAAA,MACV;AAAA,IACJ;AAEA,SAAK,OAAO;AAEZ,QAAI;AACA,YAAM,UAAU,KAAK,UAAU,MAAM,IAAI;AAEzC,UAAI,KAAK,SAAS,MAAM;AACpB;AAEA,eAAO;AAAA,MACX;AAEA,WAAK,kBAAkB,WAAW;AAClC,YAAM,SAAS,KAAK,UAAU,aAAa,MAAM,KAAK,UAAU,aAAa;AAE7E,UAAI,KAAK,SAAS,MAAM;AACpB,eAAO;AAAA,MACX;AAEA,WAAK,YAAY,MAAM;AAEvB,WAAK,UAAU;AACf,WAAK,UAAU,8BAA8B;AAC7C,WAAK,QAAQ,IAAI,MAAM,MAAM;AAAA,IACjC,SAAS,OAAO;AACZ,UAAI,KAAK,SAAS,MAAM;AACpB,aAAK,QAAQ;AAAA,MACjB;AAEA,YAAM;AAAA,IACV;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AAxH9B;AAyHQ,QAAI,KAAK,YAAY;AACjB,aAAO;AAAA,IACX;AAEA,SAAK,aAAa;AAClB,SAAK,UAAU;AAEf,UAAM,UAAU,KAAK;AAErB,SAAK,kBAAkB;AAEvB,QAAI,UAAU;AAEd,QAAI;AACA,UAAI;AACA;AAAA,MACJ,UAAE;AACE,YAAI;AACA,cAAI,KAAK,MAAM;AACX,uBAAK,YAAL,mBAAc,OAAO,KAAK;AAAA,UAC9B;AAAA,QACJ,UAAE;AACE,eAAK,OAAO;AACZ,eAAK,UAAU;AACf,eAAK,UAAU;AACf,oBAAU,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,QAClC;AAAA,MACJ;AAEA,aAAO;AAAA,IACX,UAAE;AACE,WAAK,aAAa;AAAA,IACtB;AAAA,EACJ;AACJ;","names":[]}
@@ -1,4 +1,5 @@
1
1
  export { default as Node } from "./Node.js";
2
+ export { default as RenderNode } from "./RenderNode.js";
2
3
  export { default as MountNode } from "./MountNode.js";
3
4
  export { default as MarkerNode } from "./MarkerNode.js";
4
5
  export { default as EventNode } from "./EventNode.js";
@@ -0,0 +1,17 @@
1
+ import { default as default2 } from "./Node.js";
2
+ import { default as default3 } from "./RenderNode.js";
3
+ import { default as default4 } from "./MountNode.js";
4
+ import { default as default5 } from "./MarkerNode.js";
5
+ import { default as default6 } from "./EventNode.js";
6
+ import { default as default7 } from "./ShadowNode.js";
7
+ import { default as default8 } from "./FrameNode.js";
8
+ export {
9
+ default6 as EventNode,
10
+ default8 as FrameNode,
11
+ default5 as MarkerNode,
12
+ default4 as MountNode,
13
+ default2 as Node,
14
+ default3 as RenderNode,
15
+ default7 as ShadowNode
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/index.ts"],"sourcesContent":["export {default as Node} from \"./Node\";\nexport {default as RenderNode} from \"./RenderNode\";\nexport {default as MountNode} from \"./MountNode\";\nexport {default as MarkerNode} from \"./MarkerNode\";\nexport {default as EventNode} from \"./EventNode\";\nexport {default as ShadowNode} from \"./ShadowNode\";\nexport {default as FrameNode} from \"./FrameNode\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAsB;AAC9B,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA2B;AACnC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA2B;AACnC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA2B;","names":["default"]}
@@ -1,2 +1,2 @@
1
- import { type ContentScriptStylesRuntime } from "../../../../types/content.js";
1
+ import type { ContentScriptStylesRuntime } from "../../../../types/content/index.js";
2
2
  export declare const getContentScriptStylesRuntime: () => ContentScriptStylesRuntime;
@@ -1,7 +1,7 @@
1
1
  import { getUrl } from "@addon-core/browser";
2
- import { ContentScriptStylesRuntimeProperty } from "./../../../../types/content.js";
2
+ import { readContentStyles } from "#adnbn/runtime";
3
3
  const getContentScriptStylesRuntime = () => {
4
- const runtime = typeof __webpack_require__ === "function" ? __webpack_require__[ContentScriptStylesRuntimeProperty] : void 0;
4
+ const runtime = readContentStyles();
5
5
  if (!runtime) {
6
6
  throw new Error("Isolated styles runtime is unavailable in this content entrypoint");
7
7
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/isolated-styles.ts"],"sourcesContent":["import {getUrl} from \"@addon-core/browser\";\nimport {readContentStyles} from \"#adnbn/runtime\";\n\nimport type {ContentScriptStylesRuntime} from \"@typing/content\";\n\nexport const getContentScriptStylesRuntime = (): ContentScriptStylesRuntime => {\n const runtime = readContentStyles();\n\n if (!runtime) {\n throw new Error(\"Isolated styles runtime is unavailable in this content entrypoint\");\n }\n\n runtime.initialize(getUrl);\n\n return runtime;\n};\n"],"mappings":"AAAA,SAAQ,cAAa;AACrB,SAAQ,yBAAwB;AAIzB,MAAM,gCAAgC,MAAkC;AAC3E,QAAM,UAAU,kBAAkB;AAElC,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACvF;AAEA,UAAQ,WAAW,MAAM;AAEzB,SAAO;AACX;","names":[]}
@@ -0,0 +1,2 @@
1
+ import { ContentScriptAnchor, ContentScriptAnchorGetter } from "../../../types/content/index.js";
2
+ export declare const createAnchorResolver: (anchor?: ContentScriptAnchor | ContentScriptAnchorGetter) => ContentScriptAnchorGetter;
@@ -1,4 +1,4 @@
1
- const contentScriptAnchorResolver = (anchor) => async () => {
1
+ const createAnchorResolver = (anchor) => async () => {
2
2
  let resolved = typeof anchor === "function" ? anchor() : anchor;
3
3
  if (resolved instanceof Promise) {
4
4
  resolved = await resolved;
@@ -9,6 +9,6 @@ const contentScriptAnchorResolver = (anchor) => async () => {
9
9
  return resolved;
10
10
  };
11
11
  export {
12
- contentScriptAnchorResolver
12
+ createAnchorResolver
13
13
  };
14
14
  //# sourceMappingURL=anchor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/anchor.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptAnchorGetter} from \"@typing/content\";\n\n// prettier-ignore\nexport const createAnchorResolver =\n (anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorGetter =>\n async (): Promise<ContentScriptAnchor> => {\n let resolved = typeof anchor === \"function\" ? anchor() : anchor;\n\n if (resolved instanceof Promise) {\n resolved = await resolved;\n }\n\n if (resolved === undefined || resolved === null) {\n return document.body;\n }\n\n return resolved;\n };\n"],"mappings":"AAGO,MAAM,uBACT,CAAC,WACG,YAA0C;AACtC,MAAI,WAAW,OAAO,WAAW,aAAa,OAAO,IAAI;AAEzD,MAAI,oBAAoB,SAAS;AAC7B,eAAW,MAAM;AAAA,EACrB;AAEA,MAAI,aAAa,UAAa,aAAa,MAAM;AAC7C,WAAO,SAAS;AAAA,EACpB;AAEA,SAAO;AACX;","names":[]}
@@ -0,0 +1,2 @@
1
+ import { ContentScriptContainerCreator, ContentScriptContainerFactory, ContentScriptContainerOptions, ContentScriptContainerTag } from "../../../types/content/index.js";
2
+ export declare const createContainerResolver: <Data = unknown>(container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory<Data>) => ContentScriptContainerCreator<Data>;
@@ -1,4 +1,4 @@
1
- const contentScriptContainerResolver = (container) => async (props) => {
1
+ const createContainerResolver = (container) => async (props) => {
2
2
  let resolvedContainer = typeof container === "function" ? container(props) : container;
3
3
  if (resolvedContainer instanceof Promise) {
4
4
  resolvedContainer = await resolvedContainer;
@@ -16,6 +16,6 @@ const contentScriptContainerResolver = (container) => async (props) => {
16
16
  return resolvedContainer;
17
17
  };
18
18
  export {
19
- contentScriptContainerResolver
19
+ createContainerResolver
20
20
  };
21
21
  //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/container.ts"],"sourcesContent":["import {\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptContainerProps,\n} from \"@typing/content\";\n\n// prettier-ignore\nexport const createContainerResolver = <Data = unknown>(\n container?:\n ContentScriptContainerTag |\n ContentScriptContainerOptions |\n ContentScriptContainerFactory<Data>\n): ContentScriptContainerCreator<Data> =>\n async (props: ContentScriptContainerProps<Data>): Promise<Element> => {\n let resolvedContainer = typeof container === \"function\" ? container(props) : container;\n\n if (resolvedContainer instanceof Promise) {\n resolvedContainer = await resolvedContainer;\n }\n\n if (resolvedContainer === undefined || typeof resolvedContainer === \"string\") {\n resolvedContainer = document.createElement(resolvedContainer || \"div\");\n } else if (typeof resolvedContainer === \"object\" && resolvedContainer.constructor === Object) {\n const {tagName = \"div\", ...options} = resolvedContainer as ContentScriptContainerOptions;\n\n resolvedContainer = document.createElement(tagName);\n\n Object.assign(resolvedContainer, options);\n }\n\n if (!(resolvedContainer instanceof Element)) {\n throw new Error(\"The content script container must be a valid element\");\n }\n\n return resolvedContainer;\n };\n"],"mappings":"AASO,MAAM,0BAA0B,CACnC,cAKA,OAAO,UAA+D;AAClE,MAAI,oBAAoB,OAAO,cAAc,aAAa,UAAU,KAAK,IAAI;AAE7E,MAAI,6BAA6B,SAAS;AACtC,wBAAoB,MAAM;AAAA,EAC9B;AAEA,MAAI,sBAAsB,UAAa,OAAO,sBAAsB,UAAU;AAC1E,wBAAoB,SAAS,cAAc,qBAAqB,KAAK;AAAA,EACzE,WAAW,OAAO,sBAAsB,YAAY,kBAAkB,gBAAgB,QAAQ;AAC1F,UAAM,EAAC,UAAU,OAAO,GAAG,QAAO,IAAI;AAEtC,wBAAoB,SAAS,cAAc,OAAO;AAElD,WAAO,OAAO,mBAAmB,OAAO;AAAA,EAC5C;AAEA,MAAI,EAAE,6BAA6B,UAAU;AACzC,UAAM,IAAI,MAAM,sDAAsD;AAAA,EAC1E;AAEA,SAAO;AACX;","names":[]}
@@ -0,0 +1,5 @@
1
+ import type { ContentScriptDefinition } from "../../../types/content/index.js";
2
+ /** Merge module exports using the selected adapter's interpretation of the default value. */
3
+ export declare const mergeDefinition: (module: object, isRenderInput: (value: unknown) => boolean) => ContentScriptDefinition;
4
+ /** Resolve exports without a renderer; the content parser validates default render exports before navigation. */
5
+ export declare const resolveDefinition: (module: object) => ContentScriptDefinition;
@@ -0,0 +1,24 @@
1
+ const isDefinitionObject = (value) => {
2
+ return value !== null && typeof value === "object" && value.constructor === Object;
3
+ };
4
+ const mergeDefinition = (module, isRenderInput) => {
5
+ const { default: defaultDefinition, ...definition } = module;
6
+ if (isRenderInput(defaultDefinition)) {
7
+ return { ...definition, render: defaultDefinition };
8
+ }
9
+ if (isDefinitionObject(defaultDefinition)) {
10
+ return { ...definition, ...defaultDefinition };
11
+ }
12
+ return definition;
13
+ };
14
+ const resolveDefinition = (module) => {
15
+ return mergeDefinition(
16
+ module,
17
+ (value) => value != null && value !== "" && typeof value !== "boolean" && !isDefinitionObject(value)
18
+ );
19
+ };
20
+ export {
21
+ mergeDefinition,
22
+ resolveDefinition
23
+ };
24
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/definition.ts"],"sourcesContent":["import type {ContentScriptDefinition} from \"@typing/content\";\n\n/** Adapters must recognize their render objects before falling back to an options object. */\nconst isDefinitionObject = (value: unknown): value is ContentScriptDefinition => {\n return value !== null && typeof value === \"object\" && value.constructor === Object;\n};\n\n/** Merge module exports using the selected adapter's interpretation of the default value. */\nexport const mergeDefinition = (\n module: object,\n isRenderInput: (value: unknown) => boolean\n): ContentScriptDefinition => {\n const {default: defaultDefinition, ...definition} = module as Record<string, unknown>;\n\n if (isRenderInput(defaultDefinition)) {\n return {...definition, render: defaultDefinition} as ContentScriptDefinition;\n }\n\n if (isDefinitionObject(defaultDefinition)) {\n return {...definition, ...defaultDefinition};\n }\n\n return definition;\n};\n\n/** Resolve exports without a renderer; the content parser validates default render exports before navigation. */\nexport const resolveDefinition = (module: object): ContentScriptDefinition => {\n return mergeDefinition(\n module,\n value => value != null && value !== \"\" && typeof value !== \"boolean\" && !isDefinitionObject(value)\n );\n};\n"],"mappings":"AAGA,MAAM,qBAAqB,CAAC,UAAqD;AAC7E,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,MAAM,gBAAgB;AAChF;AAGO,MAAM,kBAAkB,CAC3B,QACA,kBAC0B;AAC1B,QAAM,EAAC,SAAS,mBAAmB,GAAG,WAAU,IAAI;AAEpD,MAAI,cAAc,iBAAiB,GAAG;AAClC,WAAO,EAAC,GAAG,YAAY,QAAQ,kBAAiB;AAAA,EACpD;AAEA,MAAI,mBAAmB,iBAAiB,GAAG;AACvC,WAAO,EAAC,GAAG,YAAY,GAAG,kBAAiB;AAAA,EAC/C;AAEA,SAAO;AACX;AAGO,MAAM,oBAAoB,CAAC,WAA4C;AAC1E,SAAO;AAAA,IACH;AAAA,IACA,WAAS,SAAS,QAAQ,UAAU,MAAM,OAAO,UAAU,aAAa,CAAC,mBAAmB,KAAK;AAAA,EACrG;AACJ;","names":[]}
@@ -2,5 +2,5 @@ export * from "./anchor.js";
2
2
  export * from "./container.js";
3
3
  export * from "./definition.js";
4
4
  export * from "./mount.js";
5
- export * from "./render.js";
5
+ export * from "./target.js";
6
6
  export * from "./watch.js";
@@ -2,6 +2,6 @@ export * from "./anchor.js";
2
2
  export * from "./container.js";
3
3
  export * from "./definition.js";
4
4
  export * from "./mount.js";
5
- export * from "./render.js";
5
+ export * from "./target.js";
6
6
  export * from "./watch.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/index.ts"],"sourcesContent":["export * from \"./anchor\";\nexport * from \"./container\";\nexport * from \"./definition\";\nexport * from \"./mount\";\nexport * from \"./target\";\nexport * from \"./watch\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,2 @@
1
+ import { ContentScriptAppend, ContentScriptMountFunction } from "../../../types/content/index.js";
2
+ export declare const createAppendMountHandler: (append?: ContentScriptAppend) => ContentScriptMountFunction;
@@ -1,5 +1,5 @@
1
- import { ContentScriptAppend } from "./../../../../types/content.js";
2
- const contentScriptMountAppendResolver = (append) => (anchor, container) => {
1
+ import { ContentScriptAppend } from "./../../../types/content/index.js";
2
+ const createAppendMountHandler = (append) => (anchor, container) => {
3
3
  var _a, _b;
4
4
  switch (append) {
5
5
  case ContentScriptAppend.Last:
@@ -22,6 +22,6 @@ const contentScriptMountAppendResolver = (append) => (anchor, container) => {
22
22
  }
23
23
  };
24
24
  export {
25
- contentScriptMountAppendResolver
25
+ createAppendMountHandler
26
26
  };
27
27
  //# sourceMappingURL=mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/mount.ts"],"sourcesContent":["import {ContentScriptAppend, ContentScriptMountFunction} from \"@typing/content\";\n\n// prettier-ignore\nexport const createAppendMountHandler =\n (append?: ContentScriptAppend): ContentScriptMountFunction =>\n (anchor: Element, container: Element): void => {\n switch (append) {\n case ContentScriptAppend.Last:\n anchor.append(container);\n break;\n default:\n case undefined:\n case ContentScriptAppend.First:\n anchor.prepend(container);\n break;\n case ContentScriptAppend.Replace:\n anchor.replaceWith(container);\n break;\n case ContentScriptAppend.After:\n anchor.parentElement?.insertBefore(container, anchor.nextElementSibling);\n break;\n case ContentScriptAppend.Before:\n anchor.parentElement?.insertBefore(container, anchor);\n break;\n }\n };\n"],"mappings":"AAAA,SAAQ,2BAAsD;AAGvD,MAAM,2BACT,CAAC,WACG,CAAC,QAAiB,cAA6B;AALvD;AAMY,UAAQ,QAAQ;AAAA,IACZ,KAAK,oBAAoB;AACrB,aAAO,OAAO,SAAS;AACvB;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,IACL,KAAK,oBAAoB;AACrB,aAAO,QAAQ,SAAS;AACxB;AAAA,IACJ,KAAK,oBAAoB;AACrB,aAAO,YAAY,SAAS;AAC5B;AAAA,IACJ,KAAK,oBAAoB;AACrB,mBAAO,kBAAP,mBAAsB,aAAa,WAAW,OAAO;AACrD;AAAA,IACJ,KAAK,oBAAoB;AACrB,mBAAO,kBAAP,mBAAsB,aAAa,WAAW;AAC9C;AAAA,EACR;AACJ;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { ContentScriptTarget, ContentScriptTargetCreator } from "../../../types/content/index.js";
2
+ /** Creates the renderer-owned element in the document supplied by the isolation node. */
3
+ export declare const createTargetResolver: <Data = unknown>(target?: ContentScriptTarget<Data>) => ContentScriptTargetCreator<Data>;
@@ -0,0 +1,34 @@
1
+ const createTargetResolver = (target) => (props) => {
2
+ var _a;
3
+ let element = typeof target === "function" ? target(props) : target ?? "div";
4
+ const { document, container, boundary } = props;
5
+ if (element && typeof element === "object" && "then" in element && typeof element.then === "function") {
6
+ throw new Error(
7
+ "Content script target factory must return synchronously; use prepare for asynchronous work"
8
+ );
9
+ }
10
+ if (typeof element === "string") {
11
+ element = document.createElement(element);
12
+ } else if (element && typeof element === "object" && "tagName" in element && !("nodeType" in element)) {
13
+ const { tagName, ...options } = element;
14
+ element = document.createElement(tagName);
15
+ Object.assign(element, options);
16
+ }
17
+ const ElementConstructor = ((_a = document.defaultView) == null ? void 0 : _a.Element) ?? Element;
18
+ if (!(element instanceof ElementConstructor)) {
19
+ throw new Error("The content script target must be a valid element");
20
+ }
21
+ if (element.ownerDocument !== document) {
22
+ throw new Error("The content script target must belong to the supplied document");
23
+ }
24
+ if (element.parentNode || element === container || element === boundary) {
25
+ throw new Error(
26
+ "The content script target must be a detached element distinct from its container and boundary"
27
+ );
28
+ }
29
+ return element;
30
+ };
31
+ export {
32
+ createTargetResolver
33
+ };
34
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/target.ts"],"sourcesContent":["import type {ContentScriptTarget, ContentScriptTargetCreator} from \"@typing/content\";\n\n/** Creates the renderer-owned element in the document supplied by the isolation node. */\nexport const createTargetResolver =\n <Data = unknown>(target?: ContentScriptTarget<Data>): ContentScriptTargetCreator<Data> =>\n props => {\n let element = typeof target === \"function\" ? target(props) : (target ?? \"div\");\n const {document, container, boundary} = props;\n\n if (element && typeof element === \"object\" && \"then\" in element && typeof element.then === \"function\") {\n throw new Error(\n \"Content script target factory must return synchronously; use prepare for asynchronous work\"\n );\n }\n\n if (typeof element === \"string\") {\n element = document.createElement(element);\n } else if (element && typeof element === \"object\" && \"tagName\" in element && !(\"nodeType\" in element)) {\n const {tagName, ...options} = element;\n element = document.createElement(tagName);\n Object.assign(element, options);\n }\n\n const ElementConstructor = document.defaultView?.Element ?? Element;\n\n if (!(element instanceof ElementConstructor)) {\n throw new Error(\"The content script target must be a valid element\");\n }\n\n if (element.ownerDocument !== document) {\n throw new Error(\"The content script target must belong to the supplied document\");\n }\n\n if (element.parentNode || element === container || element === boundary) {\n throw new Error(\n \"The content script target must be a detached element distinct from its container and boundary\"\n );\n }\n\n return element;\n };\n"],"mappings":"AAGO,MAAM,uBACT,CAAiB,WACjB,WAAS;AALb;AAMQ,MAAI,UAAU,OAAO,WAAW,aAAa,OAAO,KAAK,IAAK,UAAU;AACxE,QAAM,EAAC,UAAU,WAAW,SAAQ,IAAI;AAExC,MAAI,WAAW,OAAO,YAAY,YAAY,UAAU,WAAW,OAAO,QAAQ,SAAS,YAAY;AACnG,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,YAAY,UAAU;AAC7B,cAAU,SAAS,cAAc,OAAO;AAAA,EAC5C,WAAW,WAAW,OAAO,YAAY,YAAY,aAAa,WAAW,EAAE,cAAc,UAAU;AACnG,UAAM,EAAC,SAAS,GAAG,QAAO,IAAI;AAC9B,cAAU,SAAS,cAAc,OAAO;AACxC,WAAO,OAAO,SAAS,OAAO;AAAA,EAClC;AAEA,QAAM,uBAAqB,cAAS,gBAAT,mBAAsB,YAAW;AAE5D,MAAI,EAAE,mBAAmB,qBAAqB;AAC1C,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACvE;AAEA,MAAI,QAAQ,kBAAkB,UAAU;AACpC,UAAM,IAAI,MAAM,gEAAgE;AAAA,EACpF;AAEA,MAAI,QAAQ,cAAc,YAAY,aAAa,YAAY,UAAU;AACrE,UAAM,IAAI;AAAA,MACN;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;","names":[]}
@@ -0,0 +1,6 @@
1
+ import type { ContentScriptWatchStrategy } from "../../../types/content/index.js";
2
+ /** Create a debounced DOM-mutation strategy. Calling the returned strategy starts observing. */
3
+ export declare const createMutationObserverStrategy: (options?: MutationObserverInit) => ContentScriptWatchStrategy;
4
+ /** Observe DOM mutations while waiting for the first content nodes. */
5
+ export declare const createAwaitFirstStrategy: (options?: MutationObserverInit) => ContentScriptWatchStrategy;
6
+ export declare const withLocationTracking: (strategy: ContentScriptWatchStrategy) => ContentScriptWatchStrategy;
@@ -1,5 +1,5 @@
1
1
  import debounce from "debounce";
2
- const contentScriptMutationObserverResolver = (options) => (update) => {
2
+ const createMutationObserverStrategy = (options) => (update) => {
3
3
  if (!options) {
4
4
  options = {};
5
5
  }
@@ -17,8 +17,8 @@ const contentScriptMutationObserverResolver = (options) => (update) => {
17
17
  observer.disconnect();
18
18
  };
19
19
  };
20
- const contentScriptAwaitFirstResolver = (options) => (update, context) => {
21
- const resolver = contentScriptMutationObserverResolver({
20
+ const createAwaitFirstStrategy = (options) => (update, context) => {
21
+ const resolver = createMutationObserverStrategy({
22
22
  attributes: false,
23
23
  characterData: false,
24
24
  ...options
@@ -29,8 +29,8 @@ const contentScriptAwaitFirstResolver = (options) => (update, context) => {
29
29
  unwatch = void 0;
30
30
  };
31
31
  if (context.nodes.size === 0) {
32
- unwatch = resolver(() => {
33
- update();
32
+ unwatch = resolver(async () => {
33
+ await update();
34
34
  if (context.nodes.size > 0) {
35
35
  clear();
36
36
  }
@@ -40,12 +40,16 @@ const contentScriptAwaitFirstResolver = (options) => (update, context) => {
40
40
  clear();
41
41
  };
42
42
  };
43
- const contentScriptLocationResolver = (strategy) => (update, context) => {
43
+ const withLocationTracking = (strategy) => (update, context) => {
44
44
  let currentUrl = location.href;
45
45
  const interval = setInterval(() => {
46
46
  if (currentUrl !== location.href) {
47
47
  currentUrl = location.href;
48
- context.mount();
48
+ try {
49
+ context.mount();
50
+ } catch (error) {
51
+ console.error("Content script mount on location change failed", error);
52
+ }
49
53
  }
50
54
  }, 300);
51
55
  const unwatch = strategy(update, context);
@@ -55,8 +59,8 @@ const contentScriptLocationResolver = (strategy) => (update, context) => {
55
59
  };
56
60
  };
57
61
  export {
58
- contentScriptAwaitFirstResolver,
59
- contentScriptLocationResolver,
60
- contentScriptMutationObserverResolver
62
+ createAwaitFirstStrategy,
63
+ createMutationObserverStrategy,
64
+ withLocationTracking
61
65
  };
62
66
  //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/entry/content/resolvers/watch.ts"],"sourcesContent":["import debounce from \"debounce\";\n\nimport type {ContentScriptWatchStrategy} from \"@typing/content\";\n\n/** Create a debounced DOM-mutation strategy. Calling the returned strategy starts observing. */\n// prettier-ignore\nexport const createMutationObserverStrategy =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n update => {\n if (!options) {\n options = {};\n }\n\n const handle = debounce(update, 200);\n\n const observer = new MutationObserver(handle);\n\n observer.observe(document.body ?? document.documentElement ?? document, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n ...options,\n });\n\n return () => {\n handle.clear();\n observer.disconnect();\n };\n };\n\n/** Observe DOM mutations while waiting for the first content nodes. */\n// prettier-ignore\nexport const createAwaitFirstStrategy =\n (options?: MutationObserverInit): ContentScriptWatchStrategy =>\n (update, context) => {\n const resolver = createMutationObserverStrategy({\n attributes: false,\n characterData: false,\n ...options,\n });\n\n let unwatch: { (): void } | undefined;\n\n const clear = () => {\n unwatch && unwatch();\n unwatch = undefined;\n };\n\n if (context.nodes.size === 0) {\n unwatch = resolver(async () => {\n await update();\n\n if (context.nodes.size > 0) {\n clear();\n }\n }, context);\n }\n\n return () => {\n clear();\n };\n };\n\n// prettier-ignore\nexport const withLocationTracking =\n (strategy: ContentScriptWatchStrategy): ContentScriptWatchStrategy =>\n (update, context) => {\n let currentUrl = location.href;\n\n const interval = setInterval(() => {\n if (currentUrl !== location.href) {\n currentUrl = location.href;\n\n try {\n context.mount();\n } catch (error) {\n console.error(\"Content script mount on location change failed\", error);\n }\n }\n }, 300);\n\n const unwatch = strategy(update, context);\n\n return () => {\n clearInterval(interval);\n unwatch();\n };\n };\n"],"mappings":"AAAA,OAAO,cAAc;AAMd,MAAM,iCACT,CAAC,YACG,YAAU;AACN,MAAI,CAAC,SAAS;AACV,cAAU,CAAC;AAAA,EACf;AAEA,QAAM,SAAS,SAAS,QAAQ,GAAG;AAEnC,QAAM,WAAW,IAAI,iBAAiB,MAAM;AAE5C,WAAS,QAAQ,SAAS,QAAQ,SAAS,mBAAmB,UAAU;AAAA,IACpE,WAAW;AAAA,IACX,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,GAAG;AAAA,EACP,CAAC;AAED,SAAO,MAAM;AACT,WAAO,MAAM;AACb,aAAS,WAAW;AAAA,EACxB;AACJ;AAID,MAAM,2BACT,CAAC,YACG,CAAC,QAAQ,YAAY;AACjB,QAAM,WAAW,+BAA+B;AAAA,IAC5C,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,GAAG;AAAA,EACP,CAAC;AAED,MAAI;AAEJ,QAAM,QAAQ,MAAM;AAChB,eAAW,QAAQ;AACnB,cAAU;AAAA,EACd;AAEA,MAAI,QAAQ,MAAM,SAAS,GAAG;AAC1B,cAAU,SAAS,YAAY;AAC3B,YAAM,OAAO;AAEb,UAAI,QAAQ,MAAM,OAAO,GAAG;AACxB,cAAM;AAAA,MACV;AAAA,IACJ,GAAG,OAAO;AAAA,EACd;AAEA,SAAO,MAAM;AACT,UAAM;AAAA,EACV;AACJ;AAGD,MAAM,uBACT,CAAC,aACG,CAAC,QAAQ,YAAY;AACjB,MAAI,aAAa,SAAS;AAE1B,QAAM,WAAW,YAAY,MAAM;AAC/B,QAAI,eAAe,SAAS,MAAM;AAC9B,mBAAa,SAAS;AAEtB,UAAI;AACA,gBAAQ,MAAM;AAAA,MAClB,SAAS,OAAO;AACZ,gBAAQ,MAAM,kDAAkD,KAAK;AAAA,MACzE;AAAA,IACJ;AAAA,EACJ,GAAG,GAAG;AAEN,QAAM,UAAU,SAAS,QAAQ,OAAO;AAExC,SAAO,MAAM;AACT,kBAAc,QAAQ;AACtB,YAAQ;AAAA,EACZ;AACJ;","names":[]}
@@ -1,14 +1,14 @@
1
1
  import TransportBuilder from "./TransportBuilder.js";
2
- import Builder from "../core/Builder.js";
2
+ import EntrypointBuilder from "../core/Builder.js";
3
3
  import { RelayUnresolvedDefinition } from "../../types/relay.js";
4
- import { ContentScriptBuilder } from "../../types/content.js";
4
+ import { ContentScriptBuilder, ContentScriptDefinition, ContentScriptIsolation } from "../../types/content/index.js";
5
5
  import { TransportType } from "../../types/transport.js";
6
- export default class<T extends TransportType> extends Builder {
7
- protected readonly definition: RelayUnresolvedDefinition<T>;
8
- protected readonly _transport: TransportBuilder<T>;
9
- protected _content?: ContentScriptBuilder;
10
- constructor(definition: RelayUnresolvedDefinition<T>);
11
- content(content: ContentScriptBuilder): this;
6
+ export default class Builder<T extends TransportType, Data = unknown, Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`> extends EntrypointBuilder {
7
+ protected readonly definition: RelayUnresolvedDefinition<T, Data, Isolation>;
8
+ private generation;
9
+ protected readonly _transport: TransportBuilder<T, Data, Isolation>;
10
+ protected readonly _content: ContentScriptBuilder;
11
+ constructor(definition: RelayUnresolvedDefinition<T, Data, Isolation>, contentBuilder: new (definition: ContentScriptDefinition<Data, NoInfer<Isolation>>) => ContentScriptBuilder);
12
12
  build(): Promise<void>;
13
13
  destroy(): Promise<void>;
14
14
  }
@@ -1,42 +1,51 @@
1
1
  import { resolveContentScriptIsolation } from "./../../shared/content/index.js";
2
2
  import TransportBuilder from "./TransportBuilder.js";
3
- import Builder from "../core/Builder.js";
4
- class Builder_default extends Builder {
5
- constructor(definition) {
3
+ import EntrypointBuilder from "../core/Builder.js";
4
+ class Builder extends EntrypointBuilder {
5
+ constructor(definition, contentBuilder) {
6
6
  super();
7
7
  this.definition = definition;
8
8
  this._transport = new TransportBuilder(definition);
9
+ const { init, main, name, method, allFrames, ...contentOptions } = definition;
10
+ this._content = new contentBuilder({
11
+ ...contentOptions,
12
+ ...allFrames === void 0 ? {} : { allFrames: allFrames !== false }
13
+ });
9
14
  }
10
15
  definition;
16
+ generation = 0;
11
17
  _transport;
12
18
  _content;
13
- content(content) {
14
- this._content = content;
15
- return this;
16
- }
17
19
  async build() {
18
- var _a;
19
- await this.destroy();
20
+ const destroying = this.destroy();
21
+ const generation = this.generation;
22
+ await destroying;
23
+ if (generation !== this.generation) {
24
+ return;
25
+ }
20
26
  await this._transport.build();
21
- await ((_a = this._content) == null ? void 0 : _a.build());
22
- const { main } = this.definition;
27
+ if (generation !== this.generation) {
28
+ return;
29
+ }
30
+ await this._content.build();
31
+ if (generation !== this.generation) {
32
+ return;
33
+ }
34
+ const { prepare, boundary, target, ...options } = this.definition;
35
+ const { main } = options;
23
36
  if (main) {
24
- if (!this._content) {
25
- throw new Error("Content script builder not set");
26
- }
27
37
  await main(this._transport.get(), this._content.getContext(), {
28
- ...this.definition,
38
+ ...options,
29
39
  isolation: resolveContentScriptIsolation(this.definition.isolation, "render" in this.definition)
30
40
  });
31
41
  }
32
42
  }
33
43
  async destroy() {
34
- var _a;
35
- await this._transport.destroy();
36
- await ((_a = this._content) == null ? void 0 : _a.destroy());
44
+ this.generation++;
45
+ await Promise.all([this._transport.destroy(), this._content.destroy()]);
37
46
  }
38
47
  }
39
48
  export {
40
- Builder_default as default
49
+ Builder as default
41
50
  };
42
51
  //# sourceMappingURL=Builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/entry/relay/Builder.ts"],"sourcesContent":["import {resolveContentScriptIsolation} from \"@shared/content\";\n\nimport TransportBuilder from \"./TransportBuilder\";\n\nimport Builder from \"../core/Builder\";\n\nimport {RelayUnresolvedDefinition} from \"@typing/relay\";\nimport {ContentScriptBuilder} from \"@typing/content\";\nimport {TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType> extends Builder {\n protected readonly _transport: TransportBuilder<T>;\n protected _content?: ContentScriptBuilder;\n\n constructor(protected readonly definition: RelayUnresolvedDefinition<T>) {\n super();\n\n this._transport = new TransportBuilder(definition);\n }\n\n public content(content: ContentScriptBuilder): this {\n this._content = content;\n\n return this;\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n await this._transport.build();\n await this._content?.build();\n\n const {main} = this.definition;\n\n if (main) {\n if (!this._content) {\n throw new Error(\"Content script builder not set\");\n }\n\n await main(this._transport.get(), this._content.getContext(), {\n ...this.definition,\n isolation: resolveContentScriptIsolation(this.definition.isolation, \"render\" in this.definition),\n });\n }\n }\n\n public async destroy(): Promise<void> {\n await this._transport.destroy();\n await this._content?.destroy();\n }\n}\n"],"mappings":"AAAA,SAAQ,qCAAoC;AAE5C,OAAO,sBAAsB;AAE7B,OAAO,aAAa;AAMpB,MAAO,wBAA+C,QAAQ;AAAA,EAI1D,YAA+B,YAA0C;AACrE,UAAM;AADqB;AAG3B,SAAK,aAAa,IAAI,iBAAiB,UAAU;AAAA,EACrD;AAAA,EAJ+B;AAAA,EAHZ;AAAA,EACT;AAAA,EAQH,QAAQ,SAAqC;AAChD,SAAK,WAAW;AAEhB,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,QAAuB;AA1BxC;AA2BQ,UAAM,KAAK,QAAQ;AAEnB,UAAM,KAAK,WAAW,MAAM;AAC5B,YAAM,UAAK,aAAL,mBAAe;AAErB,UAAM,EAAC,KAAI,IAAI,KAAK;AAEpB,QAAI,MAAM;AACN,UAAI,CAAC,KAAK,UAAU;AAChB,cAAM,IAAI,MAAM,gCAAgC;AAAA,MACpD;AAEA,YAAM,KAAK,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,WAAW,GAAG;AAAA,QAC1D,GAAG,KAAK;AAAA,QACR,WAAW,8BAA8B,KAAK,WAAW,WAAW,YAAY,KAAK,UAAU;AAAA,MACnG,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAa,UAAyB;AA9C1C;AA+CQ,UAAM,KAAK,WAAW,QAAQ;AAC9B,YAAM,UAAK,aAAL,mBAAe;AAAA,EACzB;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/entry/relay/Builder.ts"],"sourcesContent":["import {resolveContentScriptIsolation} from \"@shared/content\";\n\nimport TransportBuilder from \"./TransportBuilder\";\n\nimport EntrypointBuilder from \"../core/Builder\";\n\nimport {RelayUnresolvedDefinition} from \"@typing/relay\";\nimport {ContentScriptBuilder, ContentScriptDefinition, ContentScriptIsolation} from \"@typing/content\";\nimport {TransportType} from \"@typing/transport\";\n\nexport default class Builder<\n T extends TransportType,\n Data = unknown,\n Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`,\n> extends EntrypointBuilder {\n private generation = 0;\n\n protected readonly _transport: TransportBuilder<T, Data, Isolation>;\n protected readonly _content: ContentScriptBuilder;\n\n constructor(\n protected readonly definition: RelayUnresolvedDefinition<T, Data, Isolation>,\n contentBuilder: new (definition: ContentScriptDefinition<Data, NoInfer<Isolation>>) => ContentScriptBuilder\n ) {\n super();\n\n this._transport = new TransportBuilder(definition);\n\n const {init, main, name, method, allFrames, ...contentOptions} = definition;\n\n this._content = new contentBuilder({\n ...contentOptions,\n ...(allFrames === undefined ? {} : {allFrames: allFrames !== false}),\n } as ContentScriptDefinition<Data, Isolation>);\n }\n\n public async build(): Promise<void> {\n const destroying = this.destroy();\n const generation = this.generation;\n await destroying;\n\n if (generation !== this.generation) {\n return;\n }\n\n await this._transport.build();\n\n if (generation !== this.generation) {\n return;\n }\n\n await this._content.build();\n\n if (generation !== this.generation) {\n return;\n }\n\n const {prepare, boundary, target, ...options} = this.definition;\n const {main} = options;\n\n if (main) {\n await main(this._transport.get(), this._content.getContext(), {\n ...options,\n isolation: resolveContentScriptIsolation(this.definition.isolation, \"render\" in this.definition),\n });\n }\n }\n\n public async destroy(): Promise<void> {\n this.generation++;\n // Invalidate pending content work immediately; transport cleanup starts first.\n await Promise.all([this._transport.destroy(), this._content.destroy()]);\n }\n}\n"],"mappings":"AAAA,SAAQ,qCAAoC;AAE5C,OAAO,sBAAsB;AAE7B,OAAO,uBAAuB;AAM9B,MAAO,gBAIG,kBAAkB;AAAA,EAMxB,YACuB,YACnB,gBACF;AACE,UAAM;AAHa;AAKnB,SAAK,aAAa,IAAI,iBAAiB,UAAU;AAEjD,UAAM,EAAC,MAAM,MAAM,MAAM,QAAQ,WAAW,GAAG,eAAc,IAAI;AAEjE,SAAK,WAAW,IAAI,eAAe;AAAA,MAC/B,GAAG;AAAA,MACH,GAAI,cAAc,SAAY,CAAC,IAAI,EAAC,WAAW,cAAc,MAAK;AAAA,IACtE,CAA6C;AAAA,EACjD;AAAA,EAbuB;AAAA,EANf,aAAa;AAAA,EAEF;AAAA,EACA;AAAA,EAkBnB,MAAa,QAAuB;AAChC,UAAM,aAAa,KAAK,QAAQ;AAChC,UAAM,aAAa,KAAK;AACxB,UAAM;AAEN,QAAI,eAAe,KAAK,YAAY;AAChC;AAAA,IACJ;AAEA,UAAM,KAAK,WAAW,MAAM;AAE5B,QAAI,eAAe,KAAK,YAAY;AAChC;AAAA,IACJ;AAEA,UAAM,KAAK,SAAS,MAAM;AAE1B,QAAI,eAAe,KAAK,YAAY;AAChC;AAAA,IACJ;AAEA,UAAM,EAAC,SAAS,UAAU,QAAQ,GAAG,QAAO,IAAI,KAAK;AACrD,UAAM,EAAC,KAAI,IAAI;AAEf,QAAI,MAAM;AACN,YAAM,KAAK,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,WAAW,GAAG;AAAA,QAC1D,GAAG;AAAA,QACH,WAAW,8BAA8B,KAAK,WAAW,WAAW,YAAY,KAAK,UAAU;AAAA,MACnG,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAa,UAAyB;AAClC,SAAK;AAEL,UAAM,QAAQ,IAAI,CAAC,KAAK,WAAW,QAAQ,GAAG,KAAK,SAAS,QAAQ,CAAC,CAAC;AAAA,EAC1E;AACJ;","names":[]}
@@ -2,8 +2,9 @@ import AbstractBuilder from "../transport/AbstractBuilder.js";
2
2
  import { RegisterRelay } from "../../relay/providers/index.js";
3
3
  import { RelayOptions, RelayUnresolvedDefinition, RelayMethod } from "../../types/relay.js";
4
4
  import { TransportName, TransportType } from "../../types/transport.js";
5
- export default class<T extends TransportType = TransportType> extends AbstractBuilder<RelayOptions, T> {
5
+ import type { ContentScriptIsolation } from "../../types/content/index.js";
6
+ export default class TransportBuilder<T extends TransportType = TransportType, Data = unknown, Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`> extends AbstractBuilder<RelayOptions, T> {
6
7
  protected readonly method: RelayMethod;
7
- constructor(definition: RelayUnresolvedDefinition<T>);
8
+ constructor(definition: RelayUnresolvedDefinition<T, Data, Isolation>);
8
9
  protected transport(): RegisterRelay<TransportName, T, [RelayOptions]>;
9
10
  }
@@ -1,10 +1,10 @@
1
1
  import AbstractBuilder from "./../../entry/transport/AbstractBuilder.js";
2
2
  import { RegisterRelay } from "./../../relay/providers/index.js";
3
3
  import { RelayMethod } from "./../../types/relay.js";
4
- class TransportBuilder_default extends AbstractBuilder {
4
+ class TransportBuilder extends AbstractBuilder {
5
5
  method;
6
6
  constructor(definition) {
7
- const { main, method, ...options } = definition;
7
+ const { main, method, prepare, boundary, target, ...options } = definition;
8
8
  super(options);
9
9
  this.method = method || RelayMethod.Messaging;
10
10
  }
@@ -14,6 +14,6 @@ class TransportBuilder_default extends AbstractBuilder {
14
14
  }
15
15
  }
16
16
  export {
17
- TransportBuilder_default as default
17
+ TransportBuilder as default
18
18
  };
19
19
  //# sourceMappingURL=TransportBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/entry/relay/TransportBuilder.ts"],"sourcesContent":["import AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport {RegisterRelay} from \"@relay/providers\";\n\nimport {RelayOptions, RelayUnresolvedDefinition, RelayMethod} from \"@typing/relay\";\nimport {TransportName, TransportType} from \"@typing/transport\";\n\nexport default class<T extends TransportType = TransportType> extends AbstractBuilder<RelayOptions, T> {\n protected readonly method: RelayMethod;\n\n constructor(definition: RelayUnresolvedDefinition<T>) {\n const {main, method, ...options} = definition;\n\n super(options);\n\n this.method = method || RelayMethod.Messaging;\n }\n\n protected transport(): RegisterRelay<TransportName, T, [RelayOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterRelay(name, this.method, init);\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAE5B,SAAQ,qBAAoB;AAE5B,SAAiD,mBAAkB;AAGnE,MAAO,iCAA+D,gBAAiC;AAAA,EAChF;AAAA,EAEnB,YAAY,YAA0C;AAClD,UAAM,EAAC,MAAM,QAAQ,GAAG,QAAO,IAAI;AAEnC,UAAM,OAAO;AAEb,SAAK,SAAS,UAAU,YAAY;AAAA,EACxC;AAAA,EAEU,YAA6D;AACnE,UAAM,EAAC,MAAM,KAAI,IAAI,KAAK;AAE1B,WAAO,IAAI,cAAc,MAAM,KAAK,QAAQ,IAAI;AAAA,EACpD;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/entry/relay/TransportBuilder.ts"],"sourcesContent":["import AbstractBuilder from \"@entry/transport/AbstractBuilder\";\n\nimport {RegisterRelay} from \"@relay/providers\";\n\nimport {RelayOptions, RelayUnresolvedDefinition, RelayMethod} from \"@typing/relay\";\nimport {TransportName, TransportType} from \"@typing/transport\";\nimport type {ContentScriptIsolation} from \"@typing/content\";\n\nexport default class TransportBuilder<\n T extends TransportType = TransportType,\n Data = unknown,\n Isolation extends `${ContentScriptIsolation}` = `${ContentScriptIsolation}`,\n> extends AbstractBuilder<RelayOptions, T> {\n protected readonly method: RelayMethod;\n\n constructor(definition: RelayUnresolvedDefinition<T, Data, Isolation>) {\n const {main, method, prepare, boundary, target, ...options} = definition;\n\n super(options);\n\n this.method = method || RelayMethod.Messaging;\n }\n\n protected transport(): RegisterRelay<TransportName, T, [RelayOptions]> {\n const {name, init} = this.definition;\n\n return new RegisterRelay(name, this.method, init);\n }\n}\n"],"mappings":"AAAA,OAAO,qBAAqB;AAE5B,SAAQ,qBAAoB;AAE5B,SAAiD,mBAAkB;AAInE,MAAO,yBAIG,gBAAiC;AAAA,EACpB;AAAA,EAEnB,YAAY,YAA2D;AACnE,UAAM,EAAC,MAAM,QAAQ,SAAS,UAAU,QAAQ,GAAG,QAAO,IAAI;AAE9D,UAAM,OAAO;AAEb,SAAK,SAAS,UAAU,YAAY;AAAA,EACxC;AAAA,EAEU,YAA6D;AACnE,UAAM,EAAC,MAAM,KAAI,IAAI,KAAK;AAE1B,WAAO,IAAI,cAAc,MAAM,KAAK,QAAQ,IAAI;AAAA,EACpD;AACJ;","names":[]}