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,128 +0,0 @@
1
- import { isContentScriptFrameNavigation, resolveContentScriptIsolation } from "./../../../shared/content/index.js";
2
- import AwaitLock from "await-lock";
3
- import Builder from "./../../../entry/core/Builder.js";
4
- import {
5
- contentScriptAnchorResolver,
6
- contentScriptAwaitFirstResolver,
7
- contentScriptContainerResolver,
8
- contentScriptLocationResolver,
9
- contentScriptMountAppendResolver,
10
- contentScriptMutationObserverResolver,
11
- contentScriptRenderResolver
12
- } from "./resolvers/index.js";
13
- import { ManagedContext, EventEmitter } from "./context/index.js";
14
- import { AttributeMarker, WeakMarker } from "./markers/index.js";
15
- import {
16
- ContentScriptMarker
17
- } from "./../../../types/content.js";
18
- class Builder_default extends Builder {
19
- lock = new AwaitLock();
20
- definition;
21
- emitter = new EventEmitter();
22
- context = new ManagedContext(this.emitter);
23
- marker = new AttributeMarker();
24
- unwatch;
25
- constructor(definition) {
26
- super();
27
- const isolation = resolveContentScriptIsolation(definition.isolation, "render" in definition);
28
- this.definition = {
29
- ...definition,
30
- marker: this.resolveMarker(definition.marker),
31
- anchor: this.resolveAnchor(definition.anchor),
32
- mount: this.resolveMount(definition.mount),
33
- container: this.resolveContainer(definition.container),
34
- render: this.resolveRender(definition.render),
35
- isolation,
36
- watch: this.resolveWatch(definition.watch)
37
- };
38
- }
39
- resolveMarker(marker) {
40
- return async (options) => {
41
- if (typeof marker === "function") {
42
- marker = await marker(options);
43
- }
44
- if (!marker) {
45
- marker = ContentScriptMarker.Attribute;
46
- }
47
- if (typeof marker === "string") {
48
- switch (marker) {
49
- case ContentScriptMarker.Weak:
50
- return new WeakMarker();
51
- case ContentScriptMarker.Attribute:
52
- default:
53
- return new AttributeMarker();
54
- }
55
- }
56
- return marker;
57
- };
58
- }
59
- resolveAnchor(anchor) {
60
- return contentScriptAnchorResolver(anchor);
61
- }
62
- resolveMount(mount) {
63
- return mount || contentScriptMountAppendResolver();
64
- }
65
- resolveContainer(container) {
66
- return contentScriptContainerResolver(container);
67
- }
68
- resolveRender(render) {
69
- if (render === void 0) {
70
- return;
71
- }
72
- return contentScriptRenderResolver(render);
73
- }
74
- resolveWatch(watch) {
75
- if (watch === void 0) {
76
- watch = contentScriptAwaitFirstResolver();
77
- } else if (watch === true) {
78
- watch = contentScriptMutationObserverResolver();
79
- }
80
- return contentScriptLocationResolver(watch);
81
- }
82
- getContext() {
83
- return this.context;
84
- }
85
- async build() {
86
- await this.destroy();
87
- const { render, main, anchor, marker, container, watch, mount, ...options } = this.definition;
88
- this.marker = await marker(options);
89
- await (main == null ? void 0 : main(this.context, options));
90
- if (render !== void 0 || isContentScriptFrameNavigation(this.definition.isolation)) {
91
- await this.processing();
92
- this.unwatch = watch(() => {
93
- this.context.mount();
94
- this.processing().catch((e) => {
95
- console.error("Content script processing on watch error", e);
96
- });
97
- }, this.context);
98
- }
99
- }
100
- async destroy() {
101
- var _a;
102
- (_a = this.unwatch) == null ? void 0 : _a.call(this);
103
- this.unwatch = void 0;
104
- this.context.clear();
105
- this.context.unwatch();
106
- this.marker.reset();
107
- }
108
- async processing() {
109
- await this.lock.acquireAsync();
110
- try {
111
- const anchor = await this.definition.anchor();
112
- const anchors = this.marker.for(anchor).unmarked();
113
- await Promise.allSettled(anchors.map(this.processAnchor.bind(this)));
114
- } finally {
115
- this.lock.release();
116
- }
117
- }
118
- async processAnchor(anchor) {
119
- const node = await this.createNode(anchor);
120
- this.context.add(node);
121
- await this.cleanupNode(anchor);
122
- node.mount();
123
- }
124
- }
125
- export {
126
- Builder_default as default
127
- };
128
- //# sourceMappingURL=Builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/Builder.ts"],"sourcesContent":["import {isContentScriptFrameNavigation, resolveContentScriptIsolation} from \"@shared/content\";\nimport AwaitLock from \"await-lock\";\n\nimport Builder from \"@entry/core/Builder\";\n\nimport {\n contentScriptAnchorResolver,\n contentScriptAwaitFirstResolver,\n contentScriptContainerResolver,\n contentScriptLocationResolver,\n contentScriptMountAppendResolver,\n contentScriptMutationObserverResolver,\n contentScriptRenderResolver,\n} from \"./resolvers\";\n\nimport {ManagedContext, EventEmitter} from \"./context\";\nimport {AttributeMarker, WeakMarker} from \"./markers\";\n\nimport {\n ContentScriptAnchor,\n ContentScriptAnchorGetter,\n ContentScriptBuilder,\n ContentScriptContainerCreator,\n ContentScriptContainerFactory,\n ContentScriptContainerOptions,\n ContentScriptContainerTag,\n ContentScriptContext,\n ContentScriptDefinition,\n ContentScriptMarker,\n ContentScriptMarkerContract,\n ContentScriptMarkerGetter,\n ContentScriptMarkerResolver,\n ContentScriptMarkerType,\n ContentScriptMountFunction,\n ContentScriptNode,\n ContentScriptOptions,\n ContentScriptRenderHandler,\n ContentScriptRenderValue,\n ContentScriptResolvedDefinition,\n ContentScriptWatchStrategy,\n} from \"@typing/content\";\n\nimport {Awaiter} from \"@typing/helpers\";\n\nexport default abstract class extends Builder implements ContentScriptBuilder {\n private readonly lock: AwaitLock = new AwaitLock();\n\n protected readonly definition: ContentScriptResolvedDefinition;\n\n protected readonly emitter = new EventEmitter();\n\n protected readonly context = new ManagedContext(this.emitter);\n\n protected marker: ContentScriptMarkerContract = new AttributeMarker();\n\n protected unwatch?: () => void;\n\n protected abstract createNode(anchor: Element): Promise<ContentScriptNode>;\n\n protected abstract cleanupNode(anchor: Element): Awaiter<void>;\n\n protected constructor(definition: ContentScriptDefinition) {\n super();\n\n const isolation = resolveContentScriptIsolation(definition.isolation, \"render\" in definition);\n\n this.definition = {\n ...definition,\n marker: this.resolveMarker(definition.marker),\n anchor: this.resolveAnchor(definition.anchor),\n mount: this.resolveMount(definition.mount),\n container: this.resolveContainer(definition.container),\n render: this.resolveRender(definition.render),\n isolation,\n watch: this.resolveWatch(definition.watch),\n };\n }\n\n protected resolveMarker(marker: ContentScriptMarkerType | ContentScriptMarkerGetter): ContentScriptMarkerResolver {\n return async (options: ContentScriptOptions) => {\n if (typeof marker === \"function\") {\n marker = await marker(options);\n }\n\n if (!marker) {\n marker = ContentScriptMarker.Attribute;\n }\n\n if (typeof marker === \"string\") {\n switch (marker) {\n case ContentScriptMarker.Weak:\n return new WeakMarker();\n\n case ContentScriptMarker.Attribute:\n default:\n return new AttributeMarker();\n }\n }\n\n return marker;\n };\n }\n\n protected resolveAnchor(anchor?: ContentScriptAnchor | ContentScriptAnchorGetter): ContentScriptAnchorGetter {\n return contentScriptAnchorResolver(anchor);\n }\n\n protected resolveMount(mount?: ContentScriptMountFunction): ContentScriptMountFunction {\n return mount || contentScriptMountAppendResolver();\n }\n\n protected resolveContainer(\n container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory\n ): ContentScriptContainerCreator {\n return contentScriptContainerResolver(container);\n }\n\n protected resolveRender(\n render?: ContentScriptRenderValue | ContentScriptRenderHandler\n ): ContentScriptRenderHandler | undefined {\n if (render === undefined) {\n return;\n }\n\n return contentScriptRenderResolver(render);\n }\n\n protected resolveWatch(watch?: true | ContentScriptWatchStrategy): ContentScriptWatchStrategy {\n if (watch === undefined) {\n watch = contentScriptAwaitFirstResolver();\n } else if (watch === true) {\n watch = contentScriptMutationObserverResolver();\n }\n\n return contentScriptLocationResolver(watch);\n }\n\n public getContext(): ContentScriptContext {\n return this.context;\n }\n\n public async build(): Promise<void> {\n await this.destroy();\n\n const {render, main, anchor, marker, container, watch, mount, ...options} = this.definition;\n\n this.marker = await marker(options);\n\n await main?.(this.context, options);\n\n if (render !== undefined || isContentScriptFrameNavigation(this.definition.isolation)) {\n await this.processing();\n\n this.unwatch = watch(() => {\n this.context.mount();\n\n this.processing().catch(e => {\n console.error(\"Content script processing on watch error\", e);\n });\n }, this.context);\n }\n }\n\n public async destroy(): Promise<void> {\n this.unwatch?.();\n this.unwatch = undefined;\n\n this.context.clear();\n this.context.unwatch();\n this.marker.reset();\n }\n\n protected async processing(): Promise<void> {\n await this.lock.acquireAsync();\n\n try {\n const anchor = await this.definition.anchor();\n\n const anchors = this.marker.for(anchor).unmarked();\n\n await Promise.allSettled(anchors.map(this.processAnchor.bind(this)));\n } finally {\n this.lock.release();\n }\n }\n\n protected async processAnchor(anchor: Element): Promise<void> {\n const node = await this.createNode(anchor);\n\n this.context.add(node);\n\n await this.cleanupNode(anchor);\n\n node.mount();\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,10 +0,0 @@
1
- import Builder from "./Builder.js";
2
- import { ContentScriptNode, ContentScriptProps, ContentScriptRenderValue } from "../../../types/content.js";
3
- export default abstract class extends Builder {
4
- private values;
5
- protected getProps(anchor: Element): ContentScriptProps;
6
- protected getValue(anchor: Element): Promise<undefined | ContentScriptRenderValue>;
7
- protected renderValue(anchor: Element): Promise<undefined | ContentScriptRenderValue>;
8
- protected createNode(anchor: Element): Promise<ContentScriptNode>;
9
- protected cleanupNode(anchor: Element): void;
10
- }
@@ -1,48 +0,0 @@
1
- import Builder from "./Builder.js";
2
- import { FrameNode, MountNode, MarkerNode, ShadowNode, Node } from "./nodes/index.js";
3
- import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
4
- import { ContentScriptIsolation } from "./../../../types/content.js";
5
- class MountBuilder_default extends Builder {
6
- values = /* @__PURE__ */ new Map();
7
- getProps(anchor) {
8
- const { anchor: _, mount, watch, render, container, main, isolation, ...options } = this.definition;
9
- return { ...options, anchor };
10
- }
11
- async getValue(anchor) {
12
- if (!this.values.has(anchor)) {
13
- const value = await this.renderValue(anchor);
14
- this.values.set(anchor, value === void 0 ? void 0 : value);
15
- }
16
- return this.values.get(anchor);
17
- }
18
- async renderValue(anchor) {
19
- const { render } = this.definition;
20
- if (render === void 0) {
21
- return;
22
- }
23
- return render(this.getProps(anchor));
24
- }
25
- async createNode(anchor) {
26
- let container;
27
- const value = await this.getValue(anchor);
28
- if (isContentScriptFrameNavigation(this.definition.isolation) || typeof value !== "boolean" && value !== void 0) {
29
- container = await this.definition.container(this.getProps(anchor));
30
- }
31
- const node = new MountNode(new MarkerNode(new Node(anchor, container), this.marker), this.definition.mount);
32
- switch (this.definition.isolation.type) {
33
- case ContentScriptIsolation.Shadow:
34
- return new ShadowNode(node, this.definition.isolation);
35
- case ContentScriptIsolation.Iframe:
36
- return new FrameNode(node, this.definition.isolation, () => this.context.mount());
37
- default:
38
- return node;
39
- }
40
- }
41
- cleanupNode(anchor) {
42
- this.values.delete(anchor);
43
- }
44
- }
45
- export {
46
- MountBuilder_default as default
47
- };
48
- //# sourceMappingURL=MountBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/entry/content/core/MountBuilder.ts"],"sourcesContent":["import Builder from \"./Builder\";\n\nimport {FrameNode, MountNode, MarkerNode, ShadowNode, Node} from \"./nodes\";\n\nimport {isContentScriptFrameNavigation} from \"@shared/content\";\n\nimport {ContentScriptIsolation, ContentScriptNode, ContentScriptProps, ContentScriptRenderValue} from \"@typing/content\";\n\nexport default abstract class extends Builder {\n private values = new Map<Element, null | ContentScriptRenderValue>();\n\n protected getProps(anchor: Element): ContentScriptProps {\n const {anchor: _, mount, watch, render, container, main, isolation, ...options} = this.definition;\n\n return {...options, anchor};\n }\n\n protected async getValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n if (!this.values.has(anchor)) {\n const value = await this.renderValue(anchor);\n\n this.values.set(anchor, value === undefined ? undefined : value);\n }\n\n return this.values.get(anchor);\n }\n\n protected async renderValue(anchor: Element): Promise<undefined | ContentScriptRenderValue> {\n const {render} = this.definition;\n\n if (render === undefined) {\n return;\n }\n\n return render(this.getProps(anchor));\n }\n\n protected async createNode(anchor: Element): Promise<ContentScriptNode> {\n let container: Element | undefined;\n\n const value = await this.getValue(anchor);\n\n if (\n isContentScriptFrameNavigation(this.definition.isolation) ||\n (typeof value !== \"boolean\" && value !== undefined)\n ) {\n container = (await this.definition.container(this.getProps(anchor))) as Element | undefined;\n }\n\n const node = new MountNode(new MarkerNode(new Node(anchor, container), this.marker), this.definition.mount);\n\n switch (this.definition.isolation.type) {\n case ContentScriptIsolation.Shadow:\n return new ShadowNode(node, this.definition.isolation);\n case ContentScriptIsolation.Iframe:\n return new FrameNode(node, this.definition.isolation, () => this.context.mount());\n default:\n return node;\n }\n }\n\n protected cleanupNode(anchor: Element): void {\n this.values.delete(anchor);\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAEpB,SAAQ,WAAW,WAAW,YAAY,YAAY,YAAW;AAEjE,SAAQ,sCAAqC;AAE7C,SAAQ,8BAA8F;AAEtG,MAAO,6BAA+B,QAAQ;AAAA,EAClC,SAAS,oBAAI,IAA8C;AAAA,EAEzD,SAAS,QAAqC;AACpD,UAAM,EAAC,QAAQ,GAAG,OAAO,OAAO,QAAQ,WAAW,MAAM,WAAW,GAAG,QAAO,IAAI,KAAK;AAEvF,WAAO,EAAC,GAAG,SAAS,OAAM;AAAA,EAC9B;AAAA,EAEA,MAAgB,SAAS,QAAgE;AACrF,QAAI,CAAC,KAAK,OAAO,IAAI,MAAM,GAAG;AAC1B,YAAM,QAAQ,MAAM,KAAK,YAAY,MAAM;AAE3C,WAAK,OAAO,IAAI,QAAQ,UAAU,SAAY,SAAY,KAAK;AAAA,IACnE;AAEA,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA,EAEA,MAAgB,YAAY,QAAgE;AACxF,UAAM,EAAC,OAAM,IAAI,KAAK;AAEtB,QAAI,WAAW,QAAW;AACtB;AAAA,IACJ;AAEA,WAAO,OAAO,KAAK,SAAS,MAAM,CAAC;AAAA,EACvC;AAAA,EAEA,MAAgB,WAAW,QAA6C;AACpE,QAAI;AAEJ,UAAM,QAAQ,MAAM,KAAK,SAAS,MAAM;AAExC,QACI,+BAA+B,KAAK,WAAW,SAAS,KACvD,OAAO,UAAU,aAAa,UAAU,QAC3C;AACE,kBAAa,MAAM,KAAK,WAAW,UAAU,KAAK,SAAS,MAAM,CAAC;AAAA,IACtE;AAEA,UAAM,OAAO,IAAI,UAAU,IAAI,WAAW,IAAI,KAAK,QAAQ,SAAS,GAAG,KAAK,MAAM,GAAG,KAAK,WAAW,KAAK;AAE1G,YAAQ,KAAK,WAAW,UAAU,MAAM;AAAA,MACpC,KAAK,uBAAuB;AACxB,eAAO,IAAI,WAAW,MAAM,KAAK,WAAW,SAAS;AAAA,MACzD,KAAK,uBAAuB;AACxB,eAAO,IAAI,UAAU,MAAM,KAAK,WAAW,WAAW,MAAM,KAAK,QAAQ,MAAM,CAAC;AAAA,MACpF;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEU,YAAY,QAAuB;AACzC,SAAK,OAAO,OAAO,MAAM;AAAA,EAC7B;AACJ;","names":[]}
@@ -1,50 +0,0 @@
1
- class Context_default {
2
- constructor(emitter) {
3
- this.emitter = emitter;
4
- }
5
- emitter;
6
- collection = /* @__PURE__ */ new Set();
7
- get nodes() {
8
- return this.collection;
9
- }
10
- mount() {
11
- for (const node of this.collection) {
12
- if (!node.anchor.isConnected) {
13
- node.unmount();
14
- this.collection.delete(node);
15
- this.emitter.emitRemove(node);
16
- continue;
17
- }
18
- node.mount();
19
- }
20
- }
21
- unmount() {
22
- for (const node of this.collection) {
23
- node.unmount();
24
- if (!node.anchor.isConnected) {
25
- this.collection.delete(node);
26
- this.emitter.emitRemove(node);
27
- }
28
- }
29
- }
30
- clear() {
31
- for (const node of this.collection) {
32
- node.unmount();
33
- this.collection.delete(node);
34
- this.emitter.emitRemove(node);
35
- }
36
- }
37
- watch(callback) {
38
- this.emitter.on(callback);
39
- return () => {
40
- this.emitter.off(callback);
41
- };
42
- }
43
- unwatch() {
44
- this.emitter.removeAllListeners();
45
- }
46
- }
47
- export {
48
- Context_default as default
49
- };
50
- //# sourceMappingURL=Context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/context/Context.ts"],"sourcesContent":["import {\n ContentScriptContext,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n ContentScriptNodeSet,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptContext {\n protected readonly collection: ContentScriptNodeSet = new Set();\n\n constructor(protected readonly emitter: ContentScriptEventEmitter) {}\n\n public get nodes(): ReadonlySet<ContentScriptNode> {\n return this.collection;\n }\n\n public mount(): void {\n for (const node of this.collection) {\n if (!node.anchor.isConnected) {\n node.unmount();\n\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n\n continue;\n }\n\n node.mount();\n }\n }\n\n public unmount(): void {\n for (const node of this.collection) {\n node.unmount();\n\n if (!node.anchor.isConnected) {\n this.collection.delete(node);\n\n this.emitter.emitRemove(node);\n }\n }\n }\n\n public clear(): void {\n for (const node of this.collection) {\n node.unmount();\n this.collection.delete(node);\n this.emitter.emitRemove(node);\n }\n }\n\n public watch(callback: ContentScriptEventCallback): () => void {\n this.emitter.on(callback);\n\n return () => {\n this.emitter.off(callback);\n };\n }\n\n public unwatch(): void {\n this.emitter.removeAllListeners();\n }\n}\n"],"mappings":"AAQA,MAAO,gBAA8C;AAAA,EAGjD,YAA+B,SAAoC;AAApC;AAAA,EAAqC;AAAA,EAArC;AAAA,EAFZ,aAAmC,oBAAI,IAAI;AAAA,EAI9D,IAAW,QAAwC;AAC/C,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,QAAc;AACjB,eAAW,QAAQ,KAAK,YAAY;AAChC,UAAI,CAAC,KAAK,OAAO,aAAa;AAC1B,aAAK,QAAQ;AAEb,aAAK,WAAW,OAAO,IAAI;AAE3B,aAAK,QAAQ,WAAW,IAAI;AAE5B;AAAA,MACJ;AAEA,WAAK,MAAM;AAAA,IACf;AAAA,EACJ;AAAA,EAEO,UAAgB;AACnB,eAAW,QAAQ,KAAK,YAAY;AAChC,WAAK,QAAQ;AAEb,UAAI,CAAC,KAAK,OAAO,aAAa;AAC1B,aAAK,WAAW,OAAO,IAAI;AAE3B,aAAK,QAAQ,WAAW,IAAI;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEO,QAAc;AACjB,eAAW,QAAQ,KAAK,YAAY;AAChC,WAAK,QAAQ;AACb,WAAK,WAAW,OAAO,IAAI;AAC3B,WAAK,QAAQ,WAAW,IAAI;AAAA,IAChC;AAAA,EACJ;AAAA,EAEO,MAAM,UAAkD;AAC3D,SAAK,QAAQ,GAAG,QAAQ;AAExB,WAAO,MAAM;AACT,WAAK,QAAQ,IAAI,QAAQ;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEO,UAAgB;AACnB,SAAK,QAAQ,mBAAmB;AAAA,EACpC;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/context/EventEmitter.ts"],"sourcesContent":["import {\n ContentScriptEvent,\n ContentScriptEventCallback,\n ContentScriptEventEmitter,\n ContentScriptNode,\n} from \"@typing/content\";\n\nexport default class implements ContentScriptEventEmitter {\n private readonly listeners: Set<ContentScriptEventCallback> = new Set();\n\n public emit(event: ContentScriptEvent, node: ContentScriptNode): void {\n for (const listener of this.listeners) {\n listener(event, node);\n }\n }\n\n public emitAdd(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Add, node);\n }\n\n public emitMount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Mount, node);\n }\n\n public emitRemove(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Remove, node);\n }\n\n public emitUnmount(node: ContentScriptNode): void {\n this.emit(ContentScriptEvent.Unmount, node);\n }\n\n public hasListeners(): boolean {\n return this.listenerCount() > 0;\n }\n\n public listenerCount(): number {\n return this.listeners.size;\n }\n\n public off(callback: ContentScriptEventCallback): void {\n this.listeners.delete(callback);\n }\n\n public on(callback: ContentScriptEventCallback): void {\n this.listeners.add(callback);\n }\n\n public removeAllListeners(): void {\n this.listeners.clear();\n }\n}\n"],"mappings":"AAAA;AAAA,EACI;AAAA,OAIG;AAEP,MAAO,qBAAmD;AAAA,EACrC,YAA6C,oBAAI,IAAI;AAAA,EAE/D,KAAK,OAA2B,MAA+B;AAClE,eAAW,YAAY,KAAK,WAAW;AACnC,eAAS,OAAO,IAAI;AAAA,IACxB;AAAA,EACJ;AAAA,EAEO,QAAQ,MAA+B;AAC1C,SAAK,KAAK,mBAAmB,KAAK,IAAI;AAAA,EAC1C;AAAA,EAEO,UAAU,MAA+B;AAC5C,SAAK,KAAK,mBAAmB,OAAO,IAAI;AAAA,EAC5C;AAAA,EAEO,WAAW,MAA+B;AAC7C,SAAK,KAAK,mBAAmB,QAAQ,IAAI;AAAA,EAC7C;AAAA,EAEO,YAAY,MAA+B;AAC9C,SAAK,KAAK,mBAAmB,SAAS,IAAI;AAAA,EAC9C;AAAA,EAEO,eAAwB;AAC3B,WAAO,KAAK,cAAc,IAAI;AAAA,EAClC;AAAA,EAEO,gBAAwB;AAC3B,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEO,IAAI,UAA4C;AACnD,SAAK,UAAU,OAAO,QAAQ;AAAA,EAClC;AAAA,EAEO,GAAG,UAA4C;AAClD,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC/B;AAAA,EAEO,qBAA2B;AAC9B,SAAK,UAAU,MAAM;AAAA,EACzB;AACJ;","names":[]}
@@ -1,5 +0,0 @@
1
- import Context from "./Context.js";
2
- import { ContentScriptNode } from "../../../../types/content.js";
3
- export default class extends Context {
4
- add(node: ContentScriptNode): this;
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/context/ManagedContext.ts"],"sourcesContent":["import Context from \"./Context\";\n\nimport {ContentScriptNode} from \"@typing/content\";\n\nexport default class extends Context {\n public add(node: ContentScriptNode): this {\n this.collection.add(node);\n\n this.emitter.emitAdd(node);\n\n return this;\n }\n}\n"],"mappings":"AAAA,OAAO,aAAa;AAIpB,MAAO,+BAAsB,QAAQ;AAAA,EAC1B,IAAI,MAA+B;AACtC,SAAK,WAAW,IAAI,IAAI;AAExB,SAAK,QAAQ,QAAQ,IAAI;AAEzB,WAAO;AAAA,EACX;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/context/index.ts"],"sourcesContent":["export {default as Context} from \"./Context\";\nexport {default as ManagedContext} from \"./ManagedContext\";\nexport {default as EventEmitter} from \"./EventEmitter\";\n"],"mappings":"AAAA,SAAmB,WAAXA,gBAAyB;AACjC,SAAmB,WAAXA,gBAAgC;AACxC,SAAmB,WAAXA,gBAA8B;","names":["default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/markers/AbstractMarker.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptMarkerContract, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default abstract class implements ContentScriptMarkerContract {\n public abstract mark(element: Element, value: ContentScriptMarkerValue): boolean;\n\n public abstract unmark(element: Element): boolean;\n\n public abstract isMarked(element: Element): boolean;\n\n public abstract value(element: Element): ContentScriptMarkerValue | undefined;\n\n protected constructor(protected anchor: ContentScriptAnchor) {}\n\n public for(anchor: ContentScriptAnchor): ContentScriptMarkerContract {\n this.anchor = anchor;\n\n return this;\n }\n\n public unmarked(): Element[] {\n return this.query(false);\n }\n\n public marked(): Element[] {\n return this.query(true);\n }\n\n public mount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Mounted);\n }\n\n public unmount(element: Element): boolean {\n return this.mark(element, ContentScriptMarkerValue.Unmounted);\n }\n\n public reset(): ContentScriptMarkerContract {\n for (const element of this.marked()) {\n this.unmark(element);\n }\n\n return this;\n }\n\n protected query(marked: boolean): Element[] {\n const anchor = this.anchor;\n\n if (anchor instanceof Element) {\n const isMarked = this.isMarked(anchor);\n\n if ((isMarked && marked) || (!isMarked && !marked)) {\n return [anchor];\n }\n } else if (typeof anchor === \"string\") {\n return this.queryAnchor(anchor, marked);\n }\n\n return [];\n }\n\n protected queryAnchor(anchor: string, marked: boolean = false): Element[] {\n try {\n if (anchor.startsWith(\"/\")) {\n return this.queryXpath(anchor, marked);\n }\n\n return this.querySelector(anchor, marked);\n } catch (e) {\n console.error(\"Invalid anchor format. Expected a valid string (CSS selector/XPath)\", e);\n\n return [];\n }\n }\n\n protected querySelector(selector: string, _marked: boolean = false): Element[] {\n return Array.from(document.querySelectorAll(selector));\n }\n\n protected queryXpath(xpath: string, _marked: boolean = false): Element[] {\n const elements: Element[] = [];\n\n const result = document.evaluate(xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);\n\n for (let i = 0; i < result.snapshotLength; i++) {\n elements.push(result.snapshotItem(i) as Element);\n }\n\n return elements;\n }\n\n protected isValidValue(value: any): value is ContentScriptMarkerValue {\n return [ContentScriptMarkerValue.Unmounted, ContentScriptMarkerValue.Mounted].includes(value);\n }\n}\n"],"mappings":"AAAA,SAA0D,gCAA+B;AAEzF,MAAO,uBAA8D;AAAA,EASvD,YAAsB,QAA6B;AAA7B;AAAA,EAA8B;AAAA,EAA9B;AAAA,EAEzB,IAAI,QAA0D;AACjE,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEO,WAAsB;AACzB,WAAO,KAAK,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEO,SAAoB;AACvB,WAAO,KAAK,MAAM,IAAI;AAAA,EAC1B;AAAA,EAEO,MAAM,SAA2B;AACpC,WAAO,KAAK,KAAK,SAAS,yBAAyB,OAAO;AAAA,EAC9D;AAAA,EAEO,QAAQ,SAA2B;AACtC,WAAO,KAAK,KAAK,SAAS,yBAAyB,SAAS;AAAA,EAChE;AAAA,EAEO,QAAqC;AACxC,eAAW,WAAW,KAAK,OAAO,GAAG;AACjC,WAAK,OAAO,OAAO;AAAA,IACvB;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,MAAM,QAA4B;AACxC,UAAM,SAAS,KAAK;AAEpB,QAAI,kBAAkB,SAAS;AAC3B,YAAM,WAAW,KAAK,SAAS,MAAM;AAErC,UAAK,YAAY,UAAY,CAAC,YAAY,CAAC,QAAS;AAChD,eAAO,CAAC,MAAM;AAAA,MAClB;AAAA,IACJ,WAAW,OAAO,WAAW,UAAU;AACnC,aAAO,KAAK,YAAY,QAAQ,MAAM;AAAA,IAC1C;AAEA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEU,YAAY,QAAgB,SAAkB,OAAkB;AACtE,QAAI;AACA,UAAI,OAAO,WAAW,GAAG,GAAG;AACxB,eAAO,KAAK,WAAW,QAAQ,MAAM;AAAA,MACzC;AAEA,aAAO,KAAK,cAAc,QAAQ,MAAM;AAAA,IAC5C,SAAS,GAAG;AACR,cAAQ,MAAM,uEAAuE,CAAC;AAEtF,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA,EAEU,cAAc,UAAkB,UAAmB,OAAkB;AAC3E,WAAO,MAAM,KAAK,SAAS,iBAAiB,QAAQ,CAAC;AAAA,EACzD;AAAA,EAEU,WAAW,OAAe,UAAmB,OAAkB;AACrE,UAAM,WAAsB,CAAC;AAE7B,UAAM,SAAS,SAAS,SAAS,OAAO,UAAU,MAAM,YAAY,4BAA4B,IAAI;AAEpG,aAAS,IAAI,GAAG,IAAI,OAAO,gBAAgB,KAAK;AAC5C,eAAS,KAAK,OAAO,aAAa,CAAC,CAAY;AAAA,IACnD;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,aAAa,OAA+C;AAClE,WAAO,CAAC,yBAAyB,WAAW,yBAAyB,OAAO,EAAE,SAAS,KAAK;AAAA,EAChG;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/markers/AttributeMarker.ts"],"sourcesContent":["import {customAlphabet} from \"nanoid\";\n\nimport AbstractMarker from \"./AbstractMarker\";\n\nimport {ContentScriptAnchor, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default class extends AbstractMarker {\n protected readonly attr: string;\n\n constructor(anchor?: ContentScriptAnchor, attr?: string) {\n super(anchor);\n\n this.attr = attr ?? `data-${customAlphabet(\"abcdefghijklmnopqrstuvwxyz\", 7)()}`;\n }\n\n public isMarked(element: Element): boolean {\n return element.hasAttribute(this.attr);\n }\n\n public mark(element: Element, value: ContentScriptMarkerValue): boolean {\n element.setAttribute(this.attr, value);\n\n return true;\n }\n\n public unmark(element: Element): boolean {\n element.removeAttribute(this.attr);\n\n return true;\n }\n\n public value(element: Element): ContentScriptMarkerValue | undefined {\n const value = element.getAttribute(this.attr);\n\n return this.isValidValue(value) ? value : undefined;\n }\n\n protected querySelector(selector: string, marked: boolean = false): Element[] {\n const filter = marked ? `[${this.attr}]` : `:not([${this.attr}])`;\n\n return super.querySelector(`:is(${selector})${filter}`, marked);\n }\n\n protected queryXpath(xpath: string, marked: boolean = false): Element[] {\n const filter = marked ? `[@${this.attr}]` : `[not(@${this.attr})]`;\n\n return super.queryXpath(`(${xpath.trim()})${filter}`, marked);\n }\n}\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAE7B,OAAO,oBAAoB;AAI3B,MAAO,gCAAsB,eAAe;AAAA,EACrB;AAAA,EAEnB,YAAY,QAA8B,MAAe;AACrD,UAAM,MAAM;AAEZ,SAAK,OAAO,QAAQ,QAAQ,eAAe,8BAA8B,CAAC,EAAE,CAAC;AAAA,EACjF;AAAA,EAEO,SAAS,SAA2B;AACvC,WAAO,QAAQ,aAAa,KAAK,IAAI;AAAA,EACzC;AAAA,EAEO,KAAK,SAAkB,OAA0C;AACpE,YAAQ,aAAa,KAAK,MAAM,KAAK;AAErC,WAAO;AAAA,EACX;AAAA,EAEO,OAAO,SAA2B;AACrC,YAAQ,gBAAgB,KAAK,IAAI;AAEjC,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,SAAwD;AACjE,UAAM,QAAQ,QAAQ,aAAa,KAAK,IAAI;AAE5C,WAAO,KAAK,aAAa,KAAK,IAAI,QAAQ;AAAA,EAC9C;AAAA,EAEU,cAAc,UAAkB,SAAkB,OAAkB;AAC1E,UAAM,SAAS,SAAS,IAAI,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI;AAE7D,WAAO,MAAM,cAAc,OAAO,QAAQ,IAAI,MAAM,IAAI,MAAM;AAAA,EAClE;AAAA,EAEU,WAAW,OAAe,SAAkB,OAAkB;AACpE,UAAM,SAAS,SAAS,KAAK,KAAK,IAAI,MAAM,SAAS,KAAK,IAAI;AAE9D,WAAO,MAAM,WAAW,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,IAAI,MAAM;AAAA,EAChE;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/markers/WeakMarker.ts"],"sourcesContent":["import AbstractMarker from \"./AbstractMarker\";\n\nimport {ContentScriptAnchor, ContentScriptMarkerValue} from \"@typing/content\";\n\nexport default class 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,2BAAsB,eAAe;AAAA,EACvB,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":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/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 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/EventNode.ts"],"sourcesContent":["import {ContentScriptEventEmitter, ContentScriptNode} from \"@typing/content\";\n\nexport default class implements ContentScriptNode {\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 mount(): boolean {\n const result = this.node.mount();\n\n if (result === true) {\n this.emitter.emitMount(this.node);\n }\n\n return !!result;\n }\n\n public unmount(): boolean {\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,kBAA2C;AAAA,EAC9C,YACuB,MACA,SACrB;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,EAEO,QAAiB;AACpB,UAAM,SAAS,KAAK,KAAK,MAAM;AAE/B,QAAI,WAAW,MAAM;AACjB,WAAK,QAAQ,UAAU,KAAK,IAAI;AAAA,IACpC;AAEA,WAAO,CAAC,CAAC;AAAA,EACb;AAAA,EAEO,UAAmB;AACtB,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,125 +0,0 @@
1
- import { ContentScriptIsolation } from "./../../../../types/content.js";
2
- import { getPageUrl } from "./../../../../main/page.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) {
7
- this.node = node;
8
- this.options = options;
9
- this.recover = recover;
10
- }
11
- node;
12
- options;
13
- recover;
14
- frame;
15
- head;
16
- _target;
17
- runtime;
18
- generation = 0;
19
- queued = 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
- onLoad = () => {
30
- if (!this.frame || this.queued || this.intact()) {
31
- return;
32
- }
33
- const generation = this.generation;
34
- this.queued = true;
35
- queueMicrotask(() => {
36
- var _a;
37
- if (generation !== this.generation) {
38
- return;
39
- }
40
- this.queued = false;
41
- if (((_a = this.container) == null ? void 0 : _a.isConnected) && this.anchor.isConnected) {
42
- try {
43
- this.recover();
44
- } catch (error) {
45
- console.error("Restoring content iframe failed", error);
46
- }
47
- }
48
- });
49
- };
50
- intact() {
51
- var _a, _b;
52
- const doc = (_a = this.frame) == null ? void 0 : _a.contentDocument;
53
- return !!doc && ((_b = this._target) == null ? void 0 : _b.ownerDocument) === doc && this._target.isConnected && this.head === doc.head;
54
- }
55
- mount() {
56
- const mounted = !!this.node.mount();
57
- if (!this.container) {
58
- return mounted;
59
- }
60
- if (!isContentScriptFrameNavigation(this.options) && !this.container.isConnected) {
61
- throw new Error(
62
- "Content iframe container is not connected to the document; mount must attach the container before returning"
63
- );
64
- }
65
- let created = false;
66
- if (!this.frame) {
67
- const frame = this.container.ownerDocument.createElement("iframe");
68
- frame.style.width = this.size(this.options.width ?? "100%");
69
- frame.style.height = this.size(this.options.height ?? 150);
70
- frame.style.border = "0";
71
- frame.style.display = "block";
72
- this.frame = frame;
73
- if (isContentScriptFrameNavigation(this.options)) {
74
- frame.src = this.options.page !== void 0 ? getPageUrl(this.options.page) : this.options.src;
75
- } else {
76
- frame.addEventListener("load", this.onLoad);
77
- }
78
- this.container.append(frame);
79
- created = true;
80
- }
81
- if (isContentScriptFrameNavigation(this.options) || this.intact()) {
82
- return mounted || created;
83
- }
84
- const doc = this.frame.contentDocument;
85
- if (!(doc == null ? void 0 : doc.head) || !doc.body) {
86
- throw new Error(
87
- "Content iframe has no accessible document; only an empty same-origin iframe can render UI"
88
- );
89
- }
90
- const recovering = this.head !== void 0;
91
- this.releaseStyles();
92
- const target = doc.createElement("div");
93
- doc.body.append(target);
94
- this._target = target;
95
- this.head = doc.head;
96
- this.runtime = getContentScriptStylesRuntime();
97
- this.runtime.add(doc.head, null, recovering);
98
- return true;
99
- }
100
- unmount() {
101
- var _a;
102
- this.generation++;
103
- this.queued = false;
104
- (_a = this.frame) == null ? void 0 : _a.removeEventListener("load", this.onLoad);
105
- this.releaseStyles();
106
- this.frame = void 0;
107
- return !!this.node.unmount();
108
- }
109
- releaseStyles() {
110
- var _a;
111
- if (this.head) {
112
- (_a = this.runtime) == null ? void 0 : _a.delete(this.head);
113
- }
114
- this.head = void 0;
115
- this.runtime = void 0;
116
- this._target = void 0;
117
- }
118
- size(value) {
119
- return typeof value === "number" ? `${value}px` : value;
120
- }
121
- }
122
- export {
123
- FrameNode as default
124
- };
125
- //# sourceMappingURL=FrameNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/FrameNode.ts"],"sourcesContent":["import type {ContentScriptIsolationFrameOptions, ContentScriptNode, ContentScriptStylesRuntime} from \"@typing/content\";\nimport {ContentScriptIsolation} from \"@typing/content\";\nimport {getPageUrl} from \"@main/page\";\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 implements ContentScriptNode {\n private frame?: HTMLIFrameElement;\n private head?: HTMLHeadElement;\n private _target?: Element;\n private runtime?: ContentScriptStylesRuntime;\n private generation = 0;\n private queued = false;\n\n public constructor(\n private readonly node: ContentScriptNode,\n private readonly options: ContentScriptIsolationFrameOptions = {type: ContentScriptIsolation.Iframe},\n private readonly recover: () => void\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 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 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 frame.style.width = this.size(this.options.width ?? \"100%\");\n frame.style.height = this.size(this.options.height ?? 150);\n frame.style.border = \"0\";\n frame.style.display = \"block\";\n\n this.frame = frame;\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 created = true;\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 target = doc.createElement(\"div\");\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\n return true;\n }\n\n public unmount(): boolean {\n this.generation++;\n this.queued = false;\n this.frame?.removeEventListener(\"load\", this.onLoad);\n\n this.releaseStyles();\n\n this.frame = undefined;\n\n return !!this.node.unmount();\n }\n\n private releaseStyles(): void {\n if (this.head) {\n this.runtime?.delete(this.head);\n }\n\n this.head = undefined;\n this.runtime = undefined;\n this._target = undefined;\n }\n\n private size(value: number | string): string {\n return typeof value === \"number\" ? `${value}px` : value;\n }\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/MarkerNode.ts"],"sourcesContent":["import {ContentScriptMarkerContract, ContentScriptNode} from \"@typing/content\";\n\nexport default class 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 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,mBAA2C;AAAA,EAC9C,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,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 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/MountNode.ts"],"sourcesContent":["import {ContentScriptMountFunction, ContentScriptNode} from \"@typing/content\";\n\nexport default class 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 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,kBAA2C;AAAA,EAG9C,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,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;AA1C9B;AA2CQ,eAAK,eAAL;AACA,SAAK,aAAa;AAElB,WAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,EAC/B;AACJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/Node.ts"],"sourcesContent":["import {ContentScriptNode} from \"@typing/content\";\n\nexport default class 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,aAA2C;AAAA,EAG9C,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":[]}
@@ -1,14 +0,0 @@
1
- import { type ContentScriptShadowOptions, type ContentScriptNode } from "../../../../types/content.js";
2
- export default class ShadowNode implements ContentScriptNode {
3
- protected readonly node: ContentScriptNode;
4
- private readonly options;
5
- private root?;
6
- private _target?;
7
- private runtime?;
8
- constructor(node: ContentScriptNode, options?: ContentScriptShadowOptions);
9
- get anchor(): Element;
10
- get container(): Element | undefined;
11
- get target(): Element | undefined;
12
- mount(): boolean;
13
- unmount(): boolean;
14
- }
@@ -1,67 +0,0 @@
1
- import { getContentScriptStylesRuntime } from "./isolated-styles.js";
2
- import {
3
- ContentScriptShadowMode
4
- } from "./../../../../types/content.js";
5
- class ShadowNode {
6
- constructor(node, options = {}) {
7
- this.node = node;
8
- this.options = options;
9
- }
10
- node;
11
- options;
12
- root;
13
- _target;
14
- runtime;
15
- get anchor() {
16
- return this.node.anchor;
17
- }
18
- get container() {
19
- return this.node.container;
20
- }
21
- get target() {
22
- return this._target;
23
- }
24
- mount() {
25
- const mounted = !!this.node.mount();
26
- if (!this.container || this.root) {
27
- return mounted;
28
- }
29
- if (!("attachShadow" in this.container) || typeof this.container.attachShadow !== "function") {
30
- throw new Error("Content script container does not support Shadow DOM");
31
- }
32
- if (this.container.shadowRoot) {
33
- throw new Error("Content script container already has an open ShadowRoot");
34
- }
35
- let root;
36
- try {
37
- root = this.container.attachShadow({ mode: this.options.mode ?? ContentScriptShadowMode.Open });
38
- } catch (cause) {
39
- throw new Error(
40
- "Cannot attach ShadowRoot: the content script container may already have a root or not support Shadow DOM",
41
- { cause }
42
- );
43
- }
44
- const target = this.container.ownerDocument.createElement("div");
45
- root.appendChild(target);
46
- const runtime = getContentScriptStylesRuntime();
47
- runtime.add(root, target);
48
- this.root = root;
49
- this._target = target;
50
- this.runtime = runtime;
51
- return mounted;
52
- }
53
- unmount() {
54
- var _a;
55
- if (this.root) {
56
- (_a = this.runtime) == null ? void 0 : _a.delete(this.root);
57
- }
58
- this.root = void 0;
59
- this._target = void 0;
60
- this.runtime = void 0;
61
- return !!this.node.unmount();
62
- }
63
- }
64
- export {
65
- ShadowNode as default
66
- };
67
- //# sourceMappingURL=ShadowNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/ShadowNode.ts"],"sourcesContent":["import {getContentScriptStylesRuntime} from \"./isolated-styles\";\nimport {\n ContentScriptShadowMode,\n type ContentScriptShadowOptions,\n type ContentScriptStylesRuntime,\n type ContentScriptNode,\n} from \"@typing/content\";\n\nexport default class ShadowNode implements ContentScriptNode {\n private root?: ShadowRoot;\n\n private _target?: Element;\n\n private runtime?: ContentScriptStylesRuntime;\n\n public constructor(\n protected readonly node: ContentScriptNode,\n private readonly options: ContentScriptShadowOptions = {}\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 mount(): 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 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 const target = this.container.ownerDocument.createElement(\"div\");\n root.appendChild(target);\n\n const runtime = getContentScriptStylesRuntime();\n runtime.add(root, target);\n\n this.root = root;\n this._target = target;\n this.runtime = runtime;\n\n return mounted;\n }\n\n public unmount(): boolean {\n if (this.root) {\n this.runtime?.delete(this.root);\n }\n\n this.root = undefined;\n this._target = undefined;\n this.runtime = undefined;\n\n return !!this.node.unmount();\n }\n}\n"],"mappings":"AAAA,SAAQ,qCAAoC;AAC5C;AAAA,EACI;AAAA,OAIG;AAEP,MAAO,WAAsD;AAAA,EAOlD,YACgB,MACF,UAAsC,CAAC,GAC1D;AAFqB;AACF;AAAA,EAClB;AAAA,EAFoB;AAAA,EACF;AAAA,EARb;AAAA,EAEA;AAAA,EAEA;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;AAAA,EAChB;AAAA,EAEO,QAAiB;AACpB,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;AACJ,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;AACA,UAAM,SAAS,KAAK,UAAU,cAAc,cAAc,KAAK;AAC/D,SAAK,YAAY,MAAM;AAEvB,UAAM,UAAU,8BAA8B;AAC9C,YAAQ,IAAI,MAAM,MAAM;AAExB,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,UAAU;AAEf,WAAO;AAAA,EACX;AAAA,EAEO,UAAmB;AAtE9B;AAuEQ,QAAI,KAAK,MAAM;AACX,iBAAK,YAAL,mBAAc,OAAO,KAAK;AAAA,IAC9B;AAEA,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,UAAU;AAEf,WAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;AAAA,EAC/B;AACJ;","names":[]}
@@ -1,15 +0,0 @@
1
- import { default as default2 } from "./Node.js";
2
- import { default as default3 } from "./MountNode.js";
3
- import { default as default4 } from "./MarkerNode.js";
4
- import { default as default5 } from "./EventNode.js";
5
- import { default as default6 } from "./ShadowNode.js";
6
- import { default as default7 } from "./FrameNode.js";
7
- export {
8
- default5 as EventNode,
9
- default7 as FrameNode,
10
- default4 as MarkerNode,
11
- default3 as MountNode,
12
- default2 as Node,
13
- default6 as ShadowNode
14
- };
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/index.ts"],"sourcesContent":["export {default as Node} from \"./Node\";\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,gBAA2B;AACnC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA2B;AACnC,SAAmB,WAAXA,gBAA4B;AACpC,SAAmB,WAAXA,gBAA2B;","names":["default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/nodes/isolated-styles.ts"],"sourcesContent":["import {getUrl} from \"@addon-core/browser\";\n\nimport {ContentScriptStylesRuntimeProperty, type ContentScriptStylesRuntime} from \"@typing/content\";\n\ninterface WebpackRuntime {\n (moduleId: string | number): unknown;\n [ContentScriptStylesRuntimeProperty]?: ContentScriptStylesRuntime;\n}\n\ndeclare const __webpack_require__: WebpackRuntime;\n\nexport const getContentScriptStylesRuntime = (): ContentScriptStylesRuntime => {\n const runtime =\n typeof __webpack_require__ === \"function\" ? __webpack_require__[ContentScriptStylesRuntimeProperty] : undefined;\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;AAErB,SAAQ,0CAA0E;AAS3E,MAAM,gCAAgC,MAAkC;AAC3E,QAAM,UACF,OAAO,wBAAwB,aAAa,oBAAoB,kCAAkC,IAAI;AAE1G,MAAI,CAAC,SAAS;AACV,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACvF;AAEA,UAAQ,WAAW,MAAM;AAEzB,SAAO;AACX;","names":[]}
@@ -1,2 +0,0 @@
1
- import { ContentScriptAnchor, ContentScriptAnchorGetter } from "../../../../types/content.js";
2
- export declare const contentScriptAnchorResolver: (anchor?: ContentScriptAnchor | ContentScriptAnchorGetter) => ContentScriptAnchorGetter;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/entry/content/core/resolvers/anchor.ts"],"sourcesContent":["import {ContentScriptAnchor, ContentScriptAnchorGetter} from \"@typing/content\";\n\n// prettier-ignore\nexport const contentScriptAnchorResolver =\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,8BACT,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":[]}
@@ -1,2 +0,0 @@
1
- import { ContentScriptContainerCreator, ContentScriptContainerFactory, ContentScriptContainerOptions, ContentScriptContainerTag } from "../../../../types/content.js";
2
- export declare const contentScriptContainerResolver: (container?: ContentScriptContainerTag | ContentScriptContainerOptions | ContentScriptContainerFactory) => ContentScriptContainerCreator;