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,5 +1,5 @@
1
1
  import AbstractMarker from "./AbstractMarker.js";
2
- class WeakMarker_default extends AbstractMarker {
2
+ class WeakMarker extends AbstractMarker {
3
3
  map = /* @__PURE__ */ new WeakMap();
4
4
  constructor(anchor) {
5
5
  super(anchor);
@@ -27,6 +27,6 @@ class WeakMarker_default extends AbstractMarker {
27
27
  }
28
28
  }
29
29
  export {
30
- WeakMarker_default as default
30
+ WeakMarker as default
31
31
  };
32
32
  //# sourceMappingURL=WeakMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/markers/WeakMarker.ts"],"sourcesContent":["import AbstractMarker from \"./AbstractMarker\";\n\nimport {ContentScriptAnchor, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default class WeakMarker extends AbstractMarker {\n private readonly map: WeakMap<Element, ContentScriptMarkerValue> = new WeakMap();\n\n constructor(anchor?: ContentScriptAnchor) {\n super(anchor);\n }\n\n public mark(element: Element, value: ContentScriptMarkerValue): boolean {\n this.map.set(element, value);\n\n return true;\n }\n\n public unmark(element: Element): boolean {\n if (this.map.has(element)) {\n this.map.delete(element);\n\n return true;\n }\n\n return false;\n }\n\n public value(element: Element): ContentScriptMarkerValue | undefined {\n return this.map.get(element);\n }\n\n public isMarked(element: Element): boolean {\n return this.map.has(element);\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n const elements = super.queryAnchor(anchor, marked);\n\n return elements.filter(element => this.isMarked(element) === marked);\n }\n}\n"],"mappings":"AAAA,OAAO,oBAAoB;AAI3B,MAAO,mBAAiC,eAAe;AAAA,EAClC,MAAkD,oBAAI,QAAQ;AAAA,EAE/E,YAAY,QAA8B;AACtC,UAAM,MAAM;AAAA,EAChB;AAAA,EAEO,KAAK,SAAkB,OAA0C;AACpE,SAAK,IAAI,IAAI,SAAS,KAAK;AAE3B,WAAO;AAAA,EACX;AAAA,EAEO,OAAO,SAA2B;AACrC,QAAI,KAAK,IAAI,IAAI,OAAO,GAAG;AACvB,WAAK,IAAI,OAAO,OAAO;AAEvB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,SAAwD;AACjE,WAAO,KAAK,IAAI,IAAI,OAAO;AAAA,EAC/B;AAAA,EAEO,SAAS,SAA2B;AACvC,WAAO,KAAK,IAAI,IAAI,OAAO;AAAA,EAC/B;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,UAAM,WAAW,MAAM,YAAY,QAAQ,MAAM;AAEjD,WAAO,SAAS,OAAO,aAAW,KAAK,SAAS,OAAO,MAAM,MAAM;AAAA,EACvE;AACJ;","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/markers/index.ts"],"sourcesContent":["export {default as AbstractMarker} from \"./AbstractMarker\";\nexport {default as AttributeMarker} from \"./AttributeMarker\";\nexport {default as WeakMarker} from \"./WeakMarker\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,gBAAiC;AACzC,SAAmB,WAAXA,gBAA4B;","names":["default"]}
@@ -1,11 +1,13 @@
1
- import { ContentScriptEventEmitter, ContentScriptNode } from "../../../../types/content.js";
2
- export default class implements ContentScriptNode {
1
+ import { ContentScriptBoundary, ContentScriptEventEmitter, ContentScriptNode } from "../../../../types/content/index.js";
2
+ export default class EventNode implements ContentScriptNode {
3
3
  protected readonly node: ContentScriptNode;
4
4
  protected readonly emitter: ContentScriptEventEmitter;
5
+ private generation;
5
6
  constructor(node: ContentScriptNode, emitter: ContentScriptEventEmitter);
6
7
  get anchor(): Element;
7
8
  get container(): Element | undefined;
8
9
  get target(): Element | undefined;
10
+ get boundary(): ContentScriptBoundary;
9
11
  mount(): boolean;
10
12
  unmount(): boolean;
11
13
  }
@@ -1,10 +1,11 @@
1
- class EventNode_default {
1
+ class EventNode {
2
2
  constructor(node, emitter) {
3
3
  this.node = node;
4
4
  this.emitter = emitter;
5
5
  }
6
6
  node;
7
7
  emitter;
8
+ generation = 0;
8
9
  get anchor() {
9
10
  return this.node.anchor;
10
11
  }
@@ -14,14 +15,22 @@ class EventNode_default {
14
15
  get target() {
15
16
  return this.node.target;
16
17
  }
18
+ get boundary() {
19
+ return this.node.boundary;
20
+ }
17
21
  mount() {
22
+ const generation = this.generation;
18
23
  const result = this.node.mount();
24
+ if (generation !== this.generation) {
25
+ return false;
26
+ }
19
27
  if (result === true) {
20
28
  this.emitter.emitMount(this.node);
21
29
  }
22
30
  return !!result;
23
31
  }
24
32
  unmount() {
33
+ this.generation++;
25
34
  const result = this.node.unmount();
26
35
  if (result === true) {
27
36
  this.emitter.emitUnmount(this.node);
@@ -30,6 +39,6 @@ class EventNode_default {
30
39
  }
31
40
  }
32
41
  export {
33
- EventNode_default as default
42
+ EventNode as default
34
43
  };
35
44
  //# sourceMappingURL=EventNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/EventNode.ts"],"sourcesContent":["import {ContentScriptBoundary, ContentScriptEventEmitter, ContentScriptNode} from \"@typing/content\";\n\nexport default class EventNode implements ContentScriptNode {\n private generation = 0;\n\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly emitter: ContentScriptEventEmitter\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.node.target;\n }\n\n public get boundary(): ContentScriptBoundary {\n return this.node.boundary;\n }\n\n public mount(): boolean {\n const generation = this.generation;\n const result = this.node.mount();\n\n if (generation !== this.generation) {\n return false;\n }\n\n if (result === true) {\n this.emitter.emitMount(this.node);\n }\n\n return !!result;\n }\n\n public unmount(): boolean {\n this.generation++;\n\n const result = this.node.unmount();\n\n if (result === true) {\n this.emitter.emitUnmount(this.node);\n }\n\n return !!result;\n }\n}\n"],"mappings":"AAEA,MAAO,UAAqD;AAAA,EAGxD,YACuB,MACA,SACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAJf,aAAa;AAAA,EAOrB,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,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,WAAkC;AACzC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAiB;AACpB,UAAM,aAAa,KAAK;AACxB,UAAM,SAAS,KAAK,KAAK,MAAM;AAE/B,QAAI,eAAe,KAAK,YAAY;AAChC,aAAO;AAAA,IACX;AAEA,QAAI,WAAW,MAAM;AACjB,WAAK,QAAQ,UAAU,KAAK,IAAI;AAAA,IACpC;AAEA,WAAO,CAAC,CAAC;AAAA,EACb;AAAA,EAEO,UAAmB;AACtB,SAAK;AAEL,UAAM,SAAS,KAAK,KAAK,QAAQ;AAEjC,QAAI,WAAW,MAAM;AACjB,WAAK,QAAQ,YAAY,KAAK,IAAI;AAAA,IACtC;AAEA,WAAO,CAAC,CAAC;AAAA,EACb;AACJ;","names":[]}
@@ -1,23 +1,29 @@
1
- import type { ContentScriptIsolationFrameOptions, ContentScriptNode } from "../../../../types/content.js";
2
- /** Owns the child document, but never moves the content script's JavaScript into it. */
3
- export default class FrameNode implements ContentScriptNode {
1
+ import type { ContentScriptIsolationFrameOptions, ContentScriptNode } from "../../../../types/content/index.js";
2
+ import type IsolationSetup from "../IsolationSetup.js";
3
+ /** Owns the child document but never moves the content script's JavaScript into it. */
4
+ export default class FrameNode<Data = unknown> implements ContentScriptNode {
4
5
  private readonly node;
5
6
  private readonly options;
6
7
  private readonly recover;
8
+ private readonly isolation;
7
9
  private frame?;
8
10
  private head?;
9
11
  private _target?;
10
12
  private runtime?;
11
13
  private generation;
12
14
  private queued;
13
- constructor(node: ContentScriptNode, options: ContentScriptIsolationFrameOptions | undefined, recover: () => void);
15
+ private cleanupBoundary?;
16
+ private mounting;
17
+ private unmounting;
18
+ constructor(node: ContentScriptNode, options: ContentScriptIsolationFrameOptions | undefined, recover: () => void, isolation: IsolationSetup<Data, "iframe">);
14
19
  get anchor(): Element;
15
20
  get container(): Element | undefined;
16
21
  get target(): Element | undefined;
22
+ get boundary(): HTMLIFrameElement | undefined;
17
23
  private readonly onLoad;
18
24
  private intact;
19
25
  mount(): boolean;
26
+ private mountNode;
20
27
  unmount(): boolean;
21
28
  private releaseStyles;
22
- private size;
23
29
  }
@@ -0,0 +1,187 @@
1
+ import { getPageUrl } from "./../../../../main/page.js";
2
+ import { ContentScriptIsolation } from "./../../../../types/content/index.js";
3
+ import { getContentScriptStylesRuntime } from "./isolated-styles.js";
4
+ import { isContentScriptFrameNavigation } from "./../../../../shared/content/index.js";
5
+ class FrameNode {
6
+ constructor(node, options = { type: ContentScriptIsolation.Iframe }, recover, isolation) {
7
+ this.node = node;
8
+ this.options = options;
9
+ this.recover = recover;
10
+ this.isolation = isolation;
11
+ }
12
+ node;
13
+ options;
14
+ recover;
15
+ isolation;
16
+ frame;
17
+ head;
18
+ _target;
19
+ runtime;
20
+ generation = 0;
21
+ queued = false;
22
+ cleanupBoundary;
23
+ mounting = false;
24
+ unmounting = false;
25
+ get anchor() {
26
+ return this.node.anchor;
27
+ }
28
+ get container() {
29
+ return this.node.container;
30
+ }
31
+ get target() {
32
+ return this._target;
33
+ }
34
+ get boundary() {
35
+ return this.frame;
36
+ }
37
+ onLoad = () => {
38
+ if (!this.frame || this.queued || this.intact()) {
39
+ return;
40
+ }
41
+ const generation = this.generation;
42
+ this.queued = true;
43
+ queueMicrotask(() => {
44
+ var _a;
45
+ if (generation !== this.generation) {
46
+ return;
47
+ }
48
+ this.queued = false;
49
+ if (((_a = this.container) == null ? void 0 : _a.isConnected) && this.anchor.isConnected) {
50
+ try {
51
+ this.recover();
52
+ } catch (error) {
53
+ console.error("Restoring content iframe failed", error);
54
+ }
55
+ }
56
+ });
57
+ };
58
+ intact() {
59
+ var _a, _b;
60
+ const doc = (_a = this.frame) == null ? void 0 : _a.contentDocument;
61
+ return !!doc && ((_b = this._target) == null ? void 0 : _b.ownerDocument) === doc && this._target.isConnected && this.head === doc.head;
62
+ }
63
+ mount() {
64
+ if (this.mounting || this.unmounting) {
65
+ return false;
66
+ }
67
+ this.mounting = true;
68
+ try {
69
+ return this.mountNode();
70
+ } finally {
71
+ this.mounting = false;
72
+ }
73
+ }
74
+ mountNode() {
75
+ const mounted = !!this.node.mount();
76
+ if (!this.container) {
77
+ return mounted;
78
+ }
79
+ if (!isContentScriptFrameNavigation(this.options) && !this.container.isConnected) {
80
+ throw new Error(
81
+ "Content iframe container is not connected to the document; mount must attach the container before returning"
82
+ );
83
+ }
84
+ let created = false;
85
+ if (!this.frame) {
86
+ const frame2 = this.container.ownerDocument.createElement("iframe");
87
+ this.frame = frame2;
88
+ const generation2 = this.generation;
89
+ try {
90
+ const cleanup = this.isolation.setup(frame2);
91
+ if (generation2 !== this.generation || this.frame !== frame2) {
92
+ cleanup == null ? void 0 : cleanup();
93
+ return false;
94
+ }
95
+ this.cleanupBoundary = cleanup || void 0;
96
+ if (isContentScriptFrameNavigation(this.options)) {
97
+ frame2.src = this.options.page !== void 0 ? getPageUrl(this.options.page) : this.options.src;
98
+ } else {
99
+ frame2.addEventListener("load", this.onLoad);
100
+ }
101
+ this.container.append(frame2);
102
+ if (generation2 !== this.generation || this.frame !== frame2) {
103
+ return false;
104
+ }
105
+ created = true;
106
+ } catch (error) {
107
+ if (generation2 === this.generation && this.frame === frame2) {
108
+ this.unmount();
109
+ }
110
+ throw error;
111
+ }
112
+ }
113
+ if (isContentScriptFrameNavigation(this.options) || this.intact()) {
114
+ return mounted || created;
115
+ }
116
+ const doc = this.frame.contentDocument;
117
+ if (!(doc == null ? void 0 : doc.head) || !doc.body) {
118
+ throw new Error(
119
+ "Content iframe has no accessible document; only an empty same-origin iframe can render UI"
120
+ );
121
+ }
122
+ const recovering = this.head !== void 0;
123
+ this.releaseStyles();
124
+ const frame = this.frame;
125
+ const generation = this.generation;
126
+ try {
127
+ const target = this.isolation.createTarget(frame, doc);
128
+ if (generation !== this.generation || this.frame !== frame || frame.contentDocument !== doc) {
129
+ return false;
130
+ }
131
+ doc.body.append(target);
132
+ this._target = target;
133
+ this.head = doc.head;
134
+ this.runtime = getContentScriptStylesRuntime();
135
+ this.runtime.add(doc.head, null, recovering);
136
+ } catch (error) {
137
+ if (generation === this.generation && this.frame === frame) {
138
+ this.unmount();
139
+ }
140
+ throw error;
141
+ }
142
+ return true;
143
+ }
144
+ unmount() {
145
+ var _a;
146
+ if (this.unmounting) {
147
+ return false;
148
+ }
149
+ this.unmounting = true;
150
+ this.generation++;
151
+ this.queued = false;
152
+ this._target = void 0;
153
+ const cleanup = this.cleanupBoundary;
154
+ this.cleanupBoundary = void 0;
155
+ let removed = false;
156
+ try {
157
+ try {
158
+ cleanup == null ? void 0 : cleanup();
159
+ } finally {
160
+ try {
161
+ (_a = this.frame) == null ? void 0 : _a.removeEventListener("load", this.onLoad);
162
+ this.releaseStyles();
163
+ } finally {
164
+ this.frame = void 0;
165
+ removed = !!this.node.unmount();
166
+ }
167
+ }
168
+ return removed;
169
+ } finally {
170
+ this.unmounting = false;
171
+ }
172
+ }
173
+ releaseStyles() {
174
+ const head = this.head;
175
+ const runtime = this.runtime;
176
+ this.head = void 0;
177
+ this.runtime = void 0;
178
+ this._target = void 0;
179
+ if (head) {
180
+ runtime == null ? void 0 : runtime.delete(head);
181
+ }
182
+ }
183
+ }
184
+ export {
185
+ FrameNode as default
186
+ };
187
+ //# sourceMappingURL=FrameNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/FrameNode.ts"],"sourcesContent":["import {getPageUrl} from \"@main/page\";\n\nimport type {\n ContentScriptBoundaryCleanup,\n ContentScriptIsolationFrameOptions,\n ContentScriptNode,\n ContentScriptStylesRuntime,\n} from \"@typing/content\";\nimport {ContentScriptIsolation} from \"@typing/content\";\n\nimport type IsolationSetup from \"../IsolationSetup\";\n\nimport {getContentScriptStylesRuntime} from \"./isolated-styles\";\n\nimport {isContentScriptFrameNavigation} from \"@shared/content\";\n\n/** Owns the child document but never moves the content script's JavaScript into it. */\nexport default class FrameNode<Data = unknown> implements ContentScriptNode {\n private frame?: HTMLIFrameElement;\n private head?: HTMLHeadElement;\n private _target?: Element;\n\n private runtime?: ContentScriptStylesRuntime;\n\n private generation = 0;\n private queued = false;\n\n private cleanupBoundary?: ContentScriptBoundaryCleanup;\n\n private mounting = false;\n private unmounting = false;\n\n public constructor(\n private readonly node: ContentScriptNode,\n private readonly options: ContentScriptIsolationFrameOptions = {type: ContentScriptIsolation.Iframe},\n private readonly recover: () => void,\n private readonly isolation: IsolationSetup<Data, \"iframe\">\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(): HTMLIFrameElement | undefined {\n return this.frame;\n }\n\n private readonly onLoad = (): void => {\n if (!this.frame || this.queued || this.intact()) {\n return;\n }\n\n const generation = this.generation;\n\n this.queued = true;\n\n queueMicrotask(() => {\n if (generation !== this.generation) {\n return;\n }\n\n this.queued = false;\n\n if (this.container?.isConnected && this.anchor.isConnected) {\n try {\n this.recover();\n } catch (error) {\n console.error(\"Restoring content iframe failed\", error);\n }\n }\n });\n };\n\n private intact(): boolean {\n const doc = this.frame?.contentDocument;\n\n return !!doc && this._target?.ownerDocument === doc && this._target.isConnected && this.head === doc.head;\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) {\n return mounted;\n }\n\n if (!isContentScriptFrameNavigation(this.options) && !this.container.isConnected) {\n throw new Error(\n \"Content iframe container is not connected to the document; mount must attach the container before returning\"\n );\n }\n\n let created = false;\n\n if (!this.frame) {\n const frame = this.container.ownerDocument.createElement(\"iframe\");\n\n this.frame = frame;\n const generation = this.generation;\n\n try {\n const cleanup = this.isolation.setup(frame);\n\n if (generation !== this.generation || this.frame !== frame) {\n cleanup?.();\n\n return false;\n }\n\n this.cleanupBoundary = cleanup || undefined;\n\n if (isContentScriptFrameNavigation(this.options)) {\n frame.src = this.options.page !== undefined ? getPageUrl(this.options.page) : this.options.src!;\n } else {\n frame.addEventListener(\"load\", this.onLoad);\n }\n\n this.container.append(frame);\n\n if (generation !== this.generation || this.frame !== frame) {\n return false;\n }\n\n created = true;\n } catch (error) {\n if (generation === this.generation && this.frame === frame) {\n this.unmount();\n }\n\n throw error;\n }\n }\n\n if (isContentScriptFrameNavigation(this.options) || this.intact()) {\n return mounted || created;\n }\n\n const doc = this.frame.contentDocument;\n\n if (!doc?.head || !doc.body) {\n throw new Error(\n \"Content iframe has no accessible document; only an empty same-origin iframe can render UI\"\n );\n }\n\n const recovering = this.head !== undefined;\n\n this.releaseStyles();\n\n const frame = this.frame;\n const generation = this.generation;\n\n try {\n const target = this.isolation.createTarget(frame, doc);\n\n if (generation !== this.generation || this.frame !== frame || frame.contentDocument !== doc) {\n return false;\n }\n\n doc.body.append(target);\n\n this._target = target;\n this.head = doc.head;\n this.runtime = getContentScriptStylesRuntime();\n this.runtime.add(doc.head, null, recovering);\n } catch (error) {\n if (generation === this.generation && this.frame === frame) {\n this.unmount();\n }\n\n throw error;\n }\n\n return true;\n }\n\n public unmount(): boolean {\n if (this.unmounting) {\n return false;\n }\n\n this.unmounting = true;\n this.generation++;\n this.queued = false;\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 this.frame?.removeEventListener(\"load\", this.onLoad);\n this.releaseStyles();\n } finally {\n this.frame = undefined;\n removed = !!this.node.unmount();\n }\n }\n\n return removed;\n } finally {\n this.unmounting = false;\n }\n }\n\n private releaseStyles(): void {\n const head = this.head;\n const runtime = this.runtime;\n\n this.head = undefined;\n this.runtime = undefined;\n this._target = undefined;\n\n if (head) {\n runtime?.delete(head);\n }\n }\n}\n"],"mappings":"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","names":["frame","generation"]}
@@ -1,11 +1,12 @@
1
- import { ContentScriptMarkerContract, ContentScriptNode } from "../../../../types/content.js";
2
- export default class implements ContentScriptNode {
1
+ import { ContentScriptBoundary, ContentScriptMarkerContract, ContentScriptNode } from "../../../../types/content/index.js";
2
+ export default class MarkerNode implements ContentScriptNode {
3
3
  protected readonly node: ContentScriptNode;
4
4
  protected readonly marker: ContentScriptMarkerContract;
5
5
  constructor(node: ContentScriptNode, marker: ContentScriptMarkerContract);
6
6
  get anchor(): Element;
7
7
  get container(): Element | undefined;
8
8
  get target(): Element | undefined;
9
+ get boundary(): ContentScriptBoundary;
9
10
  mount(): boolean | undefined | void;
10
11
  unmount(): boolean | undefined | void;
11
12
  }
@@ -1,4 +1,4 @@
1
- class MarkerNode_default {
1
+ class MarkerNode {
2
2
  constructor(node, marker) {
3
3
  this.node = node;
4
4
  this.marker = marker;
@@ -14,6 +14,9 @@ class MarkerNode_default {
14
14
  get target() {
15
15
  return this.node.target;
16
16
  }
17
+ get boundary() {
18
+ return this.node.boundary;
19
+ }
17
20
  mount() {
18
21
  this.marker.mount(this.anchor);
19
22
  return this.node.mount();
@@ -24,6 +27,6 @@ class MarkerNode_default {
24
27
  }
25
28
  }
26
29
  export {
27
- MarkerNode_default as default
30
+ MarkerNode as default
28
31
  };
29
32
  //# sourceMappingURL=MarkerNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/MarkerNode.ts"],"sourcesContent":["import {ContentScriptBoundary, ContentScriptMarkerContract, ContentScriptNode} from \"@typing/content\";\n\nexport default class MarkerNode implements ContentScriptNode {\n constructor(\n protected readonly node: ContentScriptNode,\n protected readonly marker: ContentScriptMarkerContract\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.node.target;\n }\n\n public get boundary(): ContentScriptBoundary {\n return this.node.boundary;\n }\n\n public mount(): boolean | undefined | void {\n this.marker.mount(this.anchor);\n\n return this.node.mount();\n }\n\n public unmount(): boolean | undefined | void {\n this.marker.unmount(this.anchor);\n\n return this.node.unmount();\n }\n}\n"],"mappings":"AAEA,MAAO,WAAsD;AAAA,EACzD,YACuB,MACA,QACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,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,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,WAAkC;AACzC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAoC;AACvC,SAAK,OAAO,MAAM,KAAK,MAAM;AAE7B,WAAO,KAAK,KAAK,MAAM;AAAA,EAC3B;AAAA,EAEO,UAAsC;AACzC,SAAK,OAAO,QAAQ,KAAK,MAAM;AAE/B,WAAO,KAAK,KAAK,QAAQ;AAAA,EAC7B;AACJ;","names":[]}
@@ -1,5 +1,5 @@
1
- import { ContentScriptMountFunction, ContentScriptNode } from "../../../../types/content.js";
2
- export default class implements ContentScriptNode {
1
+ import { ContentScriptBoundary, ContentScriptMountFunction, ContentScriptNode } from "../../../../types/content/index.js";
2
+ export default class MountNode implements ContentScriptNode {
3
3
  protected node: ContentScriptNode;
4
4
  protected mounter?: ContentScriptMountFunction | undefined;
5
5
  private unmounting?;
@@ -7,6 +7,7 @@ export default class implements ContentScriptNode {
7
7
  get anchor(): Element;
8
8
  get container(): Element | undefined;
9
9
  get target(): Element | undefined;
10
+ get boundary(): ContentScriptBoundary;
10
11
  mount(): boolean;
11
12
  unmount(): boolean;
12
13
  }
@@ -1,4 +1,4 @@
1
- class MountNode_default {
1
+ class MountNode {
2
2
  constructor(node, mounter) {
3
3
  this.node = node;
4
4
  this.mounter = mounter;
@@ -15,6 +15,9 @@ class MountNode_default {
15
15
  get target() {
16
16
  return this.node.target;
17
17
  }
18
+ get boundary() {
19
+ return this.node.boundary;
20
+ }
18
21
  mount() {
19
22
  this.node.mount();
20
23
  if (!this.container || this.container.isConnected) {
@@ -37,6 +40,6 @@ class MountNode_default {
37
40
  }
38
41
  }
39
42
  export {
40
- MountNode_default as default
43
+ MountNode as default
41
44
  };
42
45
  //# sourceMappingURL=MountNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/MountNode.ts"],"sourcesContent":["import {ContentScriptBoundary, ContentScriptMountFunction, ContentScriptNode} from \"@typing/content\";\n\nexport default class MountNode implements ContentScriptNode {\n private unmounting?: () => void;\n\n constructor(\n protected node: ContentScriptNode,\n protected mounter?: ContentScriptMountFunction\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.node.target;\n }\n\n public get boundary(): ContentScriptBoundary {\n return this.node.boundary;\n }\n\n public mount(): boolean {\n this.node.mount();\n\n if (!this.container || this.container.isConnected) {\n return false;\n }\n\n if (this.mounter) {\n const unmounting = this.mounter(this.anchor, this.container);\n\n if (unmounting) {\n this.unmounting = unmounting;\n }\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n this.unmounting?.();\n this.unmounting = undefined;\n\n return !!this.node.unmount();\n }\n}\n"],"mappings":"AAEA,MAAO,UAAqD;AAAA,EAGxD,YACc,MACA,SACZ;AAFY;AACA;AAAA,EACX;AAAA,EAFW;AAAA,EACA;AAAA,EAJN;AAAA,EAOR,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,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,WAAkC;AACzC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAEO,QAAiB;AACpB,SAAK,KAAK,MAAM;AAEhB,QAAI,CAAC,KAAK,aAAa,KAAK,UAAU,aAAa;AAC/C,aAAO;AAAA,IACX;AAEA,QAAI,KAAK,SAAS;AACd,YAAM,aAAa,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS;AAE3D,UAAI,YAAY;AACZ,aAAK,aAAa;AAAA,MACtB;AAEA,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AA9C9B;AA+CQ,eAAK,eAAL;AACA,SAAK,aAAa;AAElB,WAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,EAC/B;AACJ;","names":[]}
@@ -1,5 +1,5 @@
1
- import { ContentScriptNode } from "../../../../types/content.js";
2
- export default class implements ContentScriptNode {
1
+ import { ContentScriptNode } from "../../../../types/content/index.js";
2
+ export default class Node implements ContentScriptNode {
3
3
  readonly anchor: Element;
4
4
  container?: Element | undefined;
5
5
  private readonly _container?;
@@ -1,4 +1,4 @@
1
- class Node_default {
1
+ class Node {
2
2
  constructor(anchor, container) {
3
3
  this.anchor = anchor;
4
4
  this.container = container;
@@ -29,6 +29,6 @@ class Node_default {
29
29
  }
30
30
  }
31
31
  export {
32
- Node_default as default
32
+ Node as default
33
33
  };
34
34
  //# sourceMappingURL=Node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/Node.ts"],"sourcesContent":["import {ContentScriptNode} from \"@typing/content\";\n\nexport default class Node implements ContentScriptNode {\n private readonly _container?: Element;\n\n constructor(\n public readonly anchor: Element,\n public container?: Element\n ) {\n if (this.container) {\n this._container = this.container.cloneNode(false) as Element;\n }\n }\n\n public get target(): Element | undefined {\n return this.container;\n }\n\n public mount(): boolean {\n if (!this.container && this._container) {\n this.container = this._container.cloneNode(false) as Element;\n\n return true;\n }\n\n return false;\n }\n\n public unmount(): boolean {\n if (this.container) {\n this.container.remove();\n this.container = undefined;\n\n return true;\n }\n\n return false;\n }\n}\n"],"mappings":"AAEA,MAAO,KAAgD;AAAA,EAGnD,YACoB,QACT,WACT;AAFkB;AACT;AAEP,QAAI,KAAK,WAAW;AAChB,WAAK,aAAa,KAAK,UAAU,UAAU,KAAK;AAAA,IACpD;AAAA,EACJ;AAAA,EANoB;AAAA,EACT;AAAA,EAJM;AAAA,EAWjB,IAAW,SAA8B;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,QAAiB;AACpB,QAAI,CAAC,KAAK,aAAa,KAAK,YAAY;AACpC,WAAK,YAAY,KAAK,WAAW,UAAU,KAAK;AAEhD,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AACtB,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,OAAO;AACtB,WAAK,YAAY;AAEjB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -0,0 +1,19 @@
1
+ import type { ContentScriptBoundary, ContentScriptNode, ContentScriptProps, ContentScriptRenderHandler, ContentScriptRenderValue } from "../../../../types/content/index.js";
2
+ /** Runs the adapter only after mounting DOM, and invalidates work when its target is replaced. */
3
+ export default abstract class RenderNode<Data = unknown> implements ContentScriptNode {
4
+ protected readonly node: ContentScriptNode;
5
+ private readonly resolve;
6
+ private readonly props;
7
+ private generation;
8
+ private renderedTarget?;
9
+ private empty;
10
+ constructor(node: ContentScriptNode, resolve: ContentScriptRenderHandler<Data>, props: () => ContentScriptProps<Data>);
11
+ get anchor(): Element;
12
+ get container(): Element | undefined;
13
+ get target(): Element | undefined;
14
+ get boundary(): ContentScriptBoundary;
15
+ protected abstract render(value: ContentScriptRenderValue<Data> | undefined, target: Element): boolean;
16
+ protected abstract clear(): void;
17
+ mount(): boolean;
18
+ unmount(): boolean;
19
+ }
@@ -0,0 +1,75 @@
1
+ class RenderNode {
2
+ constructor(node, resolve, props) {
3
+ this.node = node;
4
+ this.resolve = resolve;
5
+ this.props = props;
6
+ }
7
+ node;
8
+ resolve;
9
+ props;
10
+ generation = 0;
11
+ renderedTarget;
12
+ empty = false;
13
+ get anchor() {
14
+ return this.node.anchor;
15
+ }
16
+ get container() {
17
+ return this.node.container;
18
+ }
19
+ get target() {
20
+ return this.node.target;
21
+ }
22
+ get boundary() {
23
+ return this.node.boundary;
24
+ }
25
+ mount() {
26
+ var _a;
27
+ if (this.empty || !this.anchor.isConnected) {
28
+ return false;
29
+ }
30
+ this.node.mount();
31
+ const target = this.target;
32
+ if (!target) {
33
+ return false;
34
+ }
35
+ if (target === this.renderedTarget) {
36
+ return false;
37
+ }
38
+ this.clear();
39
+ const generation = ++this.generation;
40
+ this.renderedTarget = target;
41
+ const replacedAnchor = !this.anchor.isConnected;
42
+ try {
43
+ const value = this.resolve(this.props());
44
+ if (generation !== this.generation || target !== this.target) {
45
+ return false;
46
+ }
47
+ if (!this.anchor.isConnected && !(replacedAnchor && ((_a = this.container) == null ? void 0 : _a.isConnected))) {
48
+ this.unmount();
49
+ return false;
50
+ }
51
+ if (!this.render(value, target)) {
52
+ this.empty = true;
53
+ this.node.unmount();
54
+ return false;
55
+ }
56
+ return true;
57
+ } catch (error) {
58
+ if (generation !== this.generation) {
59
+ return false;
60
+ }
61
+ this.unmount();
62
+ throw error;
63
+ }
64
+ }
65
+ unmount() {
66
+ this.generation++;
67
+ this.renderedTarget = void 0;
68
+ this.clear();
69
+ return !!this.node.unmount();
70
+ }
71
+ }
72
+ export {
73
+ RenderNode as default
74
+ };
75
+ //# sourceMappingURL=RenderNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/entry/content/lifecycle/nodes/RenderNode.ts"],"sourcesContent":["import type {\n ContentScriptBoundary,\n ContentScriptNode,\n ContentScriptProps,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n} from \"@typing/content\";\n\n/** Runs the adapter only after mounting DOM, and invalidates work when its target is replaced. */\nexport default abstract class RenderNode<Data = unknown> implements ContentScriptNode {\n private generation = 0;\n private renderedTarget?: Element;\n private empty = false;\n\n constructor(\n protected readonly node: ContentScriptNode,\n private readonly resolve: ContentScriptRenderHandler<Data>,\n private readonly props: () => ContentScriptProps<Data>\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.node.target;\n }\n\n public get boundary(): ContentScriptBoundary {\n return this.node.boundary;\n }\n\n protected abstract render(value: ContentScriptRenderValue<Data> | undefined, target: Element): boolean;\n\n protected abstract clear(): void;\n\n public mount(): boolean {\n if (this.empty || !this.anchor.isConnected) {\n return false;\n }\n\n this.node.mount();\n\n const target = this.target;\n\n if (!target) {\n return false;\n }\n\n if (target === this.renderedTarget) {\n return false;\n }\n\n this.clear();\n\n const generation = ++this.generation;\n\n this.renderedTarget = target;\n const replacedAnchor = !this.anchor.isConnected;\n\n try {\n const value = this.resolve(this.props());\n\n if (generation !== this.generation || target !== this.target) {\n return false;\n }\n\n // A synchronous custom mount (including append: Replace) can deliberately replace its anchor.\n if (!this.anchor.isConnected && !(replacedAnchor && this.container?.isConnected)) {\n this.unmount();\n\n return false;\n }\n\n if (!this.render(value, target)) {\n this.empty = true;\n this.node.unmount();\n\n return false;\n }\n\n return true;\n } catch (error) {\n if (generation !== this.generation) {\n return false;\n }\n\n this.unmount();\n\n throw error;\n }\n }\n\n public unmount(): boolean {\n this.generation++;\n this.renderedTarget = undefined;\n\n this.clear();\n\n return !!this.node.unmount();\n }\n}\n"],"mappings":"AASA,MAAO,WAA+E;AAAA,EAKlF,YACuB,MACF,SACA,OACnB;AAHqB;AACF;AACA;AAAA,EAClB;AAAA,EAHoB;AAAA,EACF;AAAA,EACA;AAAA,EAPb,aAAa;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,EAQhB,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,KAAK;AAAA,EACrB;AAAA,EAEA,IAAW,WAAkC;AACzC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA,EAMO,QAAiB;AAxC5B;AAyCQ,QAAI,KAAK,SAAS,CAAC,KAAK,OAAO,aAAa;AACxC,aAAO;AAAA,IACX;AAEA,SAAK,KAAK,MAAM;AAEhB,UAAM,SAAS,KAAK;AAEpB,QAAI,CAAC,QAAQ;AACT,aAAO;AAAA,IACX;AAEA,QAAI,WAAW,KAAK,gBAAgB;AAChC,aAAO;AAAA,IACX;AAEA,SAAK,MAAM;AAEX,UAAM,aAAa,EAAE,KAAK;AAE1B,SAAK,iBAAiB;AACtB,UAAM,iBAAiB,CAAC,KAAK,OAAO;AAEpC,QAAI;AACA,YAAM,QAAQ,KAAK,QAAQ,KAAK,MAAM,CAAC;AAEvC,UAAI,eAAe,KAAK,cAAc,WAAW,KAAK,QAAQ;AAC1D,eAAO;AAAA,MACX;AAGA,UAAI,CAAC,KAAK,OAAO,eAAe,EAAE,oBAAkB,UAAK,cAAL,mBAAgB,eAAc;AAC9E,aAAK,QAAQ;AAEb,eAAO;AAAA,MACX;AAEA,UAAI,CAAC,KAAK,OAAO,OAAO,MAAM,GAAG;AAC7B,aAAK,QAAQ;AACb,aAAK,KAAK,QAAQ;AAElB,eAAO;AAAA,MACX;AAEA,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,UAAI,eAAe,KAAK,YAAY;AAChC,eAAO;AAAA,MACX;AAEA,WAAK,QAAQ;AAEb,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEO,UAAmB;AACtB,SAAK;AACL,SAAK,iBAAiB;AAEtB,SAAK,MAAM;AAEX,WAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,EAC/B;AACJ;","names":[]}
@@ -0,0 +1,21 @@
1
+ import type IsolationSetup from "../IsolationSetup.js";
2
+ import { type ContentScriptShadowOptions, type ContentScriptNode } from "../../../../types/content/index.js";
3
+ export default class ShadowNode<Data = unknown> implements ContentScriptNode {
4
+ protected readonly node: ContentScriptNode;
5
+ private readonly options;
6
+ private readonly isolation;
7
+ private root?;
8
+ private _target?;
9
+ private runtime?;
10
+ private cleanupBoundary?;
11
+ private mounting;
12
+ private unmounting;
13
+ constructor(node: ContentScriptNode, options: ContentScriptShadowOptions | undefined, isolation: IsolationSetup<Data, "shadow">);
14
+ get anchor(): Element;
15
+ get container(): Element | undefined;
16
+ get target(): Element | undefined;
17
+ get boundary(): ShadowRoot | undefined;
18
+ mount(): boolean;
19
+ private mountNode;
20
+ unmount(): boolean;
21
+ }