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